Mercurial > pidgin
changeset 23389:5c70d953a497
propagate from branch 'im.pidgin.pidgin.2.4.3' (head 709ec9c29e9d76eebbded25061107ef0a2a2b148)
to branch 'im.pidgin.pidgin' (head e8d624d4b86e9505bb225f2a6e7b29ec6c8affed)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Thu, 26 Jun 2008 09:07:56 +0000 (2008-06-26) |
parents | d04d24b1db9b (current diff) 276925996951 (diff) |
children | f0a88845f517 |
files | COPYRIGHT ChangeLog libpurple/protocols/bonjour/bonjour.c libpurple/protocols/irc/parse.c libpurple/protocols/jabber/auth.c libpurple/protocols/jabber/jabber.c libpurple/protocols/msn/oim.c libpurple/protocols/msn/slplink.c libpurple/protocols/qq/qq.c libpurple/protocols/qq/qq_proxy.c libpurple/protocols/qq/qq_proxy.h libpurple/protocols/qq/recv_core.c libpurple/protocols/qq/recv_core.h libpurple/protocols/qq/send_core.c libpurple/protocols/qq/send_core.h libpurple/protocols/qq/send_file.c libpurple/protocols/qq/sendqueue.c libpurple/protocols/qq/sendqueue.h libpurple/protocols/qq/udp_proxy_s5.c libpurple/protocols/qq/udp_proxy_s5.h libpurple/protocols/yahoo/yahoo.c libpurple/protocols/zephyr/zephyr.h libpurple/proxy.c pidgin/gtkimhtml.c pidgin/gtkimhtmltoolbar.c po/ar.po po/bn.po po/bs.po po/ca@valencia.po po/fi.po po/gl.po po/ko.po po/lo.po po/nb.po po/nl.po po/ps.po po/sq.po po/ta.po po/te.po po/th.po po/ur.po po/vi.po po/zh_CN.po |
diffstat | 297 files changed, 10728 insertions(+), 6729 deletions(-) [+] |
line wrap: on
line diff
--- a/AUTHORS Thu Jun 26 08:42:49 2008 +0000 +++ b/AUTHORS Thu Jun 26 09:07:56 2008 +0000 @@ -8,14 +8,6 @@ Current Developers: ------------------ -Sean Egan <seanegan@gmail.com> - Lead Developer - AIM: SeanEgn - ICQ: 96642211 - Yahoo: SeanEgn - MSN: seanegn@hotmail.com - XMPP: seanegn@jabber.org - Gadu-Gadu: 1511497 - Daniel 'datallah' Atallah - Developer John 'rekkanoryo' Bailey - Developer Ethan 'Paco-Paco' Blanton - Developer @@ -23,6 +15,7 @@ Ka-Hing Cheung - Developer Sadrul Habib Chowdhury - Developer Mark 'KingAnt' Doliner - Developer +Sean Egan - Developer Casey Harkins - Developer Gary 'grim' Kramlich - Developer Richard 'rlaager' Laager - Developer @@ -41,6 +34,7 @@ Crazy Patch Writers: ------------------- +Felipe 'shx' Contreras Dennis 'EvilDennisR' Ristuccia Peter 'Fmoo' Ruibal Elliott 'QuLogic' Sales de Andrade @@ -61,7 +55,6 @@ Retired Crazy Patch Writers: --------------------------- -Felipe 'shx' Contreras Decklin Foster Peter 'Bleeter' Lawler Robert 'Robot101' McQueen
--- a/COPYRIGHT Thu Jun 26 08:42:49 2008 +0000 +++ b/COPYRIGHT Thu Jun 26 09:07:56 2008 +0000 @@ -54,6 +54,7 @@ Jonathan Brossard Jeffery Brown Philip Brown +Dan Bruce Norbert Buchmuller Sean Burke Thomas Butter @@ -233,6 +234,7 @@ Shlomi Loubaton Uli Luckas Matthew Luckie +Marcus Lundblad Mike Lundy Jason Lynch Iain MacDonnell @@ -277,6 +279,7 @@ Novell Padraig O'Briain Christopher O'Brien (siege) +Peter O'Gorman Jon Oberheide Yusuke Odate Ruediger Oertel @@ -289,6 +292,7 @@ John Oyler Matt Pandina Laszlo Pandy +Giulio 'Twain28' Pascali Ricardo Fernandez Pascual Riley Patterson Havoc Pennington @@ -352,6 +356,7 @@ Mark Schneider Evan Schoenberg Gabriel Schulhof +Eric Michael Schwelm Federico Schwindt Torrey Searle Peter Seebach @@ -384,6 +389,7 @@ Richard Stellingwerff Charlie Stockman David Stoddard +Adam Strzelecki Andreas St端hrk Oleg Sukhodolsky Sun Microsystems @@ -446,6 +452,8 @@ Matt Wilson Dan Winship Scott Wolchok +The Written Word, Inc. +Kevin Wu Won Pui Lam Wong Justin Wood Ximian
--- a/ChangeLog Thu Jun 26 08:42:49 2008 +0000 +++ b/ChangeLog Thu Jun 26 09:07:56 2008 +0000 @@ -1,5 +1,34 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul +version 2.5.0 (??/??/2008): + libpurple: + * Ability to create custom smileys (currently only the MSN protocol + utilizes the feature). (Thanks to Mauro S辿rgio Ferreira Brasil, + Marcus Lundblad, Jorge Villase単or and other contributors) + * Add a configure option, --with-system-ssl-certs to allow packagers + to specify a system-wide SSL CA certificates directory. When set, + we don't install our SSL CA certs, so it's important that the + libpurple package depend on the CA certificates. + + Pidgin: + * Custom buddy icons can now be added to and removed from buddy list + entries via the buddy list entry right-click menu. + * Resize large incoming custom smileys to a maximum of 96px on either + side. + * Offer to add new buddies into the same contact as existing buddies + in the same group if the alias given is the same. + + General: + * Group and Chat buddy list entries can now be given custom buddy + icons. + + Finch: + * Added "Invite..." menu to chats. + * Added "View All Logs" menu in the buddylist to display a list of all IM + logs. + * Added '/msgcolor' command to change colors of different classes of + messages in a conversation. See '/help msgcolor' for details. + version 2.4.3 (??/??/2008): libpurple: * Yahoo! Japan now uses UTF-8, matching the behavior of official clients
--- a/ChangeLog.API Thu Jun 26 08:42:49 2008 +0000 +++ b/ChangeLog.API Thu Jun 26 09:07:56 2008 +0000 @@ -1,5 +1,41 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul +version 2.5.0 (??/??/2008): + libpurple: + Added: + * Connection flag PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY to indicate + that the connection supports sending and receiving custom smileys. + * PurpleSmiley and the Smiley API. + * purple_serv_got_join_chat_failed + * chat-join-failed signal (see conversation-signals.dox) + * chat-invite-blocked and blocked-im-msg signals (see + converation-signals.dox) (Thanks to Stefan Ott) + * purple_blist_update_node_icon + * purple_buddy_icons_node_has_custom_icon + * purple_buddy_icons_node_find_custom_icon + * purple_buddy_icons_node_set_custom_icon + * purple_buddy_icons_node_set_custom_icon_from_file + * purple_notify_user_info_prepend_section_break + * purple_notify_user_info_prepend_section_header + + Deprecated: + * purple_blist_update_buddy_icon + * purple_buddy_icons_has_custom_icon + * purple_buddy_icons_find_custom_icon + * purple_buddy_icons_set_custom_icon + * pidgin_set_custom_buddy_icon + + pidgin: + Added: + * gtk_imhtml_smiley_create, gtk_imhtml_smiley_reload and + gtk_imhtml_smiley_destroy to deal with GtkIMHtmlSmiley's. + * pidgin_pixbuf_from_imgstore to create a GdkPixbuf from a + PurpleStoredImage. + * pidgin_themes_smiley_themeize_custom to associate custom smileys to + a GtkIMHtml widget. + * GTK_IMHTML_CUSTOM_SMILEY flag for GtkIMHtml. + * GTK+ Custom Smiley API. + version 2.4.2 (05/17/2008): perl: Added:
--- a/Doxyfile.in Thu Jun 26 08:42:49 2008 +0000 +++ b/Doxyfile.in Thu Jun 26 09:07:56 2008 +0000 @@ -485,11 +485,11 @@ # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = libpurple \ - finch \ - finch/libgnt \ - pidgin \ - doc +INPUT = @top_srcdir@/libpurple \ + @top_srcdir@/finch \ + @top_srcdir@/finch/libgnt \ + @top_srcdir@/pidgin \ + @top_srcdir@/doc # This tag can be used to specify the character encoding of the source files that # doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
--- a/NEWS Thu Jun 26 08:42:49 2008 +0000 +++ b/NEWS Thu Jun 26 09:07:56 2008 +0000 @@ -1,6 +1,6 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul -2.4.2 (5/XX/2008): +2.4.2 (5/17/2008): Sadrul: We added some usability changes in this release, including the typing notification, buddyicon and input area size in the conversation windows, escape to close conversation windows etc. These changes should
--- a/README.MTN Thu Jun 26 08:42:49 2008 +0000 +++ b/README.MTN Thu Jun 26 09:07:56 2008 +0000 @@ -26,7 +26,7 @@ API, and account.h contains documentation for the purple_account_* API. If you have questions, please feel free to contact the Pidgin, Finch, and -libpurple developers by e-mail at devel@pidgin.im or on IRC at irc.freenode.net +libpurple developers by email at devel@pidgin.im or on IRC at irc.freenode.net in #pidgin. Please do as much homework as you can before contacting us; the more you know about your question, the faster and more effectively we can help!
--- a/configure.ac Thu Jun 26 08:42:49 2008 +0000 +++ b/configure.ac Thu Jun 26 09:07:56 2008 +0000 @@ -43,19 +43,19 @@ # # Make sure to update finch/libgnt/configure.ac with libgnt version changes. # -m4_define([purple_lt_current], [4]) +m4_define([purple_lt_current], [5]) m4_define([purple_major_version], [2]) -m4_define([purple_minor_version], [4]) -m4_define([purple_micro_version], [3]) +m4_define([purple_minor_version], [5]) +m4_define([purple_micro_version], [0]) m4_define([purple_version_suffix], [devel]) m4_define([purple_version], [purple_major_version.purple_minor_version.purple_micro_version]) m4_define([purple_display_version], purple_version[]m4_ifdef([purple_version_suffix],[purple_version_suffix])) -m4_define([gnt_lt_current], [4]) +m4_define([gnt_lt_current], [5]) m4_define([gnt_major_version], [2]) -m4_define([gnt_minor_version], [4]) -m4_define([gnt_micro_version], [3]) +m4_define([gnt_minor_version], [5]) +m4_define([gnt_micro_version], [0]) m4_define([gnt_version_suffix], [devel]) m4_define([gnt_version], [gnt_major_version.gnt_minor_version.gnt_micro_version]) @@ -108,13 +108,14 @@ dnl Checks for programs. AC_PROG_CC +AM_PROG_CC_C_O AC_DISABLE_STATIC -AM_PROG_LIBTOOL +AC_PROG_LIBTOOL LIBTOOL="$LIBTOOL --silent" AC_PROG_INSTALL AC_PROG_INTLTOOL PKG_PROG_PKG_CONFIG - +AC_FUNC_ALLOCA GETTEXT_PACKAGE=pidgin AC_SUBST(GETTEXT_PACKAGE) @@ -210,7 +211,7 @@ [Define to 1 if you have the getaddrinfo function.])], [AC_CHECK_LIB(socket, getaddrinfo, [AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lsnl $LIBS"], , , -lnsl)]) - +AC_CHECK_FUNCS(inet_ntop) dnl Check for socklen_t (in Unix98) AC_MSG_CHECKING(for socklen_t) AC_TRY_COMPILE([ @@ -234,6 +235,12 @@ ]) ]) +dnl Some systems do not have sa_len field for struct sockaddr. +AC_CHECK_MEMBER([struct sockaddr.sa_len], + [AC_DEFINE([HAVE_STRUCT_SOCKADDR_SA_LEN],[1], + [Define if struct sockaddr has an sa_len member])],[:], + [#include <sys/socket.h>]) + dnl to prevent the g_stat()/g_unlink() crash, dnl (09:50:07) Robot101: LSchiere2: it's easy. +LC_SYS_LARGEFILE somewhere in configure.ac AC_SYS_LARGEFILE @@ -1200,8 +1207,8 @@ dnl # Check for D-Bus libraries dnl ####################################################################### -AC_ARG_ENABLE(dbus, [AC_HELP_STRING([--enable-dbus], [enable D-Bus support])], , enable_dbus=yes) -AC_ARG_ENABLE(nm, [AC_HELP_STRING([--enable-nm], [enable NetworkManager support (requires D-Bus)])], enable_nm=$enableval, enable_nm=yes) +AC_ARG_ENABLE(dbus, [AC_HELP_STRING([--disable-dbus], [disable D-Bus support])], , enable_dbus=yes) +AC_ARG_ENABLE(nm, [AC_HELP_STRING([--disable-nm], [disable NetworkManager support (requires D-Bus)])], enable_nm=$enableval, enable_nm=yes) if test "x$enable_dbus" = "xyes" ; then AC_CHECK_PROG(enable_dbus, dbus-binding-tool, yes, no) @@ -1554,6 +1561,18 @@ dnl # Thanks go to Evolution for the checks. dnl ####################################################################### +AC_ARG_WITH(with-system-ssl-certs, [AC_HELP_STRING([--with-system-ssl-certs=<dir>], [directory containing system-wide SSL CA certificates])]) + +SSL_CERTIFICATES_DIR="" +if ! test -z "$with_system_ssl_certs" ; then + if ! test -d "$with_system_ssl_certs" ; then + AC_MSG_ERROR([$with_system_ssl_certs does not exist, if this is the correct location please make sure that it exists.]) + fi + SSL_CERTIFICATES_DIR="$with_system_ssl_certs" +fi +AC_SUBST(SSL_CERTIFICATES_DIR) +AM_CONDITIONAL(INSTALL_SSL_CERTIFICATES, test "x$SSL_CERTIFICATES_DIR" = "x") + dnl These two are inverses of each other <-- stolen from evolution! AC_ARG_ENABLE(gnutls, @@ -1622,14 +1641,14 @@ *) with_gnutls_libs="-L$with_gnutls_libs" ;; esac - AC_CACHE_CHECK([for GnuTLS libraries], gnutls_libs, + AC_CACHE_CHECK([for GnuTLS libraries], ac_cv_gnutls_libs, [ LIBS="$LIBS $with_gnutls_libs -lgnutls -lgcrypt" - AC_TRY_LINK_FUNC(gnutls_init, gnutls_libs="yes", gnutls_libs="no") + AC_TRY_LINK_FUNC(gnutls_init, ac_cv_gnutls_libs="yes", ac_cv_gnutls_libs="no") LIBS="$LIBS_save" ]) - if test "x$gnutls_libs" != "xno"; then + if test "x$ac_cv_gnutls_libs" != "xno"; then AC_DEFINE(HAVE_GNUTLS, 1, [Define if you have GnuTLS]) AC_DEFINE(HAVE_SSL) msg_gnutls="GnuTLS" @@ -1782,7 +1801,7 @@ nsprlibs="$LIBDL -lplc4 -lplds4 -lnspr4 $PTHREAD_LIB" fi - AC_CACHE_CHECK([for Mozilla nspr libraries], moz_nspr_libs, + AC_CACHE_CHECK([for Mozilla nspr libraries], ac_cv_moz_nspr_libs, [ LIBS_save=$LIBS CFLAGS="$CFLAGS $NSPR_CFLAGS" @@ -1796,15 +1815,15 @@ fi AC_TRY_LINK_FUNC(PR_Init, - [moz_nspr_libs="yes"], - [moz_nspr_libs="no"]) + [ac_cv_moz_nspr_libs="yes"], + [ac_cv_moz_nspr_libs="no"]) CFLAGS=$CFLAGS_save LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save ]) - if test "x$moz_nspr_libs" != "xno"; then + if test "x$ac_cv_moz_nspr_libs" != "xno"; then have_nspr_libs="yes" NSPR_LIBS="-L$with_nspr_libs $nsprlibs" else @@ -1877,30 +1896,30 @@ nsslibs="-lssl3 -lsmime3 -lnss3 -lsoftokn3" fi - AC_CACHE_CHECK([for Mozilla nss libraries], moz_nss_libs, + AC_CACHE_CHECK([for Mozilla nss libraries], ac_cv_moz_nss_libs, [ LIBS_save=$LIBS LDFLAGS="$LDFLAGS -L$with_nspr_libs -L$with_nss_libs" LIBS="$nsslibs $nsprlibs" AC_TRY_LINK_FUNC(NSS_Init, - [moz_nss_libs="yes"], - [moz_nss_libs="no"]) + [ac_cv_moz_nss_libs="yes"], + [ac_cv_moz_nss_libs="no"]) - if test "x$moz_nss_libs" = "xno"; then + if test "x$ac_cv_moz_nss_libs" = "xno"; then nsslibs="-lssl3 -lsmime3 -lnss3 -lsoftokn3" LDFLAGS="$LDFLAGS -L$with_nspr_libs -L$with_nss_libs" LIBS="$LIBS $nsslibs" AC_TRY_LINK_FUNC(NSS_Init, - [moz_nss_libs="yes"], - [moz_nss_libs="no"]) + [ac_cv_moz_nss_libs="yes"], + [ac_cv_moz_nss_libs="no"]) fi LDFLAGS=$LDFLAGS_save LIBS=$LIBS_save ]) - if test "x$moz_nss_libs" != "xno"; then + if test "x$ac_cv_moz_nss_libs" != "xno"; then AC_DEFINE(HAVE_NSS) AC_DEFINE(HAVE_SSL) @@ -2204,9 +2223,11 @@ AC_CHECK_HEADERS(termios.h) # sys/sysctl.h on OpenBSD 4.2 requires sys/param.h +# sys/sysctl.h on FreeBSD requires sys/types.h AC_CHECK_HEADERS(sys/param.h) AC_CHECK_HEADERS(sys/sysctl.h, [], [], [[ + #include <sys/types.h> #ifdef HAVE_PARAM_H # include <sys/param.h> #endif @@ -2229,11 +2250,7 @@ dnl ####################################################################### dnl # Check for check dnl ####################################################################### -PKG_CHECK_MODULES(CHECK,[check >= 0.9.4],:,[ - ifdef([[AM_PATH_CHECK]], - [AM_PATH_CHECK(0.8.2,:,:)], - [AC_MSG_RESULT([no, testing is disabled])]) - ]) +PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], , [AC_MSG_RESULT([no, testing is disabled])]) AM_CONDITIONAL(HAVE_CHECK, [test "x$CHECK_LIBS" != "x"]) AC_SUBST(CHECK_CFLAGS) AC_SUBST(CHECK_LIBS) @@ -2406,6 +2423,9 @@ fi echo Build with NetworkManager..... : $enable_nm echo SSL Library/Libraries......... : $msg_ssl +if test "x$SSL_CERTIFICATES_DIR" != "x" ; then + eval eval echo SSL CA certificates directory. : $SSL_CERTIFICATES_DIR +fi echo Build with Cyrus SASL support. : $enable_cyrus_sasl echo Use kerberos 4 with zephyr.... : $kerberos echo Use external libzephyr........ : $zephyr
--- a/doc/C-HOWTO.dox Thu Jun 26 08:42:49 2008 +0000 +++ b/doc/C-HOWTO.dox Thu Jun 26 09:07:56 2008 +0000 @@ -176,7 +176,7 @@ how much to display). */ NULL, /* This is where you can put your name and - e-mail address. + email address. */ "http://helloworld.tld",/* This is the website for the plugin. This tells users where to find new versions,
--- a/doc/conversation-signals.dox Thu Jun 26 08:42:49 2008 +0000 +++ b/doc/conversation-signals.dox Thu Jun 26 09:07:56 2008 +0000 @@ -7,6 +7,7 @@ @signal sent-im-msg @signal receiving-im-msg @signal received-im-msg + @signal blocked-im-msg @signal writing-chat-msg @signal wrote-chat-msg @signal sending-chat-msg @@ -26,7 +27,9 @@ @signal chat-inviting-user @signal chat-invited-user @signal chat-invited + @signal chat-invite-blocked @signal chat-joined + @signal chat-join-failed @signal chat-left @signal chat-topic-changed @signal conversation-extended-menu @@ -131,6 +134,21 @@ @param flags The IM message flags. @endsignaldef + @signaldef blocked-im-msg + @signalproto +void (*blocked_im_msg)(PurpleAccount *account, const char *sender, + const char *message, PurpleMessageFlags flags, time_t when); + @endsignalproto + @signaldesc + Emitted after an IM is blocked due to privacy settings. + @param account The account the message was received on. + @param sender The username of the sender. + @param message The message that was blocked. + @param flags The IM message flags. + @param when The time the message was sent. + @since 2.5.0 + @endsignaldef + @signaldef writing-chat-msg @signalproto gboolean (*writing_chat_msg)(PurpleAccount *account, const char *who, @@ -302,6 +320,18 @@ @param new_arrival If the buddy is a new arrival. @endsignaldef + @signaldef chat-join-failed + @signalproto +void (*chat_join_failed)(PurpleConnection *gc, GHashTable *components); + @endsignalproto + @signaldesc + Emitted when an account fails to join a chat room + @param gc The PurpleConnection of the account which failed to join the chat. + @param data The components passed to serv_join_chat() originally. + The hash function should be g_str_hash() and the equal + function should be g_str_equal(). + @endsignaldef + @signaldef chat-buddy-flags @signalproto void (*chat_buddy_flags)(PurpleConversation *conv, const char *name, @@ -391,6 +421,21 @@ default behavior will be maintained: the user will be prompted. @endsignaldef + @signaldef chat-invite-blocked + @signalproto +void (*chat_invite_blocked)(PurpleAccount *account, const char *inviter, + const char *name, const char *message, GHashTable *data); + @endsignalproto + @signaldesc + Emitted when an invitation to join a chat is blocked. + @param account The account the invitation was sent to. + @param inviter The name of the person sending the invitation. + @param name The name of the chat invited to. + @param message The invitation message sent. + @param data Hashtable containing data about the invited chat. + @since 2.5.0 + @endsignaldef + @signaldef chat-joined @signalproto void (*chat_joined)(PurpleConversation *conv);
--- a/doc/finch.1.in Thu Jun 26 08:42:49 2008 +0000 +++ b/doc/finch.1.in Thu Jun 26 09:07:56 2008 +0000 @@ -381,6 +381,12 @@ one of \fBa-\fR, \fBalt-\fR, \fBm-\fR or \fBmeta-\fR. You can also use \fBhome\fR, \fBend\fR, \fBleft\fR, \fBright\fR etc. keys. +To unbind a key which has a default binding, you simply bind it to the empty string. For example, to unbind \fBAlt + q\fR from the Quit function, you would use: + +[GntWM::binding] +.br +a-q = + .SH Menus You can also specify key-bindings to trigger specific menuitems in windows. For example, the following entry in \fI~/.gntrc\fR will bind \fBCtrl + t\fR to the 'Send IM...' item in the buddylist:
--- a/doc/gtkrc-2.0 Thu Jun 26 08:42:49 2008 +0000 +++ b/doc/gtkrc-2.0 Thu Jun 26 09:07:56 2008 +0000 @@ -45,7 +45,7 @@ # Change the color of the typing notification GtkIMHtml::typing-notification-color = "#ff0000" # Disable the typing notification - GtkIMHtml::typing-notification-enable = 1 + GtkIMHtml::typing-notification-enable = 0 # The following settings will change the behaviour in all GTK+ applications # Change the cursor color
--- a/doc/pidgin.1.in Thu Jun 26 08:42:49 2008 +0000 +++ b/doc/pidgin.1.in Thu Jun 26 09:07:56 2008 +0000 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2000, Dennis Ristuccia <dennis@dennisr.net> +Ri.\" Copyright (c) 2000, Dennis Ristuccia <dennis@dennisr.net> .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,9 +19,9 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 51 Franklin Street, Fifth Floor, .\" Boston, MA 02111-1301 USA. -.TH pidgin 1 +.TH pidgin 1 "" "Pidgin v@VERSION@" .SH NAME -Pidgin v@VERSION@ \- Instant Messaging client +pidgin \- Instant Messaging client .SH SYNOPSIS .TP 5 \fBpidgin \fI[options]\fR @@ -550,8 +550,6 @@ .SH AUTHORS Pidgin's active developers are: .br - Sean Egan (lead developer) <\fIseanegan@gmail.com\fR> -.br Daniel 'datallah' Atallah (developer) .br John 'rekkanoryo' Bailey (developer) @@ -566,6 +564,8 @@ .br Mark 'KingAnt' Doliner (developer) <\fIthekingant@users.sourceforge.net\fR> .br + Sean Egan (developer) <\fIseanegan@gmail.com\fR> +.br Casey Harkins (developer) .br Gary 'grim' Kramlich (developer) @@ -600,6 +600,8 @@ Our crazy patch writers include: .br + Felipe 'shx' Contreras +.br Dennis 'EvilDennisR' Ristuccia .br Peter 'fmoo' Ruibal @@ -608,6 +610,8 @@ .br Gabriel 'Nix' Schulhof .br + Jorge 'Masca' Villase単or +.br Our artists are: @@ -640,8 +644,6 @@ Our retired crazy patch writers include: .br - Felipe 'shx' Contreras -.br Decklin Foster .br Peter 'Bleeter' Lawler
--- a/finch/gntaccount.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntaccount.c Thu Jun 26 09:07:56 2008 +0000 @@ -43,6 +43,7 @@ #include <notify.h> #include <plugin.h> #include <request.h> +#include <savedstatuses.h> #include "gntaccount.h" #include "gntblist.h" @@ -67,7 +68,7 @@ GntWidget *screenname; GntWidget *password; GntWidget *alias; - + GntWidget *splits; GList *split_entries; @@ -76,6 +77,7 @@ GntWidget *newmail; GntWidget *remember; + GntWidget *regserver; } AccountEditDialog; /* This is necessary to close an edit-dialog when an account is deleted */ @@ -125,7 +127,7 @@ _("Username of an account must be non-empty.")); return; } - + username = g_string_new(value); if (prplinfo != NULL) @@ -183,7 +185,7 @@ if (prplinfo) { GList *iter, *entries; - + for (iter = prplinfo->protocol_options, entries = dialog->prpl_entries; iter && entries; iter = iter->next, entries = entries->next) { @@ -228,6 +230,20 @@ gnt_box_give_focus_to_child(GNT_BOX(accounts.window), accounts.tree); } + if (prplinfo && prplinfo->register_user && + gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->regserver))) { + purple_account_register(account); + } else if (dialog->account == NULL) { + /* This is a new account. Set it to the current status. */ + /* Xerox from gtkaccount.c :D */ + const PurpleSavedStatus *saved_status; + saved_status = purple_savedstatus_get_current(); + if (saved_status != NULL) { + purple_savedstatus_activate_for_account(saved_status, account); + purple_account_set_enabled(account, FINCH_UI, TRUE); + } + } + gnt_widget_destroy(dialog->window); } @@ -419,6 +435,11 @@ } } } + + /* Show the registration checkbox only in a new account dialog, + * and when the selected prpl has the support for it. */ + gnt_widget_set_visible(dialog->regserver, account == NULL && + prplinfo->register_user != NULL); } static void @@ -559,6 +580,10 @@ gnt_box_add_widget(GNT_BOX(window), dialog->remember); gnt_box_add_widget(GNT_BOX(window), dialog->newmail); + /* Register checkbox */ + dialog->regserver = gnt_check_box_new(_("Create this account on the server")); + gnt_box_add_widget(GNT_BOX(window), dialog->regserver); + gnt_box_add_widget(GNT_BOX(window), gnt_line_new(FALSE)); /* The advanced box */
--- a/finch/gntblist.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntblist.c Thu Jun 26 09:07:56 2008 +0000 @@ -2722,6 +2722,7 @@ PurpleConnection *gc; PurpleChat *chat; GHashTable *hash = NULL; + PurpleConversation *conv; account = purple_request_fields_get_account(fields, "account"); name = purple_request_fields_get_string(fields, "chat"); @@ -2730,7 +2731,16 @@ return; gc = purple_account_get_connection(account); - purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, name); + /* Create a new conversation now. This will give focus to the new window. + * But it's necessary to pretend that we left the chat, because otherwise + * a new conversation window will pop up when we finally join the chat. */ + if (!(conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, name, account))) { + conv = purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, name); + purple_conv_chat_left(PURPLE_CONV_CHAT(conv)); + } else { + purple_conversation_present(conv); + } + chat = purple_blist_find_chat(account, name); if (chat == NULL) { PurplePluginProtocolInfo *info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); @@ -2841,6 +2851,12 @@ } static void +view_all_logs_cb(GntMenuItem *item, gpointer n) +{ + finch_log_show(PURPLE_LOG_IM, NULL, NULL); +} + +static void menu_add_buddy_cb(GntMenuItem *item, gpointer null) { purple_blist_request_add_buddy(NULL, NULL, NULL, NULL); @@ -2905,6 +2921,11 @@ gnt_menu_add_item(GNT_MENU(sub), item); gnt_menuitem_set_callback(GNT_MENU_ITEM(item), view_log_cb, NULL); + item = gnt_menuitem_new(_("View All Logs")); + gnt_menuitem_set_id(GNT_MENU_ITEM(item), "view-all-logs"); + gnt_menu_add_item(GNT_MENU(sub), item); + gnt_menuitem_set_callback(GNT_MENU_ITEM(item), view_all_logs_cb, NULL); + item = gnt_menuitem_new(_("Show")); gnt_menu_add_item(GNT_MENU(sub), item); subsub = gnt_menu_new(GNT_MENU_POPUP); @@ -3012,9 +3033,6 @@ gnt_widget_set_position(ggblist->window, purple_prefs_get_int(PREF_ROOT "/position/x"), purple_prefs_get_int(PREF_ROOT "/position/y")); - gnt_tree_set_col_width(GNT_TREE(ggblist->tree), 0, - purple_prefs_get_int(PREF_ROOT "/size/width") - 1); - gnt_box_add_widget(GNT_BOX(ggblist->window), ggblist->tree); ggblist->status = gnt_combo_box_new();
--- a/finch/gntblist.h Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntblist.h Thu Jun 26 09:07:56 2008 +0000 @@ -34,6 +34,10 @@ **********************************************************************/ /*@{*/ +/** + * Buddylist manager for finch. This decides the visility, ordering and hierarchy + * of the buddylist nodes. This also manages the creation of tooltips. + */ typedef struct { const char *id; /**< An identifier for the manager. */
--- a/finch/gntconv.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntconv.c Thu Jun 26 09:07:56 2008 +0000 @@ -38,10 +38,11 @@ #include "gntdebug.h" #include "gntlog.h" #include "gntplugin.h" +#include "gntpounce.h" #include "gntprefs.h" +#include "gntrequest.h" #include "gntsound.h" #include "gntstatus.h" -#include "gntpounce.h" #include "gnt.h" #include "gntbox.h" @@ -140,7 +141,7 @@ entry_key_pressed(GntWidget *w, FinchConv *ggconv) { const char *text = gnt_entry_get_text(GNT_ENTRY(ggconv->entry)); - if (*text == '/') + if (*text == '/' && *(text + 1) != '/') { PurpleConversation *conv = ggconv->active_conv; PurpleCmdStatus status; @@ -190,7 +191,7 @@ } else { - char *escape = g_markup_escape_text(text, -1); + char *escape = g_markup_escape_text((*text == '/' ? text + 1 : text), -1); char *apos = purple_strreplace(escape, "'", "'"); g_free(escape); escape = apos; @@ -557,6 +558,47 @@ } static void +invite_select_cb(FinchConv *fc, PurpleRequestFields *fields) +{ + PurpleConversation *conv = fc->active_conv; + const char *buddy = purple_request_fields_get_string(fields, "screenname"); + const char *message = purple_request_fields_get_string(fields, "message"); + serv_chat_invite(purple_conversation_get_gc(conv), + purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), + message, buddy); + +} + +static void +invite_cb(GntMenuItem *item, gpointer ggconv) +{ + PurpleRequestFields *fields; + PurpleRequestFieldGroup *group; + PurpleRequestField *field; + + fields = purple_request_fields_new(); + + group = purple_request_field_group_new(NULL); + purple_request_fields_add_group(fields, group); + + field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE); + purple_request_field_set_type_hint(field, "screenname"); + purple_request_field_set_required(field, TRUE); + purple_request_field_group_add_field(group, field); + field = purple_request_field_string_new("message", _("Invite message"), NULL, FALSE); + purple_request_field_group_add_field(group, field); + purple_request_fields(finch_conv_get_handle(), _("Invite"), + NULL, + _("Please enter the name of the user " + "you wish to invite,\nalong with an optional invite message."), + fields, + _("OK"), G_CALLBACK(invite_select_cb), + _("Cancel"), NULL, + NULL, NULL, NULL, + ggconv); +} + +static void gg_create_menu(FinchConv *ggc) { GntWidget *menu, *sub; @@ -606,6 +648,10 @@ } generate_send_to_menu(ggc); + } else if (purple_conversation_get_type(ggc->active_conv) == PURPLE_CONV_TYPE_CHAT) { + item = gnt_menuitem_new(_("Invite...")); + gnt_menu_add_item(GNT_MENU(sub), item); + gnt_menuitem_set_callback(item, invite_cb, ggc); } item = gnt_menuitem_new(_("View Log...")); @@ -1195,6 +1241,47 @@ } static PurpleCmdRet +cmd_message_color(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data) +{ + int *msgclass = NULL; + int fg, bg; + + if (strcmp(args[0], "receive") == 0) + msgclass = &color_message_receive; + else if (strcmp(args[0], "send") == 0) + msgclass = &color_message_send; + else if (strcmp(args[0], "highlight") == 0) + msgclass = &color_message_highlight; + else if (strcmp(args[0], "action") == 0) + msgclass = &color_message_action; + else if (strcmp(args[0], "timestamp") == 0) + msgclass = &color_timestamp; + else { + if (error) + *error = g_strdup_printf(_("%s is not a valid message class. See '/help msgcolor' for valid message classes."), args[0]); + return PURPLE_CMD_STATUS_FAILED; + } + + fg = gnt_colors_get_color(args[1]); + if (fg == -EINVAL) { + if (error) + *error = g_strdup_printf(_("%s is not a valid color. See '/help msgcolor' for valid colors."), args[1]); + return PURPLE_CMD_STATUS_FAILED; + } + + bg = gnt_colors_get_color(args[2]); + if (bg == -EINVAL) { + if (error) + *error = g_strdup_printf(_("%s is not a valid color. See '/help msgcolor' for valid colors."), args[2]); + return PURPLE_CMD_STATUS_FAILED; + } + + init_pair(*msgclass, fg, bg); + + return PURPLE_CMD_STATUS_OK; +} + +static PurpleCmdRet users_command_cb(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data) { FinchConv *fc = FINCH_GET_DATA(conv); @@ -1278,6 +1365,16 @@ PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, cmd_show_window, _("statuses: Show the savedstatuses window."), finch_savedstatus_show_all); + /* Allow customizing the message colors using a command during run-time */ + purple_cmd_register("msgcolor", "www", PURPLE_CMD_P_DEFAULT, + PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, + cmd_message_color, _("msgcolor <class> <foreground> <background>: " + "Set the color for different classes of messages in the conversation window.<br>" + " <class>: receive, send, highlight, action, timestamp<br>" + " <foreground/background>: black, red, green, blue, white, gray, darkgray, magenta, cyan, default<br><br>" + "EXAMPLE:<br> msgcolor send cyan default"), + NULL); + purple_signal_connect(purple_conversations_get_handle(), "buddy-typing", finch_conv_get_handle(), PURPLE_CALLBACK(update_buddy_typing), NULL); purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(),
--- a/finch/gntft.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntft.c Thu Jun 26 09:07:56 2008 +0000 @@ -117,7 +117,9 @@ total_pct = 100 * total_bytes_xferred / total_file_size; } - title = g_strdup_printf(_("File Transfers - %d%% of %d files"), + title = g_strdup_printf(ngettext("File Transfers - %d%% of %d file", + "File Transfers - %d%% of %d files", + num_active_xfers), total_pct, num_active_xfers); gnt_screen_rename_widget((xfer_dialog->window), title); g_free(title);
--- a/finch/gntlog.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntlog.c Thu Jun 26 09:07:56 2008 +0000 @@ -61,8 +61,12 @@ if (viewer->contact != NULL) return g_direct_hash(viewer->contact); - return g_str_hash(viewer->screenname) + - g_str_hash(purple_account_get_username(viewer->account)); + if (viewer->account) { + return g_str_hash(viewer->screenname) + + g_str_hash(purple_account_get_username(viewer->account)); + } + + return (guint)viewer; } static gboolean log_viewer_equal(gconstpointer y, gconstpointer z) @@ -84,10 +88,14 @@ return FALSE; } - normal = g_strdup(purple_normalize(a->account, a->screenname)); - ret = (a->account == b->account) && - !strcmp(normal, purple_normalize(b->account, b->screenname)); - g_free(normal); + if (a->screenname && b->screenname) { + normal = g_strdup(purple_normalize(a->account, a->screenname)); + ret = (a->account == b->account) && + !strcmp(normal, purple_normalize(b->account, b->screenname)); + g_free(normal); + } else { + ret = (a == b); + } return ret; } @@ -302,7 +310,7 @@ /* Label ************/ text = g_strdup_printf("%s", title); - lv->label = gnt_label_new(text); + lv->label = gnt_label_new_with_format(text, GNT_TEXT_FLAG_BOLD); g_free(text); gnt_box_add_widget(GNT_BOX(vbox), lv->label); @@ -348,14 +356,28 @@ return lv; } -void finch_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account) { +static void +our_logging_blows(PurpleLogSet *set, PurpleLogSet *setagain, GList **list) +{ + /* The iteration happens on the first list. So we use the shorter list in front */ + if (set->type != PURPLE_LOG_IM) + return; + *list = g_list_concat(purple_log_get_logs(PURPLE_LOG_IM, set->name, set->account), *list); +} + +void finch_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account) +{ struct log_viewer_hash_t *ht; FinchLogViewer *lv = NULL; const char *name = screenname; char *title; + GList *logs = NULL; + int size = 0; - g_return_if_fail(account != NULL); - g_return_if_fail(screenname != NULL); + if (type != PURPLE_LOG_IM) { + g_return_if_fail(account != NULL); + g_return_if_fail(screenname != NULL); + } ht = g_new0(struct log_viewer_hash_t, 1); @@ -383,20 +405,35 @@ } else { PurpleBuddy *buddy; - buddy = purple_find_buddy(account, screenname); - if (buddy != NULL) - name = purple_buddy_get_contact_alias(buddy); - - title = g_strdup_printf(_("Conversations with %s"), name); + if (screenname) { + buddy = purple_find_buddy(account, screenname); + if (buddy != NULL) + name = purple_buddy_get_contact_alias(buddy); + title = g_strdup_printf(_("Conversations with %s"), name); + } else { + title = g_strdup(_("All Conversations")); + } } - display_log_viewer(ht, purple_log_get_logs(type, screenname, account), - title, purple_log_get_total_size(type, screenname, account)); + if (screenname) { + logs = purple_log_get_logs(type, screenname, account); + size = purple_log_get_total_size(type, screenname, account); + } else { + /* This will happen only for IMs */ + GHashTable *table = purple_log_get_log_sets(); + g_hash_table_foreach(table, (GHFunc)our_logging_blows, &logs); + g_hash_table_destroy(table); + logs = g_list_sort(logs, purple_log_compare); + size = 0; + } + + display_log_viewer(ht, logs, title, size); g_free(title); } -void finch_log_show_contact(PurpleContact *contact) { +void finch_log_show_contact(PurpleContact *contact) +{ struct log_viewer_hash_t *ht; PurpleBlistNode *child; FinchLogViewer *lv = NULL;
--- a/finch/gntnotify.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/gntnotify.c Thu Jun 26 09:07:56 2008 +0000 @@ -208,8 +208,10 @@ else { char *to; + gboolean newwin = (emaildialog.window == NULL); - setup_email_dialog(); + if (newwin) + setup_email_dialog(); to = g_strdup_printf("%s (%s)", tos ? *tos : purple_account_get_username(account), purple_account_get_protocol_name(account)); @@ -219,7 +221,10 @@ *subjects), NULL, NULL); g_free(to); - gnt_widget_show(emaildialog.window); + if (newwin) + gnt_widget_show(emaildialog.window); + else + gnt_window_present(emaildialog.window); return NULL; }
--- a/finch/libgnt/configure.ac Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/configure.ac Thu Jun 26 09:07:56 2008 +0000 @@ -24,10 +24,10 @@ # Make sure to update ../../configure.ac with libgnt version changes. # -m4_define([gnt_lt_current], [4]) +m4_define([gnt_lt_current], [5]) m4_define([gnt_major_version], [2]) -m4_define([gnt_minor_version], [4]) -m4_define([gnt_micro_version], [2]) +m4_define([gnt_minor_version], [5]) +m4_define([gnt_micro_version], [0]) m4_define([gnt_version_suffix], []) m4_define([gnt_version], [gnt_major_version.gnt_minor_version.gnt_micro_version])
--- a/finch/libgnt/gntbox.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/gntbox.c Thu Jun 26 09:07:56 2008 +0000 @@ -272,7 +272,8 @@ box->active = iter->next->data; else if (box->focus) box->active = box->focus->data; - if (!GNT_WIDGET_IS_FLAG_SET(box->active, GNT_WIDGET_INVISIBLE)) + if (!GNT_WIDGET_IS_FLAG_SET(box->active, GNT_WIDGET_INVISIBLE) && + GNT_WIDGET_IS_FLAG_SET(box->active, GNT_WIDGET_CAN_TAKE_FOCUS)) break; } while (box->active != last); }
--- a/finch/libgnt/gntcolors.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/gntcolors.c Thu Jun 26 09:07:56 2008 +0000 @@ -29,6 +29,7 @@ #include <glib.h> +#include <errno.h> #include <stdlib.h> #include <string.h> @@ -168,7 +169,7 @@ color = -1; else { g_warning("Invalid color name: %s\n", key); - color = -1; + color = -EINVAL; } return color; }
--- a/finch/libgnt/gntcolors.h Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/gntcolors.h Thu Jun 26 09:07:56 2008 +0000 @@ -91,7 +91,7 @@ * * @param kfile The string value * - * @return A color + * @return A color. For an unknown color name, returns -EINVAL. * * @since 2.4.0 */
--- a/finch/libgnt/gntentry.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/gntentry.c Thu Jun 26 09:07:56 2008 +0000 @@ -551,10 +551,10 @@ return TRUE; } -#define SAME(a,b) ((g_unichar_isalpha(a) && g_unichar_isalpha(b)) || \ - (g_unichar_isdigit(a) && g_unichar_isdigit(b)) || \ +#define SAME(a,b) ((g_unichar_isalnum(a) && g_unichar_isalnum(b)) || \ (g_unichar_isspace(a) && g_unichar_isspace(b)) || \ - (g_unichar_iswide(a) && g_unichar_iswide(b))) + (g_unichar_iswide(a) && g_unichar_iswide(b)) || \ + (g_unichar_ispunct(a) && g_unichar_ispunct(b))) static const char * begin_word(const char *text, const char *begin) @@ -580,11 +580,13 @@ while (text && text < end && g_unichar_isspace(g_utf8_get_char(text))) text = g_utf8_find_next_char(text, end); - ch = g_utf8_get_char(text); - while ((text = g_utf8_find_next_char(text, end)) != NULL && text <= end) { - gunichar cur = g_utf8_get_char(text); - if (!SAME(ch, cur)) - break; + if (text) { + ch = g_utf8_get_char(text); + while ((text = g_utf8_find_next_char(text, end)) != NULL && text <= end) { + gunichar cur = g_utf8_get_char(text); + if (!SAME(ch, cur)) + break; + } } return (text ? text : end); }
--- a/finch/libgnt/gntmenu.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/gntmenu.c Thu Jun 26 09:07:56 2008 +0000 @@ -283,6 +283,8 @@ do sub = sub->submenu; while (sub->submenu); if (gnt_widget_key_pressed(GNT_WIDGET(sub), text)) return TRUE; + if (menu->type != GNT_MENU_TOPLEVEL) + return FALSE; } if ((text[0] == 27 && text[1] == 0) || @@ -332,10 +334,12 @@ return TRUE; } } + if (gnt_bindable_perform_action_key(GNT_BINDABLE(widget), text)) + return TRUE; return org_key_pressed(widget, text); } - return FALSE; + return gnt_bindable_perform_action_key(GNT_BINDABLE(widget), text); } static void @@ -434,7 +438,7 @@ { GntWidget *widget = GNT_WIDGET(instance); GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_NO_SHADOW | GNT_WIDGET_NO_BORDER | - GNT_WIDGET_CAN_TAKE_FOCUS | GNT_WIDGET_TRANSIENT); + GNT_WIDGET_CAN_TAKE_FOCUS | GNT_WIDGET_TRANSIENT | GNT_WIDGET_DISABLE_ACTIONS); GNTDEBUG; }
--- a/finch/libgnt/gnttree.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/gnttree.c Thu Jun 26 09:07:56 2008 +0000 @@ -110,13 +110,14 @@ gnt_widget_get_size(GNT_WIDGET(tree), &width, NULL); if (!GNT_WIDGET_IS_FLAG_SET(GNT_WIDGET(tree), GNT_WIDGET_NO_BORDER)) width -= 2; + width -= 1; /* Exclude the scrollbar from the calculation */ for (i = 0, total = 0; i < tree->ncol ; i++) { if (tree->columns[i].flags & GNT_TREE_COLUMN_INVISIBLE) continue; if (tree->columns[i].flags & GNT_TREE_COLUMN_FIXED_SIZE) - width -= WIDTH(i) + 1; + width -= WIDTH(i) + (tree->priv->lastvisible != i); else - total += WIDTH(i) + 1; + total += WIDTH(i) + (tree->priv->lastvisible != i); } if (total == 0) @@ -812,11 +813,11 @@ changed = FALSE; if (changed) { redraw_tree(tree); - g_source_remove(tree->priv->search_timeout); - tree->priv->search_timeout = g_timeout_add(SEARCH_TIMEOUT, search_timeout, tree); } else { gnt_bindable_perform_action_key(GNT_BINDABLE(tree), text); } + g_source_remove(tree->priv->search_timeout); + tree->priv->search_timeout = g_timeout_add(SEARCH_TIMEOUT, search_timeout, tree); return TRUE; } else if (text[0] == ' ' && text[1] == 0) { /* Space pressed */
--- a/finch/libgnt/wms/irssi.c Thu Jun 26 08:42:49 2008 +0000 +++ b/finch/libgnt/wms/irssi.c Thu Jun 26 09:07:56 2008 +0000 @@ -1,8 +1,8 @@ /** * 1. Buddylist is aligned on the left. * 2. The rest of the screen is split into MxN grid for conversation windows. - * - M = irssi-split-h in ~/.gntrc:[general] - * - N = irssi-split-v in ~/.gntrc:[general] + * - M = split-h in ~/.gntrc:[irssi] + * - N = split-v in ~/.gntrc:[irssi] * - Press alt-shift-k/j/l/h to move the selected window to the frame * above/below/left/right of the current frame. * 3. All the other windows are always centered. @@ -52,7 +52,8 @@ rx = irssi->buddylistwidth; if (hor) rx += hor * width; - rx++; + if (rx) + rx++; ry = 0; if (vert)
--- a/libpurple/Makefile.am Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/Makefile.am Thu Jun 26 09:07:56 2008 +0000 @@ -68,6 +68,7 @@ savedstatuses.c \ server.c \ signals.c \ + smiley.c \ dnsquery.c \ dnssrv.c\ status.c \ @@ -120,6 +121,7 @@ savedstatuses.h \ server.h \ signals.h \ + smiley.h \ dnsquery.h \ dnssrv.h \ status.h \ @@ -154,7 +156,7 @@ dbus_exported = dbus-useful.h dbus-define-api.h account.h blist.h buddyicon.h \ connection.h conversation.h core.h ft.h log.h notify.h prefs.h roomlist.h \ - savedstatuses.h status.h server.h util.h xmlnode.h prpl.h + savedstatuses.h smiley.h status.h server.h util.h xmlnode.h prpl.h purple_build_coreheaders = $(addprefix $(srcdir)/, $(purple_coreheaders)) \ $(purple_builtheaders) @@ -259,3 +261,9 @@ $(DBUS_CFLAGS) \ $(LIBXML_CFLAGS) \ $(NETWORKMANAGER_CFLAGS) + +# INSTALL_SSL_CERTIFICATES is true when SSL_CERTIFICATES_DIR is empty. +# We want to use SSL_CERTIFICATES_DIR when it's not empty. +if ! INSTALL_SSL_CERTIFICATES +AM_CPPFLAGS += -DSSL_CERTIFICATES_DIR=\"$(SSL_CERTIFICATES_DIR)\" +endif
--- a/libpurple/Makefile.mingw Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/Makefile.mingw Thu Jun 26 09:07:56 2008 +0000 @@ -65,6 +65,7 @@ savedstatuses.c \ server.c \ signals.c \ + smiley.c \ sound.c \ sslconn.c \ status.c \
--- a/libpurple/blist.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/blist.c Thu Jun 26 09:07:56 2008 +0000 @@ -824,16 +824,25 @@ ops->update(purplebuddylist, (PurpleBlistNode *)buddy); } -void purple_blist_update_buddy_icon(PurpleBuddy *buddy) +void +purple_blist_update_node_icon(PurpleBlistNode *node) { PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); - g_return_if_fail(buddy != NULL); + g_return_if_fail(node != NULL); if (ops && ops->update) - ops->update(purplebuddylist, (PurpleBlistNode *)buddy); + ops->update(purplebuddylist, node); } +#ifndef PURPLE_DISABLE_DEPRECATED +void +purple_blist_update_buddy_icon(PurpleBuddy *buddy) +{ + purple_blist_update_node_icon((PurpleBlistNode *)buddy); +} +#endif + /* * TODO: Maybe remove the call to this from server.c and call it * from oscar.c and toc.c instead? @@ -1197,7 +1206,7 @@ purple_signal_emit(purple_blist_get_handle(), "buddy-icon-changed", buddy); - purple_blist_update_buddy_icon(buddy); + purple_blist_update_node_icon((PurpleBlistNode*)buddy); } PurpleAccount * @@ -2189,7 +2198,7 @@ g_return_val_if_fail((name != NULL) && (*name != '\0'), NULL); for (node = purplebuddylist->root; node != NULL; node = node->next) { - if (!strcmp(((PurpleGroup *)node)->name, name)) + if (!purple_utf8_strcasecmp(((PurpleGroup *)node)->name, name)) return (PurpleGroup *)node; }
--- a/libpurple/blist.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/blist.h Thu Jun 26 09:07:56 2008 +0000 @@ -31,13 +31,20 @@ #include <glib.h> +/** @copydoc _PurpleBuddyList */ typedef struct _PurpleBuddyList PurpleBuddyList; +/** @copydoc _PurpleBlistUiOps */ typedef struct _PurpleBlistUiOps PurpleBlistUiOps; +/** @copydoc _PurpleBlistNode */ typedef struct _PurpleBlistNode PurpleBlistNode; +/** @copydoc _PurpleChat */ typedef struct _PurpleChat PurpleChat; +/** @copydoc _PurpleGroup */ typedef struct _PurpleGroup PurpleGroup; +/** @copydoc _PurpleContact */ typedef struct _PurpleContact PurpleContact; +/** @copydoc _PurpleBuddy */ typedef struct _PurpleBuddy PurpleBuddy; /**************************************************************************/ @@ -317,11 +324,22 @@ void purple_blist_update_buddy_status(PurpleBuddy *buddy, PurpleStatus *old_status); /** + * Updates a node's custom icon. + * + * @param node The PurpleBlistNode whose custom icon has changed. + * @since 2.5.0 + */ +void purple_blist_update_node_icon(PurpleBlistNode *node); + +#ifndef PURPLE_DISABLE_DEPRECATED +/** * Updates a buddy's icon. * * @param buddy The buddy whose buddy icon has changed + * @deprecated Use purple_blist_update_node_icon() instead. */ void purple_blist_update_buddy_icon(PurpleBuddy *buddy); +#endif /** * Renames a buddy in the buddy list.
--- a/libpurple/buddyicon.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/buddyicon.c Thu Jun 26 09:07:56 2008 +0000 @@ -92,8 +92,10 @@ */ static GHashTable *icon_file_cache = NULL; -/* This one is used for both custom buddy icons - * on PurpleContacts and account icons. */ +/** + * This hash table is used for both custom buddy icons on PurpleBlistNodes and + * account icons. + */ static GHashTable *pointer_icon_cache = NULL; static char *cache_dir = NULL; @@ -684,14 +686,6 @@ return (icon ? purple_buddy_icon_ref(icon) : NULL); } -gboolean -purple_buddy_icons_has_custom_icon(PurpleContact *contact) -{ - g_return_val_if_fail(contact != NULL, FALSE); - - return (purple_blist_node_get_string((PurpleBlistNode*)contact, "custom_buddy_icon") != NULL); -} - PurpleStoredImage * purple_buddy_icons_find_account_icon(PurpleAccount *account) { @@ -807,24 +801,32 @@ return ret; } -PurpleStoredImage * -purple_buddy_icons_find_custom_icon(PurpleContact *contact) +gboolean +purple_buddy_icons_node_has_custom_icon(PurpleBlistNode *node) { - PurpleStoredImage *img; - const char *custom_icon_file; - const char *dirname; + g_return_val_if_fail(node != NULL, FALSE); + + return (purple_blist_node_get_string(node, "custom_buddy_icon") != NULL); +} + +PurpleStoredImage * +purple_buddy_icons_node_find_custom_icon(PurpleBlistNode *node) +{ char *path; + size_t len; guchar *data; - size_t len; + PurpleStoredImage *img; + const char *custom_icon_file, *dirname; - g_return_val_if_fail(contact != NULL, NULL); + g_return_val_if_fail(node != NULL, NULL); - if ((img = g_hash_table_lookup(pointer_icon_cache, contact))) + if ((img = g_hash_table_lookup(pointer_icon_cache, node))) { return purple_imgstore_ref(img); } - custom_icon_file = purple_blist_node_get_string((PurpleBlistNode*)contact, "custom_buddy_icon"); + custom_icon_file = purple_blist_node_get_string(node, + "custom_buddy_icon"); if (custom_icon_file == NULL) return NULL; @@ -836,7 +838,7 @@ { g_free(path); img = purple_buddy_icon_data_new(data, len, custom_icon_file); - g_hash_table_insert(pointer_icon_cache, contact, img); + g_hash_table_insert(pointer_icon_cache, node, img); return img; } g_free(path); @@ -845,66 +847,79 @@ } PurpleStoredImage * -purple_buddy_icons_set_custom_icon(PurpleContact *contact, - guchar *icon_data, size_t icon_len) +purple_buddy_icons_node_set_custom_icon(PurpleBlistNode *node, + guchar *icon_data, size_t icon_len) { + char *old_icon; PurpleStoredImage *old_img; PurpleStoredImage *img = NULL; - char *old_icon; - PurpleBlistNode *child; + + g_return_val_if_fail(node != NULL, NULL); - old_img = g_hash_table_lookup(pointer_icon_cache, contact); + if (!PURPLE_BLIST_NODE_IS_CONTACT(node) && + !PURPLE_BLIST_NODE_IS_CHAT(node) && + !PURPLE_BLIST_NODE_IS_GROUP(node)) { + return NULL; + } - if (icon_data != NULL && icon_len > 0) - { + old_img = g_hash_table_lookup(pointer_icon_cache, node); + + if (icon_data != NULL && icon_len > 0) { img = purple_buddy_icon_data_new(icon_data, icon_len, NULL); } - old_icon = g_strdup(purple_blist_node_get_string((PurpleBlistNode *)contact, + old_icon = g_strdup(purple_blist_node_get_string(node, "custom_buddy_icon")); - if (img && purple_buddy_icons_is_caching()) - { + if (img && purple_buddy_icons_is_caching()) { const char *filename = purple_imgstore_get_filename(img); - purple_blist_node_set_string((PurpleBlistNode *)contact, - "custom_buddy_icon", + purple_blist_node_set_string(node, "custom_buddy_icon", filename); ref_filename(filename); - } - else - { - purple_blist_node_remove_setting((PurpleBlistNode *)contact, - "custom_buddy_icon"); + } else { + purple_blist_node_remove_setting(node, "custom_buddy_icon"); } unref_filename(old_icon); if (img) - g_hash_table_insert(pointer_icon_cache, contact, img); + g_hash_table_insert(pointer_icon_cache, node, img); else - g_hash_table_remove(pointer_icon_cache, contact); + g_hash_table_remove(pointer_icon_cache, node); - for (child = contact->node.child ; child ; child = child->next) - { - PurpleBuddy *buddy; - PurpleConversation *conv; + if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { + PurpleBlistNode *child; + for (child = node->child ; child ; child = child->next) + { + PurpleBuddy *buddy; + PurpleConversation *conv; + + if (!PURPLE_BLIST_NODE_IS_BUDDY(child)) + continue; + + buddy = (PurpleBuddy *)child; - if (!PURPLE_BLIST_NODE_IS_BUDDY(child)) - continue; - - buddy = (PurpleBuddy *)child; + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, purple_buddy_get_name(buddy), purple_buddy_get_account(buddy)); + if (conv) + purple_conversation_update(conv, PURPLE_CONV_UPDATE_ICON); - conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, - purple_buddy_get_name(buddy), - purple_buddy_get_account(buddy)); - if (conv) + /* Is this call necessary anymore? Can the buddies + * themselves need updating when the custom buddy + * icon changes? */ + purple_blist_update_node_icon((PurpleBlistNode*)buddy); + } + } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { + PurpleConversation *conv = NULL; + + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, purple_chat_get_name((PurpleChat*)node), purple_chat_get_account((PurpleChat*)node)); + if (conv) { purple_conversation_update(conv, PURPLE_CONV_UPDATE_ICON); - - purple_blist_update_buddy_icon(buddy); + } } - if (old_img) + purple_blist_update_node_icon(node); + + if (old_img) { purple_imgstore_unref(old_img); - else if (old_icon) - { + } else if (old_icon) { /* The old icon may not have been loaded into memory. In that * case, we'll need to uncache the filename. The filenames * are ref-counted, so this is safe. */ @@ -915,6 +930,49 @@ return img; } +PurpleStoredImage * +purple_buddy_icons_node_set_custom_icon_from_file(PurpleBlistNode *node, + const gchar *filename) +{ + size_t len; + guchar *data; + + g_return_val_if_fail(node != NULL, NULL); + + if (!PURPLE_BLIST_NODE_IS_CONTACT(node) && + !PURPLE_BLIST_NODE_IS_CHAT(node) && + !PURPLE_BLIST_NODE_IS_GROUP(node)) { + return NULL; + } + + if (!read_icon_file(filename, &data, &len)) { + return NULL; + } + + return purple_buddy_icons_node_set_custom_icon(node, data, len); +} + +#ifndef PURPLE_DISABLE_DEPRECATED +gboolean +purple_buddy_icons_has_custom_icon(PurpleContact *contact) +{ + return purple_buddy_icons_node_has_custom_icon((PurpleBlistNode*)contact); +} + +PurpleStoredImage * +purple_buddy_icons_find_custom_icon(PurpleContact *contact) +{ + return purple_buddy_icons_node_find_custom_icon((PurpleBlistNode*)contact); +} + +PurpleStoredImage * +purple_buddy_icons_set_custom_icon(PurpleContact *contact, guchar *icon_data, + size_t icon_len) +{ + return purple_buddy_icons_node_set_custom_icon((PurpleBlistNode*)contact, icon_data, icon_len); +} +#endif + void _purple_buddy_icon_set_old_icons_dir(const char *dirname) { @@ -1138,7 +1196,9 @@ } } } - else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) + else if (PURPLE_BLIST_NODE_IS_CONTACT(node) || + PURPLE_BLIST_NODE_IS_CHAT(node) || + PURPLE_BLIST_NODE_IS_GROUP(node)) { const char *filename;
--- a/libpurple/buddyicon.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/buddyicon.h Thu Jun 26 09:07:56 2008 +0000 @@ -26,6 +26,11 @@ #ifndef _PURPLE_BUDDYICON_H_ #define _PURPLE_BUDDYICON_H_ +/** An opaque structure representing a buddy icon for a particular user on a + * particular #PurpleAccount. Instances are reference-counted; use + * purple_buddy_icon_ref() and purple_buddy_icon_unref() to take and release + * references. + */ typedef struct _PurpleBuddyIcon PurpleBuddyIcon; #include "account.h" @@ -218,16 +223,6 @@ purple_buddy_icons_find(PurpleAccount *account, const char *username); /** - * Returns a boolean indicating if a given contact has a custom buddy icon. - * - * @param contact The contact - * - * @return A boolean indicating if @a contact has a custom buddy icon. - */ -gboolean -purple_buddy_icons_has_custom_icon(PurpleContact *contact); - -/** * Returns the buddy icon image for an account. * * The caller owns a reference to the image in the store, and must dereference @@ -277,7 +272,18 @@ purple_buddy_icons_get_account_icon_timestamp(PurpleAccount *account); /** - * Returns the custom buddy icon image for a contact. + * Returns a boolean indicating if a given blist node has a custom buddy icon. + * + * @param node The blist node. + * + * @return A boolean indicating if @a node has a custom buddy icon. + * @since 2.5.0 + */ +gboolean +purple_buddy_icons_node_has_custom_icon(PurpleBlistNode *node); + +/** + * Returns the custom buddy icon image for a blist node. * * The caller owns a reference to the image in the store, and must dereference * the image with purple_imgstore_unref() for it to be freed. @@ -286,31 +292,82 @@ * needed, so it should be called in any case where you want the * appropriate icon. * - * @param contact The contact + * @param node The node. + * + * @return The custom buddy icon. + * @since 2.5.0 + */ +PurpleStoredImage * +purple_buddy_icons_node_find_custom_icon(PurpleBlistNode *node); + +/** + * Sets a custom buddy icon for a blist node. + * + * This function will deal with saving a record of the icon, caching the data, + * etc. + * + * @param node The blist node for which to set a custom icon. + * @param icon_data The image data of the icon, which the buddy icon code will + * free. + * @param icon_len The length of the data in @a icon_data. + * + * @return The icon that was set. The caller does NOT own a reference to this, + * and must call purple_imgstore_ref() if it wants one. + * @since 2.5.0 + */ +PurpleStoredImage * +purple_buddy_icons_node_set_custom_icon(PurpleBlistNode *node, + guchar *icon_data, size_t icon_len); + +/** + * Sets a custom buddy icon for a blist node. * - * @return The custom buddy icon image. + * Convenience wrapper around purple_buddy_icons_node_set_custom_icon. + * @see purple_buddy_icons_node_set_custom_icon() + * + * @param node The blist node for which to set a custom icon. + * @param filename The path to the icon to set for the blist node. + * + * @return The icon that was set. The caller does NOT own a reference to this, + * and must call purple_imgstore_ref() if it wants one. + * @since 2.5.0 + */ +PurpleStoredImage * +purple_buddy_icons_node_set_custom_icon_from_file(PurpleBlistNode *node, + const gchar *filename); + +#ifndef PURPLE_DISABLE_DEPRECATED +/** + * PurpleContact version of purple_buddy_icons_node_has_custom_icon. + * + * @copydoc purple_buddy_icons_node_has_custom_icon() + * + * @deprecated Use purple_buddy_icons_node_has_custom_icon instead. + */ +gboolean +purple_buddy_icons_has_custom_icon(PurpleContact *contact); + +/** + * PurpleContact version of purple_buddy_icons_node_find_custom_icon. + * + * @copydoc purple_buddy_icons_node_find_custom_icon() + * + * @deprecated Use purple_buddy_icons_node_find_custom_icon instead. */ PurpleStoredImage * purple_buddy_icons_find_custom_icon(PurpleContact *contact); /** - * Sets a custom buddy icon for a user. - * - * This function will deal with saving a record of the icon, - * caching the data, etc. + * PurpleContact version of purple_buddy_icons_node_set_custom_icon. * - * @param contact The contact for which to set a custom icon. - * @param icon_data The image data of the icon, which the - * buddy icon code will free. - * @param icon_len The length of the data in @a icon_data. + * @copydoc purple_buddy_icons_node_set_custom_icon() * - * @return The icon that was set. The caller does NOT own - * a reference to this, and must call purple_imgstore_ref() - * if it wants one. + * @deprecated Use purple_buddy_icons_node_set_custom_icon instead. */ PurpleStoredImage * purple_buddy_icons_set_custom_icon(PurpleContact *contact, guchar *icon_data, size_t icon_len); +#endif /** * Sets whether or not buddy icon caching is enabled.
--- a/libpurple/certificate.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/certificate.c Thu Jun 26 09:07:56 2008 +0000 @@ -745,8 +745,12 @@ x509_ca_paths = g_list_append(NULL, g_build_filename(DATADIR, "ca-certs", NULL)); #else +# ifdef SSL_CERTIFICATES_DIR + x509_ca_paths = g_list_append(NULL, SSL_CERTIFICATES_DIR); +# else x509_ca_paths = g_list_append(NULL, g_build_filename(DATADIR, "purple", "ca-certs", NULL)); +# endif #endif }
--- a/libpurple/cmds.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/cmds.h Thu Jun 26 09:07:56 2008 +0000 @@ -30,6 +30,7 @@ /**************************************************************************/ /*@{*/ +/** The possible results of running a command with purple_cmd_do_command(). */ typedef enum _PurpleCmdStatus { PURPLE_CMD_STATUS_OK, PURPLE_CMD_STATUS_FAILED, @@ -39,16 +40,31 @@ PURPLE_CMD_STATUS_WRONG_TYPE, } PurpleCmdStatus; +/** Commands registered with the core return one of these values when run. + * Normally, a command will want to return one of the first two; in some + * unusual cases, you might want to have several functions called for a + * particular command; in this case, they should return + * #PURPLE_CMD_RET_CONTINUE to cause the core to fall through to other + * commands with the same name. + */ typedef enum _PurpleCmdRet { - PURPLE_CMD_RET_OK, /**< Everything's okay. Don't look for another command to call. */ + PURPLE_CMD_RET_OK, /**< Everything's okay; Don't look for another command to call. */ PURPLE_CMD_RET_FAILED, /**< The command failed, but stop looking.*/ PURPLE_CMD_RET_CONTINUE, /**< Continue, looking for other commands with the same name to call. */ } PurpleCmdRet; #define PURPLE_CMD_FUNC(func) ((PurpleCmdFunc)func) +/** A function implementing a command, as passed to purple_cmd_register(). + * + * @todo document the arguments to these functions. + * */ typedef PurpleCmdRet (*PurpleCmdFunc)(PurpleConversation *, const gchar *cmd, gchar **args, gchar **error, void *data); +/** A unique integer representing a command registered with + * purple_cmd_register(), which can subsequently be passed to + * purple_cmd_unregister() to unregister that command. + */ typedef guint PurpleCmdId; typedef enum _PurpleCmdPriority { @@ -171,7 +187,7 @@ * include both the default formatting and any extra manual formatting. * @param errormsg If the command failed errormsg is filled in with the appropriate error * message. It must be freed by the caller with g_free(). - * @return A #PurpleCmdStatus indicated if the command succeeded or failed. + * @return A #PurpleCmdStatus indicating if the command succeeded or failed. */ PurpleCmdStatus purple_cmd_do_command(PurpleConversation *conv, const gchar *cmdline, const gchar *markup, gchar **errormsg);
--- a/libpurple/connection.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/connection.h Thu Jun 26 09:07:56 2008 +0000 @@ -27,6 +27,7 @@ #ifndef _PURPLE_CONNECTION_H_ #define _PURPLE_CONNECTION_H_ +/** @copydoc _PurpleConnection */ typedef struct _PurpleConnection PurpleConnection; /** @@ -43,6 +44,7 @@ PURPLE_CONNECTION_NO_FONTSIZE = 0x0020, /**< Connection does not send/receive font sizes */ PURPLE_CONNECTION_NO_URLDESC = 0x0040, /**< Connection does not support descriptions with links */ PURPLE_CONNECTION_NO_IMAGES = 0x0080, /**< Connection does not support sending of images */ + PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY = 0x0100, /**< Connection supports sending and receiving custom smileys */ } PurpleConnectionFlags; @@ -120,7 +122,7 @@ */ PURPLE_CONNECTION_ERROR_CERT_OTHER_ERROR = 15, - /** Some other error occured which fits into none of the other + /** Some other error occurred which fits into none of the other * categories. */ /* purple_connection_error_reason() in connection.c uses the fact that @@ -222,6 +224,8 @@ void (*_purple_reserved3)(void); } PurpleConnectionUiOps; + +/* Represents an active connection on an account. */ struct _PurpleConnection { PurplePlugin *prpl; /**< The protocol plugin. */
--- a/libpurple/conversation.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/conversation.c Thu Jun 26 09:07:56 2008 +0000 @@ -98,7 +98,7 @@ char *displayed = NULL, *sent = NULL; int err = 0; - if (strlen(message) == 0) + if (*message == '\0') return; account = purple_conversation_get_account(conv); @@ -2221,6 +2221,16 @@ PURPLE_SUBTYPE_CONVERSATION), purple_value_new(PURPLE_TYPE_UINT)); + purple_signal_register(handle, "blocked-im-msg", + purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT, + NULL, 5, + purple_value_new(PURPLE_TYPE_SUBTYPE, + PURPLE_SUBTYPE_ACCOUNT), + purple_value_new(PURPLE_TYPE_STRING), + purple_value_new(PURPLE_TYPE_STRING), + purple_value_new(PURPLE_TYPE_UINT), + purple_value_new(PURPLE_TYPE_UINT)); + purple_signal_register(handle, "writing-chat-msg", purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT, purple_value_new(PURPLE_TYPE_BOOLEAN), 5, @@ -2376,11 +2386,27 @@ purple_value_new(PURPLE_TYPE_STRING), purple_value_new(PURPLE_TYPE_POINTER)); + purple_signal_register(handle, "chat-invite-blocked", + purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER, + NULL, 5, + purple_value_new(PURPLE_TYPE_SUBTYPE, + PURPLE_SUBTYPE_ACCOUNT), + purple_value_new(PURPLE_TYPE_STRING), + purple_value_new(PURPLE_TYPE_STRING), + purple_value_new(PURPLE_TYPE_STRING), + purple_value_new(PURPLE_TYPE_BOXED, "GHashTable *")); + purple_signal_register(handle, "chat-joined", purple_marshal_VOID__POINTER, NULL, 1, purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_CONVERSATION)); + purple_signal_register(handle, "chat-join-failed", + purple_marshal_VOID__POINTER_POINTER, NULL, 2, + purple_value_new(PURPLE_TYPE_SUBTYPE, + PURPLE_SUBTYPE_CONNECTION), + purple_value_new(PURPLE_TYPE_POINTER)); + purple_signal_register(handle, "chat-left", purple_marshal_VOID__POINTER, NULL, 1, purple_value_new(PURPLE_TYPE_SUBTYPE,
--- a/libpurple/conversation.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/conversation.h Thu Jun 26 09:07:56 2008 +0000 @@ -32,11 +32,17 @@ /**************************************************************************/ +/** @copydoc _PurpleConversationUiOps */ typedef struct _PurpleConversationUiOps PurpleConversationUiOps; +/** @copydoc _PurpleConversation */ typedef struct _PurpleConversation PurpleConversation; +/** @copydoc _PurpleConvIm */ typedef struct _PurpleConvIm PurpleConvIm; +/** @copydoc _PurpleConvChat */ typedef struct _PurpleConvChat PurpleConvChat; +/** @copydoc _PurpleConvChatBuddy */ typedef struct _PurpleConvChatBuddy PurpleConvChatBuddy; +/** @copydoc _PurpleConvMessage */ typedef struct _PurpleConvMessage PurpleConvMessage; /**
--- a/libpurple/core.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/core.c Thu Jun 26 09:07:56 2008 +0000 @@ -43,6 +43,7 @@ #include "proxy.h" #include "savedstatuses.h" #include "signals.h" +#include "smiley.h" #include "sound.h" #include "sslconn.h" #include "status.h" @@ -130,13 +131,14 @@ purple_ciphers_init(); - /* Initialize all static protocols. */ - static_proto_init(); - /* Since plugins get probed so early we should probably initialize their * subsystem right away too. */ purple_plugins_init(); + + /* Initialize all static protocols. */ + static_proto_init(); + purple_plugins_probe(G_MODULE_SUFFIX); /* The buddy icon code uses the imgstore, so init it early. */ @@ -166,6 +168,7 @@ purple_stun_init(); purple_xfers_init(); purple_idle_init(); + purple_smileys_init(); /* * Call this early on to try to auto-detect our IP address and @@ -194,6 +197,7 @@ purple_connections_disconnect_all(); /* Save .xml files, remove signals, etc. */ + purple_smileys_uninit(); purple_idle_uninit(); purple_ssl_uninit(); purple_pounces_uninit(); @@ -208,6 +212,7 @@ purple_savedstatuses_uninit(); purple_status_uninit(); purple_prefs_uninit(); + purple_sound_uninit(); purple_xfers_uninit(); purple_proxy_uninit(); purple_dnsquery_uninit(); @@ -220,19 +225,6 @@ if (ops != NULL && ops->quit != NULL) ops->quit(); - /* - * purple_sound_uninit() should be called as close to - * shutdown as possible. This is because the call - * to ao_shutdown() can sometimes leave our - * environment variables in an unusable state, which - * can cause a crash when getenv is called (by gettext - * for example). See the complete bug report at - * http://trac.xiph.org/cgi-bin/trac.cgi/ticket/701 - * - * TODO: Eventually move this call higher up with the others. - */ - purple_sound_uninit(); - purple_plugins_uninit(); #ifdef HAVE_DBUS purple_dbus_uninit();
--- a/libpurple/core.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/core.h Thu Jun 26 09:07:56 2008 +0000 @@ -1,4 +1,5 @@ /** + * @file core.h Startup and shutdown of libpurple * @defgroup core libpurple * @see @ref core-signals */ @@ -28,12 +29,36 @@ typedef struct PurpleCore PurpleCore; +/** Callbacks that fire at different points of the initialization and teardown + * of libpurple, along with a hook to return descriptive information about the + * UI. + */ typedef struct { + /** Called just after the preferences subsystem is initialized; the UI + * could use this callback to add some preferences it needs to be in + * place when other subsystems are initialized. + */ void (*ui_prefs_init)(void); - void (*debug_ui_init)(void); /* Unfortunate necessity. */ + /** Called just after the debug subsystem is initialized, but before + * just about every other component's initialization. The UI should + * use this hook to call purple_debug_set_ui_ops() so that debugging + * information for other components can be logged during their + * initialization. + */ + void (*debug_ui_init)(void); + /** Called after all of libpurple has been initialized. The UI should + * use this hook to set all other necessary UiOps structures. + * + * @see @ref ui-ops + */ void (*ui_init)(void); + /** Called after most of libpurple has been uninitialized. */ void (*quit)(void); + + /** Called by purple_core_get_ui_info(); should return the information + * documented there. + */ GHashTable* (*get_ui_info)(void); void (*_purple_reserved1)(void); @@ -64,17 +89,23 @@ void purple_core_quit(void); /** + * <p> * Calls purple_core_quit(). This can be used as the function * passed to purple_timeout_add() when you want to shutdown Purple * in a specified amount of time. When shutting down Purple * from a plugin, you must use this instead of purple_core_quit(); * for an immediate exit, use a timeout value of 0: - * purple_timeout_add(0, purple_core_quitcb, NULL); + * </p> + * + * <code>purple_timeout_add(0, purple_core_quitcb, NULL);</code> + * + * <p> * This is ensures that code from your plugin is not being * executed when purple_core_quit() is called. If the plugin * called purple_core_quit() directly, you would get a core dump * after purple_core_quit() executes and control returns to your * plugin because purple_core_quit() frees all plugins. + * </p> */ gboolean purple_core_quit_cb(gpointer unused); @@ -86,7 +117,8 @@ const char *purple_core_get_version(void); /** - * Returns the ID of the UI that is using the core. + * Returns the ID of the UI that is using the core, as passed to + * purple_core_init(). * * @return The ID of the UI that is currently using the core. */ @@ -95,7 +127,7 @@ /** * Returns a handle to the purple core. * - * This is used for such things as signals. + * This is used to connect to @ref core-signals "core signals". */ PurpleCore *purple_get_core(void); @@ -114,10 +146,10 @@ PurpleCoreUiOps *purple_core_get_ui_ops(void); /** - * Migrates from .gaim to .purple. + * Migrates from <tt>.gaim</tt> to <tt>.purple</tt>. * - * UIs MUST NOT call this if they have been told to use a custom - * user directory. + * UIs <strong>must not</strong> call this if they have been told to use a + * custom user directory. * * @return A boolean indicating success or migration failure. On failure, * the application must display an error to the user and then exit. @@ -125,20 +157,33 @@ gboolean purple_core_migrate(void); /** - * Ensures that only one instance is running. + * Ensures that only one instance is running. If libpurple is built with D-Bus + * support, this checks if another process owns the libpurple bus name and if + * so whether that process is using the same configuration directory as this + * process. * - * @return A boolean such that @c TRUE indicates that this is the first instance, - * whereas @c FALSE indicates that there is another instance running. + * @return @c TRUE if this is the first instance of libpurple running; + * @c FALSE if there is another instance running. * * @since 2.1.0 */ gboolean purple_core_ensure_single_instance(void); /** - * Returns a hashtable containing various information about the UI + * Returns a hash table containing various information about the UI. The + * following well-known entries may be in the table (along with any others the + * UI might choose to include): + * + * <dl> + * <dt><tt>name</tt></dt> + * <dd>the user-readable name for the UI.</dd> + * + * <dt><tt>version</tt></dt> + * <dd>a user-readable description of the current version of the UI.</dd> + * </dl> * * @return A GHashTable with strings for keys and values. This - * hash table must not be freed. + * hash table must not be freed and should not be modified. * * @since 2.1.0 *
--- a/libpurple/dbus-analyze-functions.py Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/dbus-analyze-functions.py Thu Jun 26 09:07:56 2008 +0000 @@ -483,6 +483,7 @@ self.inputiter = iter(inputfile) self.functionregexp = \ re.compile("^%s(\w[^()]*)\(([^()]*)\)\s*;\s*$" % fprefix) + self.typeregexp = re.compile("^\w+\s*\*?\s*$") @@ -501,7 +502,7 @@ # accumulate lines until the parentheses are balance or an # empty line has been encountered myline = line.strip() - while myline.count("(") > myline.count(")"): + while (myline.count("(") > myline.count(")")) or self.typeregexp.match(myline): newline = self.inputiter.next().strip() if len(newline) == 0: break
--- a/libpurple/dbus-server.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/dbus-server.c Thu Jun 26 09:07:56 2008 +0000 @@ -40,6 +40,7 @@ #include "core.h" #include "internal.h" #include "savedstatuses.h" +#include "smiley.h" #include "util.h" #include "value.h" #include "xmlnode.h"
--- a/libpurple/dnsquery.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/dnsquery.c Thu Jun 26 09:07:56 2008 +0000 @@ -32,6 +32,9 @@ #include "prefs.h" #include "util.h" +#if (defined(__APPLE__) || defined (__unix__)) && !defined(__osf__) +#define PURPLE_DNSQUERY_USE_FORK +#endif /************************************************************************** * DNS query API **************************************************************************/ @@ -47,16 +50,16 @@ gpointer data; guint timeout; -#if defined(__unix__) || defined(__APPLE__) +#if defined(PURPLE_DNSQUERY_USE_FORK) PurpleDnsQueryResolverProcess *resolver; -#elif defined _WIN32 /* end __unix__ || __APPLE__ */ +#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK */ GThread *resolver; GSList *hosts; gchar *error_message; #endif }; -#if defined(__unix__) || defined(__APPLE__) +#if defined(PURPLE_DNSQUERY_USE_FORK) #define MAX_DNS_CHILDREN 4 @@ -131,7 +134,7 @@ return FALSE; } -#if defined(__unix__) || defined(__APPLE__) +#if defined(PURPLE_DNSQUERY_USE_FORK) /* * Unix! @@ -649,7 +652,7 @@ return query_data; } -#elif defined _WIN32 /* end __unix__ || __APPLE__ */ +#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK */ /* * Windows! @@ -821,7 +824,7 @@ return query_data; } -#else /* not __unix__ or __APPLE__ or _WIN32 */ +#else /* not PURPLE_DNSQUERY_USE_FORK or _WIN32 */ /* * We weren't able to do anything fancier above, so use the @@ -897,7 +900,7 @@ return query_data; } -#endif /* not __unix__ or __APPLE__ or _WIN32 */ +#endif /* not PURPLE_DNSQUERY_USE_FORK or _WIN32 */ void purple_dnsquery_destroy(PurpleDnsQueryData *query_data) @@ -907,7 +910,7 @@ if (ops && ops->destroy) ops->destroy(query_data); -#if defined(__unix__) || defined(__APPLE__) +#if defined(PURPLE_DNSQUERY_USE_FORK) queued_requests = g_slist_remove(queued_requests, query_data); if (query_data->resolver != NULL) @@ -918,7 +921,7 @@ * they just don't listen. */ purple_dnsquery_resolver_destroy(query_data->resolver); -#elif defined _WIN32 /* end __unix__ || __APPLE__ */ +#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK */ if (query_data->resolver != NULL) { /* @@ -987,7 +990,7 @@ void purple_dnsquery_uninit(void) { -#if defined(__unix__) || defined(__APPLE__) +#if defined(PURPLE_DNSQUERY_USE_FORK) while (free_dns_children != NULL) { purple_dnsquery_resolver_destroy(free_dns_children->data);
--- a/libpurple/dnssrv.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/dnssrv.c Thu Jun 26 09:07:56 2008 +0000 @@ -25,8 +25,8 @@ #include "util.h" #ifndef _WIN32 +#include <arpa/nameser.h> #include <resolv.h> -#include <arpa/nameser.h> #ifdef HAVE_ARPA_NAMESER_COMPAT_H #include <arpa/nameser_compat.h> #endif
--- a/libpurple/imgstore.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/imgstore.c Thu Jun 26 09:07:56 2008 +0000 @@ -68,6 +68,22 @@ return img; } +PurpleStoredImage * +purple_imgstore_new_from_file(const char *path) +{ + gchar *data = NULL; + size_t len; + GError *err = NULL; + + if (!g_file_get_contents(path, &data, &len, &err)) { + purple_debug_error("imgstore", "Error reading %s: %s\n", + path, err->message); + g_error_free(err); + return NULL; + } + return purple_imgstore_add(data, len, path); +} + int purple_imgstore_add_with_id(gpointer data, size_t size, const char *filename) {
--- a/libpurple/imgstore.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/imgstore.h Thu Jun 26 09:07:56 2008 +0000 @@ -63,6 +63,17 @@ purple_imgstore_add(gpointer data, size_t size, const char *filename); /** + * Create an image and add it to the store. + * + * @param path The path to the image. + * + * @return The stored image. + * @since 2.X.X + */ +PurpleStoredImage * +purple_imgstore_new_from_file(const char *path); + +/** * Add an image to the store, allocating an ID. * * The caller owns a reference to the image in the store, and must dereference
--- a/libpurple/internal.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/internal.h Thu Jun 26 09:07:56 2008 +0000 @@ -102,7 +102,7 @@ #include <gmodule.h> #ifdef PURPLE_PLUGINS -# ifndef _WIN32 +# ifdef HAVE_DLFCN_H # include <dlfcn.h> # endif #endif
--- a/libpurple/log.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/log.c Thu Jun 26 09:07:56 2008 +0000 @@ -1067,7 +1067,7 @@ set->normalized_name = g_strdup(purple_normalize(account, name)); /* Chat for .chat or .system at the end of the name to determine the type. */ - if (len > 7) { + if (len >= 7) { gchar *tmp = &name[len - 7]; if (!strcmp(tmp, ".system")) { set->type = PURPLE_LOG_SYSTEM; @@ -1083,7 +1083,7 @@ } /* Determine if this (account, name) combination exists as a buddy. */ - if (account != NULL) + if (account != NULL && name != NULL && *name != '\0') set->buddy = (purple_find_buddy(account, name) != NULL); else set->buddy = FALSE;
--- a/libpurple/nat-pmp.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/nat-pmp.c Thu Jun 26 09:07:56 2008 +0000 @@ -35,6 +35,10 @@ #include "signals.h" #include "network.h" +#ifdef HAVE_SYS_PARAM_H +#include <sys/param.h> +#endif + #ifdef HAVE_SYS_SYSCTL_H #include <sys/sysctl.h> #endif @@ -125,7 +129,16 @@ if (bitmask & (1 << i)) { addrs[i] = sa; +#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN sa = (struct sockaddr *)(ROUNDUP(sa->sa_len) + (char *)sa); +#else + if (sa->sa_family == AF_INET) + sa = (struct sockaddr*)(sizeof(struct sockaddr_in) + (char *)sa); +#ifdef AF_INET6 + else if (sa->sa_family == AF_INET6) + sa = (struct sockaddr*)(sizeof(struct sockaddr_in6) + (char *)sa); +#endif +#endif } else { @@ -146,7 +159,12 @@ if ((sin->sin_addr.s_addr == INADDR_ANY) && mask && (ntohl(((struct sockaddr_in *)mask)->sin_addr.s_addr) == 0L || - mask->sa_len == 0)) +#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN + mask->sa_len == 0 +#else + 0 +#endif + )) return 1; else return 0;
--- a/libpurple/network.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/network.c Thu Jun 26 09:07:56 2008 +0000 @@ -27,9 +27,9 @@ #include "internal.h" #ifndef _WIN32 +#include <arpa/nameser.h> #include <resolv.h> #include <netinet/in.h> -#include <arpa/nameser.h> #include <net/if.h> #include <sys/ioctl.h> #else
--- a/libpurple/notify.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/notify.c Thu Jun 26 09:07:56 2008 +0000 @@ -629,6 +629,17 @@ } void +purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo *user_info, const char *label) +{ + PurpleNotifyUserInfoEntry *entry; + + entry = purple_notify_user_info_entry_new(label, NULL); + entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER; + + user_info->user_info_entries = g_list_prepend(user_info->user_info_entries, entry); +} + +void purple_notify_user_info_add_section_break(PurpleNotifyUserInfo *user_info) { PurpleNotifyUserInfoEntry *entry; @@ -640,6 +651,17 @@ } void +purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo *user_info) +{ + PurpleNotifyUserInfoEntry *entry; + + entry = purple_notify_user_info_entry_new(NULL, NULL); + entry->type = PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK; + + user_info->user_info_entries = g_list_prepend(user_info->user_info_entries, entry); +} + +void purple_notify_user_info_remove_last_item(PurpleNotifyUserInfo *user_info) { GList *last = g_list_last(user_info->user_info_entries);
--- a/libpurple/notify.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/notify.h Thu Jun 26 09:07:56 2008 +0000 @@ -48,8 +48,8 @@ typedef enum { PURPLE_NOTIFY_MESSAGE = 0, /**< Message notification. */ - PURPLE_NOTIFY_EMAIL, /**< Single e-mail notification. */ - PURPLE_NOTIFY_EMAILS, /**< Multiple e-mail notification. */ + PURPLE_NOTIFY_EMAIL, /**< Single email notification. */ + PURPLE_NOTIFY_EMAILS, /**< Multiple email notification. */ PURPLE_NOTIFY_FORMATTED, /**< Formatted text. */ PURPLE_NOTIFY_SEARCHRESULTS, /**< Buddy search results. */ PURPLE_NOTIFY_USERINFO, /**< Formatted userinfo text. */ @@ -402,10 +402,10 @@ gpointer user_data); /** - * Displays a single e-mail notification to the user. + * Displays a single email notification to the user. * * @param handle The plugin or connection handle. - * @param subject The subject of the e-mail. + * @param subject The subject of the email. * @param from The from address. * @param to The destination address. * @param url The URL where the message can be read. @@ -421,11 +421,11 @@ gpointer user_data); /** - * Displays a notification for multiple e-mails to the user. + * Displays a notification for multiple emails to the user. * * @param handle The plugin or connection handle. - * @param count The number of e-mails. - * @param detailed @c TRUE if there is information for each e-mail in the + * @param count The number of emails. + * @param detailed @c TRUE if there is information for each email in the * arrays. * @param subjects The array of subjects. * @param froms The array of from addresses. @@ -577,13 +577,30 @@ void purple_notify_user_info_add_section_break(PurpleNotifyUserInfo *user_info); /** + * Prepend a section break. A UI might display this as a horizontal line. + * + * @param user_info The PurpleNotifyUserInfo + * @since 2.5.0 + */ +void purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo *user_info); + +/** * Add a section header. A UI might display this in a different font from other text. * * @param user_info The PurpleNotifyUserInfo * @param label The name of the section */ void purple_notify_user_info_add_section_header(PurpleNotifyUserInfo *user_info, const char *label); - + +/** + * Prepend a section header. A UI might display this in a different font from other text. + * + * @param user_info The PurpleNotifyUserInfo + * @param label The name of the section + * @since 2.5.0 + */ +void purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo *user_info, const char *label); + /** * Remove the last item which was added to a PurpleNotifyUserInfo. This could be used to remove a section header which is not needed. */
--- a/libpurple/plugin.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugin.c Thu Jun 26 09:07:56 2008 +0000 @@ -359,7 +359,7 @@ { plugin->error = g_strdup_printf(_("You are using %s, but this plugin requires %s."), purple_core_get_ui(), plugin->info->ui_requirement); - purple_debug_error("plugins", "%s is not loadable: The UI requirement is not met.\n", plugin->path); + purple_debug_error("plugins", "%s is not loadable: The UI requirement is not met. (%s)\n", plugin->path, plugin->error); plugin->unloadable = TRUE; return plugin; } @@ -474,9 +474,9 @@ (PURPLE_PLUGIN_PROTOCOL_INFO(plugin)->login == NULL) || (PURPLE_PLUGIN_PROTOCOL_INFO(plugin)->close == NULL)) { - plugin->error = g_strdup(_("Plugin does not implement all required functions")); - purple_debug_error("plugins", "%s is not loadable: Plugin does not implement all required functions\n", - plugin->path); + plugin->error = g_strdup(_("Plugin does not implement all required functions (list_icon, login and close)")); + purple_debug_error("plugins", "%s is not loadable: %s\n", + plugin->path, plugin->error); plugin->unloadable = TRUE; return plugin; }
--- a/libpurple/plugins/perl/Makefile.am Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/perl/Makefile.am Thu Jun 26 09:07:56 2008 +0000 @@ -67,6 +67,7 @@ common/SavedStatuses.xs \ common/Server.xs \ common/Signal.xs \ + common/Smiley.xs \ common/Sound.xs \ common/Status.xs \ common/Stringref.xs \
--- a/libpurple/plugins/perl/common/MANIFEST Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/perl/common/MANIFEST Thu Jun 26 09:07:56 2008 +0000 @@ -28,6 +28,7 @@ SavedStatuses.xs Server.xs Signal.xs +Smiley.xs Sound.xs Status.xs Stringref.xs
--- a/libpurple/plugins/perl/common/Makefile.mingw Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/perl/common/Makefile.mingw Thu Jun 26 09:07:56 2008 +0000 @@ -61,8 +61,9 @@ Roomlist.xs \ SSLConn.xs \ SavedStatuses.xs \ + Server.xs \ Signal.xs \ - Server.xs \ + Smiley.xs \ Sound.xs \ Status.xs \ Stringref.xs \
--- a/libpurple/plugins/perl/common/Purple.xs Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/perl/common/Purple.xs Thu Jun 26 09:07:56 2008 +0000 @@ -30,6 +30,7 @@ PURPLE_PERL_BOOT_PROTO(SavedStatus); PURPLE_PERL_BOOT_PROTO(Serv); PURPLE_PERL_BOOT_PROTO(Signal); +PURPLE_PERL_BOOT_PROTO(Smiley); PURPLE_PERL_BOOT_PROTO(Sound); PURPLE_PERL_BOOT_PROTO(Status); PURPLE_PERL_BOOT_PROTO(Stringref); @@ -68,6 +69,7 @@ PURPLE_PERL_BOOT(SavedStatus); PURPLE_PERL_BOOT(Serv); PURPLE_PERL_BOOT(Signal); + PURPLE_PERL_BOOT(Smiley); PURPLE_PERL_BOOT(Sound); PURPLE_PERL_BOOT(Status); PURPLE_PERL_BOOT(Stringref);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/plugins/perl/common/Smiley.xs Thu Jun 26 09:07:56 2008 +0000 @@ -0,0 +1,80 @@ +#include "module.h" + +MODULE = Purple::Smiley PACKAGE = Purple::Smiley PREFIX = purple_smiley_ +PROTOTYPES: ENABLE + +Purple::Smiley +purple_smiley_new(img, shortcut) + Purple::StoredImage img + const char * shortcut + +Purple::Smiley +purple_smiley_new_from_file(shortcut, filepath) + const char * shortcut + const char * filepath + +void +purple_smiley_delete(smiley) + Purple::Smiley smiley + +gboolean +purple_smiley_set_shortcut(smiley, shortcut) + Purple::Smiley smiley + const char * shortcut + +void +purple_smiley_set_data(smiley, data, data_len) + Purple::Smiley smiley + guchar * data + size_t data_len + +const char * +purple_smiley_get_shortcut(smiley) + Purple::Smiley smiley + +const char * +purple_smiley_get_checksum(smiley) + Purple::Smiley smiley + +Purple::StoredImage +purple_smiley_get_stored_image(smiley) + Purple::Smiley smiley + +gconstpointer +purple_smiley_get_data(smiley, len) + Purple::Smiley smiley + size_t * len + +const char * +purple_smiley_get_extension(smiley) + Purple::Smiley smiley + + +gchar_own * +purple_smiley_get_full_path(smiley) + Purple::Smiley smiley + + +MODULE = Purple::Smiley PACKAGE = Purple::Smileys PREFIX = purple_smileys_ +PROTOTYPES: ENABLE + +void +purple_smileys_get_all() +PREINIT: + GList *l; +PPCODE: + for (l = purple_smileys_get_all(); l != NULL; l = g_list_delete_link(l, l)) { + XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Smiley"))); + } + +Purple::Smiley +purple_smileys_find_by_shortcut(shortcut) + const char * shortcut + +Purple::Smiley +purple_smileys_find_by_checksum(checksum) + const char * checksum + +const char * +purple_smileys_get_storing_dir() +
--- a/libpurple/plugins/perl/common/module.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/perl/common/module.h Thu Jun 26 09:07:56 2008 +0000 @@ -51,6 +51,7 @@ #include "savedstatuses.h" #include "server.h" #include "signals.h" +#include "smiley.h" #include "sound.h" #include "sslconn.h" #include "status.h" @@ -240,6 +241,9 @@ typedef PurpleSavedStatus * Purple__SavedStatus; typedef PurpleSavedStatusSub * Purple__SavedStatus__Sub; +/* smiley.h */ +typedef PurpleSmiley * Purple__Smiley; + /* sound.h */ typedef PurpleSoundEventID Purple__SoundEventID; typedef PurpleSoundUiOps * Purple__Sound__UiOps;
--- a/libpurple/plugins/perl/common/typemap Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/perl/common/typemap Thu Jun 26 09:07:56 2008 +0000 @@ -151,6 +151,7 @@ Purple::Presence T_PurpleObj Purple::PresenceContext T_IV +Purple::Smiley T_PurpleObj Purple::Status T_PurpleObj Purple::StatusAttr T_PurpleObj Purple::StatusPrimitive T_IV
--- a/libpurple/plugins/ssl/ssl-gnutls.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/plugins/ssl/ssl-gnutls.c Thu Jun 26 09:07:56 2008 +0000 @@ -54,8 +54,8 @@ If there are strange bugs, perhaps look here (yes, I am a hypocrite) */ gnutls_global_set_mem_functions( - (gnutls_alloc_function) g_malloc0, /* malloc */ - (gnutls_alloc_function) g_malloc0, /* secure malloc */ + (gnutls_alloc_function) g_malloc, /* malloc */ + (gnutls_alloc_function) g_malloc, /* secure malloc */ NULL, /* mem_is_secure */ (gnutls_realloc_function) g_realloc, /* realloc */ (gnutls_free_function) g_free /* free */
--- a/libpurple/privacy.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/privacy.c Thu Jun 26 09:07:56 2008 +0000 @@ -241,6 +241,7 @@ gboolean restore) { GSList *list; + PurplePrivacyType type = account->perm_deny; switch (account->perm_deny) { case PURPLE_PRIVACY_ALLOW_ALL: @@ -254,10 +255,12 @@ case PURPLE_PRIVACY_DENY_ALL: if (!restore) { /* Empty the allow-list. */ + const char *norm = purple_normalize(account, who); for (list = account->permit; list != NULL;) { - char *who = list->data; + char *person = list->data; list = list->next; - purple_privacy_permit_remove(account, who, local); + if (strcmp(norm, person) != 0) + purple_privacy_permit_remove(account, person, local); } } purple_privacy_permit_add(account, who, local); @@ -273,6 +276,10 @@ default: g_return_if_reached(); } + + /* Notify the server if the privacy setting was changed */ + if (type != account->perm_deny && purple_account_is_connected(account)) + serv_set_permit_deny(purple_account_get_connection(account)); } /* @@ -286,15 +293,18 @@ gboolean restore) { GSList *list; + PurplePrivacyType type = account->perm_deny; switch (account->perm_deny) { case PURPLE_PRIVACY_ALLOW_ALL: if (!restore) { /* Empty the deny-list. */ + const char *norm = purple_normalize(account, who); for (list = account->deny; list != NULL; ) { char *person = list->data; list = list->next; - purple_privacy_deny_remove(account, person, local); + if (strcmp(norm, person) != 0) + purple_privacy_deny_remove(account, person, local); } } purple_privacy_deny_add(account, who, local); @@ -318,6 +328,10 @@ default: g_return_if_reached(); } + + /* Notify the server if the privacy setting was changed */ + if (type != account->perm_deny && purple_account_is_connected(account)) + serv_set_permit_deny(purple_account_get_connection(account)); } gboolean
--- a/libpurple/protocols/bonjour/bonjour.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/bonjour/bonjour.c Thu Jun 26 09:07:56 2008 +0000 @@ -384,7 +384,7 @@ } if (bb->email != NULL) - purple_notify_user_info_add_pair(user_info, _("E-Mail"), bb->email); + purple_notify_user_info_add_pair(user_info, _("Email"), bb->email); if (bb->AIM != NULL) purple_notify_user_info_add_pair(user_info, _("AIM Account"), bb->AIM); @@ -504,6 +504,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL }; @@ -718,7 +719,7 @@ option = purple_account_option_string_new(_("Last name"), "last", default_lastname); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = purple_account_option_string_new(_("E-mail"), "email", ""); + option = purple_account_option_string_new(_("Email"), "email", ""); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); option = purple_account_option_string_new(_("AIM Account"), "AIM", "");
--- a/libpurple/protocols/gg/gg.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/gg/gg.c Thu Jun 26 09:07:56 2008 +0000 @@ -343,7 +343,8 @@ { PurpleConnection *gc = (PurpleConnection *)action->context; - purple_request_file(action, "Load buddylist from file...", NULL, FALSE, + purple_request_file(action, _("Load buddylist from file..."), NULL, + FALSE, G_CALLBACK(ggp_callback_buddylist_load_ok), NULL, purple_connection_get_account(gc), NULL, NULL, gc); @@ -475,7 +476,7 @@ purple_request_fields_add_group(fields, group); field = purple_request_field_string_new("email", - _("E-mail"), "", FALSE); + _("Email"), "", FALSE); purple_request_field_string_set_masked(field, FALSE); purple_request_field_group_add_field(group, field); @@ -718,7 +719,7 @@ purple_debug_info("gg", "Changing password\n"); - /* XXX: this e-mail should be a pref... */ + /* XXX: this email should be a pref... */ h = gg_change_passwd4(ggp_get_uin(account), "user@example.net", purple_account_get_password(account), p1, info->token->id, t, 0); @@ -926,8 +927,10 @@ /* ----- INTERNAL CALLBACKS --------------------------------------------- */ /* ---------------------------------------------------------------------- */ -/* just a prototype */ +/* Prototypes */ static void ggp_set_status(PurpleAccount *account, PurpleStatus *status); +static int ggp_to_gg_status(PurpleStatus *status, char **msg); + /** * Handle change of the status of the buddy. @@ -1488,23 +1491,12 @@ break; case GG_EVENT_CONN_SUCCESS: { - PurpleAccount *account; - PurplePresence *presence; - PurpleStatus *status; - purple_debug_info("gg", "GG_EVENT_CONN_SUCCESS\n"); purple_input_remove(gc->inpa); gc->inpa = purple_input_add(info->session->fd, PURPLE_INPUT_READ, ggp_callback_recv, gc); - /* gg_change_status(info->session, GG_STATUS_AVAIL); */ - - account = purple_connection_get_account(gc); - presence = purple_account_get_presence(account); - status = purple_presence_get_active_status(presence); - - ggp_set_status(account, status); purple_connection_set_state(gc, PURPLE_CONNECTED); ggp_buddylist_send(gc); } @@ -1692,6 +1684,8 @@ static void ggp_login(PurpleAccount *account) { PurpleConnection *gc; + PurplePresence *presence; + PurpleStatus *status; struct gg_login_params *glp; GGPInfo *info; @@ -1714,8 +1708,11 @@ glp->uin = ggp_get_uin(account); glp->password = (char *)purple_account_get_password(account); + presence = purple_account_get_presence(account); + status = purple_presence_get_active_status(presence); + glp->async = 1; - glp->status = GG_STATUS_AVAIL; + glp->status = ggp_to_gg_status(status, &glp->status_descr); glp->tls = 0; info->session = gg_login(glp); @@ -1826,22 +1823,15 @@ /* }}} */ /* static void ggp_set_status(PurpleAccount *account, PurpleStatus *status) {{{ */ -static void ggp_set_status(PurpleAccount *account, PurpleStatus *status) +static int ggp_to_gg_status(PurpleStatus *status, char **msg) { - PurpleConnection *gc; - GGPInfo *info; - const char *status_id, *msg; + const char *status_id = purple_status_get_id(status); int new_status, new_status_descr; + const char *new_msg; - if (!purple_status_is_active(status)) - return; + g_return_val_if_fail(msg == NULL, 0); - gc = purple_account_get_connection(account); - info = gc->proto_data; - - status_id = purple_status_get_id(status); - - purple_debug_info("gg", "ggp_set_status: Requested status = %s\n", + purple_debug_info("gg", "ggp_to_gg_status: Requested status = %s\n", status_id); if (strcmp(status_id, "available") == 0) { @@ -1860,22 +1850,45 @@ new_status = GG_STATUS_AVAIL; new_status_descr = GG_STATUS_AVAIL_DESCR; purple_debug_info("gg", - "ggp_set_status: uknown status requested (status_id=%s)\n", + "ggp_set_status: unknown status requested (status_id=%s)\n", status_id); } - msg = purple_status_get_attr_string(status, "message"); + new_msg = purple_status_get_attr_string(status, "message"); + + if(new_msg) { + char *tmp = purple_markup_strip_html(new_msg); + *msg = charset_convert(tmp, "UTF-8", "CP1250"); + g_free(tmp); + + return new_status_descr; + } else { + *msg = NULL; + return new_status; + } +} +/* }}} */ - if (msg == NULL) { +/* static void ggp_set_status(PurpleAccount *account, PurpleStatus *status) {{{ */ +static void ggp_set_status(PurpleAccount *account, PurpleStatus *status) +{ + PurpleConnection *gc; + GGPInfo *info; + int new_status; + char *new_msg = NULL; + + if (!purple_status_is_active(status)) + return; + + gc = purple_account_get_connection(account); + info = gc->proto_data; + + new_status = ggp_to_gg_status(status, &new_msg); + + if (new_msg == NULL) { gg_change_status(info->session, new_status); } else { - gchar *tmp, *new_msg; - - tmp = charset_convert(msg, "UTF-8", "CP1250"); - new_msg = purple_markup_strip_html(tmp); - g_free(tmp); - - gg_change_status_descr(info->session, new_status_descr, new_msg); + gg_change_status_descr(info->session, new_status, new_msg); g_free(new_msg); } @@ -1998,7 +2011,7 @@ serv_got_chat_in(gc, id, purple_account_get_username(purple_connection_get_account(gc)), - 0, message, time(NULL)); + flags, message, time(NULL)); return 0; } @@ -2152,6 +2165,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL }; /* }}} */
--- a/libpurple/protocols/gg/search.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/gg/search.h Thu Jun 26 09:07:56 2008 +0000 @@ -130,7 +130,7 @@ * @param gc PurpleConnection. * @param form Filled in GGPSearchForm. * - * @return Sequence number of a search or 0 if an error occured. + * @return Sequence number of a search or 0 if an error occurred. */ guint32 ggp_search_start(PurpleConnection *gc, GGPSearchForm *form);
--- a/libpurple/protocols/irc/irc.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/irc/irc.c Thu Jun 26 09:07:56 2008 +0000 @@ -737,7 +737,7 @@ irc_cmd_privmsg(irc, "msg", NULL, args); - serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), 0, what, time(NULL)); + serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), flags, what, time(NULL)); g_free(tmp); return 0; } @@ -909,6 +909,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/irc/msgs.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/irc/msgs.c Thu Jun 26 09:07:56 2008 +0000 @@ -215,7 +215,9 @@ /* This is an extended syntax, not in RFC 1459 */ int t1 = atoi(args[4]); time_t t2 = time(NULL); - msg = g_strdup_printf(_("Ban on %s by %s, set %ld seconds ago"), + msg = g_strdup_printf(ngettext("Ban on %s by %s, set %ld second ago", + "Ban on %s by %s, set %ld seconds ago", + t2 - t1), args[2], args[3], t2 - t1); } else { msg = g_strdup_printf(_("Ban on %s"), args[2]);
--- a/libpurple/protocols/irc/parse.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/irc/parse.c Thu Jun 26 09:07:56 2008 +0000 @@ -232,7 +232,7 @@ if (encodings[0] == NULL || !g_ascii_strcasecmp("UTF-8", encodings[0])) { g_strfreev(encodings); - return g_strdup(string); + return NULL; } utf8 = g_convert(string, strlen(string), encodings[0], "UTF-8", NULL, NULL, &err); @@ -597,7 +597,7 @@ case 'n': case 'c': tmp = irc_send_convert(irc, tok); - g_string_append(string, tmp); + g_string_append(string, tmp ? tmp : tok); g_free(tmp); break; default:
--- a/libpurple/protocols/jabber/auth.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/auth.c Thu Jun 26 09:07:56 2008 +0000 @@ -499,6 +499,15 @@ { char *mech_name = xmlnode_get_data(mechnode); #ifdef HAVE_CYRUS_SASL + /* Don't include Google Talk's X-GOOGLE-TOKEN mechanism, as we will not + * support it and including it gives a false fall-back to other mechs offerred, + * leading to incorrect error handling. + */ + if (mech_name && !strcmp(mech_name, "X-GOOGLE-TOKEN")) { + g_free(mech_name); + continue; + } + g_string_append(js->sasl_mechs, mech_name); g_string_append_c(js->sasl_mechs, ' '); #else @@ -580,75 +589,6 @@ } } -/*! - * @brief Given the server challenge (message) and the key (password), calculate the HMAC-MD5 digest - * - * This is the crammd5 response. Inspired by cyrus-sasl's _sasl_hmac_md5() - */ -static void -auth_hmac_md5(const char *challenge, size_t challenge_len, const char *key, size_t key_len, guchar *digest) -{ - PurpleCipher *cipher; - PurpleCipherContext *context; - int i; - /* inner padding - key XORd with ipad */ - unsigned char k_ipad[65]; - /* outer padding - key XORd with opad */ - unsigned char k_opad[65]; - - cipher = purple_ciphers_find_cipher("md5"); - - /* if key is longer than 64 bytes reset it to key=MD5(key) */ - if (strlen(key) > 64) { - guchar keydigest[16]; - - context = purple_cipher_context_new(cipher, NULL); - purple_cipher_context_append(context, (const guchar *)key, strlen(key)); - purple_cipher_context_digest(context, 16, keydigest, NULL); - purple_cipher_context_destroy(context); - - key = (char *)keydigest; - key_len = 16; - } - - /* - * the HMAC_MD5 transform looks like: - * - * MD5(K XOR opad, MD5(K XOR ipad, text)) - * - * where K is an n byte key - * ipad is the byte 0x36 repeated 64 times - * opad is the byte 0x5c repeated 64 times - * and text is the data being protected - */ - - /* start out by storing key in pads */ - memset(k_ipad, '\0', sizeof k_ipad); - memset(k_opad, '\0', sizeof k_opad); - memcpy(k_ipad, (void *)key, key_len); - memcpy(k_opad, (void *)key, key_len); - - /* XOR key with ipad and opad values */ - for (i=0; i<64; i++) { - k_ipad[i] ^= 0x36; - k_opad[i] ^= 0x5c; - } - - /* perform inner MD5 */ - context = purple_cipher_context_new(cipher, NULL); - purple_cipher_context_append(context, k_ipad, 64); /* start with inner pad */ - purple_cipher_context_append(context, (const guchar *)challenge, challenge_len); /* then text of datagram */ - purple_cipher_context_digest(context, 16, digest, NULL); /* finish up 1st pass */ - purple_cipher_context_destroy(context); - - /* perform outer MD5 */ - context = purple_cipher_context_new(cipher, NULL); - purple_cipher_context_append(context, k_opad, 64); /* start with outer pad */ - purple_cipher_context_append(context, digest, 16); /* then results of 1st hash */ - purple_cipher_context_digest(context, 16, digest, NULL); /* finish up 2nd pass */ - purple_cipher_context_destroy(context); -} - static void auth_old_cb(JabberStream *js, xmlnode *packet, gpointer data) { JabberIq *iq; @@ -694,14 +634,19 @@ jabber_iq_set_callback(iq, auth_old_result_cb, NULL); jabber_iq_send(iq); - } else if(js->stream_id && xmlnode_get_child(query, "crammd5")) { + } else if(js->stream_id && (x = xmlnode_get_child(query, "crammd5"))) { const char *challenge; - guchar digest[16]; - char h[33], *p; - int i; + gchar digest[33]; + PurpleCipherContext *hmac; - challenge = xmlnode_get_attrib(xmlnode_get_child(query, "crammd5"), "challenge"); - auth_hmac_md5(challenge, strlen(challenge), pw, strlen(pw), digest); + /* Calculate the MHAC-MD5 digest */ + challenge = xmlnode_get_attrib(x, "challenge"); + hmac = purple_cipher_context_new_by_name("hmac", NULL); + purple_cipher_context_set_option(hmac, "hash", "md5"); + purple_cipher_context_set_key(hmac, (guchar *)pw); + purple_cipher_context_append(hmac, (guchar *)challenge, strlen(challenge)); + purple_cipher_context_digest_to_str(hmac, 33, digest, NULL); + purple_cipher_context_destroy(hmac); /* Create the response query */ iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:auth"); @@ -714,11 +659,7 @@ x = xmlnode_new_child(query, "crammd5"); - /* Translate the digest to a hexadecimal notation */ - p = h; - for(i=0; i<16; i++, p+=2) - snprintf(p, 3, "%02x", digest[i]); - xmlnode_insert_data(x, h, -1); + xmlnode_insert_data(x, digest, 32); jabber_iq_set_callback(iq, auth_old_result_cb, NULL); jabber_iq_send(iq);
--- a/libpurple/protocols/jabber/buddy.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/buddy.c Thu Jun 26 09:07:56 2008 +0000 @@ -48,8 +48,8 @@ GSList *ids; GHashTable *resources; int timeout_handle; - char *vcard_text; GSList *vcard_imgids; + PurpleNotifyUserInfo *user_info; } JabberBuddyInfo; void jabber_buddy_free(JabberBuddy *jb) @@ -315,7 +315,7 @@ {N_("Postal Code"), NULL, TRUE, TRUE, "PCODE", "ADR", NULL}, {N_("Country"), NULL, TRUE, TRUE, "CTRY", "ADR", NULL}, {N_("Telephone"), NULL, TRUE, TRUE, "NUMBER", "TEL", NULL}, - {N_("E-Mail"), NULL, TRUE, TRUE, "USERID", "EMAIL", "<A HREF=\"mailto:%s\">%s</A>"}, + {N_("Email"), NULL, TRUE, TRUE, "USERID", "EMAIL", "<A HREF=\"mailto:%s\">%s</A>"}, {N_("Organization Name"), NULL, TRUE, TRUE, "ORGNAME", "ORG", NULL}, {N_("Organization Unit"), NULL, TRUE, TRUE, "ORGUNIT", "ORG", NULL}, {N_("Title"), NULL, TRUE, TRUE, "TITLE", NULL, NULL}, @@ -777,7 +777,7 @@ g_free(jbi->jid); g_hash_table_destroy(jbi->resources); - g_free(jbi->vcard_text); + purple_notify_user_info_destroy(jbi->user_info); g_free(jbi); } @@ -793,42 +793,51 @@ if(jbi->ids) return; - user_info = purple_notify_user_info_new(); + user_info = jbi->user_info; resource_name = jabber_get_resource(jbi->jid); + /* If we have one or more pairs from the vcard, put a section break above it */ + if (purple_notify_user_info_get_entries(user_info)) + purple_notify_user_info_prepend_section_break(user_info); + + /* Prepend the primary buddy info to user_info so that it goes before the vcard. */ if(resource_name) { jbr = jabber_buddy_find_resource(jbi->jb, resource_name); jbir = g_hash_table_lookup(jbi->resources, resource_name); - if(jbr) { - char *purdy = NULL; - if(jbr->status) - purdy = purple_strdup_withhtml(jbr->status); - tmp = g_strdup_printf("%s%s%s", jabber_buddy_state_get_name(jbr->state), - (purdy ? ": " : ""), - (purdy ? purdy : "")); - purple_notify_user_info_add_pair(user_info, _("Status"), tmp); - g_free(tmp); - g_free(purdy); - } else { - purple_notify_user_info_add_pair(user_info, _("Status"), _("Unknown")); - } - if(jbir) { - if(jbir->idle_seconds > 0) { - char *idle = purple_str_seconds_to_string(jbir->idle_seconds); - purple_notify_user_info_add_pair(user_info, _("Idle"), idle); - g_free(idle); - } - } if(jbr && jbr->client.name) { tmp = g_strdup_printf("%s%s%s", jbr->client.name, (jbr->client.version ? " " : ""), (jbr->client.version ? jbr->client.version : "")); purple_notify_user_info_add_pair(user_info, _("Client"), tmp); g_free(tmp); - + if(jbr->client.os) { - purple_notify_user_info_add_pair(user_info, _("Operating System"), jbr->client.os); + purple_notify_user_info_prepend_pair(user_info, _("Operating System"), jbr->client.os); + } + } + if(jbir) { + if(jbir->idle_seconds > 0) { + char *idle = purple_str_seconds_to_string(jbir->idle_seconds); + purple_notify_user_info_prepend_pair(user_info, _("Idle"), idle); + g_free(idle); } + } + if(jbr) { + char *purdy = NULL; + const char *status_name = jabber_buddy_state_get_name(jbr->state); + if(jbr->status) + purdy = purple_strdup_withhtml(jbr->status); + if(status_name && purdy && !strcmp(status_name, purdy)) + status_name = NULL; + + tmp = g_strdup_printf("%s%s%s", (status_name ? status_name : ""), + ((status_name && purdy) ? ": " : ""), + (purdy ? purdy : "")); + purple_notify_user_info_prepend_pair(user_info, _("Status"), tmp); + g_free(tmp); + g_free(purdy); + } else { + purple_notify_user_info_prepend_pair(user_info, _("Status"), _("Unknown")); } #if 0 /* #if 0 this for now; I think this would be far more useful if we limited this to a particular set of features @@ -949,52 +958,62 @@ } if(strlen(tmp->str) > 0) - purple_notify_user_info_add_pair(user_info, _("Capabilities"), tmp->str); + purple_notify_user_info_prepend_pair(user_info, _("Capabilities"), tmp->str); g_string_free(tmp, TRUE); } #endif } else { + gboolean multiple_resources = jbi->jb->resources && (g_list_length(jbi->jb->resources) > 1); + for(resources = jbi->jb->resources; resources; resources = resources->next) { char *purdy = NULL; + const char *status_name = NULL; + jbr = resources->data; - if(jbr->status) - purdy = purple_strdup_withhtml(jbr->status); - if(jbr->name) - purple_notify_user_info_add_pair(user_info, _("Resource"), jbr->name); - tmp = g_strdup_printf("%d", jbr->priority); - purple_notify_user_info_add_pair(user_info, _("Priority"), tmp); - g_free(tmp); - tmp = g_strdup_printf("%s%s%s", jabber_buddy_state_get_name(jbr->state), - (purdy ? ": " : ""), - (purdy ? purdy : "")); - purple_notify_user_info_add_pair(user_info, _("Status"), tmp); - g_free(tmp); - g_free(purdy); + if(jbr->client.name) { + tmp = g_strdup_printf("%s%s%s", jbr->client.name, + (jbr->client.version ? " " : ""), + (jbr->client.version ? jbr->client.version : "")); + purple_notify_user_info_prepend_pair(user_info, + _("Client"), tmp); + g_free(tmp); + + if(jbr->client.os) { + purple_notify_user_info_prepend_pair(user_info, _("Operating System"), jbr->client.os); + } + } - if(jbr->name) - jbir = g_hash_table_lookup(jbi->resources, jbr->name); - - if(jbir) { + if(jbr->name && (jbir = g_hash_table_lookup(jbi->resources, jbr->name))) { if(jbir->idle_seconds > 0) { char *idle = purple_str_seconds_to_string(jbir->idle_seconds); - purple_notify_user_info_add_pair(user_info, _("Idle"), idle); + purple_notify_user_info_prepend_pair(user_info, _("Idle"), idle); g_free(idle); } } - if(jbr && jbr->client.name) { - tmp = g_strdup_printf("%s%s%s", jbr->client.name, - (jbr->client.version ? " " : ""), - (jbr->client.version ? jbr->client.version : "")); - purple_notify_user_info_add_pair(user_info, - _("Client"), tmp); + + status_name = jabber_buddy_state_get_name(jbr->state); + if(jbr->status) + purdy = purple_strdup_withhtml(jbr->status); + if(status_name && purdy && !strcmp(status_name, purdy)) + status_name = NULL; + + tmp = g_strdup_printf("%s%s%s", (status_name ? status_name : ""), + ((status_name && purdy) ? ": " : ""), + (purdy ? purdy : "")); + purple_notify_user_info_prepend_pair(user_info, _("Status"), tmp); + g_free(tmp); + g_free(purdy); + + if(multiple_resources) { + tmp = g_strdup_printf("%d", jbr->priority); + purple_notify_user_info_prepend_pair(user_info, _("Priority"), tmp); g_free(tmp); + } - if(jbr->client.os) { - purple_notify_user_info_add_pair(user_info, _("Operating System"), jbr->client.os); - } - } + if(jbr->name) + purple_notify_user_info_prepend_pair(user_info, _("Resource"), jbr->name); #if 0 if(jbr && jbr->caps) { GString *tmp = g_string_new(""); @@ -1109,7 +1128,7 @@ g_string_append_printf(tmp, "%s\n", feature); } if(strlen(tmp->str) > 0) - purple_notify_user_info_add_pair(user_info, _("Capabilities"), tmp->str); + purple_notify_user_info_prepend_pair(user_info, _("Capabilities"), tmp->str); g_string_free(tmp, TRUE); } @@ -1119,14 +1138,7 @@ g_free(resource_name); - if (jbi->vcard_text != NULL) { - purple_notify_user_info_add_section_break(user_info); - /* Should this have some sort of label? */ - purple_notify_user_info_add_pair(user_info, NULL, jbi->vcard_text); - } - purple_notify_userinfo(jbi->js->gc, jbi->jid, user_info, NULL, NULL); - purple_notify_user_info_destroy(user_info); while(jbi->vcard_imgids) { purple_imgstore_unref_by_id(GPOINTER_TO_INT(jbi->vcard_imgids->data)); @@ -1193,27 +1205,16 @@ jabber_iq_send(iq); } -static void -jabber_string_escape_and_append(GString *string, const char *name, const char *value, gboolean indent) -{ - gchar *escaped; - - escaped = g_markup_escape_text(value, -1); - g_string_append_printf(string, "%s<b>%s:</b> %s<br/>", - indent ? " " : "", name, escaped); - g_free(escaped); -} - static void jabber_vcard_parse(JabberStream *js, xmlnode *packet, gpointer data) { const char *id, *from; - GString *info_text; char *bare_jid; char *text; char *serverside_alias = NULL; xmlnode *vcard; PurpleBuddy *b; JabberBuddyInfo *jbi = data; + PurpleNotifyUserInfo *user_info; from = xmlnode_get_attrib(packet, "from"); id = xmlnode_get_attrib(packet, "id"); @@ -1231,12 +1232,11 @@ /* XXX: handle the error case */ + user_info = jbi->user_info; bare_jid = jabber_get_bare_jid(from); b = purple_find_buddy(js->gc->account, bare_jid); - info_text = g_string_new(""); - if((vcard = xmlnode_get_child(packet, "vCard")) || (vcard = xmlnode_get_child_with_namespace(packet, "query", "vcard-temp"))) { xmlnode *child; @@ -1253,8 +1253,7 @@ if (!serverside_alias) serverside_alias = g_strdup(text); - jabber_string_escape_and_append(info_text, - _("Full Name"), text, FALSE); + purple_notify_user_info_add_pair(user_info, _("Full Name"), text); } else if(!strcmp(child->name, "N")) { for(child2 = child->child; child2; child2 = child2->next) { @@ -1265,14 +1264,11 @@ text2 = xmlnode_get_data(child2); if(text2 && !strcmp(child2->name, "FAMILY")) { - jabber_string_escape_and_append(info_text, - _("Family Name"), text2, FALSE); + purple_notify_user_info_add_pair(user_info, _("Family Name"), text2); } else if(text2 && !strcmp(child2->name, "GIVEN")) { - jabber_string_escape_and_append(info_text, - _("Given Name"), text2, FALSE); + purple_notify_user_info_add_pair(user_info, _("Given Name"), text2); } else if(text2 && !strcmp(child2->name, "MIDDLE")) { - jabber_string_escape_and_append(info_text, - _("Middle Name"), text2, FALSE); + purple_notify_user_info_add_pair(user_info, _("Middle Name"), text2); } g_free(text2); } @@ -1281,11 +1277,9 @@ g_free(serverside_alias); serverside_alias = g_strdup(text); - jabber_string_escape_and_append(info_text, - _("Nickname"), text, FALSE); + purple_notify_user_info_add_pair(user_info, _("Nickname"), text); } else if(text && !strcmp(child->name, "BDAY")) { - jabber_string_escape_and_append(info_text, - _("Birthday"), text, FALSE); + purple_notify_user_info_add_pair(user_info, _("Birthday"), text); } else if(!strcmp(child->name, "ADR")) { gboolean address_line_added = FALSE; @@ -1304,51 +1298,45 @@ * elements are empty. */ if (!address_line_added) { - g_string_append_printf(info_text, "<b>%s:</b><br/>", - _("Address")); + purple_notify_user_info_add_section_header(user_info, _("Address")); address_line_added = TRUE; } if(!strcmp(child2->name, "POBOX")) { - jabber_string_escape_and_append(info_text, - _("P.O. Box"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("P.O. Box"), text2); } else if(!strcmp(child2->name, "EXTADR")) { - jabber_string_escape_and_append(info_text, - _("Extended Address"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("Extended Address"), text2); } else if(!strcmp(child2->name, "STREET")) { - jabber_string_escape_and_append(info_text, - _("Street Address"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("Street Address"), text2); } else if(!strcmp(child2->name, "LOCALITY")) { - jabber_string_escape_and_append(info_text, - _("Locality"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("Locality"), text2); } else if(!strcmp(child2->name, "REGION")) { - jabber_string_escape_and_append(info_text, - _("Region"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("Region"), text2); } else if(!strcmp(child2->name, "PCODE")) { - jabber_string_escape_and_append(info_text, - _("Postal Code"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("Postal Code"), text2); } else if(!strcmp(child2->name, "CTRY") || !strcmp(child2->name, "COUNTRY")) { - jabber_string_escape_and_append(info_text, - _("Country"), text2, TRUE); + purple_notify_user_info_add_pair(user_info, _("Country"), text2); } g_free(text2); } + + if (address_line_added) + purple_notify_user_info_add_section_break(user_info); + } else if(!strcmp(child->name, "TEL")) { char *number; if((child2 = xmlnode_get_child(child, "NUMBER"))) { /* show what kind of number it is */ number = xmlnode_get_data(child2); if(number) { - jabber_string_escape_and_append(info_text, - _("Telephone"), number, FALSE); + purple_notify_user_info_add_pair(user_info, _("Telephone"), number); g_free(number); } } else if((number = xmlnode_get_data(child))) { /* lots of clients (including purple) do this, but it's * out of spec */ - jabber_string_escape_and_append(info_text, - _("Telephone"), number, FALSE); + purple_notify_user_info_add_pair(user_info, _("Telephone"), number); g_free(number); } } else if(!strcmp(child->name, "EMAIL")) { @@ -1357,20 +1345,25 @@ /* show what kind of email it is */ userid = xmlnode_get_data(child2); if(userid) { + char *mailto; escaped = g_markup_escape_text(userid, -1); - g_string_append_printf(info_text, - "<b>%s:</b> <a href=\"mailto:%s\">%s</a><br/>", - _("E-Mail"), escaped, escaped); + mailto = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", escaped, escaped); + purple_notify_user_info_add_pair(user_info, _("Email"), mailto); + + g_free(mailto); g_free(escaped); g_free(userid); } } else if((userid = xmlnode_get_data(child))) { /* lots of clients (including purple) do this, but it's * out of spec */ + char *mailto; + escaped = g_markup_escape_text(userid, -1); - g_string_append_printf(info_text, - "<b>%s:</b> <a href=\"mailto:%s\">%s</a><br/>", - _("E-Mail"), escaped, escaped); + mailto = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", escaped, escaped); + purple_notify_user_info_add_pair(user_info, _("Email"), mailto); + + g_free(mailto); g_free(escaped); g_free(userid); } @@ -1384,23 +1377,18 @@ text2 = xmlnode_get_data(child2); if(text2 && !strcmp(child2->name, "ORGNAME")) { - jabber_string_escape_and_append(info_text, - _("Organization Name"), text2, FALSE); + purple_notify_user_info_add_pair(user_info, _("Organization Name"), text2); } else if(text2 && !strcmp(child2->name, "ORGUNIT")) { - jabber_string_escape_and_append(info_text, - _("Organization Unit"), text2, FALSE); + purple_notify_user_info_add_pair(user_info, _("Organization Unit"), text2); } g_free(text2); } } else if(text && !strcmp(child->name, "TITLE")) { - jabber_string_escape_and_append(info_text, - _("Title"), text, FALSE); + purple_notify_user_info_add_pair(user_info, _("Title"), text); } else if(text && !strcmp(child->name, "ROLE")) { - jabber_string_escape_and_append(info_text, - _("Role"), text, FALSE); + purple_notify_user_info_add_pair(user_info, _("Role"), text); } else if(text && !strcmp(child->name, "DESC")) { - jabber_string_escape_and_append(info_text, - _("Description"), text, FALSE); + purple_notify_user_info_add_pair(user_info, _("Description"), text); } else if(!strcmp(child->name, "PHOTO") || !strcmp(child->name, "LOGO")) { char *bintext = NULL; @@ -1418,12 +1406,13 @@ data = purple_base64_decode(bintext, &size); if (data) { + char *img_text; + jbi->vcard_imgids = g_slist_prepend(jbi->vcard_imgids, GINT_TO_POINTER(purple_imgstore_add_with_id(g_memdup(data, size), size, "logo.png"))); - g_string_append_printf(info_text, - "<b>%s:</b> <img id='%d'><br/>", - photo ? _("Photo") : _("Logo"), - GPOINTER_TO_INT(jbi->vcard_imgids->data)); - + img_text = g_strdup_printf("<img id='%d'>", GPOINTER_TO_INT(jbi->vcard_imgids->data)); + + purple_notify_user_info_add_pair(user_info, (photo ? _("Photo") : _("Logo")), img_text); + purple_cipher_digest_region("sha1", (guchar *)data, size, sizeof(hashval), hashval, NULL); p = hash; @@ -1433,6 +1422,7 @@ purple_buddy_icons_set_for_user(js->gc->account, bare_jid, data, size, hash); g_free(bintext); + g_free(img_text); } } } @@ -1450,8 +1440,6 @@ g_free(serverside_alias); } - jbi->vcard_text = purple_strdup_withhtml(info_text->str); - g_string_free(info_text, TRUE); g_free(bare_jid); jabber_buddy_info_show_if_ready(jbi); @@ -1735,6 +1723,7 @@ jbi->js = js; jbi->jb = jb; jbi->resources = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, jabber_buddy_info_resource_free); + jbi->user_info = purple_notify_user_info_new(); iq = jabber_iq_new(js, JABBER_IQ_GET); @@ -1804,22 +1793,6 @@ } } -void jabber_buddy_get_info_chat(PurpleConnection *gc, int id, - const char *resource) -{ - JabberStream *js = gc->proto_data; - JabberChat *chat = jabber_chat_find_by_id(js, id); - char *full_jid; - - if(!chat) - return; - - full_jid = g_strdup_printf("%s@%s/%s", chat->room, chat->server, resource); - jabber_buddy_get_info_for_jid(js, full_jid); - g_free(full_jid); -} - - static void jabber_buddy_set_invisibility(JabberStream *js, const char *who, gboolean invisible) { @@ -2264,7 +2237,7 @@ purple_notify_searchresults_column_add(results, column); column = purple_notify_searchresults_column_new(_("Nickname")); purple_notify_searchresults_column_add(results, column); - column = purple_notify_searchresults_column_new(_("E-Mail")); + column = purple_notify_searchresults_column_new(_("Email")); purple_notify_searchresults_column_add(results, column); for(item = xmlnode_get_child(query, "item"); item; item = xmlnode_get_next_twin(item)) { @@ -2459,7 +2432,7 @@ purple_request_field_group_add_field(group, field); } if(xmlnode_get_child(query, "email")) { - field = purple_request_field_string_new("email", _("E-Mail Address"), + field = purple_request_field_string_new("email", _("Email Address"), NULL, FALSE); purple_request_field_group_add_field(group, field); }
--- a/libpurple/protocols/jabber/buddy.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/buddy.h Thu Jun 26 09:07:56 2008 +0000 @@ -96,8 +96,6 @@ void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource); const char *jabber_buddy_get_status_msg(JabberBuddy *jb); void jabber_buddy_get_info(PurpleConnection *gc, const char *who); -void jabber_buddy_get_info_chat(PurpleConnection *gc, int id, - const char *resource); GList *jabber_blist_node_menu(PurpleBlistNode *node);
--- a/libpurple/protocols/jabber/chat.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/chat.c Thu Jun 26 09:07:56 2008 +0000 @@ -197,6 +197,12 @@ return chat_name; } +static void insert_in_hash_table(gpointer key, gpointer value, gpointer user_data) +{ + GHashTable *hash_table = (GHashTable *)user_data; + g_hash_table_insert(hash_table, g_strdup(key), g_strdup(value)); +} + void jabber_chat_join(PurpleConnection *gc, GHashTable *data) { JabberChat *chat; @@ -225,18 +231,21 @@ char *buf = g_strdup_printf(_("%s is not a valid room name"), room); purple_notify_error(gc, _("Invalid Room Name"), _("Invalid Room Name"), buf); + purple_serv_got_join_chat_failed(gc, data); g_free(buf); return; } else if(!jabber_nameprep_validate(server)) { char *buf = g_strdup_printf(_("%s is not a valid server name"), server); purple_notify_error(gc, _("Invalid Server Name"), _("Invalid Server Name"), buf); + purple_serv_got_join_chat_failed(gc, data); g_free(buf); return; } else if(!jabber_resourceprep_validate(handle)) { char *buf = g_strdup_printf(_("%s is not a valid room handle"), handle); purple_notify_error(gc, _("Invalid Room Handle"), _("Invalid Room Handle"), buf); + purple_serv_got_join_chat_failed(gc, data); g_free(buf); return; } @@ -255,6 +264,11 @@ chat->server = g_strdup(server); chat->handle = g_strdup(handle); + /* Copy the data hash table to chat->components */ + chat->components = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); + g_hash_table_foreach(data, insert_in_hash_table, chat->components); + chat->members = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, (GDestroyNotify)jabber_chat_member_free); @@ -294,7 +308,7 @@ jabber_chat_part(chat, NULL); - chat->conv = NULL; + chat->left = TRUE; } void jabber_chat_destroy(JabberChat *chat) @@ -315,6 +329,7 @@ g_free(chat->server); g_free(chat->handle); g_hash_table_destroy(chat->members); + g_hash_table_destroy(chat->components); g_free(chat); } @@ -327,12 +342,18 @@ { JabberStream *js = gc->proto_data; JabberChat *chat; + JabberChatMember *jcm; chat = jabber_chat_find_by_id(js, id); if(!chat) return NULL; + jcm = g_hash_table_lookup(chat->members, who); + if (jcm != NULL && jcm->jid) + return g_strdup(jcm->jid); + + return g_strdup_printf("%s@%s/%s", chat->room, chat->server, who); }
--- a/libpurple/protocols/jabber/chat.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/chat.h Thu Jun 26 09:07:56 2008 +0000 @@ -41,6 +41,7 @@ char *room; char *server; char *handle; + GHashTable *components; int id; PurpleConversation *conv; gboolean muc; @@ -48,6 +49,7 @@ PurpleRequestType config_dialog_type; void *config_dialog_handle; GHashTable *members; + gboolean left; } JabberChat; GList *jabber_chat_info(PurpleConnection *gc);
--- a/libpurple/protocols/jabber/jabber.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Thu Jun 26 09:07:56 2008 +0000 @@ -273,70 +273,10 @@ purple_circ_buffer_mark_read(js->write_buffer, ret); } -void jabber_send_raw(JabberStream *js, const char *data, int len) +static gboolean do_jabber_send_raw(JabberStream *js, const char *data, int len) { int ret; - - /* because printing a tab to debug every minute gets old */ - if(strcmp(data, "\t")) - purple_debug(PURPLE_DEBUG_MISC, "jabber", "Sending%s: %s\n", - js->gsc ? " (ssl)" : "", data); - - /* If we've got a security layer, we need to encode the data, - * splitting it on the maximum buffer length negotiated */ - - purple_signal_emit(my_protocol, "jabber-sending-text", js->gc, &data); - if (data == NULL) - return; - -#ifdef HAVE_CYRUS_SASL - if (js->sasl_maxbuf>0) { - int pos; - - if (!js->gsc && js->fd<0) - return; - pos = 0; - if (len == -1) - len = strlen(data); - while (pos < len) { - int towrite; - const char *out; - unsigned olen; - - if ((len - pos) < js->sasl_maxbuf) - towrite = len - pos; - else - towrite = js->sasl_maxbuf; - - sasl_encode(js->sasl, &data[pos], towrite, &out, &olen); - pos += towrite; - - if (js->writeh == 0) - ret = jabber_do_send(js, out, olen); - else { - ret = -1; - errno = EAGAIN; - } - - if (ret < 0 && errno != EAGAIN) - purple_connection_error_reason (js->gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Write error")); - else if (ret < olen) { - if (ret < 0) - ret = 0; - if (js->writeh == 0) - js->writeh = purple_input_add( - js->gsc ? js->gsc->fd : js->fd, - PURPLE_INPUT_WRITE, - jabber_send_cb, js); - purple_circ_buffer_append(js->write_buffer, - out + ret, olen - ret); - } - } - return; - } -#endif + gboolean success = TRUE; if (len == -1) len = strlen(data); @@ -348,11 +288,12 @@ errno = EAGAIN; } - if (ret < 0 && errno != EAGAIN) + if (ret < 0 && errno != EAGAIN) { purple_connection_error_reason (js->gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, _("Write error")); - else if (ret < len) { + success = FALSE; + } else if (ret < len) { if (ret < 0) ret = 0; if (js->writeh == 0) @@ -362,7 +303,53 @@ purple_circ_buffer_append(js->write_buffer, data + ret, len - ret); } - return; + + return success; +} + +void jabber_send_raw(JabberStream *js, const char *data, int len) +{ + + /* because printing a tab to debug every minute gets old */ + if(strcmp(data, "\t")) + purple_debug(PURPLE_DEBUG_MISC, "jabber", "Sending%s: %s\n", + js->gsc ? " (ssl)" : "", data); + + /* If we've got a security layer, we need to encode the data, + * splitting it on the maximum buffer length negotiated */ + + purple_signal_emit(my_protocol, "jabber-sending-text", js->gc, &data); + if (data == NULL) + return; + +#ifdef HAVE_CYRUS_SASL + if (js->sasl_maxbuf>0) { + int pos = 0; + + if (!js->gsc && js->fd<0) + return; + + if (len == -1) + len = strlen(data); + + while (pos < len) { + int towrite; + const char *out; + unsigned olen; + + towrite = MIN((len - pos), js->sasl_maxbuf); + + sasl_encode(js->sasl, &data[pos], towrite, &out, &olen); + pos += towrite; + + if (!do_jabber_send_raw(js, out, olen)) + break; + } + return; + } +#endif + + do_jabber_send_raw(js, data, len); } int jabber_prpl_send_raw(PurpleConnection *gc, const char *buf, int len) @@ -388,9 +375,9 @@ g_free(txt); } -static void jabber_pong_cb(JabberStream *js, xmlnode *packet, gpointer timeout) +static void jabber_pong_cb(JabberStream *js, xmlnode *packet, gpointer unused) { - purple_timeout_remove(GPOINTER_TO_INT(timeout)); + purple_timeout_remove(js->keepalive_timeout); js->keepalive_timeout = -1; } @@ -414,7 +401,7 @@ xmlnode_set_namespace(ping, "urn:xmpp:ping"); js->keepalive_timeout = purple_timeout_add_seconds(120, (GSourceFunc)(jabber_pong_timeout), gc); - jabber_iq_set_callback(iq, jabber_pong_cb, GINT_TO_POINTER(js->keepalive_timeout)); + jabber_iq_set_callback(iq, jabber_pong_cb, NULL); jabber_iq_send(iq); } } @@ -995,7 +982,7 @@ purple_request_field_group_add_field(group, field); } if(xmlnode_get_child(query, "email")) { - field = purple_request_field_string_new("email", _("E-mail"), NULL, FALSE); + field = purple_request_field_string_new("email", _("Email"), NULL, FALSE); purple_request_field_group_add_field(group, field); } if(xmlnode_get_child(query, "nick")) { @@ -1504,8 +1491,7 @@ if (full) { PurpleStatus *status; - PurpleValue *value; - + if(jb->subscription & JABBER_SUB_FROM) { if(jb->subscription & JABBER_SUB_TO) sub = _("Both"); @@ -1521,17 +1507,17 @@ else sub = _("None"); } - + purple_notify_user_info_add_pair(user_info, _("Subscription"), sub); - + status = purple_presence_get_active_status(presence); - value = purple_status_get_attr_value(status, "mood"); - if (value && purple_value_get_type(value) == PURPLE_TYPE_STRING && (mood = purple_value_get_string(value))) { - - value = purple_status_get_attr_value(status, "moodtext"); - if(value && purple_value_get_type(value) == PURPLE_TYPE_STRING) { - char *moodplustext = g_strdup_printf("%s (%s)",mood,purple_value_get_string(value)); - + mood = purple_status_get_attr_string(status, "mood"); + if(mood != NULL) { + const char *moodtext; + moodtext = purple_status_get_attr_string(status, "moodtext"); + if(moodtext != NULL) { + char *moodplustext = g_strdup_printf("%s (%s)", mood, moodtext); + purple_notify_user_info_add_pair(user_info, _("Mood"), moodplustext); g_free(moodplustext); } else
--- a/libpurple/protocols/jabber/libxmpp.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/libxmpp.c Thu Jun 26 09:07:56 2008 +0000 @@ -89,7 +89,7 @@ jabber_message_send_chat, /* chat_send */ jabber_keepalive, /* keepalive */ jabber_register_account, /* register_user */ - jabber_buddy_get_info_chat, /* get_cb_info */ + NULL, /* get_cb_info */ NULL, /* get_cb_away */ jabber_roster_alias_change, /* alias_buddy */ jabber_roster_group_change, /* group_buddy */ @@ -116,7 +116,7 @@ jabber_send_attention, /* send_attention */ jabber_attention_types, /* attention_types */ - /* padding */ + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/jabber/message.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/message.c Thu Jun 26 09:07:56 2008 +0000 @@ -403,12 +403,20 @@ const char *code = xmlnode_get_attrib(child, "code"); char *code_txt = NULL; char *text = xmlnode_get_data(child); + if (!text) { + xmlnode *enclosed_text_node; + + if ((enclosed_text_node = xmlnode_get_child(child, "text"))) + text = xmlnode_get_data(enclosed_text_node); + } if(code) - code_txt = g_strdup_printf(_(" (Code %s)"), code); + code_txt = g_strdup_printf(_("(Code %s)"), code); if(!jm->error) - jm->error = g_strdup_printf("%s%s", text ? text : "", + jm->error = g_strdup_printf("%s%s%s", + text ? text : "", + text && code_txt ? " " : "", code_txt ? code_txt : ""); g_free(code_txt);
--- a/libpurple/protocols/jabber/pep.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/pep.h Thu Jun 26 09:07:56 2008 +0000 @@ -57,7 +57,7 @@ * @parameter id The item id of the requested item (may be NULL) * @parameter cb The callback to be used when this item is received * - * The items element passed to the callback will be NULL if any error occured (like a permission error, node doesn't exist etc.) + * The items element passed to the callback will be NULL if any error occurred (like a permission error, node doesn't exist etc.) */ void jabber_pep_request_item(JabberStream *js, const char *to, const char *node, const char *id, JabberPEPHandler cb);
--- a/libpurple/protocols/jabber/presence.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/presence.c Thu Jun 26 09:07:56 2008 +0000 @@ -49,7 +49,7 @@ xmlnode *presence = user_data; char *chat_full_jid; - if(!chat->conv) + if(!chat->conv || chat->left) return; chat_full_jid = g_strdup_printf("%s@%s/%s", chat->room, chat->server, @@ -581,12 +581,13 @@ if(state == JABBER_BUDDY_STATE_ERROR) { char *title, *msg = jabber_parse_error(js, packet, NULL); - if(chat->conv) { + if (!chat->conv) { + title = g_strdup_printf(_("Error joining chat %s"), from); + purple_serv_got_join_chat_failed(js->gc, chat->components); + } else { title = g_strdup_printf(_("Error in chat %s"), from); if (g_hash_table_size(chat->members) == 0) serv_got_chat_left(js->gc, chat->id); - } else { - title = g_strdup_printf(_("Error joining chat %s"), from); } purple_notify_error(js->gc, title, title, msg); g_free(title); @@ -608,8 +609,9 @@ /* If we haven't joined the chat yet, we don't care that someone * left, or it was us leaving after we closed the chat */ - if(!chat->conv) { - if(jid->resource && chat->handle && !strcmp(jid->resource, chat->handle)) + if (!chat->conv || chat->left) { + if (chat->left && + jid->resource && chat->handle && !strcmp(jid->resource, chat->handle)) jabber_chat_destroy(chat); jabber_id_free(jid); g_free(status);
--- a/libpurple/protocols/jabber/si.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/si.c Thu Jun 26 09:07:56 2008 +0000 @@ -623,7 +623,7 @@ return; else if(acceptfd == -1) { purple_debug_warning("jabber", "accept: %s\n", g_strerror(errno)); - /* TODO: This should cancel the ft */ + /* Don't cancel the ft - allow it to fall to the next streamhost.*/ return; } @@ -659,8 +659,11 @@ jsx = xfer->data; - if(!(type = xmlnode_get_attrib(packet, "type")) || strcmp(type, "result")) + if(!(type = xmlnode_get_attrib(packet, "type")) || strcmp(type, "result")) { + if (type && !strcmp(type, "error")) + purple_xfer_cancel_remote(xfer); return; + } if(!(from = xmlnode_get_attrib(packet, "from"))) return; @@ -718,14 +721,17 @@ JabberSIXfer *jsx; JabberIq *iq; xmlnode *query, *streamhost; - char *jid, port[6]; - const char *local_ip, *public_ip, *ft_proxies; + const char *ft_proxies; + char port[6]; GList *tmp; JabberBytestreamsStreamhost *sh, *sh2; + int streamhost_count = 0; jsx = xfer->data; jsx->listen_data = NULL; + /* I'm not sure under which conditions this can happen + * (it seems like it shouldn't be possible */ if (purple_xfer_get_status(xfer) == PURPLE_XFER_STATUS_CANCEL_LOCAL) { purple_xfer_unref(xfer); return; @@ -733,13 +739,6 @@ purple_xfer_unref(xfer); - if (sock < 0) { - purple_xfer_cancel_local(xfer); - return; - } - - jsx->local_streamhost_fd = sock; - iq = jabber_iq_new_query(jsx->js, JABBER_IQ_SET, "http://jabber.org/protocol/bytestreams"); xmlnode_set_attrib(iq->node, "to", xfer->who); @@ -747,41 +746,45 @@ xmlnode_set_attrib(query, "sid", jsx->stream_id); - jid = g_strdup_printf("%s@%s/%s", jsx->js->user->node, + /* If we successfully started listening locally */ + if (sock >= 0) { + gchar *jid; + const char *local_ip, *public_ip; + + jsx->local_streamhost_fd = sock; + + jid = g_strdup_printf("%s@%s/%s", jsx->js->user->node, jsx->js->user->domain, jsx->js->user->resource); - xfer->local_port = purple_network_get_port_from_fd(sock); - g_snprintf(port, sizeof(port), "%hu", xfer->local_port); - - /* TODO: Should there be an option to not use the local host as a ft proxy? - * (to prevent revealing IP address, etc.) */ + xfer->local_port = purple_network_get_port_from_fd(sock); + g_snprintf(port, sizeof(port), "%hu", xfer->local_port); - /* Include the localhost's IP (for in-network transfers) */ - local_ip = purple_network_get_local_system_ip(jsx->js->fd); - if (strcmp(local_ip, "0.0.0.0") != 0) - { - streamhost = xmlnode_new_child(query, "streamhost"); - xmlnode_set_attrib(streamhost, "jid", jid); - xmlnode_set_attrib(streamhost, "host", local_ip); - xmlnode_set_attrib(streamhost, "port", port); + /* Include the localhost's IP (for in-network transfers) */ + local_ip = purple_network_get_local_system_ip(jsx->js->fd); + if (strcmp(local_ip, "0.0.0.0") != 0) { + streamhost_count++; + streamhost = xmlnode_new_child(query, "streamhost"); + xmlnode_set_attrib(streamhost, "jid", jid); + xmlnode_set_attrib(streamhost, "host", local_ip); + xmlnode_set_attrib(streamhost, "port", port); + } + + /* Include the public IP (assuming that there is a port mapped somehow) */ + public_ip = purple_network_get_my_ip(jsx->js->fd); + if (strcmp(public_ip, local_ip) != 0 && strcmp(public_ip, "0.0.0.0") != 0) { + streamhost_count++; + streamhost = xmlnode_new_child(query, "streamhost"); + xmlnode_set_attrib(streamhost, "jid", jid); + xmlnode_set_attrib(streamhost, "host", public_ip); + xmlnode_set_attrib(streamhost, "port", port); + } + + g_free(jid); + + /* The listener for the local proxy */ + xfer->watcher = purple_input_add(sock, PURPLE_INPUT_READ, + jabber_si_xfer_bytestreams_send_connected_cb, xfer); } - /* Include the public IP (assuming that there is a port mapped somehow) */ - /* TODO: Check that it isn't the same as above and is a valid IP */ - public_ip = purple_network_get_my_ip(jsx->js->fd); - if (strcmp(public_ip, local_ip) != 0) - { - streamhost = xmlnode_new_child(query, "streamhost"); - xmlnode_set_attrib(streamhost, "jid", jid); - xmlnode_set_attrib(streamhost, "host", public_ip); - xmlnode_set_attrib(streamhost, "port", port); - } - - g_free(jid); - - /* The listener for the local proxy */ - xfer->watcher = purple_input_add(sock, PURPLE_INPUT_READ, - jabber_si_xfer_bytestreams_send_connected_cb, xfer); - /* insert proxies here */ ft_proxies = purple_account_get_string(xfer->account, "ft_proxies", NULL); if (ft_proxies) { @@ -806,11 +809,12 @@ g_snprintf(port, sizeof(port), "%hu", portnum); - purple_debug_info("jabber", "jabber_si_xfer_bytestreams_listen_cb() will be looking at jsx %p: jsx->streamhosts %p and ft_proxy_list[%i] %p", + purple_debug_info("jabber", "jabber_si_xfer_bytestreams_listen_cb() will be looking at jsx %p: jsx->streamhosts %p and ft_proxy_list[%i] %p\n", jsx, jsx->streamhosts, i, ft_proxy_list[i]); if(g_list_find_custom(jsx->streamhosts, ft_proxy_list[i], jabber_si_compare_jid) != NULL) continue; + streamhost_count++; streamhost = xmlnode_new_child(query, "streamhost"); xmlnode_set_attrib(streamhost, "jid", ft_proxy_list[i]); xmlnode_set_attrib(streamhost, "host", ft_proxy_list[i]); @@ -840,6 +844,7 @@ if(g_list_find_custom(jsx->streamhosts, sh->jid, jabber_si_compare_jid) != NULL) continue; + streamhost_count++; streamhost = xmlnode_new_child(query, "streamhost"); xmlnode_set_attrib(streamhost, "jid", sh->jid); xmlnode_set_attrib(streamhost, "host", sh->host); @@ -855,6 +860,14 @@ jsx->streamhosts = g_list_prepend(jsx->streamhosts, sh2); } + /* We have no way of transferring, cancel the transfer */ + if (streamhost_count == 0) { + jabber_iq_free(iq); + /* We should probably notify the target, but this really shouldn't ever happen */ + purple_xfer_cancel_local(xfer); + return; + } + jabber_iq_set_callback(iq, jabber_si_connect_proxy_cb, xfer); jabber_iq_send(iq); @@ -869,13 +882,14 @@ purple_xfer_ref(xfer); jsx = xfer->data; + + /* TODO: Should there be an option to not use the local host as a ft proxy? + * (to prevent revealing IP address, etc.) */ jsx->listen_data = purple_network_listen_range(0, 0, SOCK_STREAM, jabber_si_xfer_bytestreams_listen_cb, xfer); if (jsx->listen_data == NULL) { - purple_xfer_unref(xfer); - /* XXX: couldn't open a port, we're fscked */ - purple_xfer_cancel_local(xfer); - return; + /* We couldn't open a local port. Perhaps we can use a proxy. */ + jabber_si_xfer_bytestreams_listen_cb(-1, xfer); } } @@ -1213,9 +1227,6 @@ js = gc->proto_data; - if(!purple_find_buddy(gc->account, who) || !jabber_buddy_find(js, who, FALSE)) - return; - xfer = jabber_si_new_xfer(gc, who); if (file)
--- a/libpurple/protocols/jabber/xdata.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/jabber/xdata.c Thu Jun 26 09:07:56 2008 +0000 @@ -201,7 +201,7 @@ xmlnode *fn, *x; PurpleRequestFields *fields; PurpleRequestFieldGroup *group; - PurpleRequestField *field; + PurpleRequestField *field = NULL; char *title = NULL; char *instructions = NULL;
--- a/libpurple/protocols/msn/cmdproc.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/cmdproc.c Thu Jun 26 09:07:56 2008 +0000 @@ -132,6 +132,14 @@ data = g_realloc(data, len + trans->payload_len); memcpy(data + len, trans->payload, trans->payload_len); len += trans->payload_len; + + /* + * We're done with trans->payload. Free it so that the memory + * doesn't sit around in cmdproc->history. + */ + g_free(trans->payload); + trans->payload = NULL; + trans->payload_len = 0; } msn_servconn_write(servconn, data, len);
--- a/libpurple/protocols/msn/contact.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/contact.c Thu Jun 26 09:07:56 2008 +0000 @@ -1,5 +1,5 @@ /** - * @file contact.c + * @file contact.c * get MSN contacts via SOAP request * created by MaYuan<mayuan2006@gmail.com> * @@ -80,7 +80,7 @@ state->session = session; return state; -} +} void msn_callback_state_free(MsnCallbackState *state) @@ -217,7 +217,7 @@ g_return_if_fail(contact->session != NULL); g_return_if_fail(contact->session->user != NULL); g_return_if_fail(contact->session->user->passport != NULL); - + purple_debug_info("msnab","Creating an Address Book.\n"); body = g_strdup_printf(MSN_ADD_ADDRESSBOOK_TEMPLATE, contact->session->user->passport); @@ -247,7 +247,7 @@ user->membership_id[list] = atoi(member_id); } - msn_got_lst_user(session, user, 1 << list, NULL); + msn_got_lst_user(session, user, 1 << list, NULL); g_free(passport); g_free(type); @@ -269,7 +269,7 @@ char *lastchange_str = xmlnode_get_data(lastchange); xmlnode *membership; - purple_debug_info("msncl","last change: %s\n", lastchange_str); + purple_debug_info("msncl","last change: %s\n", lastchange_str); purple_account_set_string(session->account, "CLLastChange", lastchange_str); @@ -480,7 +480,7 @@ if (phone_type && !strcmp(phone_type, "ContactPhoneMobile")) { xmlnode *number; - + if ((number = xmlnode_get_child(contact_phone, "number"))) { xmlnode *messenger_enabled; char *is_messenger_enabled = NULL; @@ -489,8 +489,8 @@ mobile_number = xmlnode_get_data(number); if (mobile_number && - (messenger_enabled = xmlnode_get_child(contact_phone, "isMessengerEnabled")) - && (is_messenger_enabled = xmlnode_get_data(messenger_enabled)) + (messenger_enabled = xmlnode_get_child(contact_phone, "isMessengerEnabled")) + && (is_messenger_enabled = xmlnode_get_data(messenger_enabled)) && !strcmp(is_messenger_enabled, "true")) mobile = TRUE; @@ -679,7 +679,7 @@ gchar *errorcode = xmlnode_get_data(faultnode); purple_debug_info("MSNAB", "Error Code: %s\n", errorcode); - + if (g_str_equal(errorcode, "ABDoesNotExist")) { g_free(errorcode); return TRUE; @@ -823,7 +823,7 @@ if (resp != NULL) { MsnUserList *userlist = session->userlist; MsnUser *user; - + purple_debug_info("MSNCL","Contact added successfully\n"); // the code this block is replacing didn't send ADL for yahoo contacts, @@ -921,7 +921,7 @@ } void -msn_add_contact_to_group(MsnContact *contact, MsnCallbackState *state, +msn_add_contact_to_group(MsnContact *contact, MsnCallbackState *state, const char *passport, const char *groupId) { MsnUserList *userlist; @@ -934,11 +934,11 @@ g_return_if_fail(contact != NULL); g_return_if_fail(contact->session != NULL); g_return_if_fail(contact->session->userlist != NULL); - + userlist = contact->session->userlist; if (!strcmp(groupId, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(groupId, MSN_NON_IM_GROUP_ID)) { - + user = msn_userlist_find_add_user(userlist, passport, passport); if (state->action & MSN_ADD_BUDDY) { @@ -956,13 +956,13 @@ return; } - purple_debug_info("MSNCL", "Adding user %s to group %s\n", passport, + purple_debug_info("MSNCL", "Adding user %s to group %s\n", passport, msn_userlist_find_group_name(userlist, groupId)); user = msn_userlist_find_user(userlist, passport); if (user == NULL) { purple_debug_warning("MSNCL", "Unable to retrieve user %s from the userlist!\n", passport); - msn_callback_state_free(state); + msn_callback_state_free(state); return; /* guess this never happened! */ } @@ -1007,7 +1007,7 @@ /*delete a Contact*/ void msn_delete_contact(MsnContact *contact, const char *contactId) -{ +{ gchar *body = NULL; gchar *contact_id_xml = NULL ; MsnCallbackState *state; @@ -1045,7 +1045,7 @@ purple_debug_info("MSNCL", "Contact %s deleted successfully from group %s in the server, but failed in the local list\n", state->who, state->old_group_name); } } - + msn_callback_state_free(state); } @@ -1057,15 +1057,15 @@ MsnCallbackState *state; gchar *body, *contact_id_xml; const gchar *groupId; - + g_return_if_fail(passport != NULL); g_return_if_fail(group_name != NULL); g_return_if_fail(contact != NULL); g_return_if_fail(contact->session != NULL); g_return_if_fail(contact->session->userlist != NULL); - + userlist = contact->session->userlist; - + groupId = msn_userlist_find_group_id(userlist, group_name); if (groupId != NULL) { purple_debug_info("MSNCL", "Deleting user %s from group %s\n", passport, group_name); @@ -1073,9 +1073,9 @@ purple_debug_warning("MSNCL", "Unable to retrieve group id from group %s !\n", group_name); return; } - + user = msn_userlist_find_user(userlist, passport); - + if (user == NULL) { purple_debug_warning("MSNCL", "Unable to retrieve user from passport %s!\n", passport); return; @@ -1099,7 +1099,7 @@ xmlnode_from_str(body, -1)), MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, msn_del_contact_from_group_read_cb, state); - + g_free(contact_id_xml); g_free(body); } @@ -1198,7 +1198,7 @@ } else { /* list == MSN_LIST_AL || list == MSN_LIST_BL */ partner_scenario = MSN_PS_BLOCK_UNBLOCK; - + member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, passport); } @@ -1226,13 +1226,13 @@ g_return_if_fail(state != NULL); g_return_if_fail(state->session != NULL); g_return_if_fail(state->session->contact != NULL); - + if (resp != NULL) { purple_debug_info("MSN CL", "Contact %s added successfully to %s list on server!\n", state->who, MsnMemberRole[state->list_id]); if (state->list_id == MSN_LIST_RL) { MsnUser *user = msn_userlist_find_user(state->session->userlist, state->who); - + if (user != NULL) { msn_user_set_op(user, MSN_LIST_RL_OP); } @@ -1274,9 +1274,9 @@ member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, state->who); - body = g_strdup_printf(MSN_CONTACT_ADD_TO_LIST_TEMPLATE, + body = g_strdup_printf(MSN_CONTACT_ADD_TO_LIST_TEMPLATE, MsnSoapPartnerScenarioText[partner_scenario], - MsnMemberRole[list], + MsnMemberRole[list], member); msn_soap_message_send(contact->session, @@ -1323,9 +1323,9 @@ msn_group_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, gpointer data) { MsnCallbackState *state = data; - + purple_debug_info("MSNCL", "Group request successful.\n"); - + g_return_if_fail(state->session != NULL); g_return_if_fail(state->session->userlist != NULL); g_return_if_fail(state->session->contact != NULL); @@ -1338,13 +1338,13 @@ if (state) { MsnSession *session = state->session; MsnUserList *userlist = session->userlist; - + if (state->action & MSN_RENAME_GROUP) { msn_userlist_rename_group_id(session->userlist, state->guid, state->new_group_name); } - + if (state->action & MSN_ADD_GROUP) { /* the response is taken from http://telepathy.freedesktop.org/wiki/Pymsn/MSNP/ContactListActions @@ -1364,7 +1364,7 @@ state->who, state->new_group_name); } else if (state->action & MSN_MOVE_BUDDY) { - msn_add_contact_to_group(session->contact, state, state->who, guid); + msn_add_contact_to_group(session->contact, state, state->who, guid); g_free(guid); return; } @@ -1374,16 +1374,16 @@ state->new_group_name); } } - + if (state->action & MSN_DEL_GROUP) { GList *l; - + msn_userlist_remove_group_id(session->userlist, state->guid); for (l = userlist->users; l != NULL; l = l->next) { msn_user_remove_group_id( (MsnUser *)l->data, state->guid); } } - + msn_callback_state_free(state); } } @@ -1396,7 +1396,7 @@ g_return_if_fail(session != NULL); g_return_if_fail(group_name != NULL); - + purple_debug_info("MSNCL","Adding group %s to contact list.\n", group_name); if (state == NULL) { @@ -1429,13 +1429,13 @@ const gchar *guid; g_return_if_fail(session != NULL); - + g_return_if_fail(group_name != NULL); purple_debug_info("MSNCL","Deleting group %s from contact list\n", group_name); - + guid = msn_userlist_find_group_id(session->userlist, group_name); - - /* if group uid we need to del is NULL, + + /* if group uid we need to del is NULL, * we need to delete nothing */ if (guid == NULL) { @@ -1451,7 +1451,7 @@ state = msn_callback_state_new(session); msn_callback_state_set_action(state, MSN_DEL_GROUP); msn_callback_state_set_guid(state, guid); - + body = g_strdup_printf(MSN_GROUP_DEL_TEMPLATE, guid); msn_soap_message_send(session, @@ -1470,14 +1470,14 @@ gchar *body = NULL; const gchar * guid; MsnCallbackState *state; - + g_return_if_fail(session != NULL); g_return_if_fail(session->userlist != NULL); g_return_if_fail(old_group_name != NULL); g_return_if_fail(new_group_name != NULL); - + purple_debug_info("MSN CL", "Renaming group %s to %s.\n", old_group_name, new_group_name); - + guid = msn_userlist_find_group_id(session->userlist, old_group_name); if (guid == NULL) return; @@ -1492,10 +1492,10 @@ } msn_callback_state_set_action(state, MSN_RENAME_GROUP); - + body = g_markup_printf_escaped(MSN_GROUP_RENAME_TEMPLATE, guid, new_group_name); - + msn_soap_message_send(session, msn_soap_message_new(MSN_GROUP_RENAME_SOAP_ACTION, xmlnode_from_str(body, -1)),
--- a/libpurple/protocols/msn/contact.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/contact.h Thu Jun 26 09:07:56 2008 +0000 @@ -349,7 +349,7 @@ #define MSN_GROUP_RENAME_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupUpdate" #define MSN_GROUP_RENAME_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\"><soap:Header><ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\"><ApplicationId>09607671-1C32-421F-A6A6-CBFAA51AB5F4</ApplicationId><IsMigration>false</IsMigration><PartnerScenario>Timer</PartnerScenario></ABApplicationHeader><ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\"><ManagedGroupRequest>false</ManagedGroupRequest></ABAuthHeader></soap:Header><soap:Body><ABGroupUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\"><abId>00000000-0000-0000-0000-000000000000</abId><groups><Group><groupId>%s</groupId><groupInfo><name>%s</name></groupInfo><propertiesChanged>GroupName </propertiesChanged></Group></groups></ABGroupUpdate></soap:Body></soap:Envelope>" -typedef enum +typedef enum { MSN_ADD_BUDDY = 0x01, MSN_MOVE_BUDDY = 0x02, @@ -383,7 +383,7 @@ MsnSession *session; }; -typedef enum +typedef enum { MSN_PS_INITIAL, MSN_PS_SAVE_CONTACT, @@ -404,34 +404,34 @@ void msn_callback_state_set_uid(MsnCallbackState *state, const gchar *uid); void msn_callback_state_set_old_group_name(MsnCallbackState *state, const gchar *old_group_name); -void msn_callback_state_set_new_group_name(MsnCallbackState *state, +void msn_callback_state_set_new_group_name(MsnCallbackState *state, const gchar *new_group_name); void msn_callback_state_set_guid(MsnCallbackState *state, const gchar *guid); void msn_callback_state_set_list_id(MsnCallbackState *state, MsnListId list_id); -void msn_callback_state_set_action(MsnCallbackState *state, +void msn_callback_state_set_action(MsnCallbackState *state, MsnCallbackAction action); void msn_contact_connect(MsnContact *contact); -void msn_get_contact_list(MsnContact * contact, +void msn_get_contact_list(MsnContact * contact, const MsnSoapPartnerScenario partner_scenario, const char *update); -void msn_get_address_book(MsnContact *contact, +void msn_get_address_book(MsnContact *contact, const MsnSoapPartnerScenario partner_scenario, const char * update, const char * gupdate); /* contact SOAP operations */ void msn_update_contact(MsnContact *contact, const char* nickname); -void msn_add_contact(MsnContact *contact, MsnCallbackState *state, +void msn_add_contact(MsnContact *contact, MsnCallbackState *state, const char *passport); void msn_delete_contact(MsnContact *contact, const char *contactId); -void msn_add_contact_to_group(MsnContact *contact, MsnCallbackState *state, +void msn_add_contact_to_group(MsnContact *contact, MsnCallbackState *state, const char *passport, const char *groupId); -void msn_del_contact_from_group(MsnContact *contact, const char *passport, +void msn_del_contact_from_group(MsnContact *contact, const char *passport, const char *group_name); /* group operations */ -void msn_add_group(MsnSession *session, MsnCallbackState *state, +void msn_add_group(MsnSession *session, MsnCallbackState *state, const char* group_name); void msn_del_group(MsnSession *session, const gchar *group_name); void msn_contact_rename_group(MsnSession *session, const char *old_group_name,
--- a/libpurple/protocols/msn/dialog.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/dialog.c Thu Jun 26 09:07:56 2008 +0000 @@ -135,7 +135,7 @@ passport); } - purple_request_action(gc, NULL, msg, reason, PURPLE_DEFAULT_ACTION_NONE, + purple_request_action(gc, NULL, msg, reason, PURPLE_DEFAULT_ACTION_NONE, purple_connection_get_account(gc), data->who, NULL, data, 2, _("Yes"), G_CALLBACK(msn_add_cb),
--- a/libpurple/protocols/msn/error.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/error.c Thu Jun 26 09:07:56 2008 +0000 @@ -43,7 +43,7 @@ break; case 201: g_snprintf(msg, sizeof(msg), - _("Invalid e-mail address")); + _("Invalid email address")); break; case 205: g_snprintf(msg, sizeof(msg), _("User does not exist")); @@ -259,7 +259,7 @@ { char buf[MSN_BUF_LEN]; gboolean debug; - + g_snprintf(buf, sizeof(buf), _("MSN Error: %s\n"), msn_error_get_text(type, &debug)); if (debug)
--- a/libpurple/protocols/msn/msg.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/msg.c Thu Jun 26 09:07:56 2008 +0000 @@ -151,9 +151,9 @@ MsnMessage *msg; msg = msn_message_new(MSN_MSG_NUDGE); - msn_message_set_content_type(msg, "text/x-msnmsgr-datacast\r\n"); + msn_message_set_content_type(msg, "text/x-msnmsgr-datacast"); msn_message_set_flag(msg, 'N'); - msn_message_set_attr(msg,"ID","1\r\n"); + msn_message_set_bin_data(msg, "ID: 1\r\n", 7); return msg; }
--- a/libpurple/protocols/msn/msn.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Thu Jun 26 09:07:56 2008 +0000 @@ -32,6 +32,7 @@ #include "pluginpref.h" #include "prefs.h" #include "session.h" +#include "smiley.h" #include "state.h" #include "util.h" #include "cmds.h" @@ -82,6 +83,12 @@ time_t when; } MsnIMData; +typedef struct +{ + char *smile; + MsnObject *obj; +} MsnEmoticon; + static const char * msn_normalize(const PurpleAccount *account, const char *str) { @@ -115,6 +122,7 @@ return FALSE; msn_switchboard_send_msg(swboard, msg, TRUE); + msn_message_destroy(msg); return TRUE; } @@ -132,6 +140,17 @@ return list; } +static GHashTable * +msn_get_account_text_table(PurpleAccount *unused) +{ + GHashTable *table; + + table = g_hash_table_new(g_str_hash, g_str_equal); + + g_hash_table_insert(table, "login_label", (gpointer)_("Email Address...")); + + return table; +} static PurpleCmdRet msn_cmd_nudge(PurpleConversation *conv, const gchar *cmd, gchar **args, gchar **error, void *data) @@ -884,7 +903,8 @@ session = msn_session_new(account); gc->proto_data = session; - gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_FORMATTING_WBFO | PURPLE_CONNECTION_NO_BGCOLOR | PURPLE_CONNECTION_NO_FONTSIZE | PURPLE_CONNECTION_NO_URLDESC; + gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_FORMATTING_WBFO | PURPLE_CONNECTION_NO_BGCOLOR | + PURPLE_CONNECTION_NO_FONTSIZE | PURPLE_CONNECTION_NO_URLDESC | PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; msn_session_set_login_step(session, MSN_LOGIN_STEP_START); @@ -925,6 +945,97 @@ return FALSE; } +static GString* +msn_msg_emoticon_add(GString *current, MsnEmoticon *emoticon) +{ + MsnObject *obj; + char *strobj; + + if (emoticon == NULL) + return current; + + obj = emoticon->obj; + + if (!obj) + return current; + + strobj = msn_object_to_string(obj); + + if (current) + g_string_append_printf(current, "\t%s\t%s", + emoticon->smile, strobj); + else { + current = g_string_new(""); + g_string_printf(current,"%s\t%s", + emoticon->smile, strobj); + } + + g_free(strobj); + + return current; +} + +static void +msn_send_emoticons(MsnSwitchBoard *swboard, GString *body) +{ + MsnMessage *msg; + + g_return_if_fail(body != NULL); + + msg = msn_message_new(MSN_MSG_SLP); + msn_message_set_content_type(msg, "text/x-mms-emoticon"); + msn_message_set_flag(msg, 'N'); + msn_message_set_bin_data(msg, body->str, body->len); + + msn_switchboard_send_msg(swboard, msg, TRUE); + msn_message_destroy(msg); +} + +static void msn_emoticon_destroy(MsnEmoticon *emoticon) +{ + if (emoticon->obj) + msn_object_destroy(emoticon->obj); + g_free(emoticon->smile); + g_free(emoticon); +} + +static GSList* msn_msg_grab_emoticons(const char *msg, const char *username) +{ + GSList *list; + GList *smileys; + PurpleSmiley *smiley; + PurpleStoredImage *img; + char *ptr; + MsnEmoticon *emoticon; + int length; + + list = NULL; + smileys = purple_smileys_get_all(); + length = strlen(msg); + + for (; smileys; smileys = g_list_delete_link(smileys, smileys)) { + smiley = smileys->data; + + ptr = g_strstr_len(msg, length, purple_smiley_get_shortcut(smiley)); + + if (!ptr) + continue; + + img = purple_smiley_get_stored_image(smiley); + + emoticon = g_new0(MsnEmoticon, 1); + emoticon->smile = g_strdup(purple_smiley_get_shortcut(smiley)); + emoticon->obj = msn_object_new_from_image(img, + purple_imgstore_get_filename(img), + username, MSN_OBJECT_EMOTICON); + + purple_imgstore_unref(img); + list = g_slist_prepend(list, emoticon); + } + + return list; +} + static int msn_send_im(PurpleConnection *gc, const char *who, const char *message, PurpleMessageFlags flags) @@ -934,9 +1045,11 @@ MsnMessage *msg; char *msgformat; char *msgtext; + const char *username; purple_debug_info("MSNP14","send IM {%s} to %s\n",message,who); account = purple_connection_get_account(gc); + username = purple_account_get_username(account); if (buddy) { PurplePresence *p = purple_buddy_get_presence(buddy); @@ -969,10 +1082,13 @@ g_free(msgtext); purple_debug_info("MSNP14","prepare to send online Message\n"); - if (g_ascii_strcasecmp(who, purple_account_get_username(account))) + if (g_ascii_strcasecmp(who, username)) { MsnSession *session; MsnSwitchBoard *swboard; + MsnEmoticon *smile; + GSList *smileys; + GString *emoticons = NULL; session = gc->proto_data; if(msn_user_is_yahoo(account,who)){ @@ -982,6 +1098,19 @@ }else{ purple_debug_info("MSNP14","send via switchboard\n"); swboard = msn_session_get_swboard(session, who, MSN_SB_FLAG_IM); + smileys = msn_msg_grab_emoticons(message, username); + while (smileys) { + smile = (MsnEmoticon*)smileys->data; + emoticons = msn_msg_emoticon_add(emoticons, smile); + msn_emoticon_destroy(smile); + smileys = g_slist_delete_link(smileys, smileys); + } + + if (emoticons) { + msn_send_emoticons(swboard, emoticons); + g_string_free(emoticons, TRUE); + } + msn_switchboard_send_msg(swboard, msg, TRUE); } } @@ -1422,7 +1551,7 @@ g_free(msgformat); g_free(msgtext); - serv_got_chat_in(gc, id, purple_account_get_username(account), 0, + serv_got_chat_in(gc, id, purple_account_get_username(account), flags, message, time(NULL)); return 0; @@ -1465,10 +1594,10 @@ MsnSession *session; session = gc->proto_data; - + g_return_if_fail(session != NULL); g_return_if_fail(session->userlist != NULL); - + if (msn_userlist_find_group_with_name(session->userlist, old_name) != NULL) { msn_contact_rename_group(session, old_name, group->name); @@ -1548,7 +1677,7 @@ purple_debug_info("MSN", "This group can't be removed, returning.\n"); return ; } - + msn_del_group(session, group->name); } @@ -1823,7 +1952,7 @@ MSN_GOT_INFO_GET_FIELD("Home address", _("Home Address")); MSN_GOT_INFO_GET_FIELD("Personal Mobile", _("Personal Mobile")); MSN_GOT_INFO_GET_FIELD("Home fax", _("Home Fax")); - MSN_GOT_INFO_GET_FIELD("Personal e-mail", _("Personal E-Mail")); + MSN_GOT_INFO_GET_FIELD("Personal email", _("Personal Email")); MSN_GOT_INFO_GET_FIELD("Personal IM", _("Personal IM")); MSN_GOT_INFO_GET_FIELD("Birthday", _("Birthday")); MSN_GOT_INFO_GET_FIELD("Anniversary", _("Anniversary")); @@ -1854,7 +1983,7 @@ MSN_GOT_INFO_GET_FIELD("Work mobile", _("Work Mobile")); MSN_GOT_INFO_GET_FIELD("Work pager", _("Work Pager")); MSN_GOT_INFO_GET_FIELD("Work fax", _("Work Fax")); - MSN_GOT_INFO_GET_FIELD("Work e-mail", _("Work E-Mail")); + MSN_GOT_INFO_GET_FIELD("Work email", _("Work Email")); MSN_GOT_INFO_GET_FIELD("Work IM", _("Work IM")); MSN_GOT_INFO_GET_FIELD("Start date", _("Start Date")); MSN_GOT_INFO_GET_FIELD("Notes", _("Notes")); @@ -2307,8 +2436,8 @@ msn_send_attention, /* send_attention */ msn_attention_types, /* attention_types */ - /* padding */ - NULL + sizeof(PurplePluginProtocolInfo), /* struct_size */ + msn_get_account_text_table, /* get_account_text_table */ }; static PurplePluginInfo info =
--- a/libpurple/protocols/msn/msnutils.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/msnutils.c Thu Jun 26 09:07:56 2008 +0000 @@ -169,7 +169,7 @@ gchar *base64, *retval; g_return_val_if_fail(str != NULL, NULL); - + base64 = purple_base64_encode((guchar *)str, strlen(str)); retval = g_strdup_printf("=?utf-8?B?%s?=", base64); g_free(base64); @@ -509,7 +509,7 @@ *This algorithm reference with http://msnpiki.msnfanatic.com/index.php/MSNP11:Challenges */ #define BUFSIZE 256 -void +void msn_handle_chl(char *input, char *output) { PurpleCipher *cipher; @@ -538,7 +538,7 @@ /* Split it into four integers */ md5Parts = (unsigned int *)md5Hash; - for(i=0; i<4; i++){ + for(i=0; i<4; i++){ /* adjust endianess */ md5Parts[i] = GUINT_TO_LE(md5Parts[i]); @@ -578,7 +578,7 @@ /* adjust endianness */ for(i=0; i<4; i++) - newHashParts[i] = GUINT_TO_LE(newHashParts[i]); + newHashParts[i] = GUINT_TO_LE(newHashParts[i]); /* make a string of the parts */ newHash = (unsigned char *)newHashParts;
--- a/libpurple/protocols/msn/notification.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/notification.c Thu Jun 26 09:07:56 2008 +0000 @@ -34,15 +34,6 @@ static MsnTable *cbs_table; -/**************************************************************************** - * Local Function Prototype - ****************************************************************************/ - -static void msn_notification_post_adl(MsnCmdProc *cmdproc, const char *payload, int payload_len); -static void -msn_add_contact_xml(MsnSession *session, xmlnode *mlNode,const char *passport, - MsnListOp list_op, MsnUserType type); - /************************************************************************** * Main **************************************************************************/ @@ -336,7 +327,7 @@ } /* - * Windows Live Messenger 8.0 + * Windows Live Messenger 8.0 * Notice :CVR String discriminate! * reference of http://www.microsoft.com/globaldev/reference/oslocversion.mspx * to see the Local ID @@ -430,7 +421,7 @@ char *payload; gsize payload_len; int type; - + cmdproc = session->notification->cmdproc; g_return_if_fail(msg != NULL); payload = msn_message_gen_payload(msg, &payload_len); @@ -649,7 +640,7 @@ { MsnTransaction *trans; purple_debug_info("MSN Notification","Sending ADL with payload: %s\n", payload); - trans = msn_transaction_new(cmdproc, "ADL","%" G_GSIZE_FORMAT, payload_len); + trans = msn_transaction_new(cmdproc, "ADL", "%i", payload_len); msn_transaction_set_payload(trans, payload, payload_len); msn_cmdproc_send_trans(cmdproc, trans); } @@ -709,8 +700,8 @@ } display_name = purple_connection_get_display_name(session->account->gc); - if (display_name - && strcmp(display_name, + if (display_name + && strcmp(display_name, purple_account_get_username(session->account))) { msn_act_id(session->account->gc, display_name); } @@ -755,15 +746,15 @@ purple_debug_misc("MSN Notification", "Parsing received ADL XML data\n"); g_return_if_fail(payload != NULL); - + root = xmlnode_from_str(payload, (gssize) len); - + if (root == NULL) { purple_debug_info("MSN Notification", "Invalid XML!\n"); return; } for (domain_node = xmlnode_get_child(root, "d"); domain_node; domain_node = xmlnode_get_next_twin(domain_node)) { - const gchar * domain = NULL; + const gchar * domain = NULL; xmlnode *contact_node = NULL; domain = xmlnode_get_attrib(domain_node, "n"); @@ -1024,13 +1015,13 @@ MsnSlpLink *slplink; MsnUser *user; + /* Tell libpurple that the user has signed off */ user = msn_userlist_find_user(cmdproc->session->userlist, cmd->params[0]); - user->status = "offline"; msn_user_update(user); + /* If we have an open MsnSlpLink with the user then close it */ slplink = msn_session_find_slplink(cmdproc->session, cmd->params[0]); - if (slplink != NULL) msn_slplink_destroy(slplink); @@ -1300,7 +1291,7 @@ type = cmd->params[1]; if (!strcmp(type, "MFN")) { friendlyname = purple_url_decode(cmd->params[2]); - + msn_update_contact(session->contact, friendlyname); purple_connection_set_display_name( @@ -1649,12 +1640,12 @@ purple_debug_error("MSN","Unable to parse GCF payload into a XML tree"); return; } - + buf = xmlnode_to_formatted_str(root, &xmllen); /* get the payload content */ purple_debug_info("MSNP14","GCF command payload:\n%.*s\n", xmllen, buf); - + g_free(buf); xmlnode_free(root); } @@ -1698,7 +1689,7 @@ passport = cmd->params[0]; user = msn_userlist_find_user(session->userlist, passport); - + psm_str = msn_get_psm(cmd->payload,len); msn_user_set_statusline(user, psm_str); g_free(psm_str); @@ -2005,7 +1996,7 @@ { case 1: minutes = atoi(g_hash_table_lookup(table, "Arg1")); - g_snprintf(buf, sizeof(buf), dngettext(PACKAGE, + g_snprintf(buf, sizeof(buf), dngettext(PACKAGE, "The MSN server will shut down for maintenance " "in %d minute. You will automatically be " "signed out at that time. Please finish any " @@ -2032,7 +2023,7 @@ void msn_notification_add_buddy_to_list(MsnNotification *notification, MsnListId list_id, - const char *who) + const char *who) { MsnCmdProc *cmdproc; MsnListOp list_op = 1 << list_id; @@ -2045,12 +2036,12 @@ adl_node = xmlnode_new("ml"); adl_node->child = NULL; - msn_add_contact_xml(notification->session, adl_node, who, list_op, + msn_add_contact_xml(notification->session, adl_node, who, list_op, MSN_USER_TYPE_PASSPORT); payload = xmlnode_to_str(adl_node,&payload_len); xmlnode_free(adl_node); - + msn_notification_post_adl(notification->servconn->cmdproc, payload,payload_len); g_free(payload); @@ -2155,11 +2146,11 @@ /*initial OIM notification*/ msn_table_add_msg_type(cbs_table, "text/x-msmsgsinitialmdatanotification", - initial_mdata_msg); + initial_mdata_msg); /*OIM notification when user online*/ msn_table_add_msg_type(cbs_table, "text/x-msmsgsoimnotification", - initial_mdata_msg); + initial_mdata_msg); msn_table_add_msg_type(cbs_table, "text/x-msmsgsinitialemailnotification", initial_email_msg);
--- a/libpurple/protocols/msn/notification.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/notification.h Thu Jun 26 09:07:56 2008 +0000 @@ -30,7 +30,7 @@ #define MSNP13_WLM_PRODUCT_ID "PROD01065C%ZFN6F" #define MSNP10_PRODUCT_KEY "VT6PX?UQTM4WM%YR" -#define MSNP10_PRODUCT_ID "PROD0038W!61ZTF9" +#define MSNP10_PRODUCT_ID "PROD0038W!61ZTF9" typedef struct _MsnNotification MsnNotification; @@ -41,6 +41,11 @@ struct _MsnNotification { MsnSession *session; + + /** + * This is a convenience pointer that always points to + * servconn->cmdproc + */ MsnCmdProc *cmdproc; MsnServConn *servconn; @@ -71,7 +76,7 @@ * Closes a notification. * * It's first closed, and then disconnected. - * + * * @param notification The notification object to close. */ void msn_notification_close(MsnNotification *notification);
--- a/libpurple/protocols/msn/object.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/object.c Thu Jun 26 09:07:56 2008 +0000 @@ -23,6 +23,10 @@ */ #include "object.h" #include "debug.h" +/* Sha1 stuff */ +#include "cipher.h" +/* Base64 stuff */ +#include "util.h" #define GET_STRING_TAG(field, id) \ if ((tag = strstr(str, id "=\"")) != NULL) \ @@ -104,6 +108,74 @@ return obj; } +MsnObject* +msn_object_new_from_image(PurpleStoredImage *img, const char *location, + const char *creator, MsnObjectType type) +{ + MsnObject *msnobj; + + PurpleCipherContext *ctx; + char *buf; + gconstpointer data; + size_t size; + char *base64; + unsigned char digest[20]; + + msnobj = NULL; + + if (img == NULL) + return msnobj; + + size = purple_imgstore_get_size(img); + data = purple_imgstore_get_data(img); + + /* New object */ + msnobj = msn_object_new(); + msn_object_set_local(msnobj); + msn_object_set_type(msnobj, type); + msn_object_set_location(msnobj, location); + msn_object_set_creator(msnobj, creator); + + msn_object_set_image(msnobj, img); + + /* Compute the SHA1D field. */ + memset(digest, 0, sizeof(digest)); + + ctx = purple_cipher_context_new_by_name("sha1", NULL); + purple_cipher_context_append(ctx, data, size); + purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); + + base64 = purple_base64_encode(digest, sizeof(digest)); + msn_object_set_sha1d(msnobj, base64); + g_free(base64); + + msn_object_set_size(msnobj, size); + + /* Compute the SHA1C field. */ + buf = g_strdup_printf( + "Creator%sSize%dType%dLocation%sFriendly%sSHA1D%s", + msn_object_get_creator(msnobj), + msn_object_get_size(msnobj), + msn_object_get_type(msnobj), + msn_object_get_location(msnobj), + msn_object_get_friendly(msnobj), + msn_object_get_sha1d(msnobj)); + + memset(digest, 0, sizeof(digest)); + + purple_cipher_context_reset(ctx, NULL); + purple_cipher_context_append(ctx, (const guchar *)buf, strlen(buf)); + purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); + purple_cipher_context_destroy(ctx); + g_free(buf); + + base64 = purple_base64_encode(digest, sizeof(digest)); + msn_object_set_sha1c(msnobj, base64); + g_free(base64); + + return msnobj; +} + void msn_object_destroy(MsnObject *obj) {
--- a/libpurple/protocols/msn/object.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/object.h Thu Jun 26 09:07:56 2008 +0000 @@ -71,6 +71,19 @@ MsnObject *msn_object_new_from_string(const char *str); /** + * Creates a MsnObject structure from a stored image + * + * @param img The image associated to object + * @param location The object location as stored in MsnObject + * @param creator The creator of the object + * @param type The type of the object + * + * @return A new MsnObject structure + */ +MsnObject *msn_object_new_from_image(PurpleStoredImage *img, + const char *location, const char *creator, MsnObjectType type); + +/** * Destroys an MsnObject structure. * * @param obj The object structure.
--- a/libpurple/protocols/msn/oim.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/oim.c Thu Jun 26 09:07:56 2008 +0000 @@ -1,5 +1,5 @@ /** - * @file oim.c + * @file oim.c * get and send MSN offline Instant Message via SOAP request * Author * MaYuan<mayuan2006@gmail.com> @@ -91,7 +91,7 @@ const char* to_member, const char *msg) { MsnOimSendReq *request; - + request = g_new0(MsnOimSendReq, 1); request->from_member = g_strdup(from_member); request->friendname = g_strdup(friendname); @@ -109,7 +109,7 @@ g_free(req->friendname); g_free(req->to_member); g_free(req->oim_msg); - + g_free(req); } @@ -121,10 +121,10 @@ msn_oim_msg_to_str(MsnOim *oim, const char *body) { char *oim_body,*oim_base64; - - purple_debug_info("MSN OIM","encode OIM Message...\n"); + + purple_debug_info("MSN OIM","encode OIM Message...\n"); oim_base64 = purple_base64_encode((const guchar *)body, strlen(body)); - purple_debug_info("MSN OIM","encoded base64 body:{%s}\n",oim_base64); + purple_debug_info("MSN OIM","encoded base64 body:{%s}\n",oim_base64); oim_body = g_strdup_printf(MSN_OIM_MSG_TEMPLATE, oim->run_id,oim->send_seq,oim_base64); g_free(oim_base64); @@ -213,7 +213,7 @@ } /*post send single message request to oim server*/ -void +void msn_oim_send_msg(MsnOim *oim) { MsnOimSendReq *oim_request; @@ -333,7 +333,7 @@ gboolean offset_positive = TRUE; int tzhrs; int tzmins; - + for (t.tm_mon = 0; months[t.tm_mon] != NULL && strcmp(months[t.tm_mon], month_str) != 0; t.tm_mon++); @@ -462,19 +462,22 @@ } } -static void -msn_parse_oim_xml(MsnOim *oim, xmlnode *node) +/* parse the oim XML data + * and post it to the soap server to get the Offline Message + * */ +void +msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg) { - xmlnode *mNode; + xmlnode *node, *mNode; xmlnode *iu_node; MsnSession *session = oim->session; - g_return_if_fail(node != NULL); + purple_debug_info("MSNP14:OIM", "%s\n", xmlmsg); + node = xmlnode_from_str(xmlmsg, -1); if (strcmp(node->name, "MD") != 0) { - char *xmlmsg = xmlnode_to_str(node, NULL); purple_debug_info("msnoim", "WTF is this? %s\n", xmlmsg); - g_free(xmlmsg); + xmlnode_free(node); return; } @@ -525,27 +528,8 @@ g_free(rtime); g_free(nickname); } -} -/* parse the oim XML data - * and post it to the soap server to get the Offline Message - * */ -void -msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg) -{ - xmlnode *node; - - purple_debug_info("MSNP14:OIM", "%s\n", xmlmsg); - - if (!strcmp(xmlmsg, "too-large")) { - /* Too many OIM's to send via NS, so we need to request them - * via SOAP. */ - purple_debug_info("msnoim", "too many OIMs, not supported yet\n"); - } else { - node = xmlnode_from_str(xmlmsg, -1); - msn_parse_oim_xml(oim, node); - xmlnode_free(node); - } + xmlnode_free(node); } /*Post to get the Offline Instant Message*/
--- a/libpurple/protocols/msn/oim.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/oim.h Thu Jun 26 09:07:56 2008 +0000 @@ -1,7 +1,7 @@ /** * @file oim.h Header file for oim.c * Author - * MaYuan<mayuan2006@gmail.com> + * MaYuan<mayuan2006@gmail.com> * purple * * Purple is the legal property of its developers, whose names are too numerous @@ -127,4 +127,3 @@ void msn_oim_send_msg(MsnOim *oim); #endif/* _MSN_OIM_H_*/ -/*endof oim.h*/
--- a/libpurple/protocols/msn/servconn.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/servconn.c Thu Jun 26 09:07:56 2008 +0000 @@ -396,15 +396,15 @@ if (len <= 0) { switch (errno) { - case 0: + case 0: case EBADF: case EAGAIN: return; - + default: purple_debug_error("msn", "servconn read error," "len: %d, errno: %d, error: %s\n", len, errno, g_strerror(errno)); - msn_servconn_got_error(servconn, + msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); return; }
--- a/libpurple/protocols/msn/session.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/session.h Thu Jun 26 09:07:56 2008 +0000 @@ -104,7 +104,6 @@ int servconns_count; /**< The count of server connections. */ GList *switches; /**< The list of all the switchboards. */ - GList *directconns; /**< The list of all the directconnections. */ GList *slplinks; /**< The list of all the slplinks. */ /*psm info*/
--- a/libpurple/protocols/msn/slp.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/slp.c Thu Jun 26 09:07:56 2008 +0000 @@ -31,6 +31,8 @@ #include "user.h" #include "switchboard.h" +#include "smiley.h" + /* ms to delay between sending buddy icon requests to the server. */ #define BUDDY_ICON_DELAY 20000 /*debug SLP*/ @@ -278,23 +280,32 @@ type = msn_object_get_type(obj); g_free(msnobj_data); - if (!(type == MSN_OBJECT_USERTILE)) + if ((type != MSN_OBJECT_USERTILE) && (type != MSN_OBJECT_EMOTICON)) { purple_debug_error("msn", "Wrong object?\n"); msn_object_destroy(obj); g_return_if_reached(); } - img = msn_object_get_image(obj); + if (type == MSN_OBJECT_EMOTICON) { + char *path; + path = g_build_filename(purple_smileys_get_storing_dir(), + obj->location, NULL); + img = purple_imgstore_new_from_file(path); + g_free(path); + } else { + img = msn_object_get_image(obj); + if (img) + purple_imgstore_ref(img); + } + msn_object_destroy(obj); + if (img == NULL) { purple_debug_error("msn", "Wrong object.\n"); - msn_object_destroy(obj); g_return_if_reached(); } - msn_object_destroy(obj); - slpsession = msn_slplink_find_slp_session(slplink, slpcall->session_id); @@ -319,6 +330,7 @@ #endif msn_slpmsg_set_image(slpmsg, img); msn_slplink_queue_slpmsg(slplink, slpmsg); + purple_imgstore_unref(img); } else if (!strcmp(euf_guid, "5D3E02AB-6190-11D3-BBBB-00C04F795683")) { @@ -935,15 +947,15 @@ msn_release_buddy_icon_request_timeout(gpointer data) { MsnUserList *userlist = (MsnUserList *)data; - + /* Free one window slot */ - userlist->buddy_icon_window++; - + userlist->buddy_icon_window++; + /* Clear the tag for our former request timer */ userlist->buddy_icon_request_timer = 0; - + msn_release_buddy_icon_request(userlist); - + return FALSE; } @@ -1050,7 +1062,7 @@ } /* Wait BUDDY_ICON_DELAY ms before freeing our window slot and requesting the next icon. */ - userlist->buddy_icon_request_timer = purple_timeout_add(BUDDY_ICON_DELAY, + userlist->buddy_icon_request_timer = purple_timeout_add(BUDDY_ICON_DELAY, msn_release_buddy_icon_request_timeout, userlist); }
--- a/libpurple/protocols/msn/slplink.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/slplink.c Thu Jun 26 09:07:56 2008 +0000 @@ -58,7 +58,7 @@ * Main **************************************************************************/ -MsnSlpLink * +static MsnSlpLink * msn_slplink_new(MsnSession *session, const char *username) { MsnSlpLink *slplink;
--- a/libpurple/protocols/msn/slplink.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/slplink.h Thu Jun 26 09:07:56 2008 +0000 @@ -59,11 +59,21 @@ GQueue *slp_msg_queue; }; -MsnSlpLink *msn_slplink_new(MsnSession *session, const char *username); void msn_slplink_destroy(MsnSlpLink *slplink); + +/** + * @return An MsnSlpLink for the given user, or NULL if there is no + * existing MsnSlpLink. + */ MsnSlpLink *msn_session_find_slplink(MsnSession *session, const char *who); + +/** + * @return An MsnSlpLink for the given user. One will be created if + * it does not already exist. + */ MsnSlpLink *msn_session_get_slplink(MsnSession *session, const char *username); + MsnSlpSession *msn_slplink_find_slp_session(MsnSlpLink *slplink, long session_id); void msn_slplink_add_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall);
--- a/libpurple/protocols/msn/soap.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/soap.c Thu Jun 26 09:07:56 2008 +0000 @@ -1,5 +1,5 @@ /** - * @file soap.c + * @file soap.c * SOAP connection related process * Author * MaYuan<mayuan2006@gmail.com> @@ -107,7 +107,7 @@ /*ssl soap error callback*/ static void msn_soap_error_cb(PurpleSslConnection *gsc, PurpleSslErrorType error, void *data) -{ +{ MsnSoapConn * soapconn = data; g_return_if_fail(data != NULL); @@ -159,7 +159,7 @@ if (*handler > 0) { purple_input_remove(*handler); *handler = 0; - } + } #ifdef MSN_SOAP_DEBUG else { purple_debug_misc("MSN SOAP", "Handler inactive, not removing\n"); @@ -250,7 +250,7 @@ { gssize len, requested_len; char temp_buf[MSN_SOAP_READ_BUFF_SIZE]; - + if ( soapconn->need_to_read == 0 || soapconn->need_to_read > MSN_SOAP_READ_BUFF_SIZE) { requested_len = MSN_SOAP_READ_BUFF_SIZE; } @@ -264,7 +264,7 @@ len = read(soapconn->fd, temp_buf, requested_len); } - + if ( len <= 0 ) { switch (errno) { @@ -298,7 +298,7 @@ soapconn->read_len + len + 1); exit(EXIT_FAILURE); } - + } #if defined(MSN_SOAP_DEBUG) @@ -312,7 +312,7 @@ } /*read the whole SOAP server response*/ -static void +static void msn_soap_read_cb(gpointer data, gint source, PurpleInputCondition cond) { MsnSoapConn *soapconn = data; @@ -331,10 +331,10 @@ session = soapconn->session; g_return_if_fail(session != NULL); - + /*read the request header*/ len = msn_soap_read(soapconn); - + if ( len < 0 ) return; @@ -342,7 +342,7 @@ return; } - if ( (strstr(soapconn->read_buf, "HTTP/1.1 302") != NULL) + if ( (strstr(soapconn->read_buf, "HTTP/1.1 302") != NULL) || ( strstr(soapconn->read_buf, "HTTP/1.1 301") != NULL ) ) { /* Redirect. */ @@ -382,14 +382,14 @@ g_free(soapconn->login_host); soapconn->login_host = g_strdup(location); - + msn_soap_close_handler( &(soapconn->input_handler) ); msn_soap_close(soapconn); if (purple_ssl_connect(session->account, soapconn->login_host, PURPLE_SSL_DEFAULT_PORT, msn_soap_connect_cb, msn_soap_error_cb, soapconn) == NULL) { - + purple_debug_error("MSN SOAP", "Unable to connect to %s !\n", soapconn->login_host); // dispatch next request msn_soap_post(soapconn, NULL); @@ -429,7 +429,7 @@ g_free(soapconn->login_host); soapconn->login_host = g_strdup(location); - + msn_soap_close_handler( &(soapconn->input_handler) ); msn_soap_close(soapconn); @@ -489,7 +489,7 @@ } } } - + } else if (strstr(soapconn->read_buf, "HTTP/1.1 503 Service Unavailable")) { @@ -539,11 +539,11 @@ #if defined(MSN_SOAP_DEBUG) && !defined(_WIN32) node = xmlnode_from_str(soapconn->body, soapconn->body_len); - + if (node != NULL) { formattedxml = xmlnode_to_formatted_str(node, NULL); http_headers = g_strndup(soapconn->read_buf, soapconn->body - soapconn->read_buf); - + purple_debug_info("MSN SOAP","Data with XML payload received from the SOAP server:\n%s%s\n", http_headers, formattedxml); g_free(http_headers); g_free(formattedxml); @@ -572,22 +572,22 @@ if ( soapconn->read_cb != NULL ) { soapconn_is_valid = soapconn->read_cb(soapconn); } - + if (!soapconn_is_valid) { return; } /* dispatch next request in queue */ msn_soap_post(soapconn, NULL); - } + } return; } -void +void msn_soap_free_read_buf(MsnSoapConn *soapconn) { g_return_if_fail(soapconn != NULL); - + if (soapconn->read_buf) { g_free(soapconn->read_buf); } @@ -626,7 +626,7 @@ } total_len = strlen(soapconn->write_buf); - /* + /* * write the content to SSL server, */ len = purple_ssl_write(soapconn->gsc, @@ -690,7 +690,7 @@ soapconn->write_buf = write_buf; soapconn->written_len = 0; soapconn->written_cb = written_cb; - + msn_soap_free_read_buf(soapconn); /*clear the read buffer first*/ @@ -748,7 +748,7 @@ { g_return_if_fail(soapconn != NULL); g_return_if_fail(soapconn->soap_queue != NULL); - + if (soapconn->step == MSN_SOAP_CONNECTED || soapconn->step == MSN_SOAP_CONNECTED_IDLE) { @@ -868,7 +868,7 @@ else purple_debug_info("MSN SOAP","Failed to parse SOAP request being sent:\n%s\n", request_str); #endif - + /*free read buffer*/ // msn_soap_free_read_buf(soapconn); /*post it to server*/
--- a/libpurple/protocols/msn/soap.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/soap.h Thu Jun 26 09:07:56 2008 +0000 @@ -66,7 +66,7 @@ char *soap_action; char *body; - + gpointer data_cb; MsnSoapReadCbFunction read_cb; MsnSoapWrittenCbFunction written_cb;
--- a/libpurple/protocols/msn/soap2.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/soap2.c Thu Jun 26 09:07:56 2008 +0000 @@ -82,6 +82,7 @@ static void msn_soap_request_destroy(MsnSoapRequest *req); static void msn_soap_connection_sanitize(MsnSoapConnection *conn, gboolean disconnect); +static void msn_soap_process(MsnSoapConnection *conn); static gboolean msn_soap_cleanup_each(gpointer key, gpointer value, gpointer data) @@ -264,45 +265,53 @@ msn_soap_read_cb(gpointer data, gint fd, PurpleInputCondition cond) { MsnSoapConnection *conn = data; - int count = 0, cnt; - char buf[8192]; - char *linebreak; - char *cursor; - gboolean handled = FALSE; + int count = 0, cnt, perrno; + /* This buffer needs to be larger than any packets received from + login.live.com or Adium will fail to receive the packet + (something weird with the login.live.com server). With NSS it works + fine, so I believe it's some bug with OS X */ + char buf[16 * 1024]; if (conn->message == NULL) { conn->message = msn_soap_message_new(NULL, NULL); } + if (conn->buf == NULL) { + conn->buf = g_string_new_len(buf, 0); + } + while ((cnt = purple_ssl_read(conn->ssl, buf, sizeof(buf))) > 0) { purple_debug_info("soap", "read %d bytes\n", cnt); count += cnt; - if (conn->buf == NULL) { - conn->buf = g_string_new_len(buf, cnt); - } else { - g_string_append_len(conn->buf, buf, cnt); - } + g_string_append_len(conn->buf, buf, cnt); } - if (cnt < 0) { - if (errno != EAGAIN) { - purple_debug_info("soap", "read: %s\n", g_strerror(errno)); + /* && count is necessary for Adium, on OS X the last read always + return an error, so we want to proceed anyway. See #5212 for + discussion on this and the above buffer size issues */ + if(cnt < 0 && errno == EAGAIN && count == 0) + return; + + // msn_soap_process could alter errno + perrno = errno; + msn_soap_process(conn); + + if (cnt < 0 && perrno != EAGAIN) { + purple_debug_info("soap", "read: %s\n", g_strerror(perrno)); + // It's possible msn_soap_process closed the ssl connection + if (conn->ssl) { purple_ssl_close(conn->ssl); conn->ssl = NULL; msn_soap_connection_handle_next(conn); - return; - } else if (count == 0) { - return; } } +} - if (cnt == 0 && count == 0) { - purple_debug_info("soap", "msn_soap_read_cb() called, but no data available?\n"); - purple_ssl_close(conn->ssl); - conn->ssl = NULL; - msn_soap_connection_handle_next(conn); - return; - } +static void +msn_soap_process(MsnSoapConnection *conn) { + gboolean handled = FALSE; + char *cursor; + char *linebreak; purple_debug_info("soap", "current %s\n", conn->buf->str);
--- a/libpurple/protocols/msn/state.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/state.c Thu Jun 26 09:07:56 2008 +0000 @@ -150,7 +150,7 @@ { xmlnode *payloadNode, *currentmediaNode; char *currentmedia; - + purple_debug_info("msn","msn get CurrentMedia\n"); payloadNode = xmlnode_from_str(xml_str, len); if (!payloadNode){ @@ -176,7 +176,7 @@ { xmlnode *payloadNode, *psmNode; char *psm; - + purple_debug_info("MSNP14","msn get PSM\n"); payloadNode = xmlnode_from_str(xml_str, len); if (!payloadNode){ @@ -217,7 +217,7 @@ return ret; } -/* set the MSN's PSM info,Currently Read from the status Line +/* set the MSN's PSM info,Currently Read from the status Line * Thanks for Cris Code */ void
--- a/libpurple/protocols/msn/transaction.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/transaction.h Thu Jun 26 09:07:56 2008 +0000 @@ -62,7 +62,7 @@ }; MsnTransaction *msn_transaction_new(MsnCmdProc *cmdproc, const char *command, - const char *format, ...) G_GNUC_PRINTF(3, 4); + const char *format, ...) G_GNUC_PRINTF(3, 4); void msn_transaction_destroy(MsnTransaction *trans); char *msn_transaction_to_string(MsnTransaction *trans);
--- a/libpurple/protocols/msn/user.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/user.c Thu Jun 26 09:07:56 2008 +0000 @@ -122,7 +122,7 @@ NULL); } else { purple_prpl_got_user_status_deactive(account, user->passport, "tune"); - } + } } if (user->idle) @@ -239,76 +239,24 @@ msn_user_unset_op(MsnUser *user, int list_op) { g_return_if_fail(user != NULL); - + user->list_op &= ~list_op; } void msn_user_set_buddy_icon(MsnUser *user, PurpleStoredImage *img) { - MsnObject *msnobj = msn_user_get_object(user); + MsnObject *msnobj; g_return_if_fail(user != NULL); - if (img == NULL) - msn_user_set_object(user, NULL); - else - { - PurpleCipherContext *ctx; - char *buf; - gconstpointer data = purple_imgstore_get_data(img); - size_t size = purple_imgstore_get_size(img); - char *base64; - unsigned char digest[20]; - - if (msnobj == NULL) - { - msnobj = msn_object_new(); - msn_object_set_local(msnobj); - msn_object_set_type(msnobj, MSN_OBJECT_USERTILE); - msn_object_set_location(msnobj, "TFR2C2.tmp"); - msn_object_set_creator(msnobj, msn_user_get_passport(user)); - - msn_user_set_object(user, msnobj); - } - - msn_object_set_image(msnobj, img); - - /* Compute the SHA1D field. */ - memset(digest, 0, sizeof(digest)); + msnobj = msn_object_new_from_image(img, "TFR2C2.tmp", + user->passport, MSN_OBJECT_USERTILE); - ctx = purple_cipher_context_new_by_name("sha1", NULL); - purple_cipher_context_append(ctx, data, size); - purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); - - base64 = purple_base64_encode(digest, sizeof(digest)); - msn_object_set_sha1d(msnobj, base64); - g_free(base64); - - msn_object_set_size(msnobj, size); + if (!msnobj) + purple_debug_error("msn", "Unable to open buddy icon from %s!\n", user->passport); - /* Compute the SHA1C field. */ - buf = g_strdup_printf( - "Creator%sSize%dType%dLocation%sFriendly%sSHA1D%s", - msn_object_get_creator(msnobj), - msn_object_get_size(msnobj), - msn_object_get_type(msnobj), - msn_object_get_location(msnobj), - msn_object_get_friendly(msnobj), - msn_object_get_sha1d(msnobj)); - - memset(digest, 0, sizeof(digest)); - - purple_cipher_context_reset(ctx, NULL); - purple_cipher_context_append(ctx, (const guchar *)buf, strlen(buf)); - purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); - purple_cipher_context_destroy(ctx); - g_free(buf); - - base64 = purple_base64_encode(digest, sizeof(digest)); - msn_object_set_sha1c(msnobj, base64); - g_free(base64); - } + msn_user_set_object(user, msnobj); } /*add group id to User object*/
--- a/libpurple/protocols/msn/user.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/user.h Thu Jun 26 09:07:56 2008 +0000 @@ -57,9 +57,6 @@ */ struct _MsnUser { -#if 0 - MsnSession *session; /**< The MSN session. */ -#endif MsnUserList *userlist; char *passport; /**< The passport account. */ @@ -69,7 +66,7 @@ char * uid; /*< User Id */ const char *status; /**< The state of the user. */ - char *statusline; /**< The state of the user. */ + char *statusline; /**< The state of the user. */ CurrentMedia media; /**< Current media of the user. */ gboolean idle; /**< The idle state of the user. */ @@ -135,7 +132,7 @@ /** * Sets the new statusline of user. - * + * * @param user The user. * @param state The statusline string. */ @@ -143,7 +140,7 @@ /** * Sets the current media of user. - * + * * @param user The user. * @param cmedia Current media. */
--- a/libpurple/protocols/msn/userlist.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/userlist.c Thu Jun 26 09:07:56 2008 +0000 @@ -48,7 +48,7 @@ { MsnSession *session = pa->gc->proto_data; MsnUserList *userlist = session->userlist; - + msn_userlist_add_buddy_to_list(userlist, pa->who, MSN_LIST_AL); msn_del_contact_from_list(session->contact, NULL, pa->who, MSN_LIST_PL); @@ -127,7 +127,7 @@ if (user == NULL) return FALSE; - + list_op = 1 << list_id; if (user->list_op & list_op) @@ -237,7 +237,7 @@ if (convo) { PurpleBuddy *buddy; char *msg; - + buddy = purple_find_buddy(account, passport); msg = g_strdup_printf( _("%s has added you to his or her buddy list."), @@ -246,7 +246,7 @@ PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(msg); } - + if (!(user->list_op & (MSN_LIST_AL_OP | MSN_LIST_BL_OP))) { /* @@ -341,7 +341,7 @@ passport = msn_user_get_passport(user); store = msn_user_get_store_name(user); - + msn_user_set_op(user, list_op); if (list_op & MSN_LIST_FL_OP) @@ -407,7 +407,7 @@ userlist->session = session; userlist->buddy_icon_requests = g_queue_new(); - + /* buddy_icon_window is the number of allowed simultaneous buddy icon requests. * XXX With smarter rate limiting code, we could allow more at once... 5 was the limit set when * we weren't retrieiving any more than 5 per MSN session. */ @@ -644,12 +644,12 @@ msn_userlist_rem_buddy(MsnUserList *userlist, const char *who) { MsnUser *user = NULL; - + g_return_if_fail(userlist != NULL); g_return_if_fail(userlist->session != NULL); g_return_if_fail(userlist->session->contact != NULL); g_return_if_fail(who != NULL); - + user = msn_userlist_find_user(userlist, who); msn_userlist_rem_buddy_from_list(userlist, who, MSN_LIST_FL); @@ -669,9 +669,9 @@ MsnListOp list_op = 1 << list_id; user = msn_userlist_find_user(userlist, who); - + g_return_if_fail(user != NULL); - + if ( !msn_userlist_user_is_in_list(user, list_id)) { list = lists[list_id]; purple_debug_info("MSN Userlist", "User %s is not in list %s, not removing.\n", who, list); @@ -690,14 +690,14 @@ MsnUser *user; MsnCallbackState *state = NULL; const char *group_id = NULL, *new_group_name; - + new_group_name = group_name == NULL ? MSN_INDIVIDUALS_GROUP_NAME : group_name; - + g_return_if_fail(userlist != NULL); g_return_if_fail(userlist->session != NULL); - + purple_debug_info("MSN Userlist", "Add user: %s to group: %s\n", who, new_group_name); state = msn_callback_state_new(userlist->session); @@ -709,9 +709,9 @@ /* 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 */ - + char *str = g_strdup_printf(_("Unable to add \"%s\"."), who); - + purple_notify_error(NULL, NULL, str, _("The username specified is invalid.")); g_free(str); @@ -725,7 +725,7 @@ { /* Whoa, we must add that group first. */ purple_debug_info("MSN Userlist", "Adding user %s to a new group, creating group %s first\n", who, new_group_name); - + msn_callback_state_set_action(state, MSN_ADD_BUDDY); msn_add_group(userlist->session, state, new_group_name); @@ -733,9 +733,9 @@ } else { msn_callback_state_set_guid(state, group_id); } - + /* XXX: adding user here may not be correct (should add them in the - * ACK to the ADL command), but for now we need to make sure they exist + * ACK to the ADL command), but for now we need to make sure they exist * early enough that the ILN command doesn't screw us up */ user = msn_userlist_find_add_user(userlist, who, who); @@ -751,7 +751,7 @@ return; } } - + purple_debug_info("MSN Userlist", "Adding user: %s to group id: %s\n", who, group_id); msn_callback_state_set_action(state, MSN_ADD_BUDDY); @@ -762,7 +762,7 @@ } void -msn_userlist_add_buddy_to_list(MsnUserList *userlist, const char *who, +msn_userlist_add_buddy_to_list(MsnUserList *userlist, const char *who, MsnListId list_id) { MsnUser *user = NULL; @@ -770,9 +770,9 @@ MsnListOp list_op = 1 << list_id; g_return_if_fail(userlist != NULL); - + user = msn_userlist_find_add_user(userlist, who, who); - + /* First we're going to check if it's already there. */ if (msn_userlist_user_is_in_list(user, list_id)) { @@ -780,16 +780,16 @@ purple_debug_info("MSN Userlist", "User '%s' is already in list: %s\n", who, list); return; } - + //store_name = (user != NULL) ? get_store_name(user) : who; - + //purple_debug_info("MSN Userlist", "store_name = %s\n", store_name); - + /* XXX: see XXX above, this should really be done when we get the response from the server */ - + msn_user_set_op(user, list_op); - + msn_notification_add_buddy_to_list(userlist->session->notification, list_id, who); } @@ -799,7 +799,7 @@ { MsnUser *user; gchar * group_id; - + g_return_val_if_fail(userlist != NULL, FALSE); g_return_val_if_fail(group_name != NULL, FALSE); g_return_val_if_fail(who != NULL, FALSE); @@ -815,7 +815,7 @@ purple_debug_error("MSN Userlist", "User %s not found!", who); return FALSE; } - + msn_user_add_group_id(user, group_id); return TRUE; @@ -832,7 +832,7 @@ g_return_val_if_fail(userlist != NULL, FALSE); g_return_val_if_fail(group_name != NULL, FALSE); g_return_val_if_fail(who != NULL, FALSE); - + purple_debug_info("MSN Userlist","Removing buddy with passport %s from group %s\n", who, group_name); if ( (group_id = msn_userlist_find_group_id(userlist, group_name)) == NULL) { @@ -856,7 +856,7 @@ { const char *new_group_id; MsnCallbackState *state; - + g_return_if_fail(userlist != NULL); g_return_if_fail(userlist->session != NULL); g_return_if_fail(userlist->session->contact != NULL); @@ -870,11 +870,11 @@ new_group_id = msn_userlist_find_group_id(userlist, new_group_name); if (new_group_id == NULL) - { + { msn_add_group(userlist->session, state, new_group_name); return; } - + /* add the contact to the new group, and remove it from the old one in * the callback */ @@ -928,6 +928,6 @@ (char *)l->data,NULL); msn_user_set_op(user, MSN_LIST_BL_OP); } - + }
--- a/libpurple/protocols/msn/userlist.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msn/userlist.h Thu Jun 26 09:07:56 2008 +0000 @@ -45,11 +45,8 @@ { MsnSession *session; - /* MsnUsers *users; */ - /* MsnGroups *groups; */ - - GList *users; - GList *groups; + GList *users; /* Contains MsnUsers */ + GList *groups; /* Contains MsnGroups */ GQueue *buddy_icon_requests; int buddy_icon_window; @@ -94,7 +91,7 @@ void msn_userlist_remove_group_id(MsnUserList *userlist, const char *group_id); void msn_userlist_rem_buddy(MsnUserList *userlist, const char *who); -void msn_userlist_add_buddy(MsnUserList *userlist, +void msn_userlist_add_buddy(MsnUserList *userlist, const char *who, const char *group_name); void msn_userlist_move_buddy(MsnUserList *userlist, const char *who, const char *old_group_name, @@ -106,7 +103,7 @@ const char *who, const char *group_name); -void msn_userlist_add_buddy_to_list(MsnUserList *userlist, const char *who, +void msn_userlist_add_buddy_to_list(MsnUserList *userlist, const char *who, MsnListId list_id); void msn_userlist_rem_buddy_from_list(MsnUserList *userlist, const char *who, MsnListId list_id);
--- a/libpurple/protocols/msnp9/cmdproc.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/cmdproc.c Thu Jun 26 09:07:56 2008 +0000 @@ -132,6 +132,14 @@ data = g_realloc(data, len + trans->payload_len); memcpy(data + len, trans->payload, trans->payload_len); len += trans->payload_len; + + /* + * We're done with trans->payload. Free it so that the memory + * doesn't sit around in cmdproc->history. + */ + g_free(trans->payload); + trans->payload = NULL; + trans->payload_len = 0; } msn_servconn_write(servconn, data, len);
--- a/libpurple/protocols/msnp9/error.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/error.c Thu Jun 26 09:07:56 2008 +0000 @@ -43,7 +43,7 @@ break; case 201: g_snprintf(msg, sizeof(msg), - _("Invalid e-mail address")); + _("Invalid email address")); break; case 205: g_snprintf(msg, sizeof(msg), _("User does not exist"));
--- a/libpurple/protocols/msnp9/msg.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/msg.c Thu Jun 26 09:07:56 2008 +0000 @@ -158,9 +158,9 @@ MsnMessage *msg; msg = msn_message_new(MSN_MSG_NUDGE); - msn_message_set_content_type(msg, "text/x-msnmsgr-datacast\r\n"); + msn_message_set_content_type(msg, "text/x-msnmsgr-datacast"); msn_message_set_flag(msg, 'N'); - msn_message_set_attr(msg,"ID","1\r\n"); + msn_message_set_bin_data(msg, "ID: 1\r\n", 7); return msg; }
--- a/libpurple/protocols/msnp9/msn.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/msn.c Thu Jun 26 09:07:56 2008 +0000 @@ -33,6 +33,7 @@ #include "pluginpref.h" #include "prefs.h" #include "session.h" +#include "smiley.h" #include "state.h" #include "util.h" #include "cmds.h" @@ -83,6 +84,12 @@ time_t when; } MsnIMData; +typedef struct +{ + char *smile; + MsnObject *obj; +} MsnEmoticon; + static const char * msn_normalize(const PurpleAccount *account, const char *str) { @@ -116,6 +123,7 @@ return FALSE; msn_switchboard_send_msg(swboard, msg, TRUE); + msn_message_destroy(msg); return TRUE; } @@ -133,6 +141,17 @@ return list; } +static GHashTable * +msn_get_account_text_table(PurpleAccount *unused) +{ + GHashTable *table; + + table = g_hash_table_new(g_str_hash, g_str_equal); + + g_hash_table_insert(table, "login_label", (gpointer)_("Email Address...")); + + return table; +} static PurpleCmdRet msn_cmd_nudge(PurpleConversation *conv, const gchar *cmd, gchar **args, gchar **error, void *data) @@ -755,7 +774,8 @@ session = msn_session_new(account); gc->proto_data = session; - gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_FORMATTING_WBFO | PURPLE_CONNECTION_NO_BGCOLOR | PURPLE_CONNECTION_NO_FONTSIZE | PURPLE_CONNECTION_NO_URLDESC; + gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_FORMATTING_WBFO | PURPLE_CONNECTION_NO_BGCOLOR | + PURPLE_CONNECTION_NO_FONTSIZE | PURPLE_CONNECTION_NO_URLDESC | PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; msn_session_set_login_step(session, MSN_LOGIN_STEP_START); @@ -796,6 +816,97 @@ return FALSE; } +static GString* +msn_msg_emoticon_add(GString *current, MsnEmoticon *emoticon) +{ + MsnObject *obj; + char *strobj; + + if (emoticon == NULL) + return current; + + obj = emoticon->obj; + + if (!obj) + return current; + + strobj = msn_object_to_string(obj); + + if (current) + g_string_append_printf(current, "\t%s\t%s", + emoticon->smile, strobj); + else { + current = g_string_new(""); + g_string_printf(current,"%s\t%s", + emoticon->smile, strobj); + } + + g_free(strobj); + + return current; +} + +static void +msn_send_emoticons(MsnSwitchBoard *swboard, GString *body) +{ + MsnMessage *msg; + + g_return_if_fail(body != NULL); + + msg = msn_message_new(MSN_MSG_SLP); + msn_message_set_content_type(msg, "text/x-mms-emoticon"); + msn_message_set_flag(msg, 'N'); + msn_message_set_bin_data(msg, body->str, body->len); + + msn_switchboard_send_msg(swboard, msg, TRUE); + msn_message_destroy(msg); +} + +static void msn_emoticon_destroy(MsnEmoticon *emoticon) +{ + if (emoticon->obj) + msn_object_destroy(emoticon->obj); + g_free(emoticon->smile); + g_free(emoticon); +} + +static GSList* msn_msg_grab_emoticons(const char *msg, const char *username) +{ + GSList *list; + GList *smileys; + PurpleSmiley *smiley; + PurpleStoredImage *img; + char *ptr; + MsnEmoticon *emoticon; + int length; + + list = NULL; + smileys = purple_smileys_get_all(); + length = strlen(msg); + + for (; smileys; smileys = g_list_delete_link(smileys, smileys)) { + smiley = (PurpleSmiley*)smileys->data; + + ptr = g_strstr_len(msg, length, purple_smiley_get_shortcut(smiley)); + + if (!ptr) + continue; + + img = purple_smiley_get_stored_image(smiley); + + emoticon = g_new0(MsnEmoticon, 1); + emoticon->smile = g_strdup(purple_smiley_get_shortcut(smiley)); + emoticon->obj = msn_object_new_from_image(img, + purple_imgstore_get_filename(img), + username, MSN_OBJECT_EMOTICON); + + purple_imgstore_unref(img); + list = g_slist_prepend(list, emoticon); + } + + return list; +} + static int msn_send_im(PurpleConnection *gc, const char *who, const char *message, PurpleMessageFlags flags) @@ -805,8 +916,10 @@ MsnMessage *msg; char *msgformat; char *msgtext; + const char *username; account = purple_connection_get_account(gc); + username = purple_account_get_username(account); if (buddy) { PurplePresence *p = purple_buddy_get_presence(buddy); @@ -834,13 +947,29 @@ g_free(msgformat); g_free(msgtext); - if (g_ascii_strcasecmp(who, purple_account_get_username(account))) + if (g_ascii_strcasecmp(who, username)) { MsnSession *session; MsnSwitchBoard *swboard; + MsnEmoticon *smile; + GSList *smileys; + GString *emoticons = NULL; session = gc->proto_data; swboard = msn_session_get_swboard(session, who, MSN_SB_FLAG_IM); + smileys = msn_msg_grab_emoticons(message, username); + + while (smileys) { + smile = (MsnEmoticon*)smileys->data; + emoticons = msn_msg_emoticon_add(emoticons,smile); + msn_emoticon_destroy(smile); + smileys = g_slist_delete_link(smileys, smileys); + } + + if (emoticons) { + msn_send_emoticons(swboard, emoticons); + g_string_free(emoticons, TRUE); + } msn_switchboard_send_msg(swboard, msg, TRUE); } @@ -1263,7 +1392,7 @@ g_free(msgformat); g_free(msgtext); - serv_got_chat_in(gc, id, purple_account_get_username(account), 0, + serv_got_chat_in(gc, id, purple_account_get_username(account), flags, message, time(NULL)); return 0; @@ -1664,7 +1793,7 @@ MSN_GOT_INFO_GET_FIELD("Home address", _("Home Address")); MSN_GOT_INFO_GET_FIELD("Personal Mobile", _("Personal Mobile")); MSN_GOT_INFO_GET_FIELD("Home fax", _("Home Fax")); - MSN_GOT_INFO_GET_FIELD("Personal e-mail", _("Personal E-Mail")); + MSN_GOT_INFO_GET_FIELD("Personal email", _("Personal Email")); MSN_GOT_INFO_GET_FIELD("Personal IM", _("Personal IM")); MSN_GOT_INFO_GET_FIELD("Birthday", _("Birthday")); MSN_GOT_INFO_GET_FIELD("Anniversary", _("Anniversary")); @@ -1695,7 +1824,7 @@ MSN_GOT_INFO_GET_FIELD("Work mobile", _("Work Mobile")); MSN_GOT_INFO_GET_FIELD("Work pager", _("Work Pager")); MSN_GOT_INFO_GET_FIELD("Work fax", _("Work Fax")); - MSN_GOT_INFO_GET_FIELD("Work e-mail", _("Work E-Mail")); + MSN_GOT_INFO_GET_FIELD("Work email", _("Work Email")); MSN_GOT_INFO_GET_FIELD("Work IM", _("Work IM")); MSN_GOT_INFO_GET_FIELD("Start date", _("Start Date")); MSN_GOT_INFO_GET_FIELD("Notes", _("Notes")); @@ -2148,8 +2277,8 @@ msn_send_attention, /* send_attention */ msn_attention_types, /* attention_types */ - /* padding */ - NULL + sizeof(PurplePluginProtocolInfo), /* struct_size */ + msn_get_account_text_table, /* get_account_text_table */ }; static PurplePluginInfo info =
--- a/libpurple/protocols/msnp9/object.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/object.c Thu Jun 26 09:07:56 2008 +0000 @@ -23,6 +23,10 @@ */ #include "object.h" #include "debug.h" +/* Sha1 stuff */ +#include "cipher.h" +/* Base64 stuff */ +#include "util.h" #define GET_STRING_TAG(field, id) \ if ((tag = strstr(str, id "=\"")) != NULL) \ @@ -104,6 +108,74 @@ return obj; } +MsnObject* +msn_object_new_from_image(PurpleStoredImage *img, const char *location, + const char *creator, MsnObjectType type) +{ + MsnObject *msnobj; + + PurpleCipherContext *ctx; + char *buf; + gconstpointer data; + size_t size; + char *base64; + unsigned char digest[20]; + + msnobj = NULL; + + if (img == NULL) + return msnobj; + + size = purple_imgstore_get_size(img); + data = purple_imgstore_get_data(img); + + /* New object */ + msnobj = msn_object_new(); + msn_object_set_local(msnobj); + msn_object_set_type(msnobj, type); + msn_object_set_location(msnobj, location); + msn_object_set_creator(msnobj, creator); + + msn_object_set_image(msnobj, img); + + /* Compute the SHA1D field. */ + memset(digest, 0, sizeof(digest)); + + ctx = purple_cipher_context_new_by_name("sha1", NULL); + purple_cipher_context_append(ctx, data, size); + purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); + + base64 = purple_base64_encode(digest, sizeof(digest)); + msn_object_set_sha1d(msnobj, base64); + g_free(base64); + + msn_object_set_size(msnobj, size); + + /* Compute the SHA1C field. */ + buf = g_strdup_printf( + "Creator%sSize%dType%dLocation%sFriendly%sSHA1D%s", + msn_object_get_creator(msnobj), + msn_object_get_size(msnobj), + msn_object_get_type(msnobj), + msn_object_get_location(msnobj), + msn_object_get_friendly(msnobj), + msn_object_get_sha1d(msnobj)); + + memset(digest, 0, sizeof(digest)); + + purple_cipher_context_reset(ctx, NULL); + purple_cipher_context_append(ctx, (const guchar *)buf, strlen(buf)); + purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); + purple_cipher_context_destroy(ctx); + g_free(buf); + + base64 = purple_base64_encode(digest, sizeof(digest)); + msn_object_set_sha1c(msnobj, base64); + g_free(base64); + + return msnobj; +} + void msn_object_destroy(MsnObject *obj) {
--- a/libpurple/protocols/msnp9/object.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/object.h Thu Jun 26 09:07:56 2008 +0000 @@ -71,6 +71,19 @@ MsnObject *msn_object_new_from_string(const char *str); /** + * Creates a MsnObject structure from a stored image + * + * @param img The image associated to object + * @param location The object location as stored in MsnObject + * @param creator The creator of the object + * @param type The type of the object + * + * @return A new MsnObject structure + */ +MsnObject *msn_object_new_from_image(PurpleStoredImage *img, + const char *location, const char *creator, MsnObjectType type); + +/** * Destroys an MsnObject structure. * * @param obj The object structure.
--- a/libpurple/protocols/msnp9/slp.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/slp.c Thu Jun 26 09:07:56 2008 +0000 @@ -31,6 +31,8 @@ #include "user.h" #include "switchboard.h" +#include "smiley.h" + /* ms to delay between sending buddy icon requests to the server. */ #define BUDDY_ICON_DELAY 20000 @@ -276,23 +278,32 @@ type = msn_object_get_type(obj); g_free(msnobj_data); - if (!(type == MSN_OBJECT_USERTILE)) + if ((type != MSN_OBJECT_USERTILE) && (type != MSN_OBJECT_EMOTICON)) { purple_debug_error("msn", "Wrong object?\n"); msn_object_destroy(obj); g_return_if_reached(); } - img = msn_object_get_image(obj); + if (type == MSN_OBJECT_EMOTICON) { + char *path; + path = g_build_filename(purple_smileys_get_storing_dir(), + obj->location, NULL); + img = purple_imgstore_new_from_file(path); + g_free(path); + } else { + img = msn_object_get_image(obj); + if (img) + purple_imgstore_ref(img); + } + msn_object_destroy(obj); + if (img == NULL) { purple_debug_error("msn", "Wrong object.\n"); - msn_object_destroy(obj); g_return_if_reached(); } - msn_object_destroy(obj); - slpsession = msn_slplink_find_slp_session(slplink, slpcall->session_id); @@ -317,6 +328,7 @@ #endif msn_slpmsg_set_image(slpmsg, img); msn_slplink_queue_slpmsg(slplink, slpmsg); + purple_imgstore_unref(img); } else if (!strcmp(euf_guid, "5D3E02AB-6190-11D3-BBBB-00C04F795683")) {
--- a/libpurple/protocols/msnp9/user.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/msnp9/user.c Thu Jun 26 09:07:56 2008 +0000 @@ -153,69 +153,17 @@ void msn_user_set_buddy_icon(MsnUser *user, PurpleStoredImage *img) { - MsnObject *msnobj = msn_user_get_object(user); + MsnObject *msnobj = NULL; g_return_if_fail(user != NULL); - if (img == NULL) - msn_user_set_object(user, NULL); - else - { - PurpleCipherContext *ctx; - char *buf; - gconstpointer data = purple_imgstore_get_data(img); - size_t size = purple_imgstore_get_size(img); - char *base64; - unsigned char digest[20]; - - if (msnobj == NULL) - { - msnobj = msn_object_new(); - msn_object_set_local(msnobj); - msn_object_set_type(msnobj, MSN_OBJECT_USERTILE); - msn_object_set_location(msnobj, "TFR2C2.tmp"); - msn_object_set_creator(msnobj, msn_user_get_passport(user)); - - msn_user_set_object(user, msnobj); - } - - msn_object_set_image(msnobj, img); - - /* Compute the SHA1D field. */ - memset(digest, 0, sizeof(digest)); + msnobj = msn_object_new_from_image(img, "TFR2C2.tmp", + user->passport, MSN_OBJECT_USERTILE); - ctx = purple_cipher_context_new_by_name("sha1", NULL); - purple_cipher_context_append(ctx, data, size); - purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); - - base64 = purple_base64_encode(digest, sizeof(digest)); - msn_object_set_sha1d(msnobj, base64); - g_free(base64); - - msn_object_set_size(msnobj, size); + if(!msnobj) + purple_debug_error("msn", "Unable to open buddy icon from %s!\n", user->passport); - /* Compute the SHA1C field. */ - buf = g_strdup_printf( - "Creator%sSize%dType%dLocation%sFriendly%sSHA1D%s", - msn_object_get_creator(msnobj), - msn_object_get_size(msnobj), - msn_object_get_type(msnobj), - msn_object_get_location(msnobj), - msn_object_get_friendly(msnobj), - msn_object_get_sha1d(msnobj)); - - memset(digest, 0, sizeof(digest)); - - purple_cipher_context_reset(ctx, NULL); - purple_cipher_context_append(ctx, (const guchar *)buf, strlen(buf)); - purple_cipher_context_digest(ctx, sizeof(digest), digest, NULL); - purple_cipher_context_destroy(ctx); - g_free(buf); - - base64 = purple_base64_encode(digest, sizeof(digest)); - msn_object_set_sha1c(msnobj, base64); - g_free(base64); - } + msn_user_set_object(user, msnobj); } void
--- a/libpurple/protocols/myspace/myspace.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/myspace/myspace.c Thu Jun 26 09:07:56 2008 +0000 @@ -1328,7 +1328,10 @@ delta = time(NULL) - session->last_comm; /* purple_debug_info("msim", "msim_check_alive: delta=%d\n", delta); */ if (delta >= MSIM_KEEPALIVE_INTERVAL) { - errmsg = g_strdup_printf(_("Connection to server lost (no data received within %d seconds)"), (int)delta); + errmsg = g_strdup_printf(ngettext("Connection to server lost (no data received within %d second)", + "Connection to server lost (no data received within %d seconds)", + (int)delta), + (int)delta); purple_debug_info("msim", "msim_check_alive: %s > interval of %d, presumed dead\n", errmsg, MSIM_KEEPALIVE_INTERVAL); @@ -2404,7 +2407,7 @@ const char *username; /* If the account does not exist, we can't look up the user. */ - if (!account) + if (!account || !account->gc) return str; id = atol(str); @@ -2449,6 +2452,18 @@ return normalized; } +static GHashTable * +msim_get_account_text_table(PurpleAccount *unused) +{ + GHashTable *table; + + table = g_hash_table_new(g_str_hash, g_str_equal); + + g_hash_table_insert(table, "login_label", (gpointer)_("Email Address...")); + + return table; +} + /** Return whether the buddy can be messaged while offline. * * The protocol supports offline messages in just the same way as online @@ -2934,7 +2949,10 @@ switch (GPOINTER_TO_UINT(user_data)) { case MSIM_CONTACT_LIST_IMPORT_ALL_FRIENDS: - msg = g_strdup_printf(_("%d buddies were added or updated from the server (including buddies already on the server-side list)"), buddy_count); + msg = g_strdup_printf(ngettext("%d buddy was added or updated from the server (including buddies already on the server-side list)", + "%d buddies were added or updated from the server (including buddies already on the server-side list)", + buddy_count), + buddy_count); purple_notify_info(session->account, _("Add contacts from server"), msg, NULL); g_free(msg); break; @@ -3128,14 +3146,16 @@ NULL, /* unregister_user */ msim_send_attention, /* send_attention */ msim_attention_types, /* attention_types */ - NULL /* _purple_reserved4 */ + + sizeof(PurplePluginProtocolInfo), /* struct_size */ + msim_get_account_text_table, /* get_account_text_table */ }; /** Based on MSN's plugin info comments. */ static PurplePluginInfo info = { - PURPLE_PLUGIN_MAGIC, + PURPLE_PLUGIN_MAGIC, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, PURPLE_PLUGIN_PROTOCOL, /**< type */
--- a/libpurple/protocols/myspace/user.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/myspace/user.c Thu Jun 26 09:07:56 2008 +0000 @@ -635,7 +635,7 @@ if (!body) { purple_debug_info("msim_username_is_available_cb", "No body for %s?!\n", username); purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, - "An error occured while trying to set the username.\n" + "An error occurred while trying to set the username.\n" "Please try again, or visit http://editprofile.myspace.com/index.cfm?" "fuseaction=profile.username to set your username."); return; @@ -778,7 +778,7 @@ uid = msim_msg_get_integer(userinfo, "uid"); lid = msim_msg_get_integer(userinfo, "lid"); body = msim_msg_get_dictionary(userinfo, "body"); - errmsg = g_strdup("An error occured while trying to set the username.\n" + errmsg = g_strdup("An error occurred while trying to set the username.\n" "Please try again, or visit http://editprofile.myspace.com/index.cfm?" "fuseaction=profile.username to set your username.");
--- a/libpurple/protocols/novell/novell.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/novell/novell.c Thu Jun 26 09:07:56 2008 +0000 @@ -1494,7 +1494,7 @@ else if (strcmp(tag, "mailstop") == 0) return _("Mailstop"); else if (strcmp(tag, "Internet EMail Address") == 0) - return _("E-Mail Address"); + return _("Email Address"); else return tag; } @@ -2506,7 +2506,7 @@ } } - serv_got_chat_in(gc, id, name, 0, text, time(NULL)); + serv_got_chat_in(gc, id, name, flags, text, time(NULL)); return 0; } else return -1; @@ -3517,6 +3517,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/oscar/family_admin.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_admin.c Thu Jun 26 09:07:56 2008 +0000 @@ -47,8 +47,8 @@ byte_stream_put16(&bs, info); byte_stream_put16(&bs, 0x0000); - snacid = aim_cachesnac(od, 0x0007, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0007, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ADMIN, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ADMIN, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -127,8 +127,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x0007, 0x0004, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0007, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ADMIN, 0x0004, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ADMIN, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -154,8 +154,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x0007, 0x0004, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0007, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ADMIN, 0x0004, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ADMIN, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -177,8 +177,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x0007, 0x0004, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0007, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ADMIN, 0x0004, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ADMIN, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -194,11 +194,11 @@ void aim_admin_reqconfirm(OscarData *od, FlapConnection *conn) { - aim_genericreq_n(od, conn, 0x0007, 0x0006); + aim_genericreq_n(od, conn, SNAC_FAMILY_ADMIN, 0x0006); } /** - * Subtype 0x0007 - Account confirmation request acknowledgement. + * Subtype SNAC_FAMILY_ADMIN - Account confirmation request acknowledgement. */ static int accountconfirm(OscarData *od, FlapConnection *conn, aim_module_t *mod, FlapFrame *frame, aim_modsnac_t *snac, ByteStream *bs) @@ -227,7 +227,7 @@ if ((snac->subtype == 0x0003) || (snac->subtype == 0x0005)) { infochange(od, conn, mod, frame, snac, bs); return 1; - } else if (snac->subtype == 0x0007) + } else if (snac->subtype == SNAC_FAMILY_ADMIN) return accountconfirm(od, conn, mod, frame, snac, bs); return 0; @@ -235,7 +235,7 @@ int admin_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0007; + mod->family = SNAC_FAMILY_ADMIN; mod->version = 0x0001; mod->toolid = 0x0010; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_advert.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_advert.c Thu Jun 26 09:07:56 2008 +0000 @@ -28,7 +28,7 @@ void aim_ads_requestads(OscarData *od, FlapConnection *conn) { - aim_genericreq_n(od, conn, 0x0005, 0x0002); + aim_genericreq_n(od, conn, SNAC_FAMILY_ADVERT, 0x0002); } static int snachandler(OscarData *od, FlapConnection *conn, aim_module_t *mod, FlapFrame *rx, aim_modsnac_t *snac, ByteStream *bs) @@ -39,7 +39,7 @@ int adverts_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0005; + mod->family = SNAC_FAMILY_ADVERT; mod->version = 0x0001; mod->toolid = 0x0001; mod->toolversion = 0x0001;
--- a/libpurple/protocols/oscar/family_alert.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_alert.c Thu Jun 26 09:07:56 2008 +0000 @@ -72,8 +72,8 @@ byte_stream_put16(&bs, 0xb0ee); byte_stream_put16(&bs, 0x0631); - snacid = aim_cachesnac(od, 0x0018, 0x0006, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0018, 0x0006, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ALERT, 0x0006, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ALERT, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -188,8 +188,8 @@ byte_stream_put32(&bs, 0x04000000); byte_stream_put32(&bs, 0x00000000); - snacid = aim_cachesnac(od, 0x0018, 0x0016, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0018, 0x0006, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ALERT, 0x0016, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ALERT, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -225,7 +225,7 @@ int email_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0018; + mod->family = SNAC_FAMILY_ALERT; mod->version = 0x0001; mod->toolid = 0x0010; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_auth.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_auth.c Thu Jun 26 09:07:56 2008 +0000 @@ -81,12 +81,9 @@ static int aim_encode_password_md5(const char *password, size_t password_len, const char *key, guint8 *digest) { - PurpleCipher *cipher; PurpleCipherContext *context; - cipher = purple_ciphers_find_cipher("md5"); - - context = purple_cipher_context_new(cipher, NULL); + context = purple_cipher_context_new_by_name("md5", NULL); purple_cipher_context_append(context, (const guchar *)key, strlen(key)); purple_cipher_context_append(context, (const guchar *)password, password_len); purple_cipher_context_append(context, (const guchar *)AIM_MD5_STRING, strlen(AIM_MD5_STRING)); @@ -200,9 +197,13 @@ * usually happens for AOL accounts. We are told that we * should truncate it if the 0x0017/0x0007 SNAC contains * a TLV of type 0x0026 with data 0x0000. + * @param allow_multiple_logins Allow multiple logins? If TRUE, the AIM + * server will prompt the user when multiple logins occur. If + * FALSE, existing connections (on other clients) will be + * disconnected automatically as we connect. */ int -aim_send_login(OscarData *od, FlapConnection *conn, const char *sn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key) +aim_send_login(OscarData *od, FlapConnection *conn, const char *sn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key, gboolean allow_multiple_logins) { FlapFrame *frame; GSList *tlvlist = NULL; @@ -221,8 +222,8 @@ frame = flap_frame_new(od, 0x02, 1152); - snacid = aim_cachesnac(od, 0x0017, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&frame->data, 0x0017, 0x0002, 0x0000, snacid); + snacid = aim_cachesnac(od, SNAC_FAMILY_AUTH, 0x0002, 0x0000, NULL, 0); + aim_putsnac(&frame->data, SNAC_FAMILY_AUTH, 0x0002, 0x0000, snacid); aim_tlvlist_add_str(&tlvlist, 0x0001, sn); @@ -256,7 +257,7 @@ * If set, old-fashioned buddy lists will not work. You will need * to use SSI. */ - aim_tlvlist_add_8(&tlvlist, 0x004a, 0x01); + aim_tlvlist_add_8(&tlvlist, 0x004a, (allow_multiple_logins ? 0x01 : 0x02)); aim_tlvlist_write(&frame->data, &tlvlist); @@ -403,7 +404,7 @@ od->authinfo = info; - if ((userfunc = aim_callhandler(od, snac ? snac->family : 0x0017, snac ? snac->subtype : 0x0003))) + if ((userfunc = aim_callhandler(od, snac ? snac->family : SNAC_FAMILY_AUTH, snac ? snac->subtype : 0x0003))) ret = userfunc(od, conn, frame, info); aim_tlvlist_free(tlvlist); @@ -449,7 +450,7 @@ FlapFrame frame; aim_rxcallback_t userfunc; - if ((userfunc = aim_callhandler(od, 0x0017, 0x0007))) + if ((userfunc = aim_callhandler(od, SNAC_FAMILY_AUTH, 0x0007))) userfunc(od, conn, &frame, ""); return 0; @@ -483,8 +484,8 @@ frame = flap_frame_new(od, 0x02, 10+2+2+strlen(sn)+8); - snacid = aim_cachesnac(od, 0x0017, 0x0006, 0x0000, NULL, 0); - aim_putsnac(&frame->data, 0x0017, 0x0006, 0x0000, snacid); + snacid = aim_cachesnac(od, SNAC_FAMILY_AUTH, 0x0006, 0x0000, NULL, 0); + aim_putsnac(&frame->data, SNAC_FAMILY_AUTH, 0x0006, 0x0000, snacid); aim_tlvlist_add_str(&tlvlist, 0x0001, sn); @@ -628,7 +629,7 @@ int auth_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0017; + mod->family = SNAC_FAMILY_AUTH; mod->version = 0x0000; mod->flags = 0; strncpy(mod->name, "auth", sizeof(mod->name));
--- a/libpurple/protocols/oscar/family_bart.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_bart.c Thu Jun 26 09:07:56 2008 +0000 @@ -43,7 +43,7 @@ ByteStream bs; aim_snacid_t snacid; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0010)) || !icon || !iconlen) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_BART)) || !icon || !iconlen) return -EINVAL; byte_stream_new(&bs, 2 + 2 + iconlen); @@ -55,8 +55,8 @@ byte_stream_put16(&bs, iconlen); byte_stream_putraw(&bs, icon, iconlen); - snacid = aim_cachesnac(od, 0x0010, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0010, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_BART, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_BART, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -102,7 +102,7 @@ ByteStream bs; aim_snacid_t snacid; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0010)) || !sn || !strlen(sn) || !iconcsum || !iconcsumlen) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_BART)) || !sn || !strlen(sn) || !iconcsum || !iconcsumlen) return -EINVAL; byte_stream_new(&bs, 1+strlen(sn) + 4 + 1+iconcsumlen); @@ -120,8 +120,8 @@ byte_stream_put8(&bs, iconcsumlen); byte_stream_putraw(&bs, iconcsum, iconcsumlen); - snacid = aim_cachesnac(od, 0x0010, 0x0004, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0010, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_BART, 0x0004, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_BART, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -174,7 +174,7 @@ int bart_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0010; + mod->family = SNAC_FAMILY_BART; mod->version = 0x0001; mod->toolid = 0x0010; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_bos.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_bos.c Thu Jun 26 09:07:56 2008 +0000 @@ -32,7 +32,7 @@ void aim_bos_reqrights(OscarData *od, FlapConnection *conn) { - aim_genericreq_n_snacid(od, conn, 0x0009, 0x0002); + aim_genericreq_n_snacid(od, conn, SNAC_FAMILY_BOS, 0x0002); } /* Subtype 0x0003 - BOS Rights. */ @@ -81,7 +81,7 @@ void aim_bos_setgroupperm(OscarData *od, FlapConnection *conn, guint32 mask) { - aim_genericreq_l(od, conn, 0x0009, 0x0004, &mask); + aim_genericreq_l(od, conn, SNAC_FAMILY_BOS, 0x0004, &mask); } /* @@ -153,8 +153,8 @@ } g_free(localcpy); - snacid = aim_cachesnac(od, 0x0009, subtype, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0009, subtype, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_BOS, subtype, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_BOS, subtype, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -173,7 +173,7 @@ int bos_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0009; + mod->family = SNAC_FAMILY_BOS; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_buddy.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_buddy.c Thu Jun 26 09:07:56 2008 +0000 @@ -108,8 +108,8 @@ byte_stream_put8(&bs, strlen(sn)); byte_stream_putstr(&bs, sn); - snacid = aim_cachesnac(od, 0x0003, 0x0004, 0x0000, sn, strlen(sn)+1); - flap_connection_send_snac(od, conn, 0x0003, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_BUDDY, 0x0004, 0x0000, sn, strlen(sn)+1); + flap_connection_send_snac(od, conn, SNAC_FAMILY_BUDDY, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -159,8 +159,8 @@ tmpptr = strtok(NULL, "&"); } - snacid = aim_cachesnac(od, 0x0003, 0x0004, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0003, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_BUDDY, 0x0004, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_BUDDY, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -190,8 +190,8 @@ byte_stream_put8(&bs, strlen(sn)); byte_stream_putstr(&bs, sn); - snacid = aim_cachesnac(od, 0x0003, 0x0005, 0x0000, sn, strlen(sn)+1); - flap_connection_send_snac(od, conn, 0x0003, 0x0005, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_BUDDY, 0x0005, 0x0000, sn, strlen(sn)+1); + flap_connection_send_snac(od, conn, SNAC_FAMILY_BUDDY, 0x0005, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -243,7 +243,7 @@ int buddylist_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0003; + mod->family = SNAC_FAMILY_BUDDY; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_chat.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_chat.c Thu Jun 26 09:07:56 2008 +0000 @@ -364,7 +364,7 @@ byte_stream_new(&bs, 1142); - snacid = aim_cachesnac(od, 0x000e, 0x0005, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_CHAT, 0x0005, 0x0000, NULL, 0); /* * Cookie @@ -432,7 +432,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x000e, 0x0005, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_CHAT, 0x0005, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -594,7 +594,7 @@ int chat_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x000e; + mod->family = SNAC_FAMILY_CHAT; mod->version = 0x0001; mod->toolid = 0x0010; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_chatnav.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_chatnav.c Thu Jun 26 09:07:56 2008 +0000 @@ -42,7 +42,7 @@ return 0; } - if (snac2->family != 0x000d) { + if (snac2->family != SNAC_FAMILY_CHATNAV) { purple_debug_warning("oscar", "chatnav error: received response that maps to corrupt request (fam=%04x)\n", snac2->family); return 0; } @@ -80,7 +80,7 @@ */ void aim_chatnav_reqrights(OscarData *od, FlapConnection *conn) { - aim_genericreq_n_snacid(od, conn, 0x000d, 0x0002); + aim_genericreq_n_snacid(od, conn, SNAC_FAMILY_CHATNAV, 0x0002); } /* @@ -97,7 +97,7 @@ byte_stream_new(&bs, 1142); - snacid = aim_cachesnac(od, 0x000d, 0x0008, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_CHATNAV, 0x0008, 0x0000, NULL, 0); /* exchange */ byte_stream_put16(&bs, exchange); @@ -137,7 +137,7 @@ aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x000d, 0x0008, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_CHATNAV, 0x0008, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -460,7 +460,7 @@ return 0; } - if (snac2->family != 0x000d) { + if (snac2->family != SNAC_FAMILY_CHATNAV) { purple_debug_misc("oscar", "faim: chatnav_parse_info: received response that maps to corrupt request! (fam=%04x)\n", snac2->family); return 0; } @@ -506,7 +506,7 @@ int chatnav_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x000d; + mod->family = SNAC_FAMILY_CHATNAV; mod->version = 0x0001; mod->toolid = 0x0010; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_icbm.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_icbm.c Thu Jun 26 09:07:56 2008 +0000 @@ -164,7 +164,7 @@ ByteStream bs; aim_snacid_t snacid; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; if (!params) @@ -182,8 +182,8 @@ byte_stream_put16(&bs, params->maxrecverwarn); byte_stream_put32(&bs, params->minmsginterval); - snacid = aim_cachesnac(od, 0x0004, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0004, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -198,10 +198,10 @@ { FlapConnection *conn; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; - aim_genericreq_n_snacid(od, conn, 0x0004, 0x0004); + aim_genericreq_n_snacid(od, conn, SNAC_FAMILY_ICBM, 0x0004); return 0; } @@ -237,7 +237,7 @@ * Possible flags: * AIM_IMFLAGS_AWAY -- Marks the message as an autoresponse * AIM_IMFLAGS_ACK -- Requests that the server send an ack - * when the message is received (of type 0x0004/0x000c) + * when the message is received (of type SNAC_FAMILY_ICBM/0x000c) * AIM_IMFLAGS_OFFLINE--If destination is offline, store it until they are * online (probably ICQ only). * @@ -280,7 +280,7 @@ int msgtlvlen; static const guint8 deffeatures[] = { 0x01, 0x01, 0x01, 0x02 }; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; if (!args) @@ -410,9 +410,9 @@ } /* XXX - should be optional */ - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, args->destsn, strlen(args->destsn)+1); - - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &data); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, args->destsn, strlen(args->destsn)+1); + + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &data); byte_stream_destroy(&data); /* clean out SNACs over 60sec old */ @@ -462,7 +462,7 @@ GSList *outer_tlvlist = NULL, *inner_tlvlist = NULL; ByteStream hdrbs; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; if (!sn || !msg || !roomname) @@ -472,7 +472,7 @@ byte_stream_new(&bs, 1142+strlen(sn)+strlen(roomname)+strlen(msg)); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, sn, strlen(sn)+1); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, sn, strlen(sn)+1); /* XXX should be uncached by an unwritten 'invite accept' handler */ priv = g_malloc(sizeof(struct aim_invite_priv)); @@ -519,7 +519,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(outer_tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -539,7 +539,7 @@ aim_snacid_t snacid; guchar cookie[8]; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; if (!sn || !icon || (iconlen <= 0) || (iconlen >= MAXICONLEN)) @@ -549,7 +549,7 @@ byte_stream_new(&bs, 8+2+1+strlen(sn)+2+2+2+8+16+2+2+2+2+2+2+2+4+4+4+iconlen+strlen(AIM_ICONIDENT)+2+2); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -589,7 +589,7 @@ byte_stream_put16(&bs, 0x0003); byte_stream_put16(&bs, 0x0000); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -620,7 +620,7 @@ const char rtfcap[] = {"{97B12751-243C-4334-AD22-D6ABF73F1492}"}; /* OSCAR_CAPABILITY_ICQRTF capability in string form */ int servdatalen; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; if (!args || !args->destsn || !args->rtfmsg) @@ -632,7 +632,7 @@ byte_stream_new(&bs, 128+servdatalen); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, args->destsn); @@ -682,7 +682,7 @@ byte_stream_putle32(&bs, strlen(rtfcap)+1); byte_stream_putraw(&bs, (const guint8 *)rtfcap, strlen(rtfcap)+1); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -704,13 +704,13 @@ ByteStream hdrbs; od = peer_conn->od; - conn = flap_connection_findbygroup(od, 0x0004); + conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM); if (conn == NULL) return; byte_stream_new(&bs, 118+strlen(peer_conn->sn)); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, peer_conn->cookie, 0x0002, peer_conn->sn); @@ -735,7 +735,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(outer_tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -753,13 +753,13 @@ aim_snacid_t snacid; od = peer_conn->od; - conn = flap_connection_findbygroup(od, 0x0004); + conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM); if (conn == NULL) return; byte_stream_new(&bs, 11+strlen(peer_conn->sn) + 4+2+8+16); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, peer_conn->cookie, 0x0002, peer_conn->sn); @@ -770,7 +770,7 @@ byte_stream_putraw(&bs, peer_conn->cookie, 8); byte_stream_putcaps(&bs, peer_conn->type); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -791,13 +791,13 @@ GSList *outer_tlvlist = NULL, *inner_tlvlist = NULL; ByteStream hdrbs; - conn = flap_connection_findbygroup(od, 0x0004); + conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM); if (conn == NULL) return; byte_stream_new(&bs, 246+strlen(sn)); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -825,7 +825,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(outer_tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -844,13 +844,13 @@ ByteStream hdrbs; guint8 ip_comp[4]; - conn = flap_connection_findbygroup(od, 0x0004); + conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM); if (conn == NULL) return; byte_stream_new(&bs, 246+strlen(sn)); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -888,7 +888,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(outer_tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -906,13 +906,13 @@ GSList *outer_tlvlist = NULL, *inner_tlvlist = NULL; ByteStream hdrbs; - conn = flap_connection_findbygroup(od, 0x0004); + conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM); if (conn == NULL) return; byte_stream_new(&bs, 1014); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -971,7 +971,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(outer_tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -990,13 +990,13 @@ ByteStream hdrbs; guint8 ip_comp[4]; - conn = flap_connection_findbygroup(od, 0x0004); + conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM); if (conn == NULL) return; byte_stream_new(&bs, 1014); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -1064,7 +1064,7 @@ aim_tlvlist_free(inner_tlvlist); aim_tlvlist_free(outer_tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -1085,14 +1085,14 @@ aim_snacid_t snacid; guchar cookie[8]; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004)) || !sn) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM)) || !sn) return -EINVAL; aim_icbm_makecookie(cookie); byte_stream_new(&bs, 8+2+1+strlen(sn) + 4+0x5e + 4); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); /* ICBM header */ aim_im_puticbm(&bs, cookie, 0x0002, sn); @@ -1160,7 +1160,7 @@ byte_stream_put16(&bs, 0x0003); byte_stream_put16(&bs, 0x0000); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1196,7 +1196,7 @@ byte_stream_new(&bs, 8+3+strlen(sn)+12+strlen(message)+1+4); - snacid = aim_cachesnac(od, 0x0004, 0x0006, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0006, 0x0000, NULL, 0); aim_icbm_makecookie(cookie); @@ -1229,7 +1229,7 @@ byte_stream_put16(&bs, 0x0006); byte_stream_put16(&bs, 0x0000); - flap_connection_send_snac(od, conn, 0x0004, 0x0006, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0006, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -2268,13 +2268,13 @@ byte_stream_new(&bs, strlen(sn)+3); - snacid = aim_cachesnac(od, 0x0004, 0x0008, 0x0000, sn, strlen(sn)+1); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0008, 0x0000, sn, strlen(sn)+1); byte_stream_put16(&bs, (flags & AIM_WARN_ANON) ? 0x0001 : 0x0000); byte_stream_put8(&bs, strlen(sn)); byte_stream_putstr(&bs, sn); - flap_connection_send_snac(od, conn, 0x0004, 0x0008, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0008, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -2321,12 +2321,12 @@ aim_snacid_t snacid; GSList *tlvlist = NULL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0004))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICBM))) return -EINVAL; byte_stream_new(&bs, 8+2+1+strlen(sn)+6); - snacid = aim_cachesnac(od, 0x0004, 0x000b, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x000b, 0x0000, NULL, 0); byte_stream_putraw(&bs, cookie, 8); @@ -2338,7 +2338,7 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x0004, 0x000b, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x000b, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -2660,7 +2660,7 @@ if (!od || !(conn = flap_connection_findbygroup(od, 0x0002))) return -EINVAL; - aim_genericreq_n(od, conn, 0x0004, 0x0010); + aim_genericreq_n(od, conn, SNAC_FAMILY_ICBM, 0x0010); return 0; } @@ -2686,7 +2686,7 @@ byte_stream_new(&bs, 11+strlen(sn)+2); - snacid = aim_cachesnac(od, 0x0004, 0x0014, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICBM, 0x0014, 0x0000, NULL, 0); /* * 8 days of light @@ -2713,7 +2713,7 @@ */ byte_stream_put16(&bs, type2); - flap_connection_send_snac(od, conn, 0x0004, 0x0014, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICBM, 0x0014, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -2773,7 +2773,7 @@ int msg_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0004; + mod->family = SNAC_FAMILY_ICBM; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_icq.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_icq.c Thu Jun 26 09:07:56 2008 +0000 @@ -33,14 +33,14 @@ aim_snacid_t snacid; int bslen; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2 + 4 + 2 + 2; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -51,7 +51,7 @@ byte_stream_putle16(&bs, 0x003c); /* I command thee. */ byte_stream_putle16(&bs, snacid); /* eh. */ - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -65,14 +65,14 @@ aim_snacid_t snacid; int bslen; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2 + 4 + 2 + 2; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -83,7 +83,7 @@ byte_stream_putle16(&bs, 0x003e); /* I command thee. */ byte_stream_putle16(&bs, snacid); /* eh. */ - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -99,14 +99,14 @@ aim_snacid_t snacid; int bslen; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2+4+2+2+2+2+2+1+1+1+1+1+1; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -126,7 +126,7 @@ byte_stream_putle8(&bs, 0x00); byte_stream_putle8(&bs, !auth_required); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -151,7 +151,7 @@ if (!passwd) return -EINVAL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; passwdlen = strlen(passwd); @@ -161,7 +161,7 @@ byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -176,7 +176,7 @@ byte_stream_putstr(&bs, passwd); byte_stream_putle8(&bs, '\0'); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -194,14 +194,14 @@ if (!uin || uin[0] < '0' || uin[0] > '9') return -EINVAL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2 + 4 + 2 + 2 + 2 + 4; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -214,7 +214,7 @@ byte_stream_putle16(&bs, 0x04b2); /* shrug. */ byte_stream_putle32(&bs, atoi(uin)); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -239,14 +239,14 @@ if (!uin || uin[0] < '0' || uin[0] > '9') return -EINVAL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2 + 4 + 2 + 2 + 2 + 4; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -259,7 +259,7 @@ byte_stream_putle16(&bs, 0x04ba); /* shrug. */ byte_stream_putle32(&bs, atoi(uin)); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -283,14 +283,14 @@ if (!uin || uin[0] < '0' || uin[0] > '9') return -EINVAL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2 + 4 + 2 + 2 + 2 + 4; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -303,7 +303,7 @@ byte_stream_putle16(&bs, 0x051f); /* shrug. */ byte_stream_putle32(&bs, atoi(uin)); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -321,14 +321,14 @@ if (!xml || !strlen(xml)) return -EINVAL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; bslen = 2 + 10 + 2 + strlen(xml) + 1; byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -342,7 +342,7 @@ byte_stream_putle16(&bs, strlen(xml) + 1); byte_stream_putraw(&bs, (guint8 *)xml, strlen(xml) + 1); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -380,7 +380,7 @@ struct tm *tm; gchar *stripped; - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) return -EINVAL; if (!name || !msg || !alias) @@ -411,7 +411,7 @@ byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); /* For simplicity, don't bother using a tlvlist */ byte_stream_put16(&bs, 0x0001); @@ -436,7 +436,7 @@ byte_stream_putstr(&bs, xml); byte_stream_put8(&bs, 0x00); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -460,7 +460,7 @@ purple_debug_misc("oscar", "aim_icq_getstatusnote: requesting status note for %s.\n", uin); - if (!od || !(conn = flap_connection_findbygroup(od, 0x0015))) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ICQ))) { purple_debug_misc("oscar", "aim_icq_getstatusnote: no connection.\n"); return -EINVAL; @@ -469,7 +469,7 @@ bslen = 2 + 4 + 2 + 2 + 2 + 2 + 58 + strlen(uin); byte_stream_new(&bs, 4 + bslen); - snacid = aim_cachesnac(od, 0x0015, 0x0002, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_ICQ, 0x0002, 0x0000, NULL, 0); byte_stream_put16(&bs, 0x0001); byte_stream_put16(&bs, bslen); @@ -497,7 +497,7 @@ byte_stream_put16(&bs, strlen(uin)); byte_stream_putstr(&bs, uin); - flap_connection_send_snac(od, conn, 0x0015, 0x0002, 0x000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ICQ, 0x0002, 0x000, snacid, &bs); byte_stream_destroy(&bs); @@ -541,7 +541,7 @@ } /** - * Subtype 0x0003 - Response to 0x0015/0x002, contains an ICQesque packet. + * Subtype 0x0003 - Response to SNAC_FAMILY_ICQ/0x002, contains an ICQesque packet. */ static int icqresponse(OscarData *od, FlapConnection *conn, aim_module_t *mod, FlapFrame *frame, aim_modsnac_t *snac, ByteStream *bs) @@ -940,7 +940,7 @@ int icq_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0015; + mod->family = SNAC_FAMILY_ICQ; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x047c;
--- a/libpurple/protocols/oscar/family_invite.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_invite.c Thu Jun 26 09:07:56 2008 +0000 @@ -41,7 +41,7 @@ int invite_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0006; + mod->family = SNAC_FAMILY_INVITE; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_locate.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_locate.c Thu Jun 26 09:07:56 2008 +0000 @@ -171,7 +171,7 @@ {0x09, 0x46, 0xf0, 0x03, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, - {OSCAR_CAPABILITY_GENERICUNKNOWN, + {OSCAR_CAPABILITY_ICHAT_SCREENSHARE, {0x09, 0x46, 0xf0, 0x04, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, @@ -943,7 +943,7 @@ return 0; } - if ((snac2->family != 0x0002) && (snac2->type != 0x0015)) { + if ((snac2->family != SNAC_FAMILY_LOCATE) && (snac2->type != 0x0015)) { purple_debug_misc("oscar", "faim: locate.c, error(): received response from invalid request! %d\n", snac2->family); return 0; } @@ -1094,12 +1094,12 @@ byte_stream_new(&bs, aim_tlvlist_size(tlvlist)); - snacid = aim_cachesnac(od, 0x0002, 0x0004, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0004, 0x0000, NULL, 0); aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x0002, 0x0004, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1124,12 +1124,12 @@ byte_stream_new(&bs, aim_tlvlist_size(tlvlist)); - snacid = aim_cachesnac(od, 0x0002, 0x0004, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0004, 0x0000, NULL, 0); aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x0002, 0x0004, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1157,13 +1157,13 @@ byte_stream_new(&bs, 2+1+strlen(sn)); - snacid = aim_cachesnac(od, 0x0002, 0x0005, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0005, 0x0000, NULL, 0); byte_stream_put16(&bs, infotype); byte_stream_put8(&bs, strlen(sn)); byte_stream_putstr(&bs, sn); - flap_connection_send_snac(od, conn, 0x0002, 0x0005, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x0005, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1274,12 +1274,12 @@ byte_stream_new(&bs, aim_tlvlist_size(tlvlist)); - snacid = aim_cachesnac(od, 0x0002, 0x0009, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0009, 0x0000, NULL, 0); aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x0002, 0x0009, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x0009, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1302,12 +1302,12 @@ byte_stream_new(&bs, 1+strlen(sn)); - snacid = aim_cachesnac(od, 0x0002, 0x000b, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x000b, 0x0000, NULL, 0); byte_stream_put8(&bs, strlen(sn)); byte_stream_putstr(&bs, sn); - flap_connection_send_snac(od, conn, 0x0002, 0x000b, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x000b, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1347,12 +1347,12 @@ byte_stream_new(&bs, aim_tlvlist_size(tlvlist)); - snacid = aim_cachesnac(od, 0x0002, 0x000f, 0x0000, NULL, 0); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x000f, 0x0000, NULL, 0); aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - flap_connection_send_snac(od, conn, 0x0002, 0x000f, 0x0000, snacid, &bs); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x000f, 0x0000, snacid, &bs); byte_stream_destroy(&bs); return 0; @@ -1385,8 +1385,8 @@ byte_stream_put8(&bs, strlen(sn)); byte_stream_putstr(&bs, sn); - snacid = aim_cachesnac(od, 0x0002, 0x0015, 0x0000, sn, strlen(sn)+1); - flap_connection_send_snac(od, conn, 0x0002, 0x0015, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_LOCATE, 0x0015, 0x0000, sn, strlen(sn)+1); + flap_connection_send_snac(od, conn, SNAC_FAMILY_LOCATE, 0x0015, 0x0000, snacid, &bs); byte_stream_destroy(&bs);
--- a/libpurple/protocols/oscar/family_odir.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_odir.c Thu Jun 26 09:07:56 2008 +0000 @@ -45,7 +45,7 @@ aim_snacid_t snacid; GSList *tlvlist = NULL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x000f)) || !region || !email) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ODIR)) || !region || !email) return -EINVAL; /* Create a TLV chain, write it to the outgoing frame, then free the chain */ @@ -58,8 +58,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x000f, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x000f, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ODIR, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ODIR, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -94,7 +94,7 @@ aim_snacid_t snacid; GSList *tlvlist = NULL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x000f)) || !region) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ODIR)) || !region) return -EINVAL; /* Create a TLV chain, write it to the outgoing frame, then free the chain */ @@ -126,8 +126,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x000f, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x000f, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ODIR, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ODIR, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -149,7 +149,7 @@ aim_snacid_t snacid; GSList *tlvlist = NULL; - if (!od || !(conn = flap_connection_findbygroup(od, 0x000f)) || !region) + if (!od || !(conn = flap_connection_findbygroup(od, SNAC_FAMILY_ODIR)) || !region) return -EINVAL; /* Create a TLV chain, write it to the outgoing frame, then free the chain */ @@ -163,8 +163,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x000f, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x000f, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_ODIR, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_ODIR, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -252,7 +252,7 @@ int odir_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x000f; + mod->family = SNAC_FAMILY_ODIR; mod->version = 0x0001; mod->toolid = 0x0010; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_oservice.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_oservice.c Thu Jun 26 09:07:56 2008 +0000 @@ -54,8 +54,8 @@ } } - snacid = aim_cachesnac(od, 0x0001, 0x0002, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x0002, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -108,7 +108,7 @@ if(!conn) return; - aim_genericreq_s(od, conn, 0x0001, 0x0004, &serviceid); + aim_genericreq_s(od, conn, SNAC_FAMILY_OSERVICE, 0x0004, &serviceid); } /* @@ -146,8 +146,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x0001, 0x0004, 0x0000, &csi, sizeof(csi)); - flap_connection_send_snac(od, conn, 0x0001, 0x0004, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x0004, 0x0000, &csi, sizeof(csi)); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x0004, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -210,7 +210,7 @@ void aim_srv_reqrates(OscarData *od, FlapConnection *conn) { - aim_genericreq_n_snacid(od, conn, 0x0001, 0x0006); + aim_genericreq_n_snacid(od, conn, SNAC_FAMILY_OSERVICE, 0x0006); } /* @@ -389,8 +389,8 @@ byte_stream_put16(&bs, rateclass->classid); } - snacid = aim_cachesnac(od, 0x0001, 0x0008, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x0008, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x0008, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x0008, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -412,8 +412,8 @@ byte_stream_put16(&bs, rateclass->classid); } - snacid = aim_cachesnac(od, 0x0001, 0x0009, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x0009, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x0009, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x0009, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -503,8 +503,8 @@ for (cur = conn->groups; cur != NULL; cur = cur->next) byte_stream_put16(&bs, GPOINTER_TO_UINT(cur->data)); - snacid = aim_cachesnac(od, 0x0001, 0x000c, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x000c, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x000c, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x000c, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -526,7 +526,7 @@ void aim_srv_reqpersonalinfo(OscarData *od, FlapConnection *conn) { - aim_genericreq_n_snacid(od, conn, 0x0001, 0x000e); + aim_genericreq_n_snacid(od, conn, SNAC_FAMILY_OSERVICE, 0x000e); } /* Subtype 0x000f - Self User Info */ @@ -589,7 +589,7 @@ if(!conn) return; - aim_genericreq_l(od, conn, 0x0001, 0x0011, &idletime); + aim_genericreq_l(od, conn, SNAC_FAMILY_OSERVICE, 0x0011, &idletime); } /* @@ -698,7 +698,7 @@ void aim_srv_setprivacyflags(OscarData *od, FlapConnection *conn, guint32 flags) { - aim_genericreq_l(od, conn, 0x0001, 0x0014, &flags); + aim_genericreq_l(od, conn, SNAC_FAMILY_OSERVICE, 0x0014, &flags); } /* @@ -713,7 +713,7 @@ void aim_srv_nop(OscarData *od, FlapConnection *conn) { - aim_genericreq_n(od, conn, 0x0001, 0x0016); + aim_genericreq_n(od, conn, SNAC_FAMILY_OSERVICE, 0x0016); } /* @@ -753,8 +753,8 @@ } } - snacid = aim_cachesnac(od, 0x0001, 0x0017, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x0017, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x0017, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x0017, 0x0000, snacid, &bs); byte_stream_destroy(&bs); } @@ -861,8 +861,8 @@ aim_tlvlist_write(&bs, &tlvlist); aim_tlvlist_free(tlvlist); - snacid = aim_cachesnac(od, 0x0001, 0x001e, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x001e, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x001e, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x001e, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -952,13 +952,10 @@ byte_stream_putraw(&bs, buf, 0x10); } else if (buf && (len > 0)) { /* use input buffer */ - PurpleCipher *cipher; PurpleCipherContext *context; guchar digest[16]; - cipher = purple_ciphers_find_cipher("md5"); - - context = purple_cipher_context_new(cipher, NULL); + context = purple_cipher_context_new_by_name("md5", NULL); purple_cipher_context_append(context, buf, len); purple_cipher_context_digest(context, 16, digest, NULL); purple_cipher_context_destroy(context); @@ -966,7 +963,6 @@ byte_stream_putraw(&bs, digest, 0x10); } else if (len == 0) { /* no length, just hash NULL (buf is optional) */ - PurpleCipher *cipher; PurpleCipherContext *context; guchar digest[16]; guint8 nil = '\0'; @@ -975,9 +971,7 @@ * I'm not sure if we really need the empty append with the * new MD5 functions, so I'll leave it in, just in case. */ - cipher = purple_ciphers_find_cipher("md5"); - - context = purple_cipher_context_new(cipher, NULL); + context = purple_cipher_context_new_by_name("md5", NULL); purple_cipher_context_append(context, &nil, 0); purple_cipher_context_digest(context, 16, digest, NULL); purple_cipher_context_destroy(context); @@ -1012,8 +1006,8 @@ } - snacid = aim_cachesnac(od, 0x0001, 0x0020, 0x0000, NULL, 0); - flap_connection_send_snac(od, conn, 0x0001, 0x0020, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_OSERVICE, 0x0020, 0x0000, NULL, 0); + flap_connection_send_snac(od, conn, SNAC_FAMILY_OSERVICE, 0x0020, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -1100,7 +1094,7 @@ int service_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0001; + mod->family = SNAC_FAMILY_OSERVICE; mod->version = 0x0003; mod->toolid = 0x0110; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/family_popup.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_popup.c Thu Jun 26 09:07:56 2008 +0000 @@ -72,7 +72,7 @@ int popups_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x0008; + mod->family = SNAC_FAMILY_POPUP; mod->version = 0x0001; mod->toolid = 0x0104; mod->toolversion = 0x0001;
--- a/libpurple/protocols/oscar/family_stats.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_stats.c Thu Jun 26 09:07:56 2008 +0000 @@ -52,7 +52,7 @@ int stats_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x000b; + mod->family = SNAC_FAMILY_STATS; mod->version = 0x0001; mod->toolid = 0x0104; mod->toolversion = 0x0001;
--- a/libpurple/protocols/oscar/family_translate.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_translate.c Thu Jun 26 09:07:56 2008 +0000 @@ -34,7 +34,7 @@ int translate_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x000c; + mod->family = SNAC_FAMILY_TRANSLATE; mod->version = 0x0001; mod->toolid = 0x0104; mod->toolversion = 0x0001;
--- a/libpurple/protocols/oscar/family_userlookup.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/family_userlookup.c Thu Jun 26 09:07:56 2008 +0000 @@ -74,8 +74,8 @@ byte_stream_putstr(&bs, address); - snacid = aim_cachesnac(od, 0x000a, 0x0002, 0x0000, address, strlen(address)+1); - flap_connection_send_snac(od, conn, 0x000a, 0x0002, 0x0000, snacid, &bs); + snacid = aim_cachesnac(od, SNAC_FAMILY_USERLOOKUP, 0x0002, 0x0000, address, strlen(address)+1); + flap_connection_send_snac(od, conn, SNAC_FAMILY_USERLOOKUP, 0x0002, 0x0000, snacid, &bs); byte_stream_destroy(&bs); @@ -145,7 +145,7 @@ int search_modfirst(OscarData *od, aim_module_t *mod) { - mod->family = 0x000a; + mod->family = SNAC_FAMILY_USERLOOKUP; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x0629;
--- a/libpurple/protocols/oscar/libaim.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/libaim.c Thu Jun 26 09:07:56 2008 +0000 @@ -96,7 +96,7 @@ NULL, /* send_attention */ NULL, /* get_attention_types */ - /* padding */ + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/oscar/libicq.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/libicq.c Thu Jun 26 09:07:56 2008 +0000 @@ -96,7 +96,7 @@ NULL, /* send_attention */ NULL, /* get_attention_types */ - /* padding */ + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/oscar/oscar.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Thu Jun 26 09:07:56 2008 +0000 @@ -131,8 +131,8 @@ N_("Busted SNAC payload"), N_("Insufficient rights"), N_("In local permit/deny"), - N_("Too evil (sender)"), - N_("Too evil (receiver)"), + N_("Warning level too high (sender)"), + N_("Warning level too high (receiver)"), N_("User temporarily unavailable"), N_("No match"), N_("List overflow"), @@ -707,6 +707,9 @@ case OSCAR_CAPABILITY_CAMERA: tmp = _("Camera"); break; + case OSCAR_CAPABILITY_ICHAT_SCREENSHARE: + tmp = _("Screen Sharing"); + break; default: tmp = NULL; break; @@ -753,7 +756,7 @@ const char *name, const char *value) { gchar *utf8; - + if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { purple_notify_user_info_add_pair(user_info, name, utf8); g_free(utf8); @@ -761,30 +764,152 @@ } static void -oscar_string_convert_and_append(PurpleAccount *account, GString *str, const char *newline, - const char *name, const char *value) -{ - gchar *utf8; - - if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { - g_string_append_printf(str, "%s<b>%s:</b> %s", newline, name, utf8); - g_free(utf8); - } -} - -static void oscar_user_info_convert_and_add(PurpleAccount *account, PurpleNotifyUserInfo *user_info, const char *name, const char *value) { gchar *utf8; - + if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { purple_notify_user_info_add_pair(user_info, name, utf8); g_free(utf8); } } -static void oscar_string_append_info(PurpleConnection *gc, PurpleNotifyUserInfo *user_info, PurpleBuddy *b, aim_userinfo_t *userinfo) +/** + * @brief Append the status information to a user_info struct + * + * The returned information is HTML-ready, appropriately escaped, as all information in a user_info struct should be HTML. + * + * @param gc The PurpleConnection + * @param user_info A PurpleNotifyUserInfo object to which status information will be added + * @param b The PurpleBuddy whose status is desired. This or the aim_userinfo_t (or both) must be passed to oscar_user_info_append_status(). + * @param userinfo The aim_userinfo_t of the buddy whose status is desired. This or the PurpleBuddy (or both) must be passed to oscar_user_info_append_status(). + * @param strip_html_tags If strip_html_tags is TRUE, tags embedded in the status message will be stripped, returning a non-formatted string. The string will still be HTML escaped. + */ +static void oscar_user_info_append_status(PurpleConnection *gc, PurpleNotifyUserInfo *user_info, PurpleBuddy *b, aim_userinfo_t *userinfo, gboolean strip_html_tags) +{ + PurpleAccount *account = purple_connection_get_account(gc); + OscarData *od; + PurplePresence *presence = NULL; + PurpleStatus *status = NULL; + gchar *message = NULL, *itmsurl = NULL, *tmp; + gboolean is_away; + + od = gc->proto_data; + + if (userinfo == NULL) + userinfo = aim_locate_finduserinfo(od, b->name); + + if ((user_info == NULL) || ((b == NULL) && (userinfo == NULL))) + return; + + if (b == NULL) + b = purple_find_buddy(purple_connection_get_account(gc), userinfo->sn); + + if (b) { + presence = purple_buddy_get_presence(b); + status = purple_presence_get_active_status(presence); + + message = g_strdup(purple_status_get_attr_string(status, "message")); + itmsurl = g_strdup(purple_status_get_attr_string(status, "itmsurl")); + + } else { + /* This is an OSCAR contact for whom we don't have a PurpleBuddy but do have information. */ + if ((userinfo->flags & AIM_FLAG_AWAY)) { + /* Away message? */ + if ((userinfo->flags & AIM_FLAG_AWAY) && (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) { + tmp = oscar_encoding_extract(userinfo->away_encoding); + message = oscar_encoding_to_utf8(account, tmp, userinfo->away, + userinfo->away_len); + g_free(tmp); + } + } else { + /* Available message? */ + if ((userinfo->status != NULL) && userinfo->status[0] != '\0') { + message = oscar_encoding_to_utf8(account, userinfo->status_encoding, + userinfo->status, userinfo->status_len); + } +#if defined (_WIN32) || defined (__APPLE__) + if (userinfo->itmsurl && (userinfo->itmsurl[0] != '\0')) + itmsurl = oscar_encoding_to_utf8(account, userinfo->itmsurl_encoding, + userinfo->itmsurl, userinfo->itmsurl_len); +#endif + } + } + + is_away = ((status && !purple_status_is_available(status)) || + (userinfo && (userinfo->flags & AIM_FLAG_AWAY))); + + if (strip_html_tags) { + /* Away messges are HTML, but available messages were originally plain text. + * We therefore need to strip away messages but not available messages if we're asked to remove HTML tags. + */ + if (is_away && message) { + gchar *tmp2; + tmp = purple_markup_strip_html(message); + g_free(message); + tmp2 = g_markup_escape_text(tmp, -1); + g_free(tmp); + message = tmp2; + } + + } else { + if (itmsurl) { + tmp = g_strdup_printf("<a href=\"%s\">%s</a>", + itmsurl, message); + g_free(itmsurl); + g_free(message); + message = tmp; + } + } + + if (is_away && message) { + tmp = purple_str_sub_away_formatters(message, purple_account_get_username(account)); + g_free(message); + message = tmp; + } + + if (b) { + if (purple_presence_is_online(presence)) { + if (aim_snvalid_icq(b->name) || is_away || !message || !(*message)) { + /* Append the status name for online ICQ statuses, away AIM statuses, and for all buddies with no message. + * If the status name and the message are the same, only show one. */ + const char *status_name = purple_status_get_name(status); + if (status_name && message && !strcmp(status_name, message)) + status_name = NULL; + + tmp = g_strdup_printf("%s%s%s", + status_name, + ((status_name && message) && *message) ? ": " : "", + (message && *message) ? message : ""); + g_free(message); + message = tmp; + } + + } else { + if (aim_ssi_waitingforauth(od->ssi.local, + aim_ssi_itemlist_findparentname(od->ssi.local, b->name), + b->name)) { + /* Note if an offline buddy is not authorized */ + tmp = g_strdup_printf("%s%s%s", + _("Not Authorized"), + (message && *message) ? ": " : "", + (message && *message) ? message : ""); + g_free(message); + message = tmp; + } else { + g_free(message); + message = g_strdup(_("Offline")); + } + } + + } + + purple_notify_user_info_add_pair(user_info, _("Status"), message); + g_free(message); +} + +static void oscar_user_info_append_extra_info(PurpleConnection *gc, PurpleNotifyUserInfo *user_info, PurpleBuddy *b, aim_userinfo_t *userinfo) { OscarData *od; PurpleAccount *account; @@ -815,21 +940,6 @@ if (userinfo != NULL) bi = g_hash_table_lookup(od->buddyinfo, purple_normalize(account, userinfo->sn)); - if (b != NULL) { - if (purple_presence_is_online(presence)) { - if (aim_snvalid_icq(b->name)) { - PurpleStatus *status = purple_presence_get_active_status(presence); - oscar_user_info_add_pair(user_info, _("Status"), purple_status_get_name(status)); - } - } else { - tmp = aim_ssi_itemlist_findparentname(od->ssi.local, b->name); - if (aim_ssi_waitingforauth(od->ssi.local, tmp, b->name)) - oscar_user_info_add_pair(user_info, _("Status"), _("Not Authorized")); - else - oscar_user_info_add_pair(user_info, _("Status"), _("Offline")); - } - } - if ((bi != NULL) && (bi->ipaddr != 0)) { tmp = g_strdup_printf("%hhu.%hhu.%hhu.%hhu", (bi->ipaddr & 0xff000000) >> 24, @@ -840,7 +950,6 @@ g_free(tmp); } - if ((userinfo != NULL) && (userinfo->warnlevel != 0)) { tmp = g_strdup_printf("%d", (int)(userinfo->warnlevel/10.0 + .5)); oscar_user_info_add_pair(user_info, _("Warning Level"), tmp); @@ -988,8 +1097,8 @@ if (source < 0) { - purple_debug_error("oscar", "unable to connect FLAP server " - "of type 0x%04hx\n", conn->type); + purple_debug_error("oscar", "unable to connect to FLAP " + "server of type 0x%04hx\n", conn->type); if (conn->type == SNAC_FAMILY_AUTH) { gchar *msg; @@ -1106,12 +1215,12 @@ od->conf = FALSE; } if (od->reqemail) { - purple_debug_info("oscar", "requesting e-mail address\n"); + purple_debug_info("oscar", "requesting email address\n"); aim_admin_getinfo(od, conn, 0x0011); od->reqemail = FALSE; } if (od->setemail) { - purple_debug_info("oscar", "setting e-mail address\n"); + purple_debug_info("oscar", "setting email address\n"); aim_admin_setemail(od, conn, od->email); g_free(od->email); od->email = NULL; @@ -1428,7 +1537,7 @@ } purple_debug_misc("oscar", "Reg status: %hu\n", info->regstatus); - purple_debug_misc("oscar", "E-mail: %s\n", + purple_debug_misc("oscar", "Email: %s\n", (info->email != NULL) ? info->email : "null"); purple_debug_misc("oscar", "BOSIP: %s\n", info->bosip); purple_debug_info("oscar", "Closing auth connection...\n"); @@ -1705,7 +1814,8 @@ aim_send_login(od, conn, purple_account_get_username(account), purple_connection_get_password(gc), truncate_pass, - od->icq ? &icqinfo : &aiminfo, key); + od->icq ? &icqinfo : &aiminfo, key, + /* allow multple logins? */ purple_account_get_bool(account, "allow_multiple_logins", OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS)); purple_connection_update_progress(gc, _("Password sent"), 2, OSCAR_CONNECT_STEPS); ck[2] = 0x6c; @@ -1841,6 +1951,7 @@ { char *message = NULL; char *itmsurl = NULL; + char *tmp; if (info->status != NULL && info->status[0] != '\0') /* Grab the available message */ @@ -1852,15 +1963,31 @@ itmsurl = oscar_encoding_to_utf8(account, info->itmsurl_encoding, info->itmsurl, info->itmsurl_len); + tmp = (message ? g_markup_escape_text(message, -1) : NULL); + + if (message == NULL && itmsurl != NULL) + message = ""; + purple_prpl_got_user_status(account, info->sn, status_id, - "message", message, "itmsurl", itmsurl, NULL); + "message", tmp, "itmsurl", itmsurl, NULL); + g_free(tmp); g_free(message); g_free(itmsurl); } else { - purple_prpl_got_user_status(account, info->sn, status_id, NULL); + PurpleBuddy *b = purple_find_buddy(account, info->sn); + PurplePresence *presence = purple_buddy_get_presence(b); + PurpleStatus *old_status = purple_presence_get_active_status(presence); + PurpleStatus *new_status = purple_presence_get_status(presence, status_id); + + /* If our status_id would change with this update, pass it to the core. + * However, if our status_id would not change, do nothing, as we would clear out any existing + * attributes on the status prematurely. purple_got_infoblock() will update the message as needed. + */ + if (old_status != new_status) + purple_prpl_got_user_status(account, info->sn, status_id, NULL); } /* Login time stuff */ @@ -2492,8 +2619,8 @@ case 0x0e: { /* Someone has emailed you at your_uin@pager.icq.com */ if (i >= 6) { - gchar *dialog_msg = g_strdup_printf(_("You have received an ICQ e-mail from %s [%s]\n\nMessage is:\n%s"), msg2[0], msg2[3], msg2[5]); - purple_notify_info(gc, NULL, "ICQ E-Mail", dialog_msg); + gchar *dialog_msg = g_strdup_printf(_("You have received an ICQ email from %s [%s]\n\nMessage is:\n%s"), msg2[0], msg2[3], msg2[5]); + purple_notify_info(gc, NULL, "ICQ Email", dialog_msg); g_free(dialog_msg); } } break; @@ -2648,7 +2775,7 @@ switch(reason) { case 0: /* Invalid (0) */ buf = g_strdup_printf( - dngettext(PACKAGE, + dngettext(PACKAGE, "You missed %hu message from %s because it was invalid.", "You missed %hu messages from %s because they were invalid.", nummissed), @@ -2657,7 +2784,7 @@ break; case 1: /* Message too large */ buf = g_strdup_printf( - dngettext(PACKAGE, + dngettext(PACKAGE, "You missed %hu message from %s because it was too large.", "You missed %hu messages from %s because they were too large.", nummissed), @@ -2666,7 +2793,7 @@ break; case 2: /* Rate exceeded */ buf = g_strdup_printf( - dngettext(PACKAGE, + dngettext(PACKAGE, "You missed %hu message from %s because the rate limit has been exceeded.", "You missed %hu messages from %s because the rate limit has been exceeded.", nummissed), @@ -2675,25 +2802,25 @@ break; case 3: /* Evil Sender */ buf = g_strdup_printf( - dngettext(PACKAGE, - "You missed %hu message from %s because he/she was too evil.", - "You missed %hu messages from %s because he/she was too evil.", + dngettext(PACKAGE, + "You missed %hu message from %s because his/her warning level is too high.", + "You missed %hu messages from %s because his/her warning level is too high.", nummissed), nummissed, userinfo->sn); break; case 4: /* Evil Receiver */ buf = g_strdup_printf( - dngettext(PACKAGE, - "You missed %hu message from %s because you are too evil.", - "You missed %hu messages from %s because you are too evil.", + dngettext(PACKAGE, + "You missed %hu message from %s because your warning level is too high.", + "You missed %hu messages from %s because your warning level is too high.", nummissed), nummissed, userinfo->sn); break; default: buf = g_strdup_printf( - dngettext(PACKAGE, + dngettext(PACKAGE, "You missed %hu message from %s for an unknown reason.", "You missed %hu messages from %s for an unknown reason.", nummissed), @@ -2749,9 +2876,9 @@ /* Split at (carriage return/newline)'s, then rejoin later with BRs between. */ statusmsg = oscar_icqstatus(state); splitmsg = g_strsplit(msg, "\r\n", 0); - + user_info = purple_notify_user_info_new(); - + purple_notify_user_info_add_pair(user_info, _("UIN"), who); purple_notify_user_info_add_pair(user_info, _("Status"), statusmsg); purple_notify_user_info_add_section_break(user_info); @@ -2932,7 +3059,7 @@ PurpleConnection *gc = od->gc; PurpleAccount *account = purple_connection_get_account(gc); PurpleNotifyUserInfo *user_info; - gchar *tmp = NULL, *info_utf8 = NULL, *away_utf8 = NULL; + gchar *tmp = NULL, *info_utf8 = NULL; va_list ap; aim_userinfo_t *userinfo; @@ -2941,13 +3068,19 @@ va_end(ap); user_info = purple_notify_user_info_new(); - purple_notify_user_info_add_pair(user_info, _("Username"), userinfo->sn); - - tmp = g_strdup_printf("%d", (int)((userinfo->warnlevel/10.0) + 0.5)); - purple_notify_user_info_add_pair(user_info, _("Warning Level"), tmp); - g_free(tmp); - - if (userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) { + + oscar_user_info_append_status(gc, user_info, /* PurpleBuddy */ NULL, userinfo, /* strip_html_tags */ FALSE); + + if (userinfo->present & AIM_USERINFO_PRESENT_IDLE) { + tmp = purple_str_seconds_to_string(userinfo->idletime*60); + oscar_user_info_add_pair(user_info, _("Idle"), tmp); + g_free(tmp); + } + + oscar_user_info_append_extra_info(gc, user_info, NULL, userinfo); + + if ((userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) && !aim_snvalid_sms(userinfo->sn)) { + /* An SMS contact is always online; its Online Since valid is not useful */ time_t t = userinfo->onlinesince; oscar_user_info_add_pair(user_info, _("Online Since"), purple_date_format_full(localtime(&t))); } @@ -2963,51 +3096,6 @@ g_free(tmp); } - if (userinfo->present & AIM_USERINFO_PRESENT_IDLE) { - tmp = purple_str_seconds_to_string(userinfo->idletime*60); - oscar_user_info_add_pair(user_info, _("Idle"), tmp); - g_free(tmp); - } - - oscar_string_append_info(gc, user_info, NULL, userinfo); - - /* Available message */ - if ((userinfo->status != NULL) && !(userinfo->flags & AIM_FLAG_AWAY)) - { - if (userinfo->status[0] != '\0') - tmp = oscar_encoding_to_utf8(account, userinfo->status_encoding, - userinfo->status, userinfo->status_len); -#if defined (_WIN32) || defined (__APPLE__) - if (userinfo->itmsurl && (userinfo->itmsurl[0] != '\0')) { - gchar *itmsurl, *tmp2; - itmsurl = oscar_encoding_to_utf8(account, userinfo->itmsurl_encoding, - userinfo->itmsurl, userinfo->itmsurl_len); - tmp2 = g_strdup_printf("<a href=\"%s\">%s</a>", - itmsurl, tmp); - g_free(tmp); - tmp = tmp2; - g_free(itmsurl); - } -#endif - oscar_user_info_add_pair(user_info, _("Available Message"), tmp); - g_free(tmp); - } - - /* Away message */ - if ((userinfo->flags & AIM_FLAG_AWAY) && (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) { - tmp = oscar_encoding_extract(userinfo->away_encoding); - away_utf8 = oscar_encoding_to_utf8(account, tmp, userinfo->away, - userinfo->away_len); - g_free(tmp); - if (away_utf8 != NULL) { - tmp = purple_str_sub_away_formatters(away_utf8, purple_account_get_username(account)); - purple_notify_user_info_add_section_break(user_info); - oscar_user_info_add_pair(user_info, NULL, tmp); - g_free(tmp); - g_free(away_utf8); - } - } - /* Info */ if ((userinfo->info_len > 0) && (userinfo->info != NULL) && (userinfo->info_encoding != NULL)) { tmp = oscar_encoding_extract(userinfo->info_encoding); @@ -3446,8 +3534,8 @@ if (code == AIM_RATE_CODE_LIMIT) { purple_debug_warning("oscar", _("The last action you attempted could not be " - "performed because you are over the rate limit. " - "Please wait 10 seconds and try again.")); + "performed because you are over the rate limit. " + "Please wait 10 seconds and try again.")); } return 1; @@ -3704,12 +3792,9 @@ PurpleConnection *gc; PurpleAccount *account; PurpleBuddy *buddy; - PurplePresence *presence; - PurpleStatus *status; struct buddyinfo *bi; gchar who[16]; PurpleNotifyUserInfo *user_info; - GString *tmp; gchar *utf8; gchar *buf; const gchar *alias; @@ -3727,7 +3812,7 @@ return 0; user_info = purple_notify_user_info_new(); - + g_snprintf(who, sizeof(who), "%u", info->uin); buddy = purple_find_buddy(purple_connection_get_account(gc), who); if (buddy != NULL) @@ -3750,7 +3835,7 @@ oscar_user_info_convert_and_add(account, user_info, _("Last Name"), info->last); if (info->email && info->email[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->email))) { buf = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", utf8, utf8); - purple_notify_user_info_add_pair(user_info, _("E-Mail Address"), buf); + purple_notify_user_info_add_pair(user_info, _("Email Address"), buf); g_free(buf); g_free(utf8); } @@ -3759,7 +3844,7 @@ for (i = 0; i < info->numaddresses; i++) { if (info->email2[i] && info->email2[i][0] && (utf8 = oscar_utf8_try_convert(gc->account, info->email2[i]))) { buf = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", utf8, utf8); - purple_notify_user_info_add_pair(user_info, _("E-Mail Address"), buf); + purple_notify_user_info_add_pair(user_info, _("Email Address"), buf); g_free(buf); g_free(utf8); } @@ -3790,8 +3875,7 @@ if ((info->age > 0) && (info->age < 255)) { char age[5]; snprintf(age, sizeof(age), "%hhd", info->age); - purple_notify_user_info_add_pair(user_info, - _("Age"), age); + purple_notify_user_info_add_pair(user_info, _("Age"), age); } if (info->personalwebpage && info->personalwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->personalwebpage))) { buf = g_strdup_printf("<a href=\"%s\">%s</a>", utf8, utf8); @@ -3800,65 +3884,41 @@ g_free(utf8); } - if (buddy != NULL) { - const gchar *message; - gchar *utf8, *tmp; - - presence = purple_buddy_get_presence(buddy); - status = purple_presence_get_active_status(presence); - message = purple_status_get_attr_string(status, "message"); - - utf8 = message && message[0] ? oscar_utf8_try_convert(account, message) : NULL; - tmp = g_strdup_printf("%s%s%s", - purple_status_get_name(status), - utf8 && *utf8 ? ": " : "", - utf8 && *utf8 ? utf8 : ""); - g_free(utf8); - - oscar_user_info_convert_and_add(account, - user_info, _("Status"), tmp); - } + if (buddy != NULL) + oscar_user_info_append_status(gc, user_info, buddy, /* aim_userinfo_t */ NULL, /* strip_html_tags */ FALSE); oscar_user_info_convert_and_add(account, user_info, _("Additional Information"), info->info); purple_notify_user_info_add_section_break(user_info); if ((info->homeaddr && (info->homeaddr[0])) || (info->homecity && info->homecity[0]) || (info->homestate && info->homestate[0]) || (info->homezip && info->homezip[0])) { - tmp = g_string_sized_new(100); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Address"), info->homeaddr); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("City"), info->homecity); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("State"), info->homestate); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Zip Code"), info->homezip); - - purple_notify_user_info_add_pair(user_info, _("Home Address"), tmp->str); - purple_notify_user_info_add_section_break(user_info); - - g_string_free(tmp, TRUE); + purple_notify_user_info_add_section_header(user_info, _("Home Address")); + + oscar_user_info_convert_and_add(account, user_info, _("Address"), info->homeaddr); + oscar_user_info_convert_and_add(account, user_info, _("City"), info->homecity); + oscar_user_info_convert_and_add(account, user_info, _("State"), info->homestate); + oscar_user_info_convert_and_add(account, user_info, _("Zip Code"), info->homezip); } if ((info->workaddr && info->workaddr[0]) || (info->workcity && info->workcity[0]) || (info->workstate && info->workstate[0]) || (info->workzip && info->workzip[0])) { - tmp = g_string_sized_new(100); - - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Address"), info->workaddr); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("City"), info->workcity); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("State"), info->workstate); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Zip Code"), info->workzip); - - purple_notify_user_info_add_pair(user_info, _("Work Address"), tmp->str); - purple_notify_user_info_add_section_break(user_info); - - g_string_free(tmp, TRUE); + purple_notify_user_info_add_section_header(user_info, _("Work Address")); + + oscar_user_info_convert_and_add(account, user_info, _("Address"), info->workaddr); + oscar_user_info_convert_and_add(account, user_info, _("City"), info->workcity); + oscar_user_info_convert_and_add(account, user_info, _("State"), info->workstate); + oscar_user_info_convert_and_add(account, user_info, _("Zip Code"), info->workzip); } if ((info->workcompany && info->workcompany[0]) || (info->workdivision && info->workdivision[0]) || (info->workposition && info->workposition[0]) || (info->workwebpage && info->workwebpage[0])) { - tmp = g_string_sized_new(100); - - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Company"), info->workcompany); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Division"), info->workdivision); - oscar_string_convert_and_append(account, tmp, "\n<br>", _("Position"), info->workposition); + purple_notify_user_info_add_section_header(user_info, _("Work Information")); + + oscar_user_info_convert_and_add(account, user_info, _("Company"), info->workcompany); + oscar_user_info_convert_and_add(account, user_info, _("Division"), info->workdivision); + oscar_user_info_convert_and_add(account, user_info, _("Position"), info->workposition); + if (info->workwebpage && info->workwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->workwebpage))) { - g_string_append_printf(tmp, "\n<br><b>%s:</b> <a href=\"%s\">%s</a>", _("Web Page"), utf8, utf8); + char *webpage = g_strdup_printf("<a href=\"%s\">%s</a>", utf8, utf8); + purple_notify_user_info_add_pair(user_info, _("Web Page"), webpage); + g_free(webpage); g_free(utf8); } - purple_notify_user_info_add_pair(user_info, _("Work Information"), tmp->str); - g_string_free(tmp, TRUE); } if (buddy != NULL) @@ -3984,7 +4044,7 @@ email = va_arg(ap, char *); va_end(ap); - buf = g_strdup_printf(_("No results found for e-mail address %s"), email); + buf = g_strdup_printf(_("No results found for email address %s"), email); purple_notify_error(od->gc, NULL, buf, NULL); g_free(buf); @@ -4003,9 +4063,9 @@ purple_debug_info("oscar", "account confirmation returned status 0x%04x (%s)\n", status, - status ? "unknown" : "e-mail sent"); + status ? "unknown" : "email sent"); if (!status) { - g_snprintf(msg, sizeof(msg), _("You should receive an e-mail asking to confirm %s."), + g_snprintf(msg, sizeof(msg), _("You should receive an email asking to confirm %s."), purple_account_get_username(purple_connection_get_account(gc))); purple_notify_info(gc, NULL, _("Account Confirmation Requested"), msg); } @@ -4046,11 +4106,11 @@ else if (err == 0x00b) dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to format username because the requested name is too long."), err); else if (err == 0x001d) - dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change e-mail address because there is already a request pending for this username."), err); + dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change email address because there is already a request pending for this username."), err); else if (err == 0x0021) - dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change e-mail address because the given address has too many usernames associated with it."), err); + dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change email address because the given address has too many usernames associated with it."), err); else if (err == 0x0023) - dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change e-mail address because the given address is invalid."), err); + dialog_msg = g_strdup_printf(_("Error 0x%04x: Unable to change email address because the given address is invalid."), err); else dialog_msg = g_strdup_printf(_("Error 0x%04x: Unknown error."), err); purple_notify_error(gc, NULL, @@ -4060,7 +4120,7 @@ } if (email != NULL) { - char *dialog_msg = g_strdup_printf(_("The e-mail address for %s is %s"), + char *dialog_msg = g_strdup_printf(_("The email address for %s is %s"), purple_account_get_username(purple_connection_get_account(gc)), email); purple_notify_info(gc, NULL, _("Account Info"), dialog_msg); g_free(dialog_msg); @@ -4359,14 +4419,14 @@ /* If the length was too long, try stripping the HTML and then running it back through * purple_strdup_withhtml() and the encoding process. The result may be shorter. */ g_free((char *)args.msg); - + tmp2 = purple_markup_strip_html(tmp1); g_free(tmp1); /* re-escape the entities */ tmp1 = g_markup_escape_text(tmp2, -1); g_free(tmp2); - + tmp2 = purple_strdup_withhtml(tmp1); g_free(tmp1); tmp1 = tmp2; @@ -5596,7 +5656,7 @@ return "aim"; } -const char* oscar_list_emblem(PurpleBuddy *b) +const char *oscar_list_emblem(PurpleBuddy *b) { PurpleConnection *gc = NULL; OscarData *od = NULL; @@ -5626,7 +5686,7 @@ return "not-authorized"; } } - + if (userinfo != NULL ) { if (userinfo->flags & AIM_FLAG_ADMINISTRATOR) return "admin"; @@ -5642,54 +5702,23 @@ return NULL; } -void oscar_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full) { - PurpleConnection *gc = b->account->gc; - OscarData *od = gc->proto_data; - aim_userinfo_t *userinfo = aim_locate_finduserinfo(od, b->name); - - if (PURPLE_BUDDY_IS_ONLINE(b)) { - PurplePresence *presence; - PurpleStatus *status; - const char *message; - - if (full) - oscar_string_append_info(gc, user_info, b, userinfo); - - presence = purple_buddy_get_presence(b); - status = purple_presence_get_active_status(presence); - message = purple_status_get_attr_string(status, "message"); - - if (purple_status_is_available(status)) - { - if (message != NULL) - { - /* Available status messages are plain text */ - gchar *tmp; - tmp = g_markup_escape_text(message, -1); - purple_notify_user_info_add_pair(user_info, _("Message"), tmp); - g_free(tmp); - } - } - else - { - if (message != NULL) - { - /* Away messages are HTML */ - gchar *tmp1, *tmp2; - tmp2 = purple_markup_strip_html(message); - tmp1 = g_markup_escape_text(tmp2, -1); - g_free(tmp2); - tmp2 = purple_str_sub_away_formatters(tmp1, purple_account_get_username(purple_connection_get_account(gc))); - g_free(tmp1); - purple_notify_user_info_add_pair(user_info, _("Away Message"), tmp2); - g_free(tmp2); - } - else - { - purple_notify_user_info_add_pair(user_info, _("Away Message"), _("<i>(retrieving)</i>")); - } - } - } +void oscar_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full) +{ + PurpleConnection *gc; + OscarData *od; + aim_userinfo_t *userinfo; + + if (!PURPLE_BUDDY_IS_ONLINE(b)) + return; + + gc = b->account->gc; + od = gc->proto_data; + userinfo = aim_locate_finduserinfo(od, b->name); + + oscar_user_info_append_status(gc, user_info, b, userinfo, /* strip_html_tags */ TRUE); + + if (full) + oscar_user_info_append_extra_info(gc, user_info, b, userinfo); } char *oscar_status_text(PurpleBuddy *b) @@ -5724,7 +5753,7 @@ message = purple_status_get_attr_string(status, "message"); if (message != NULL) { - ret = g_markup_escape_text(message, -1); + ret = g_strdup(message); purple_util_chrreplace(ret, '\n', ' '); } } @@ -6344,9 +6373,9 @@ static void oscar_show_find_email(PurplePluginAction *action) { PurpleConnection *gc = (PurpleConnection *) action->context; - purple_request_input(gc, _("Find Buddy by E-Mail"), - _("Search for a buddy by e-mail address"), - _("Type the e-mail address of the buddy you are " + purple_request_input(gc, _("Find Buddy by Email"), + _("Search for a buddy by email address"), + _("Type the email address of the buddy you are " "searching for."), NULL, FALSE, FALSE, NULL, _("_Search"), G_CALLBACK(search_by_email_cb), @@ -6395,15 +6424,12 @@ if (img == NULL) { aim_ssi_delicon(od); } else { - PurpleCipher *cipher; PurpleCipherContext *context; guchar md5[16]; gconstpointer data = purple_imgstore_get_data(img); size_t len = purple_imgstore_get_size(img); - - cipher = purple_ciphers_find_cipher("md5"); - context = purple_cipher_context_new(cipher, NULL); + context = purple_cipher_context_new_by_name("md5", NULL); purple_cipher_context_append(context, data, len); purple_cipher_context_digest(context, 16, md5, NULL); purple_cipher_context_destroy(context); @@ -6543,11 +6569,11 @@ oscar_confirm_account); menu = g_list_prepend(menu, act); - act = purple_plugin_action_new(_("Display Currently Registered E-Mail Address"), + act = purple_plugin_action_new(_("Display Currently Registered Email Address"), oscar_show_email); menu = g_list_prepend(menu, act); - act = purple_plugin_action_new(_("Change Currently Registered E-Mail Address..."), + act = purple_plugin_action_new(_("Change Currently Registered Email Address..."), oscar_show_change_email); menu = g_list_prepend(menu, act); } @@ -6560,7 +6586,7 @@ menu = g_list_prepend(menu, NULL); - act = purple_plugin_action_new(_("Search for Buddy by E-Mail Address..."), + act = purple_plugin_action_new(_("Search for Buddy by Email Address..."), oscar_show_find_email); menu = g_list_prepend(menu, act); @@ -6757,6 +6783,10 @@ OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY); prpl_info->protocol_options = g_list_append(prpl_info->protocol_options, option); + option = purple_account_option_bool_new(_("Allow multiple simultaneous logins"), "allow_multiple_logins", + OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS); + prpl_info->protocol_options = g_list_append(prpl_info->protocol_options, option); + if (init) return; init = TRUE;
--- a/libpurple/protocols/oscar/oscar.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.h Thu Jun 26 09:07:56 2008 +0000 @@ -353,7 +353,8 @@ OSCAR_CAPABILITY_ICHATAV = 0x02000000, OSCAR_CAPABILITY_LIVEVIDEO = 0x04000000, OSCAR_CAPABILITY_CAMERA = 0x08000000, - OSCAR_CAPABILITY_LAST = 0x10000000 + OSCAR_CAPABILITY_ICHAT_SCREENSHARE = 0x10000000, + OSCAR_CAPABILITY_LAST = 0x20000000 } OscarCapability; /* @@ -594,7 +595,7 @@ void aim_clientready(OscarData *od, FlapConnection *conn); int aim_request_login(OscarData *od, FlapConnection *conn, const char *sn); -int aim_send_login(OscarData *od, FlapConnection *conn, const char *sn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key); +int aim_send_login(OscarData *od, FlapConnection *conn, const char *sn, const char *password, gboolean truncate_pass, ClientInfo *ci, const char *key, gboolean allow_multiple_logins); /* 0x000b */ int aim_auth_securid_send(OscarData *od, const char *securid); void aim_cleansnacs(OscarData *, int maxage);
--- a/libpurple/protocols/oscar/oscarcommon.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/oscar/oscarcommon.h Thu Jun 26 09:07:56 2008 +0000 @@ -41,6 +41,7 @@ #define OSCAR_DEFAULT_HIDE_IP TRUE #define OSCAR_DEFAULT_WEB_AWARE FALSE #define OSCAR_DEFAULT_ALWAYS_USE_RV_PROXY FALSE +#define OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS TRUE #ifdef _WIN32 const char *oscar_get_locale_charset(void);
--- a/libpurple/protocols/qq/qq.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/qq/qq.c Thu Jun 26 09:07:56 2008 +0000 @@ -749,6 +749,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/qq/send_file.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/qq/send_file.c Thu Jun 26 09:07:56 2008 +0000 @@ -156,7 +156,7 @@ gint size; /* FIXME: It seems that the transfer never use a packet * larger than 1500 bytes, so if it happened to be a - * larger packet, either error occured or protocol should + * larger packet, either error occurred or protocol should * be modified */ ft_info *info;
--- a/libpurple/protocols/silc/chat.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc/chat.c Thu Jun 26 09:07:56 2008 +0000 @@ -1315,7 +1315,7 @@ g_free(tmp); if (ret) - serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), 0, msg, time(NULL)); + serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), msgflags, msg, time(NULL)); return ret; } } @@ -1326,7 +1326,7 @@ (unsigned char *)msg2, strlen(msg2)); if (ret) { - serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), 0, msg, + serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), msgflags, msg, time(NULL)); } g_free(tmp);
--- a/libpurple/protocols/silc/ops.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc/ops.c Thu Jun 26 09:07:56 2008 +0000 @@ -1052,7 +1052,7 @@ for (i = 0; i < vcard.num_emails; i++) { if (vcard.emails[i].address) g_string_append_printf(s, "%s:\t\t%s\n", - _("E-Mail"), + _("Email"), vcard.emails[i].address); } if (vcard.note)
--- a/libpurple/protocols/silc/silc.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc/silc.c Thu Jun 26 09:07:56 2008 +0000 @@ -983,7 +983,7 @@ purple_request_field_group_add_field(g, f); f = purple_request_field_bool_new("contact_chat", _("Chat"), cchat); purple_request_field_group_add_field(g, f); - f = purple_request_field_bool_new("contact_email", _("E-mail"), cemail); + f = purple_request_field_bool_new("contact_email", _("Email"), cemail); purple_request_field_group_add_field(g, f); f = purple_request_field_bool_new("contact_call", _("Phone"), ccall); purple_request_field_group_add_field(g, f); @@ -1224,7 +1224,7 @@ purple_request_field_group_add_field(g, f); f = purple_request_field_string_new("rn", _("Real name"), realname ? realname : "", FALSE); purple_request_field_group_add_field(g, f); - f = purple_request_field_string_new("e", _("E-mail"), tmp, FALSE); + f = purple_request_field_string_new("e", _("Email"), tmp, FALSE); purple_request_field_group_add_field(g, f); f = purple_request_field_string_new("o", _("Organization"), "", FALSE); purple_request_field_group_add_field(g, f); @@ -2071,6 +2071,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/silc/util.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc/util.c Thu Jun 26 09:07:56 2008 +0000 @@ -364,7 +364,7 @@ if (ident->username) g_string_append_printf(s, _("User Name: \t%s\n"), ident->username); if (ident->email) - g_string_append_printf(s, _("E-Mail: \t\t%s\n"), ident->email); + g_string_append_printf(s, _("Email: \t\t%s\n"), ident->email); if (ident->host) g_string_append_printf(s, _("Host Name: \t%s\n"), ident->host); if (ident->org) @@ -558,7 +558,7 @@ if (contact & SILC_ATTRIBUTE_CONTACT_CHAT) g_string_append_printf(s, "[%s] ", _("Chat")); if (contact & SILC_ATTRIBUTE_CONTACT_EMAIL) - g_string_append_printf(s, "[%s] ", _("E-Mail")); + g_string_append_printf(s, "[%s] ", _("Email")); if (contact & SILC_ATTRIBUTE_CONTACT_CALL) g_string_append_printf(s, "[%s] ", _("Phone")); if (contact & SILC_ATTRIBUTE_CONTACT_PAGE)
--- a/libpurple/protocols/silc10/chat.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc10/chat.c Thu Jun 26 09:07:56 2008 +0000 @@ -1351,7 +1351,7 @@ flags, (unsigned char *)msg2, strlen(msg2), TRUE); if (ret) { - serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), 0, msg, + serv_got_chat_in(gc, id, purple_connection_get_display_name(gc), msgflags, msg, time(NULL)); } g_free(tmp);
--- a/libpurple/protocols/silc10/ops.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc10/ops.c Thu Jun 26 09:07:56 2008 +0000 @@ -1072,7 +1072,7 @@ for (i = 0; i < vcard.num_emails; i++) { if (vcard.emails[i].address) g_string_append_printf(s, "%s:\t\t%s\n", - _("E-Mail"), + _("Email"), vcard.emails[i].address); } if (vcard.note)
--- a/libpurple/protocols/silc10/silc.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc10/silc.c Thu Jun 26 09:07:56 2008 +0000 @@ -684,7 +684,7 @@ purple_request_field_group_add_field(g, f); f = purple_request_field_bool_new("contact_chat", _("Chat"), cchat); purple_request_field_group_add_field(g, f); - f = purple_request_field_bool_new("contact_email", _("E-mail"), cemail); + f = purple_request_field_bool_new("contact_email", _("Email"), cemail); purple_request_field_group_add_field(g, f); f = purple_request_field_bool_new("contact_call", _("Phone"), ccall); purple_request_field_group_add_field(g, f); @@ -925,7 +925,7 @@ purple_request_field_group_add_field(g, f); f = purple_request_field_string_new("rn", _("Real name"), realname ? realname : "", FALSE); purple_request_field_group_add_field(g, f); - f = purple_request_field_string_new("e", _("E-mail"), tmp, FALSE); + f = purple_request_field_string_new("e", _("Email"), tmp, FALSE); purple_request_field_group_add_field(g, f); f = purple_request_field_string_new("o", _("Organization"), "", FALSE); purple_request_field_group_add_field(g, f); @@ -1800,10 +1800,10 @@ NULL, /* send_raw */ NULL, /* roomlist_room_serialize */ - /* padding */ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/silc10/util.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/silc10/util.c Thu Jun 26 09:07:56 2008 +0000 @@ -356,7 +356,7 @@ if (ident->username) g_string_append_printf(s, _("User Name: \t%s\n"), ident->username); if (ident->email) - g_string_append_printf(s, _("E-Mail: \t\t%s\n"), ident->email); + g_string_append_printf(s, _("Email: \t\t%s\n"), ident->email); if (ident->host) g_string_append_printf(s, _("Host Name: \t%s\n"), ident->host); if (ident->org) @@ -552,7 +552,7 @@ if (contact & SILC_ATTRIBUTE_CONTACT_CHAT) g_string_append_printf(s, "[%s] ", _("Chat")); if (contact & SILC_ATTRIBUTE_CONTACT_EMAIL) - g_string_append_printf(s, "[%s] ", _("E-Mail")); + g_string_append_printf(s, "[%s] ", _("Email")); if (contact & SILC_ATTRIBUTE_CONTACT_CALL) g_string_append_printf(s, "[%s] ", _("Phone")); if (contact & SILC_ATTRIBUTE_CONTACT_PAGE)
--- a/libpurple/protocols/simple/simple.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/simple/simple.c Thu Jun 26 09:07:56 2008 +0000 @@ -1898,7 +1898,7 @@ PurpleConnection *gc; struct simple_account_data *sip; gchar **userserver; - gchar *hosttoconnect; + const gchar *hosttoconnect; const char *username = purple_account_get_username(account); gc = purple_account_get_connection(account); @@ -1934,14 +1934,13 @@ sip->status = g_strdup("available"); if(!purple_account_get_bool(account, "useproxy", FALSE)) { - hosttoconnect = g_strdup(sip->servername); + hosttoconnect = sip->servername; } else { - hosttoconnect = g_strdup(purple_account_get_string(account, "proxy", sip->servername)); + hosttoconnect = purple_account_get_string(account, "proxy", sip->servername); } sip->srv_query_data = purple_srv_resolve("sip", sip->udp ? "udp" : "tcp", hosttoconnect, srvresolved, sip); - g_free(hosttoconnect); } static void simple_close(PurpleConnection *gc) @@ -2068,6 +2067,7 @@ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/toc/toc.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/toc/toc.c Thu Jun 26 09:07:56 2008 +0000 @@ -527,7 +527,7 @@ g_snprintf(buf, sizeof(buf), _("Dir service temporarily unavailable.")); break; case 974: - g_snprintf(buf, sizeof(buf), _("E-mail lookup restricted.")); + g_snprintf(buf, sizeof(buf), _("Email lookup restricted.")); break; case 975: g_snprintf(buf, sizeof(buf), _("Keyword ignored."));
--- a/libpurple/protocols/yahoo/yahoo.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Thu Jun 26 09:07:56 2008 +0000 @@ -4384,7 +4384,7 @@ yahoo_send_attention, yahoo_attention_types, - /* padding */ + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/yahoo/yahoo_profile.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_profile.c Thu Jun 26 09:07:56 2008 +0000 @@ -745,6 +745,7 @@ p += 1; /* skip only the ' ' */ q = strchr(p, ' '); if (q) { + g_free(it); it = g_strndup(p, q - p); } } @@ -1060,7 +1061,7 @@ /* extract their Email address and put it in */ found |= purple_markup_extract_info_field(stripped, stripped_len, user_info, strings->my_email_string, (yd->jp ? 4 : 1), " ", 0, - strings->private_string, _("E-Mail"), 0, NULL, NULL); + strings->private_string, _("Email"), 0, NULL, NULL); /* extract the Nickname if it exists */ found |= purple_markup_extract_info_field(stripped, stripped_len, user_info,
--- a/libpurple/protocols/yahoo/yahoochat.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoochat.c Thu Jun 26 09:07:56 2008 +0000 @@ -1043,7 +1043,7 @@ purple_conversation_get_name(c), what, flags); if (!ret) serv_got_chat_in(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(c)), - purple_connection_get_display_name(gc), 0, what, time(NULL)); + purple_connection_get_display_name(gc), flags, what, time(NULL)); } return ret; }
--- a/libpurple/protocols/zephyr/Makefile.am Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/zephyr/Makefile.am Thu Jun 26 09:07:56 2008 +0000 @@ -59,9 +59,9 @@ mit-copyright.h \ mit-sipb-copyright.h \ sysdep.h \ - zephyr.h \ zephyr_err.c \ zephyr_err.h \ + zephyr_internal.h \ \ zephyr.c @@ -104,7 +104,7 @@ -I$(top_srcdir)/libpurple \ -I$(top_builddir)/libpurple \ -I$(top_srcdir)/libpurple/protocols \ - -DCONFDIR=\"$(confdir)\" \ + -DCONFDIR=\"$(sysconfdir)\" \ $(GLIB_CFLAGS) \ $(KRB4_CFLAGS) \ $(DEBUG_CFLAGS)
--- a/libpurple/protocols/zephyr/internal.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/zephyr/internal.h Thu Jun 26 09:07:56 2008 +0000 @@ -1,10 +1,14 @@ - #ifndef __INTERNAL_H__ #define __INTERNAL_H__ #include <sysdep.h> -#include <zephyr.h> +#ifdef LIBZEPHYR_EXT +#include <zephyr/zephyr.h> +#else +#include <zephyr_internal.h> +#endif + #ifndef WIN32 #include <netdb.h> #endif
--- a/libpurple/protocols/zephyr/zephyr.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/protocols/zephyr/zephyr.c Thu Jun 26 09:07:56 2008 +0000 @@ -38,7 +38,6 @@ #include "privacy.h" #include "version.h" -#include "zephyr.h" #include "internal.h" #include <strings.h> @@ -893,11 +892,16 @@ gconv1 = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, zt2->name, gc->account); gcc = purple_conversation_get_chat_data(gconv1); - +#ifndef INET_ADDRSTRLEN +#define INET_ADDRSTRLEN 16 +#endif if (!purple_conv_chat_find_user(gcc, sendertmp)) { gchar ipaddr[INET_ADDRSTRLEN]; +#ifdef HAVE_INET_NTOP inet_ntop(AF_INET, ¬ice.z_sender_addr.s_addr, ipaddr, sizeof(ipaddr)); - +#else + memcpy(ipaddr,inet_ntoa(notice.z_sender_addr),sizeof(ipaddr)); +#endif purple_conv_chat_add_user(gcc, sendertmp, ipaddr, PURPLE_CBFLAGS_NONE, TRUE); } g_free(sendertmp); @@ -2907,10 +2911,10 @@ NULL, /* send_raw */ NULL, /* roomlist_room_serialize */ - /* padding */ NULL, NULL, NULL, + sizeof(PurplePluginProtocolInfo), /* struct_size */ NULL };
--- a/libpurple/protocols/zephyr/zephyr.h Thu Jun 26 08:42:49 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,339 +0,0 @@ -/* This file is part of the Project Athena Zephyr Notification System. - * It contains global definitions - * - * Created by: Robert French - * - * Copyright (c) 1987,1988,1991 by the Massachusetts Institute of - * Technology. For copying and distribution information, see the - * file "mit-copyright.h". - */ - -#ifndef __ZEPHYR_H__ -#define __ZEPHYR_H__ - -#include <config.h> - -#include <glib.h> - -#include <sys/types.h> -#include <sys/time.h> - -#include <zephyr_err.h> - -#ifndef IPPROTO_MAX /* Make sure not already included */ -#ifndef WIN32 -#include <netinet/in.h> -#endif -#endif - -/* Use __STDC__ to guess whether we can use stdarg, prototypes, and const. - * This is a public header file, so autoconf can't help us here. */ -#ifdef __STDC__ -# include <stdarg.h> -# define ZP(x) x -# define ZCONST const -#else -# define ZP(x) () -# define ZCONST -#endif - -#ifdef WIN32 -/* this really should be uint32_t */ -/*typedef unsigned int in_addr_t; -struct in_addr -{ - in_addr_t s_addr; -}; */ -#include <winsock2.h> -#endif - -/* Service names */ -#define HM_SVCNAME "zephyr-hm" -#define HM_SRV_SVCNAME "zephyr-hm-srv" -#define SERVER_SVCNAME "zephyr-clt" -#define SERVER_SERVICE "zephyr" -#define SERVER_INSTANCE "zephyr" - -#define ZVERSIONHDR "ZEPH" -#define ZVERSIONMAJOR 0 -#define ZVERSIONMINOR 2 - -#define Z_MAXPKTLEN 1024 -#define Z_MAXHEADERLEN 800 -#define Z_MAXOTHERFIELDS 10 /* Max unknown fields in ZNotice_t */ -#define Z_NUMFIELDS 17 - -/* Authentication levels returned by ZCheckAuthentication */ -#define ZAUTH_FAILED (-1) -#define ZAUTH_YES 1 -#define ZAUTH_NO 0 - -typedef char ZPacket_t[Z_MAXPKTLEN]; - -/* Packet type */ -typedef enum { - UNSAFE, UNACKED, ACKED, HMACK, HMCTL, SERVACK, SERVNAK, CLIENTACK, STAT -} ZNotice_Kind_t; -extern ZCONST char *ZNoticeKinds[9]; - -/* Unique ID format */ -typedef struct _ZUnique_Id_t { - struct in_addr zuid_addr; - struct timeval tv; -} ZUnique_Id_t; - -/* Checksum */ -typedef unsigned long ZChecksum_t; - -/* Notice definition */ -typedef struct _ZNotice_t { - char *z_packet; - char *z_version; - ZNotice_Kind_t z_kind; - ZUnique_Id_t z_uid; -#define z_sender_addr z_uid.zuid_addr - struct timeval z_time; - unsigned short z_port; - int z_auth; - int z_checked_auth; - int z_authent_len; - char *z_ascii_authent; - char *z_class; - const char *z_class_inst; - char *z_opcode; - char *z_sender; - const char *z_recipient; - char *z_default_format; - char *z_multinotice; - ZUnique_Id_t z_multiuid; - ZChecksum_t z_checksum; - int z_num_other_fields; - char *z_other_fields[Z_MAXOTHERFIELDS]; - caddr_t z_message; - int z_message_len; -} ZNotice_t; - -/* Subscription structure */ -typedef struct _ZSubscriptions_t { - char *zsub_recipient; - char *zsub_class; - char *zsub_classinst; -} ZSubscription_t; - -/* Function return code */ -typedef int Code_t; - -/* Locations structure */ -typedef struct _ZLocations_t { - char *host; - char *time; - char *tty; -} ZLocations_t; - -typedef struct _ZAsyncLocateData_t { - char *user; - ZUnique_Id_t uid; - char *version; -} ZAsyncLocateData_t; - -/* for ZSetDebug */ -#ifdef Z_DEBUG -void (*__Z_debug_print) ZP((ZCONST char *fmt, va_list args, void *closure)); -void *__Z_debug_print_closure; -#endif - -int ZCompareUIDPred ZP((ZNotice_t *, void *)); -int ZCompareMultiUIDPred ZP((ZNotice_t *, void *)); - -/* Defines for ZFormatNotice, et al. */ -typedef Code_t (*Z_AuthProc) ZP((ZNotice_t*, char *, int, int *)); -Code_t ZMakeAuthentication ZP((ZNotice_t*, char *,int, int*)); - -char *ZGetSender ZP((void)); -char *ZGetVariable ZP((char *)); -Code_t ZSetVariable ZP((char *var, char *value)); -Code_t ZUnsetVariable ZP((char *var)); -int ZGetWGPort ZP((void)); -Code_t ZSetDestAddr ZP((struct sockaddr_in *)); -Code_t ZFormatNoticeList ZP((ZNotice_t*, char**, int, - char **, int*, Z_AuthProc)); -Code_t ZParseNotice ZP((char*, int, ZNotice_t *)); -Code_t ZReadAscii ZP((char*, int, unsigned char*, int)); -Code_t ZReadAscii32 ZP((char *, int, unsigned long *)); -Code_t ZReadAscii16 ZP((char *, int, unsigned short *)); -Code_t ZSendPacket ZP((char*, int, int)); -Code_t ZSendList ZP((ZNotice_t*, char *[], int, Z_AuthProc)); -Code_t ZSrvSendList ZP((ZNotice_t*, char*[], int, Z_AuthProc, Code_t (*)())); -Code_t ZSendNotice ZP((ZNotice_t *, Z_AuthProc)); -Code_t ZSrvSendNotice ZP((ZNotice_t*, Z_AuthProc, Code_t (*)())); -Code_t ZFormatNotice ZP((ZNotice_t*, char**, int*, Z_AuthProc)); -Code_t ZFormatSmallNotice ZP((ZNotice_t*, ZPacket_t, int*, Z_AuthProc)); -Code_t ZFormatRawNoticeList ZP((ZNotice_t *notice, char *list[], int nitems, - char **buffer, int *ret_len)); -Code_t ZLocateUser ZP((char *, int *, Z_AuthProc)); -Code_t ZRequestLocations ZP((const char *, ZAsyncLocateData_t *, - ZNotice_Kind_t, Z_AuthProc)); -Code_t ZhmStat ZP((struct in_addr *, ZNotice_t *)); -Code_t ZInitialize ZP((void)); -Code_t ZSetServerState ZP((int)); -Code_t ZSetFD ZP((int)); -Code_t ZFormatSmallRawNotice ZP((ZNotice_t*, ZPacket_t, int*)); -int ZCompareUID ZP((ZUnique_Id_t*, ZUnique_Id_t*)); -Code_t ZMakeAscii ZP((char*, int, unsigned char*, int)); -Code_t ZMakeAscii32 ZP((char *, int, unsigned long)); -Code_t ZMakeAscii16 ZP((char *, int, unsigned int)); -Code_t ZReceivePacket ZP((ZPacket_t, int*, struct sockaddr_in*)); -Code_t ZCheckAuthentication ZP((ZNotice_t*, struct sockaddr_in*)); -Code_t ZSetLocation ZP((char *exposure)); -Code_t ZUnsetLocation ZP((void)); -Code_t ZFlushMyLocations ZP((void)); -Code_t ZFormatRawNotice ZP((ZNotice_t *, char**, int *)); -Code_t ZRetrieveSubscriptions ZP((unsigned short, int*)); -Code_t ZOpenPort ZP((unsigned short *port)); -Code_t ZClosePort ZP((void)); -Code_t ZFlushLocations ZP((void)); -Code_t ZFlushSubscriptions ZP((void)); -Code_t ZFreeNotice ZP((ZNotice_t *notice)); -Code_t ZParseLocations ZP((register ZNotice_t *notice, - register ZAsyncLocateData_t *zald, int *nlocs, - char **user)); -int ZCompareALDPred ZP((ZNotice_t *notice, void *zald)); -void ZFreeALD ZP((register ZAsyncLocateData_t *zald)); -Code_t ZCheckIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, - register int (*predicate) ZP((ZNotice_t *,void *)), - void *args)); -Code_t ZPeekPacket ZP((char **buffer, int *ret_len, - struct sockaddr_in *from)); -Code_t ZPeekNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); -Code_t ZIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, - int (*predicate) ZP((ZNotice_t *, void *)), void *args)); -Code_t ZSubscribeTo ZP((ZSubscription_t *sublist, int nitems, - unsigned int port)); -Code_t ZSubscribeToSansDefaults ZP((ZSubscription_t *sublist, int nitems, - unsigned int port)); -Code_t ZUnsubscribeTo ZP((ZSubscription_t *sublist, int nitems, - unsigned int port)); -Code_t ZCancelSubscriptions ZP((unsigned int port)); -int ZPending ZP((void)); -Code_t ZReceiveNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); -#ifdef Z_DEBUG -void Z_debug ZP((ZCONST char *, ...)); -#endif - -#undef ZP - -/* Compatibility */ -#define ZNewLocateUser ZLocateUser - -/* Macros to retrieve Zephyr library values. */ -extern int __Zephyr_fd; -extern int __Q_CompleteLength; -extern struct sockaddr_in __HM_addr; -extern char __Zephyr_realm[]; -#define ZGetFD() __Zephyr_fd -#define ZQLength() __Q_CompleteLength -#define ZGetDestAddr() __HM_addr -#define ZGetRealm() __Zephyr_realm - -#ifdef Z_DEBUG -void ZSetDebug ZP((void (*)(ZCONST char *, va_list, void *), void *)); -#define ZSetDebug(proc,closure) (__Z_debug_print=(proc), \ - __Z_debug_print_closure=(closure), \ - (void) 0) -#else -#define ZSetDebug(proc,closure) -#endif - -/* Maximum queue length */ -#define Z_MAXQLEN 30 - -/* Successful function return */ -#define ZERR_NONE 0 - -/* Hostmanager wait time (in secs) */ -#define HM_TIMEOUT 1 - -/* Server wait time (in secs) */ -#define SRV_TIMEOUT 30 - -#define ZAUTH (ZMakeAuthentication) -#define ZNOAUTH ((Z_AuthProc)0) - -/* Packet strings */ -#define ZSRVACK_SENT "SENT" /* SERVACK codes */ -#define ZSRVACK_NOTSENT "LOST" -#define ZSRVACK_FAIL "FAIL" - -/* Server internal class */ -#define ZEPHYR_ADMIN_CLASS "ZEPHYR_ADMIN" /* Class */ - -/* Control codes sent to a server */ -#define ZEPHYR_CTL_CLASS "ZEPHYR_CTL" /* Class */ - -#define ZEPHYR_CTL_CLIENT "CLIENT" /* Inst: From client */ -#define CLIENT_SUBSCRIBE "SUBSCRIBE" /* Opcode: Subscribe */ -#define CLIENT_SUBSCRIBE_NODEFS "SUBSCRIBE_NODEFS" /* Opcode: Subscribe */ -#define CLIENT_UNSUBSCRIBE "UNSUBSCRIBE" /* Opcode: Unsubsubscribe */ -#define CLIENT_CANCELSUB "CLEARSUB" /* Opcode: Clear all subs */ -#define CLIENT_GIMMESUBS "GIMME" /* Opcode: Give me subs */ -#define CLIENT_GIMMEDEFS "GIMMEDEFS" /* Opcode: Give me default - * subscriptions */ - -#define ZEPHYR_CTL_HM "HM" /* Inst: From HM */ -#define HM_BOOT "BOOT" /* Opcode: Boot msg */ -#define HM_FLUSH "FLUSH" /* Opcode: Flush me */ -#define HM_DETACH "DETACH" /* Opcode: Detach me */ -#define HM_ATTACH "ATTACH" /* Opcode: Attach me */ - -/* Control codes send to a HostManager */ -#define HM_CTL_CLASS "HM_CTL" /* Class */ - -#define HM_CTL_SERVER "SERVER" /* Inst: From server */ -#define SERVER_SHUTDOWN "SHUTDOWN" /* Opcode: Server shutdown */ -#define SERVER_PING "PING" /* Opcode: PING */ - -#define HM_CTL_CLIENT "CLIENT" /* Inst: From client */ -#define CLIENT_FLUSH "FLUSH" /* Opcode: Send flush to srv */ -#define CLIENT_NEW_SERVER "NEWSERV" /* Opcode: Find new server */ - -/* HM Statistics */ -#define HM_STAT_CLASS "HM_STAT" /* Class */ - -#define HM_STAT_CLIENT "HMST_CLIENT" /* Inst: From client */ -#define HM_GIMMESTATS "GIMMESTATS" /* Opcode: get stats */ - -/* Login class messages */ -#define LOGIN_CLASS "LOGIN" /* Class */ - -/* Class Instance is principal of user who is logging in or logging out */ - -#define EXPOSE_NONE "NONE" /* Opcode: Not visible */ -#define EXPOSE_OPSTAFF "OPSTAFF" /* Opcode: Opstaff visible */ -#define EXPOSE_REALMVIS "REALM-VISIBLE" /* Opcode: Realm visible */ -#define EXPOSE_REALMANN "REALM-ANNOUNCED"/* Opcode: Realm announced */ -#define EXPOSE_NETVIS "NET-VISIBLE" /* Opcode: Net visible */ -#define EXPOSE_NETANN "NET-ANNOUNCED" /* Opcode: Net announced */ -#define LOGIN_USER_LOGIN "USER_LOGIN" /* Opcode: user login - (from server) */ -#define LOGIN_USER_LOGOUT "USER_LOGOUT" /* Opcode: User logout */ -#define LOGIN_USER_FLUSH "USER_FLUSH" /* Opcode: flush all locs */ - -/* Locate class messages */ -#define LOCATE_CLASS "USER_LOCATE" /* Class */ - -#define LOCATE_HIDE "USER_HIDE" /* Opcode: Hide me */ -#define LOCATE_UNHIDE "USER_UNHIDE" /* Opcode: Unhide me */ - -/* Class Instance is principal of user to locate */ -#define LOCATE_LOCATE "LOCATE" /* Opcode: Locate user */ - -/* WG_CTL class messages */ -#define WG_CTL_CLASS "WG_CTL" /* Class */ - -#define WG_CTL_USER "USER" /* Inst: User request */ -#define USER_REREAD "REREAD" /* Opcode: Reread desc file */ -#define USER_SHUTDOWN "SHUTDOWN" /* Opcode: Go catatonic */ -#define USER_STARTUP "STARTUP" /* Opcode: Come out of it */ -#define USER_EXIT "EXIT" /* Opcode: Exit the client */ - -#endif /* __ZEPHYR_H__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/protocols/zephyr/zephyr_internal.h Thu Jun 26 09:07:56 2008 +0000 @@ -0,0 +1,339 @@ +/* This file is part of the Project Athena Zephyr Notification System. + * It contains global definitions + * + * Created by: Robert French + * + * Copyright (c) 1987,1988,1991 by the Massachusetts Institute of + * Technology. For copying and distribution information, see the + * file "mit-copyright.h". + */ + +#ifndef __ZEPHYR_H__ +#define __ZEPHYR_H__ + +#include <config.h> + +#include <glib.h> + +#include <sys/types.h> +#include <sys/time.h> + +#include <zephyr_err.h> + +#ifndef IPPROTO_MAX /* Make sure not already included */ +#ifndef WIN32 +#include <netinet/in.h> +#endif +#endif + +/* Use __STDC__ to guess whether we can use stdarg, prototypes, and const. + * This is a public header file, so autoconf can't help us here. */ +#ifdef __STDC__ +# include <stdarg.h> +# define ZP(x) x +# define ZCONST const +#else +# define ZP(x) () +# define ZCONST +#endif + +#ifdef WIN32 +/* this really should be uint32_t */ +/*typedef unsigned int in_addr_t; +struct in_addr +{ + in_addr_t s_addr; +}; */ +#include <winsock2.h> +#endif + +/* Service names */ +#define HM_SVCNAME "zephyr-hm" +#define HM_SRV_SVCNAME "zephyr-hm-srv" +#define SERVER_SVCNAME "zephyr-clt" +#define SERVER_SERVICE "zephyr" +#define SERVER_INSTANCE "zephyr" + +#define ZVERSIONHDR "ZEPH" +#define ZVERSIONMAJOR 0 +#define ZVERSIONMINOR 2 + +#define Z_MAXPKTLEN 1024 +#define Z_MAXHEADERLEN 800 +#define Z_MAXOTHERFIELDS 10 /* Max unknown fields in ZNotice_t */ +#define Z_NUMFIELDS 17 + +/* Authentication levels returned by ZCheckAuthentication */ +#define ZAUTH_FAILED (-1) +#define ZAUTH_YES 1 +#define ZAUTH_NO 0 + +typedef char ZPacket_t[Z_MAXPKTLEN]; + +/* Packet type */ +typedef enum { + UNSAFE, UNACKED, ACKED, HMACK, HMCTL, SERVACK, SERVNAK, CLIENTACK, STAT +} ZNotice_Kind_t; +extern ZCONST char *ZNoticeKinds[9]; + +/* Unique ID format */ +typedef struct _ZUnique_Id_t { + struct in_addr zuid_addr; + struct timeval tv; +} ZUnique_Id_t; + +/* Checksum */ +typedef unsigned long ZChecksum_t; + +/* Notice definition */ +typedef struct _ZNotice_t { + char *z_packet; + char *z_version; + ZNotice_Kind_t z_kind; + ZUnique_Id_t z_uid; +#define z_sender_addr z_uid.zuid_addr + struct timeval z_time; + unsigned short z_port; + int z_auth; + int z_checked_auth; + int z_authent_len; + char *z_ascii_authent; + char *z_class; + const char *z_class_inst; + char *z_opcode; + char *z_sender; + const char *z_recipient; + char *z_default_format; + char *z_multinotice; + ZUnique_Id_t z_multiuid; + ZChecksum_t z_checksum; + int z_num_other_fields; + char *z_other_fields[Z_MAXOTHERFIELDS]; + caddr_t z_message; + int z_message_len; +} ZNotice_t; + +/* Subscription structure */ +typedef struct _ZSubscriptions_t { + char *zsub_recipient; + char *zsub_class; + char *zsub_classinst; +} ZSubscription_t; + +/* Function return code */ +typedef int Code_t; + +/* Locations structure */ +typedef struct _ZLocations_t { + char *host; + char *time; + char *tty; +} ZLocations_t; + +typedef struct _ZAsyncLocateData_t { + char *user; + ZUnique_Id_t uid; + char *version; +} ZAsyncLocateData_t; + +/* for ZSetDebug */ +#ifdef Z_DEBUG +void (*__Z_debug_print) ZP((ZCONST char *fmt, va_list args, void *closure)); +void *__Z_debug_print_closure; +#endif + +int ZCompareUIDPred ZP((ZNotice_t *, void *)); +int ZCompareMultiUIDPred ZP((ZNotice_t *, void *)); + +/* Defines for ZFormatNotice, et al. */ +typedef Code_t (*Z_AuthProc) ZP((ZNotice_t*, char *, int, int *)); +Code_t ZMakeAuthentication ZP((ZNotice_t*, char *,int, int*)); + +char *ZGetSender ZP((void)); +char *ZGetVariable ZP((char *)); +Code_t ZSetVariable ZP((char *var, char *value)); +Code_t ZUnsetVariable ZP((char *var)); +int ZGetWGPort ZP((void)); +Code_t ZSetDestAddr ZP((struct sockaddr_in *)); +Code_t ZFormatNoticeList ZP((ZNotice_t*, char**, int, + char **, int*, Z_AuthProc)); +Code_t ZParseNotice ZP((char*, int, ZNotice_t *)); +Code_t ZReadAscii ZP((char*, int, unsigned char*, int)); +Code_t ZReadAscii32 ZP((char *, int, unsigned long *)); +Code_t ZReadAscii16 ZP((char *, int, unsigned short *)); +Code_t ZSendPacket ZP((char*, int, int)); +Code_t ZSendList ZP((ZNotice_t*, char *[], int, Z_AuthProc)); +Code_t ZSrvSendList ZP((ZNotice_t*, char*[], int, Z_AuthProc, Code_t (*)())); +Code_t ZSendNotice ZP((ZNotice_t *, Z_AuthProc)); +Code_t ZSrvSendNotice ZP((ZNotice_t*, Z_AuthProc, Code_t (*)())); +Code_t ZFormatNotice ZP((ZNotice_t*, char**, int*, Z_AuthProc)); +Code_t ZFormatSmallNotice ZP((ZNotice_t*, ZPacket_t, int*, Z_AuthProc)); +Code_t ZFormatRawNoticeList ZP((ZNotice_t *notice, char *list[], int nitems, + char **buffer, int *ret_len)); +Code_t ZLocateUser ZP((char *, int *, Z_AuthProc)); +Code_t ZRequestLocations ZP((const char *, ZAsyncLocateData_t *, + ZNotice_Kind_t, Z_AuthProc)); +Code_t ZhmStat ZP((struct in_addr *, ZNotice_t *)); +Code_t ZInitialize ZP((void)); +Code_t ZSetServerState ZP((int)); +Code_t ZSetFD ZP((int)); +Code_t ZFormatSmallRawNotice ZP((ZNotice_t*, ZPacket_t, int*)); +int ZCompareUID ZP((ZUnique_Id_t*, ZUnique_Id_t*)); +Code_t ZMakeAscii ZP((char*, int, unsigned char*, int)); +Code_t ZMakeAscii32 ZP((char *, int, unsigned long)); +Code_t ZMakeAscii16 ZP((char *, int, unsigned int)); +Code_t ZReceivePacket ZP((ZPacket_t, int*, struct sockaddr_in*)); +Code_t ZCheckAuthentication ZP((ZNotice_t*, struct sockaddr_in*)); +Code_t ZSetLocation ZP((char *exposure)); +Code_t ZUnsetLocation ZP((void)); +Code_t ZFlushMyLocations ZP((void)); +Code_t ZFormatRawNotice ZP((ZNotice_t *, char**, int *)); +Code_t ZRetrieveSubscriptions ZP((unsigned short, int*)); +Code_t ZOpenPort ZP((unsigned short *port)); +Code_t ZClosePort ZP((void)); +Code_t ZFlushLocations ZP((void)); +Code_t ZFlushSubscriptions ZP((void)); +Code_t ZFreeNotice ZP((ZNotice_t *notice)); +Code_t ZParseLocations ZP((register ZNotice_t *notice, + register ZAsyncLocateData_t *zald, int *nlocs, + char **user)); +int ZCompareALDPred ZP((ZNotice_t *notice, void *zald)); +void ZFreeALD ZP((register ZAsyncLocateData_t *zald)); +Code_t ZCheckIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, + register int (*predicate) ZP((ZNotice_t *,void *)), + void *args)); +Code_t ZPeekPacket ZP((char **buffer, int *ret_len, + struct sockaddr_in *from)); +Code_t ZPeekNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); +Code_t ZIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, + int (*predicate) ZP((ZNotice_t *, void *)), void *args)); +Code_t ZSubscribeTo ZP((ZSubscription_t *sublist, int nitems, + unsigned int port)); +Code_t ZSubscribeToSansDefaults ZP((ZSubscription_t *sublist, int nitems, + unsigned int port)); +Code_t ZUnsubscribeTo ZP((ZSubscription_t *sublist, int nitems, + unsigned int port)); +Code_t ZCancelSubscriptions ZP((unsigned int port)); +int ZPending ZP((void)); +Code_t ZReceiveNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); +#ifdef Z_DEBUG +void Z_debug ZP((ZCONST char *, ...)); +#endif + +#undef ZP + +/* Compatibility */ +#define ZNewLocateUser ZLocateUser + +/* Macros to retrieve Zephyr library values. */ +extern int __Zephyr_fd; +extern int __Q_CompleteLength; +extern struct sockaddr_in __HM_addr; +extern char __Zephyr_realm[]; +#define ZGetFD() __Zephyr_fd +#define ZQLength() __Q_CompleteLength +#define ZGetDestAddr() __HM_addr +#define ZGetRealm() __Zephyr_realm + +#ifdef Z_DEBUG +void ZSetDebug ZP((void (*)(ZCONST char *, va_list, void *), void *)); +#define ZSetDebug(proc,closure) (__Z_debug_print=(proc), \ + __Z_debug_print_closure=(closure), \ + (void) 0) +#else +#define ZSetDebug(proc,closure) +#endif + +/* Maximum queue length */ +#define Z_MAXQLEN 30 + +/* Successful function return */ +#define ZERR_NONE 0 + +/* Hostmanager wait time (in secs) */ +#define HM_TIMEOUT 1 + +/* Server wait time (in secs) */ +#define SRV_TIMEOUT 30 + +#define ZAUTH (ZMakeAuthentication) +#define ZNOAUTH ((Z_AuthProc)0) + +/* Packet strings */ +#define ZSRVACK_SENT "SENT" /* SERVACK codes */ +#define ZSRVACK_NOTSENT "LOST" +#define ZSRVACK_FAIL "FAIL" + +/* Server internal class */ +#define ZEPHYR_ADMIN_CLASS "ZEPHYR_ADMIN" /* Class */ + +/* Control codes sent to a server */ +#define ZEPHYR_CTL_CLASS "ZEPHYR_CTL" /* Class */ + +#define ZEPHYR_CTL_CLIENT "CLIENT" /* Inst: From client */ +#define CLIENT_SUBSCRIBE "SUBSCRIBE" /* Opcode: Subscribe */ +#define CLIENT_SUBSCRIBE_NODEFS "SUBSCRIBE_NODEFS" /* Opcode: Subscribe */ +#define CLIENT_UNSUBSCRIBE "UNSUBSCRIBE" /* Opcode: Unsubsubscribe */ +#define CLIENT_CANCELSUB "CLEARSUB" /* Opcode: Clear all subs */ +#define CLIENT_GIMMESUBS "GIMME" /* Opcode: Give me subs */ +#define CLIENT_GIMMEDEFS "GIMMEDEFS" /* Opcode: Give me default + * subscriptions */ + +#define ZEPHYR_CTL_HM "HM" /* Inst: From HM */ +#define HM_BOOT "BOOT" /* Opcode: Boot msg */ +#define HM_FLUSH "FLUSH" /* Opcode: Flush me */ +#define HM_DETACH "DETACH" /* Opcode: Detach me */ +#define HM_ATTACH "ATTACH" /* Opcode: Attach me */ + +/* Control codes send to a HostManager */ +#define HM_CTL_CLASS "HM_CTL" /* Class */ + +#define HM_CTL_SERVER "SERVER" /* Inst: From server */ +#define SERVER_SHUTDOWN "SHUTDOWN" /* Opcode: Server shutdown */ +#define SERVER_PING "PING" /* Opcode: PING */ + +#define HM_CTL_CLIENT "CLIENT" /* Inst: From client */ +#define CLIENT_FLUSH "FLUSH" /* Opcode: Send flush to srv */ +#define CLIENT_NEW_SERVER "NEWSERV" /* Opcode: Find new server */ + +/* HM Statistics */ +#define HM_STAT_CLASS "HM_STAT" /* Class */ + +#define HM_STAT_CLIENT "HMST_CLIENT" /* Inst: From client */ +#define HM_GIMMESTATS "GIMMESTATS" /* Opcode: get stats */ + +/* Login class messages */ +#define LOGIN_CLASS "LOGIN" /* Class */ + +/* Class Instance is principal of user who is logging in or logging out */ + +#define EXPOSE_NONE "NONE" /* Opcode: Not visible */ +#define EXPOSE_OPSTAFF "OPSTAFF" /* Opcode: Opstaff visible */ +#define EXPOSE_REALMVIS "REALM-VISIBLE" /* Opcode: Realm visible */ +#define EXPOSE_REALMANN "REALM-ANNOUNCED"/* Opcode: Realm announced */ +#define EXPOSE_NETVIS "NET-VISIBLE" /* Opcode: Net visible */ +#define EXPOSE_NETANN "NET-ANNOUNCED" /* Opcode: Net announced */ +#define LOGIN_USER_LOGIN "USER_LOGIN" /* Opcode: user login + (from server) */ +#define LOGIN_USER_LOGOUT "USER_LOGOUT" /* Opcode: User logout */ +#define LOGIN_USER_FLUSH "USER_FLUSH" /* Opcode: flush all locs */ + +/* Locate class messages */ +#define LOCATE_CLASS "USER_LOCATE" /* Class */ + +#define LOCATE_HIDE "USER_HIDE" /* Opcode: Hide me */ +#define LOCATE_UNHIDE "USER_UNHIDE" /* Opcode: Unhide me */ + +/* Class Instance is principal of user to locate */ +#define LOCATE_LOCATE "LOCATE" /* Opcode: Locate user */ + +/* WG_CTL class messages */ +#define WG_CTL_CLASS "WG_CTL" /* Class */ + +#define WG_CTL_USER "USER" /* Inst: User request */ +#define USER_REREAD "REREAD" /* Opcode: Reread desc file */ +#define USER_SHUTDOWN "SHUTDOWN" /* Opcode: Go catatonic */ +#define USER_STARTUP "STARTUP" /* Opcode: Come out of it */ +#define USER_EXIT "EXIT" /* Opcode: Exit the client */ + +#endif /* __ZEPHYR_H__ */
--- a/libpurple/proxy.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/proxy.c Thu Jun 26 09:07:56 2008 +0000 @@ -1143,7 +1143,7 @@ int len; if (connect_data->read_buffer == NULL) { - connect_data->read_buf_len = 4; + connect_data->read_buf_len = 5; connect_data->read_buffer = g_malloc(connect_data->read_buf_len); connect_data->read_len = 0; } @@ -1212,6 +1212,11 @@ return; buf += 4 + 16; break; + default: + purple_debug_error("socks5 proxy", "Invalid ATYP received (0x%X)\n", buf[3]); + purple_proxy_connect_data_disconnect(connect_data, + _("Received invalid data on connection with server.")); + return; } /* Skip past BND.PORT */ @@ -1728,6 +1733,10 @@ * resolved, and each time a connection attempt fails (assuming there * is another IP address to try). */ +#ifndef INET6_ADDRSTRLEN +#define INET6_ADDRSTRLEN 46 +#endif + static void try_connect(PurpleProxyConnectData *connect_data) { size_t addrlen; @@ -1738,9 +1747,13 @@ connect_data->hosts = g_slist_remove(connect_data->hosts, connect_data->hosts->data); addr = connect_data->hosts->data; connect_data->hosts = g_slist_remove(connect_data->hosts, connect_data->hosts->data); - +#ifdef HAVE_INET_NTOP inet_ntop(addr->sa_family, &((struct sockaddr_in *)addr)->sin_addr, ipaddr, sizeof(ipaddr)); +#else + memcpy(ipaddr,inet_ntoa(((struct sockaddr_in *)addr)->sin_addr), + sizeof(ipaddr)); +#endif purple_debug_info("proxy", "Attempting connection to %s\n", ipaddr); switch (purple_proxy_info_get_type(connect_data->gpi)) {
--- a/libpurple/proxy.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/proxy.h Thu Jun 26 09:07:56 2008 +0000 @@ -239,9 +239,9 @@ * to something descriptive (hopefully). * @param data User-defined data. * - * @return NULL if there was an error, or a reference to a data - * structure that can be used to cancel the pending - * connection, if needed. + * @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(void *handle, PurpleAccount *account, @@ -265,9 +265,9 @@ * to something descriptive (hopefully). * @param data User-defined data. * - * @return NULL if there was an error, or a reference to a data - * structure that can be used to cancel the pending - * connection, if needed. + * @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_socks5(void *handle, PurpleProxyInfo *gpi,
--- a/libpurple/prpl.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/prpl.h Thu Jun 26 09:07:56 2008 +0000 @@ -31,6 +31,7 @@ #define _PURPLE_PRPL_H_ typedef struct _PurplePluginProtocolInfo PurplePluginProtocolInfo; +/** @copydoc _PurpleAttentionType */ typedef struct _PurpleAttentionType PurpleAttentionType; /**************************************************************************/ @@ -71,16 +72,22 @@ #include "status.h" #include "whiteboard.h" + +/** @copydoc PurpleBuddyIconSpec */ struct _PurpleBuddyIconSpec { - char *format; /**< This is a comma-delimited list of image formats or NULL if icons are not supported. - * Neither the core nor the prpl will actually check to see if the data it's given matches this; it's - * entirely up to the UI to do what it wants */ - int min_width; /**< The minimum width of this icon */ - int min_height; /**< The minimum height of this icon */ - int max_width; /**< The maximum width of this icon */ - int max_height; /**< The maximum height of this icon */ - size_t max_filesize; /**< The maximum number of bytes */ - PurpleIconScaleRules scale_rules; /**< How to stretch this icon */ + /** This is a comma-delimited list of image formats or @c NULL if icons + * are not supported. Neither the core nor the prpl will actually + * check to see if the data it's given matches this; it's entirely up + * to the UI to do what it wants + */ + char *format; + + int min_width; /**< Minimum width of this icon */ + int min_height; /**< Minimum height of this icon */ + int max_width; /**< Maximum width of this icon */ + int max_height; /**< Maximum height of this icon */ + size_t max_filesize; /**< Maximum size in bytes */ + PurpleIconScaleRules scale_rules; /**< How to stretch this icon */ }; struct proto_chat_entry { @@ -93,6 +100,9 @@ gboolean secret; }; +/** Represents "nudges" and "buzzes" that you may send to a buddy to attract + * their attention (or vice-versa). + */ struct _PurpleAttentionType { const char *name; /**< Shown in GUI elements */ @@ -399,9 +409,45 @@ gboolean (*send_attention)(PurpleConnection *gc, const char *username, guint type); GList *(*get_attention_types)(PurpleAccount *acct); - void (*_purple_reserved4)(void); + /** + * The size of the PurplePluginProtocolInfo. This should always be sizeof(PurplePluginProtocolInfo). + * This allows adding more functions to this struct without requiring a major version bump. + */ + unsigned long struct_size; + + /* NOTE: + * If more functions are added, they should accessed using the following syntax: + * + * if (PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, new_function)) + * prpl->new_function(...); + * + * instead of + * + * if (prpl->new_function != NULL) + * prpl->new_function(...); + * + * The PURPLE_PROTOCOL_PLUGIN_HAS_FUNC macro can be used for the older member + * functions (e.g. login, send_im etc.) too. + */ + + /** This allows protocols to specify additional strings to be used for + * various purposes. The idea is to stuff a bunch of strings in this hash + * table instead of expanding the struct for every addition. This hash + * table is allocated every call and MUST be unrefed by the caller. + * + * @param account The account to specify. This can be NULL. + * @return The protocol's string hash table. The hash table should be + * destroyed by the caller when it's no longer needed. + */ + GHashTable *(*get_account_text_table)(PurpleAccount *account); }; +#define PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl, member) \ + (((G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < G_STRUCT_OFFSET(PurplePluginProtocolInfo, struct_size)) \ + || (G_STRUCT_OFFSET(PurplePluginProtocolInfo, member) < prpl->struct_size)) && \ + prpl->member != NULL) + + #define PURPLE_IS_PROTOCOL_PLUGIN(plugin) \ ((plugin)->info->type == PURPLE_PLUGIN_PROTOCOL)
--- a/libpurple/purple-remote Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/purple-remote Thu Jun 26 09:07:56 2008 +0000 @@ -35,7 +35,7 @@ raise "Error: " + self.attr + " " + str(args) + " returned " + str(result) return result -def show_help(): +def show_help(requested=False): print """This program uses D-Bus to communicate with purple. Usage: @@ -66,6 +66,10 @@ PurpleAccountsFindConnected?name=&protocol=prpl-jabber PurpleAccountsFindConnected(,prpl-jabber) """ % sys.argv[0] + if (requested): + sys.exit(0) + else: + sys.exit(1) cpurple = CheckedObject(purple) @@ -213,10 +217,11 @@ raise "Don't know how to handle type \"%s\"" % type return purple.__getattr__(command)(*methodparams) show_help() - raise "Unknown command: %s" % command if len(sys.argv) == 1: show_help() +elif (sys.argv[1] == "--help" or sys.argv[1] == "-h"): + show_help(True) elif (obj == None): print "No existing libpurple instance detected." sys.exit(1);
--- a/libpurple/purple-url-handler Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/purple-url-handler Thu Jun 26 09:07:56 2008 +0000 @@ -295,10 +295,14 @@ def main(argv=sys.argv): - if len(argv) != 2: + if len(argv) != 2 or argv[1] == "--help" or argv[1] == "-h": print "Usage: %s URI" % argv[0] print "Example: %s \"xmpp:romeo@montague.net?message\"" % argv[0] - return + + if len(argv) != 2: + sys.exit(1) + else: + return 0 uri = argv[1] type = uri.split(":")[0]
--- a/libpurple/roomlist.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/roomlist.h Thu Jun 26 09:07:56 2008 +0000 @@ -30,6 +30,7 @@ typedef struct _PurpleRoomlist PurpleRoomlist; typedef struct _PurpleRoomlistRoom PurpleRoomlistRoom; typedef struct _PurpleRoomlistField PurpleRoomlistField; +/** @copydoc _PurpleRoomlistUiOps */ typedef struct _PurpleRoomlistUiOps PurpleRoomlistUiOps; /**
--- a/libpurple/server.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/server.c Thu Jun 26 09:07:56 2008 +0000 @@ -151,7 +151,6 @@ */ auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); if((gc->flags & PURPLE_CONNECTION_AUTO_RESP) && - flags & PURPLE_MESSAGE_AUTO_RESP && !purple_presence_is_available(presence) && strcmp(auto_reply_pref, "never")) { @@ -659,8 +658,11 @@ if (PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc))->set_permit_deny == NULL) { /* protocol does not support privacy, handle it ourselves */ - if (!purple_privacy_check(account, who)) + if (!purple_privacy_check(account, who)) { + purple_signal_emit(purple_conversations_get_handle(), "blocked-im-msg", + account, who, msg, flags, (unsigned int)mtime); return; + } } /* @@ -725,6 +727,7 @@ PurpleStatusPrimitive primitive; const gchar *auto_reply_pref; const char *away_msg = NULL; + gboolean mobile = FALSE; auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); @@ -732,9 +735,10 @@ status = purple_presence_get_active_status(presence); status_type = purple_status_get_type(status); primitive = purple_status_type_get_primitive(status_type); + mobile = purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOBILE); if ((primitive == PURPLE_STATUS_AVAILABLE) || (primitive == PURPLE_STATUS_INVISIBLE) || - (primitive == PURPLE_STATUS_MOBILE) || + mobile || !strcmp(auto_reply_pref, "never") || (!purple_presence_is_idle(presence) && !strcmp(auto_reply_pref, "awayidle"))) { @@ -879,8 +883,11 @@ account = purple_connection_get_account(gc); if (PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc))->set_permit_deny == NULL) { /* protocol does not support privacy, handle it ourselves */ - if (!purple_privacy_check(account, who)) + if (!purple_privacy_check(account, who)) { + purple_signal_emit(purple_conversations_get_handle(), "chat-invite-blocked", + account, who, name, message, data); return; + } } plugin_return = GPOINTER_TO_INT(purple_signal_emit_return_1( @@ -967,6 +974,12 @@ purple_signal_emit(purple_conversations_get_handle(), "chat-left", conv); } +void purple_serv_got_join_chat_failed(PurpleConnection *gc, GHashTable *data) +{ + purple_signal_emit(purple_conversations_get_handle(), "chat-join-failed", + gc, data); +} + void serv_got_chat_in(PurpleConnection *g, int id, const char *who, PurpleMessageFlags flags, const char *message, time_t mtime) {
--- a/libpurple/server.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/server.h Thu Jun 26 09:07:56 2008 +0000 @@ -166,6 +166,17 @@ PurpleConversation *serv_got_joined_chat(PurpleConnection *gc, int id, const char *name); +/** + * Called by a prpl when an attempt to join a chat via serv_join_chat() + * fails. + * + * @param gc The connection on which chat joining failed + * @param data The components passed to serv_join_chat() originally. + * The hash function should be g_str_hash() and the equal + * function should be g_str_equal(). + */ +void purple_serv_got_join_chat_failed(PurpleConnection *gc, GHashTable *data); + void serv_got_chat_left(PurpleConnection *g, int id); void serv_got_chat_in(PurpleConnection *g, int id, const char *who, PurpleMessageFlags flags, const char *message, time_t mtime);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/smiley.c Thu Jun 26 09:07:56 2008 +0000 @@ -0,0 +1,902 @@ +/** + * @file smiley.c Simley API + * @ingroup core + */ + +/* purple + * + * Purple 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 "dbus-maybe.h" +#include "debug.h" +#include "imgstore.h" +#include "smiley.h" +#include "util.h" +#include "xmlnode.h" + +/**************************************************************************/ +/* Main structures, members and constants */ +/**************************************************************************/ + +struct _PurpleSmiley +{ + GObject parent; + PurpleStoredImage *img; /**< The id of the stored image with the + the smiley data. */ + char *shortcut; /**< Shortcut associated with the custom + smiley. This field will work as a + unique key by this API. */ + char *checksum; /**< The smiley checksum. */ +}; + +struct _PurpleSmileyClass +{ + GObjectClass parent_class; +}; + +static GHashTable *smiley_shortcut_index = NULL; /* shortcut (char *) => smiley (PurpleSmiley*) */ +static GHashTable *smiley_checksum_index = NULL; /* checksum (char *) => smiley (PurpleSmiley*) */ + +static guint save_timer = 0; +static gboolean smileys_loaded = FALSE; +static char *smileys_dir = NULL; + +#define SMILEYS_DEFAULT_FOLDER "custom_smiley" +#define SMILEYS_LOG_ID "smileys" + +#define XML_FILE_NAME "smileys.xml" + +#define XML_ROOT_TAG "smileys" +#define XML_PROFILE_TAG "profile" +#define XML_PROFILE_NAME_ATTRIB_TAG "name" +#define XML_ACCOUNT_TAG "account" +#define XML_ACCOUNT_USERID_ATTRIB_TAG "userid" +#define XML_SMILEY_SET_TAG "smiley_set" +#define XML_SMILEY_TAG "smiley" +#define XML_SHORTCUT_ATTRIB_TAG "shortcut" +#define XML_CHECKSUM_ATRIB_TAG "checksum" +#define XML_FILENAME_ATRIB_TAG "filename" + + +/****************************************************************************** + * XML descriptor file layout * + ****************************************************************************** + * + * Althought we are creating the profile XML structure here, now we + * won't handle it. + * So, we just add one profile named "default" that has no associated + * account elements, and have only the smiley_set that will contain + * all existent custom smiley. + * + * It's our "Highlander Profile" :-) + * + ****************************************************************************** + * + * <smileys> + * <profile name="john.doe"> + * <account userid="john.doe@jabber.org"> + * <account userid="john.doe@gmail.com"> + * <smiley_set> + * <smiley shortcut="aaa" checksum="xxxxxxxx" filename="file_name1.gif"/> + * <smiley shortcut="bbb" checksum="yyyyyyy" filename="file_name2.gif"/> + * </smiley_set> + * </profile> + * </smiley> + * + *****************************************************************************/ + + +/********************************************************************* + * Forward declarations * + *********************************************************************/ + +static gboolean read_smiley_file(const char *path, guchar **data, size_t *len); + +static char *get_file_full_path(const char *filename); + +static PurpleSmiley *purple_smiley_create(const char *shortcut); + +static PurpleSmiley *purple_smiley_load_file(const char *shortcut, const char *checksum, + const char *filename); + +static void +purple_smiley_set_data_impl(PurpleSmiley *smiley, guchar *smiley_data, + size_t smiley_data_len); + +static void +purple_smiley_data_store(PurpleStoredImage *stored_img); + +static void +purple_smiley_data_unstore(const char *filename); + +/********************************************************************* + * Writing to disk * + *********************************************************************/ + +static xmlnode * +smiley_to_xmlnode(PurpleSmiley *smiley) +{ + xmlnode *smiley_node = NULL; + + smiley_node = xmlnode_new(XML_SMILEY_TAG); + + if (!smiley_node) + return NULL; + + xmlnode_set_attrib(smiley_node, XML_SHORTCUT_ATTRIB_TAG, + smiley->shortcut); + + xmlnode_set_attrib(smiley_node, XML_CHECKSUM_ATRIB_TAG, + smiley->checksum); + + xmlnode_set_attrib(smiley_node, XML_FILENAME_ATRIB_TAG, + purple_imgstore_get_filename(smiley->img)); + + return smiley_node; +} + +static void +add_smiley_to_main_node(gpointer key, gpointer value, gpointer user_data) +{ + xmlnode *child_node; + + child_node = smiley_to_xmlnode(value); + xmlnode_insert_child((xmlnode*)user_data, child_node); +} + +static xmlnode * +smileys_to_xmlnode() +{ + xmlnode *root_node, *profile_node, *smileyset_node; + + root_node = xmlnode_new(XML_ROOT_TAG); + xmlnode_set_attrib(root_node, "version", "1.0"); + + /* See the top comment's above to understand why initial tag elements + * are not being considered by now. */ + profile_node = xmlnode_new(XML_PROFILE_TAG); + if (profile_node) { + xmlnode_set_attrib(profile_node, XML_PROFILE_NAME_ATTRIB_TAG, "Default"); + xmlnode_insert_child(root_node, profile_node); + + smileyset_node = xmlnode_new(XML_SMILEY_SET_TAG); + if (smileyset_node) { + xmlnode_insert_child(profile_node, smileyset_node); + g_hash_table_foreach(smiley_shortcut_index, add_smiley_to_main_node, smileyset_node); + } + } + + return root_node; +} + +static void +sync_smileys() +{ + xmlnode *root_node; + char *data; + + if (!smileys_loaded) { + purple_debug_error(SMILEYS_LOG_ID, "Attempted to save smileys before it " + "was read!\n"); + return; + } + + root_node = smileys_to_xmlnode(); + data = xmlnode_to_formatted_str(root_node, NULL); + purple_util_write_data_to_file(XML_FILE_NAME, data, -1); + + g_free(data); + xmlnode_free(root_node); +} + +static gboolean +save_smileys_cb(gpointer data) +{ + sync_smileys(); + save_timer = 0; + return FALSE; +} + +static void +purple_smileys_save() +{ + if (save_timer == 0) + save_timer = purple_timeout_add_seconds(5, save_smileys_cb, NULL); +} + + +/********************************************************************* + * Reading from disk * + *********************************************************************/ + +static PurpleSmiley * +parse_smiley(xmlnode *smiley_node) +{ + PurpleSmiley *smiley; + const char *shortcut = NULL; + const char *checksum = NULL; + const char *filename = NULL; + + shortcut = xmlnode_get_attrib(smiley_node, XML_SHORTCUT_ATTRIB_TAG); + checksum = xmlnode_get_attrib(smiley_node, XML_CHECKSUM_ATRIB_TAG); + filename = xmlnode_get_attrib(smiley_node, XML_FILENAME_ATRIB_TAG); + + if ((shortcut == NULL) || (checksum == NULL) || (filename == NULL)) + return NULL; + + smiley = purple_smiley_load_file(shortcut, checksum, filename); + + return smiley; +} + +static void +purple_smileys_load() +{ + xmlnode *root_node, *profile_node; + xmlnode *smileyset_node = NULL; + xmlnode *smiley_node; + + smileys_loaded = TRUE; + + root_node = purple_util_read_xml_from_file(XML_FILE_NAME, + _(SMILEYS_LOG_ID)); + + if (root_node == NULL) + return; + + /* See the top comment's above to understand why initial tag elements + * are not being considered by now. */ + profile_node = xmlnode_get_child(root_node, XML_PROFILE_TAG); + if (profile_node) + smileyset_node = xmlnode_get_child(profile_node, XML_SMILEY_SET_TAG); + + if (smileyset_node) { + smiley_node = xmlnode_get_child(smileyset_node, XML_SMILEY_TAG); + for (; smiley_node != NULL; + smiley_node = xmlnode_get_next_twin(smiley_node)) { + PurpleSmiley *smiley; + + smiley = parse_smiley(smiley_node); + } + } + + xmlnode_free(root_node); +} + +/********************************************************************* + * GObject Stuff * + *********************************************************************/ +enum +{ + PROP_0, + PROP_SHORTCUT, + PROP_IMGSTORE, +}; + +#define PROP_SHORTCUT_S "shortcut" +#define PROP_IMGSTORE_S "image" + +enum +{ + SIG_DESTROY, + SIG_LAST +}; + +static guint signals[SIG_LAST]; +static GObjectClass *parent_class; + +static void +purple_smiley_init(GTypeInstance *instance, gpointer klass) +{ + PurpleSmiley *smiley = PURPLE_SMILEY(instance); + PURPLE_DBUS_REGISTER_POINTER(smiley, PurpleSmiley); +} + +static void +purple_smiley_get_property(GObject *object, guint param_id, GValue *value, + GParamSpec *spec) +{ + PurpleSmiley *smiley = PURPLE_SMILEY(object); + switch (param_id) { + case PROP_SHORTCUT: + g_value_set_string(value, smiley->shortcut); + break; + case PROP_IMGSTORE: + g_value_set_pointer(value, smiley->img); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, spec); + break; + } +} + +static void +purple_smiley_set_property(GObject *object, guint param_id, const GValue *value, + GParamSpec *spec) +{ + PurpleSmiley *smiley = PURPLE_SMILEY(object); + switch (param_id) { + case PROP_SHORTCUT: + { + const char *shortcut = g_value_get_string(value); + purple_smiley_set_shortcut(smiley, shortcut); + } + break; + case PROP_IMGSTORE: + { + PurpleStoredImage *img = g_value_get_pointer(value); + + purple_imgstore_unref(smiley->img); + g_free(smiley->checksum); + + smiley->img = img; + if (img) { + smiley->checksum = purple_util_get_image_checksum( + purple_imgstore_get_data(img), + purple_imgstore_get_size(img)); + purple_smiley_data_store(img); + } else { + smiley->checksum = NULL; + } + + g_object_notify(object, PROP_IMGSTORE_S); + } + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, spec); + break; + } +} + +static void +purple_smiley_finalize(GObject *obj) +{ + PurpleSmiley *smiley = PURPLE_SMILEY(obj); + + if (g_hash_table_lookup(smiley_shortcut_index, smiley->shortcut)) { + g_hash_table_remove(smiley_shortcut_index, smiley->shortcut); + g_hash_table_remove(smiley_checksum_index, smiley->checksum); + } + + g_free(smiley->shortcut); + g_free(smiley->checksum); + if (smiley->img) + purple_smiley_data_unstore(purple_imgstore_get_filename(smiley->img)); + purple_imgstore_unref(smiley->img); + + PURPLE_DBUS_UNREGISTER_POINTER(smiley); + + purple_smileys_save(); +} + +static void +purple_smiley_dispose(GObject *gobj) +{ + g_signal_emit(gobj, signals[SIG_DESTROY], 0); + parent_class->dispose(gobj); +} + +static void +purple_smiley_class_init(PurpleSmileyClass *klass) +{ + GObjectClass *gobj_class = G_OBJECT_CLASS(klass); + GParamSpec *pspec; + + parent_class = g_type_class_peek_parent(klass); + + gobj_class->get_property = purple_smiley_get_property; + gobj_class->set_property = purple_smiley_set_property; + gobj_class->finalize = purple_smiley_finalize; + gobj_class->dispose = purple_smiley_dispose; + + /* Shortcut */ + pspec = g_param_spec_string(PROP_SHORTCUT_S, _("Shortcut"), + _("The text-shortcut for the smiley"), + NULL, + G_PARAM_READWRITE); + g_object_class_install_property(gobj_class, PROP_SHORTCUT, pspec); + + /* Stored Image */ + pspec = g_param_spec_pointer(PROP_IMGSTORE_S, _("Stored Image"), + _("Stored Image. (that'll have to do for now)"), + G_PARAM_READWRITE); + g_object_class_install_property(gobj_class, PROP_IMGSTORE, pspec); + + signals[SIG_DESTROY] = g_signal_new("destroy", + G_OBJECT_CLASS_TYPE(klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +GType +purple_smiley_get_type(void) +{ + static GType type = 0; + + if(type == 0) { + static const GTypeInfo info = { + sizeof(PurpleSmileyClass), + NULL, + NULL, + (GClassInitFunc)purple_smiley_class_init, + NULL, + NULL, + sizeof(PurpleSmiley), + 0, + purple_smiley_init, + NULL, + }; + + type = g_type_register_static(G_TYPE_OBJECT, + "PurpleSmiley", + &info, 0); + } + + return type; +} + +/********************************************************************* + * Other Stuff * + *********************************************************************/ + +static char *get_file_full_path(const char *filename) +{ + char *path; + + path = g_build_filename(purple_smileys_get_storing_dir(), filename, NULL); + + if (!g_file_test(path, G_FILE_TEST_EXISTS)) { + g_free(path); + return NULL; + } + + return path; +} + +static PurpleSmiley * +purple_smiley_load_file(const char *shortcut, const char *checksum, const char *filename) +{ + PurpleSmiley *smiley = NULL; + guchar *smiley_data; + size_t smiley_data_len; + char *fullpath = NULL; + + g_return_val_if_fail(shortcut != NULL, NULL); + g_return_val_if_fail(checksum != NULL, NULL); + g_return_val_if_fail(filename != NULL, NULL); + + fullpath = get_file_full_path(filename); + if (!fullpath) + return NULL; + + smiley = purple_smiley_create(shortcut); + if (!smiley) { + g_free(fullpath); + return NULL; + } + + smiley->checksum = g_strdup(checksum); + + if (read_smiley_file(fullpath, &smiley_data, &smiley_data_len)) + purple_smiley_set_data_impl(smiley, smiley_data, + smiley_data_len); + else + purple_smiley_delete(smiley); + + g_free(fullpath); + + return smiley; +} + +static void +purple_smiley_data_store(PurpleStoredImage *stored_img) +{ + const char *dirname; + char *path; + FILE *file = NULL; + + g_return_if_fail(stored_img != NULL); + + if (!smileys_loaded) + return; + + dirname = purple_smileys_get_storing_dir(); + path = g_build_filename(dirname, purple_imgstore_get_filename(stored_img), NULL); + + if (!g_file_test(dirname, G_FILE_TEST_IS_DIR)) { + purple_debug_info(SMILEYS_LOG_ID, "Creating smileys directory.\n"); + + if (g_mkdir(dirname, S_IRUSR | S_IWUSR | S_IXUSR) < 0) { + purple_debug_error(SMILEYS_LOG_ID, + "Unable to create directory %s: %s\n", + dirname, g_strerror(errno)); + } + } + + if ((file = g_fopen(path, "wb")) != NULL) { + if (!fwrite(purple_imgstore_get_data(stored_img), + purple_imgstore_get_size(stored_img), 1, file)) { + purple_debug_error(SMILEYS_LOG_ID, "Error writing %s: %s\n", + path, g_strerror(errno)); + } else { + purple_debug_info(SMILEYS_LOG_ID, "Wrote cache file: %s\n", path); + } + + fclose(file); + } else { + purple_debug_error(SMILEYS_LOG_ID, "Unable to create file %s: %s\n", + path, g_strerror(errno)); + g_free(path); + + return; + } + + g_free(path); +} + +static void +purple_smiley_data_unstore(const char *filename) +{ + const char *dirname; + char *path; + + g_return_if_fail(filename != NULL); + + dirname = purple_smileys_get_storing_dir(); + path = g_build_filename(dirname, filename, NULL); + + if (g_file_test(path, G_FILE_TEST_EXISTS)) { + if (g_unlink(path)) + purple_debug_error(SMILEYS_LOG_ID, "Failed to delete %s: %s\n", + path, g_strerror(errno)); + else + purple_debug_info(SMILEYS_LOG_ID, "Deleted cache file: %s\n", path); + } + + g_free(path); +} + +static gboolean +read_smiley_file(const char *path, guchar **data, size_t *len) +{ + GError *err = NULL; + + if (!g_file_get_contents(path, (gchar **)data, len, &err)) { + purple_debug_error(SMILEYS_LOG_ID, "Error reading %s: %s\n", + path, err->message); + g_error_free(err); + + return FALSE; + } + + return TRUE; +} + +static PurpleStoredImage * +purple_smiley_data_new(guchar *smiley_data, size_t smiley_data_len) +{ + char *filename; + PurpleStoredImage *stored_img; + + g_return_val_if_fail(smiley_data != NULL, NULL); + g_return_val_if_fail(smiley_data_len > 0, NULL); + + filename = purple_util_get_image_filename(smiley_data, smiley_data_len); + + if (filename == NULL) { + g_free(smiley_data); + return NULL; + } + + stored_img = purple_imgstore_add(smiley_data, smiley_data_len, filename); + + g_free(filename); + + return stored_img; +} + +static void +purple_smiley_set_data_impl(PurpleSmiley *smiley, guchar *smiley_data, + size_t smiley_data_len) +{ + PurpleStoredImage *old_img, *new_img; + const char *old_filename = NULL; + const char *new_filename = NULL; + + g_return_if_fail(smiley != NULL); + g_return_if_fail(smiley_data != NULL); + g_return_if_fail(smiley_data_len > 0); + + old_img = smiley->img; + + new_img = purple_smiley_data_new(smiley_data, smiley_data_len); + + g_object_set(G_OBJECT(smiley), PROP_IMGSTORE_S, new_img, NULL); + + /* If the old and new image files have different names we need + * to unstore old image file. */ + if (!old_img) + return; + + old_filename = purple_imgstore_get_filename(old_img); + new_filename = purple_imgstore_get_filename(smiley->img); + + if (g_ascii_strcasecmp(old_filename, new_filename)) + purple_smiley_data_unstore(old_filename); + purple_imgstore_unref(old_img); +} + + +/***************************************************************************** + * Public API functions * + *****************************************************************************/ + +static PurpleSmiley * +purple_smiley_create(const char *shortcut) +{ + PurpleSmiley *smiley; + + smiley = PURPLE_SMILEY(g_object_new(PURPLE_TYPE_SMILEY, PROP_SHORTCUT_S, shortcut, NULL)); + + return smiley; +} + +PurpleSmiley * +purple_smiley_new(PurpleStoredImage *img, const char *shortcut) +{ + PurpleSmiley *smiley = NULL; + + g_return_val_if_fail(shortcut != NULL, NULL); + g_return_val_if_fail(img != NULL, NULL); + + smiley = purple_smileys_find_by_shortcut(shortcut); + if (smiley) + return smiley; + + smiley = purple_smiley_create(shortcut); + if (!smiley) + return NULL; + + g_object_set(G_OBJECT(smiley), PROP_IMGSTORE_S, img, NULL); + + return smiley; +} + +static PurpleSmiley * +purple_smiley_new_from_stream(const char *shortcut, guchar *smiley_data, + size_t smiley_data_len) +{ + PurpleSmiley *smiley; + + g_return_val_if_fail(shortcut != NULL, NULL); + g_return_val_if_fail(smiley_data != NULL, NULL); + g_return_val_if_fail(smiley_data_len > 0, NULL); + + smiley = purple_smileys_find_by_shortcut(shortcut); + if (smiley) + return smiley; + + /* purple_smiley_create() sets shortcut */ + smiley = purple_smiley_create(shortcut); + if (!smiley) + return NULL; + + purple_smiley_set_data_impl(smiley, smiley_data, smiley_data_len); + + purple_smiley_data_store(smiley->img); + + return smiley; +} + +PurpleSmiley * +purple_smiley_new_from_file(const char *shortcut, const char *filepath) +{ + PurpleSmiley *smiley = NULL; + guchar *smiley_data; + size_t smiley_data_len; + + g_return_val_if_fail(shortcut != NULL, NULL); + g_return_val_if_fail(filepath != NULL, NULL); + + if (read_smiley_file(filepath, &smiley_data, &smiley_data_len)) { + smiley = purple_smiley_new_from_stream(shortcut, smiley_data, + smiley_data_len); + } + + return smiley; +} + +void +purple_smiley_delete(PurpleSmiley *smiley) +{ + g_return_if_fail(smiley != NULL); + + g_object_unref(smiley); +} + +gboolean +purple_smiley_set_shortcut(PurpleSmiley *smiley, const char *shortcut) +{ + g_return_val_if_fail(smiley != NULL, FALSE); + g_return_val_if_fail(shortcut != NULL, FALSE); + + /* Check out whether the new shortcut is already being used. */ + if (g_hash_table_lookup(smiley_shortcut_index, shortcut)) + return FALSE; + + /* Remove the old shortcut. */ + if (smiley->shortcut) + g_hash_table_remove(smiley_shortcut_index, smiley->shortcut); + + /* Insert the new shortcut. */ + g_hash_table_insert(smiley_shortcut_index, g_strdup(shortcut), smiley); + + g_free(smiley->shortcut); + smiley->shortcut = g_strdup(shortcut); + + g_object_notify(G_OBJECT(smiley), PROP_SHORTCUT_S); + + purple_smileys_save(); + + return TRUE; +} + +void +purple_smiley_set_data(PurpleSmiley *smiley, guchar *smiley_data, + size_t smiley_data_len) +{ + g_return_if_fail(smiley != NULL); + g_return_if_fail(smiley_data != NULL); + g_return_if_fail(smiley_data_len > 0); + + /* Remove the previous entry */ + g_hash_table_remove(smiley_checksum_index, smiley->checksum); + + /* Update the file data. This also updates the checksum. */ + purple_smiley_set_data_impl(smiley, smiley_data, smiley_data_len); + + /* Reinsert the index item. */ + g_hash_table_insert(smiley_checksum_index, g_strdup(smiley->checksum), smiley); + + purple_smileys_save(); +} + +PurpleStoredImage * +purple_smiley_get_stored_image(const PurpleSmiley *smiley) +{ + return purple_imgstore_ref(smiley->img); +} + +const char *purple_smiley_get_shortcut(const PurpleSmiley *smiley) +{ + g_return_val_if_fail(smiley != NULL, NULL); + + return smiley->shortcut; +} + +const char * +purple_smiley_get_checksum(const PurpleSmiley *smiley) +{ + g_return_val_if_fail(smiley != NULL, NULL); + + return smiley->checksum; +} + +gconstpointer +purple_smiley_get_data(const PurpleSmiley *smiley, size_t *len) +{ + g_return_val_if_fail(smiley != NULL, NULL); + + if (smiley->img) { + if (len != NULL) + *len = purple_imgstore_get_size(smiley->img); + + return purple_imgstore_get_data(smiley->img); + } + + return NULL; +} + +const char * +purple_smiley_get_extension(const PurpleSmiley *smiley) +{ + if (smiley->img != NULL) + return purple_imgstore_get_extension(smiley->img); + + return NULL; +} + +char *purple_smiley_get_full_path(PurpleSmiley *smiley) +{ + g_return_val_if_fail(smiley != NULL, NULL); + + if (smiley->img == NULL) + return NULL; + + return get_file_full_path(purple_imgstore_get_filename(smiley->img)); +} + +static void add_smiley_to_list(gpointer key, gpointer value, gpointer user_data) +{ + GList** returninglist = (GList**)user_data; + + *returninglist = g_list_append(*returninglist, value); +} + +GList * +purple_smileys_get_all(void) +{ + GList *returninglist = NULL; + + g_hash_table_foreach(smiley_shortcut_index, add_smiley_to_list, &returninglist); + + return returninglist; +} + +PurpleSmiley * +purple_smileys_find_by_shortcut(const char *shortcut) +{ + g_return_val_if_fail(shortcut != NULL, NULL); + + return g_hash_table_lookup(smiley_shortcut_index, shortcut); +} + +PurpleSmiley * +purple_smileys_find_by_checksum(const char *checksum) +{ + g_return_val_if_fail(checksum != NULL, NULL); + + return g_hash_table_lookup(smiley_checksum_index, checksum); +} + +const char * +purple_smileys_get_storing_dir(void) +{ + return smileys_dir; +} + +void +purple_smileys_init() +{ + smiley_shortcut_index = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); + smiley_checksum_index = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); + + smileys_dir = g_build_filename(purple_user_dir(), SMILEYS_DEFAULT_FOLDER, NULL); + + purple_smileys_load(); +} + +void +purple_smileys_uninit() +{ + if (save_timer != 0) { + purple_timeout_remove(save_timer); + save_timer = 0; + sync_smileys(); + } + + g_hash_table_destroy(smiley_shortcut_index); + g_hash_table_destroy(smiley_checksum_index); + g_free(smileys_dir); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/smiley.h Thu Jun 26 09:07:56 2008 +0000 @@ -0,0 +1,269 @@ +/** + * @file smiley.h Smiley API + * @ingroup core + * @since 2.5.0 + */ + +/* purple + * + * Purple 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 _PURPLE_SMILEY_H_ +#define _PURPLE_SMILEY_H_ + +#include <glib-object.h> + +#include "imgstore.h" +#include "util.h" + +/** + * A custom smiley. + * This contains everything Purple will ever need to know about a custom smiley. + * Everything. + * + * PurpleSmiley is a GObject. + */ +typedef struct _PurpleSmiley PurpleSmiley; +typedef struct _PurpleSmileyClass PurpleSmileyClass; + +#define PURPLE_TYPE_SMILEY (purple_smiley_get_type ()) +#define PURPLE_SMILEY(smiley) (G_TYPE_CHECK_INSTANCE_CAST ((smiley), PURPLE_TYPE_SMILEY, PurpleSmiley)) +#define PURPLE_SMILEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PURPLE_TYPE_SMILEY, PurpleSmileyClass)) +#define PURPLE_IS_SMILEY(smiley) (G_TYPE_CHECK_INSTANCE_TYPE ((smiley), PURPLE_TYPE_SMILEY)) +#define PURPLE_IS_SMILEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PURPLE_TYPE_SMILEY)) +#define PURPLE_SMILEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PURPLE_TYPE_SMILEY, PurpleSmileyClass)) + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************************************************/ +/** @name Custom Smiley API */ +/**************************************************************************/ +/*@{*/ + +/** + * GObject foo. + * @internal. + */ +GType purple_smiley_get_type(void); + +/** + * Creates a new custom smiley structure and populates it. + * + * If a custom smiley with the informed shortcut already exist, it + * will be automaticaly returned. + * + * @param img The image associated with the smiley. + * @param shortcut The custom smiley associated shortcut. + * + * @return The custom smiley structure filled up. + */ +PurpleSmiley * +purple_smiley_new(PurpleStoredImage *img, const char *shortcut); + +/** + * Creates a new custom smiley structure and populates it. + * + * The data is retrieved from an already existent file. + * + * If a custom smiley with the informed shortcut already exist, it + * will be automaticaly returned. + * + * @param shortcut The custom smiley associated shortcut. + * @param filepath The image file to be imported to a + * new custom smiley. + * + * @return The custom smiley structure filled up. + */ +PurpleSmiley * +purple_smiley_new_from_file(const char *shortcut, const char *filepath); + +/** + * Destroy the custom smiley and release the associated resources. + * + * @param smiley The custom smiley. + */ +void +purple_smiley_delete(PurpleSmiley *smiley); + +/** + * Changes the custom smiley's shortcut. + * + * @param smiley The custom smiley. + * @param shortcut The custom smiley associated shortcut. + * + * @return TRUE whether the shortcut is not associated with another + * custom smiley and the parameters are valid. FALSE otherwise. + */ +gboolean +purple_smiley_set_shortcut(PurpleSmiley *smiley, const char *shortcut); + +/** + * Changes the custom smiley's data. + * + * When the filename controling is made outside this API, the param + * #keepfilename must be TRUE. + * Otherwise, the file and filename will be regenerated, and the + * old one will be removed. + * + * @param smiley The custom smiley. + * @param smiley_data The custom smiley data. + * @param smiley_data_len The custom smiley data length. + */ +void +purple_smiley_set_data(PurpleSmiley *smiley, guchar *smiley_data, + size_t smiley_data_len); + +/** + * Returns the custom smiley's associated shortcut. + * + * @param smiley The custom smiley. + * + * @return The shortcut. + */ +const char *purple_smiley_get_shortcut(const PurpleSmiley *smiley); + +/** + * Returns the custom smiley data's checksum. + * + * @param smiley The custom smiley. + * + * @return The checksum. + */ +const char *purple_smiley_get_checksum(const PurpleSmiley *smiley); + +/** + * Returns the PurpleStoredImage with the reference counter incremented. + * + * The returned PurpleStoredImage reference counter must be decremented + * after use. + * + * @param smiley The custom smiley. + * + * @return A PurpleStoredImage reference. + */ +PurpleStoredImage *purple_smiley_get_stored_image(const PurpleSmiley *smiley); + +/** + * Returns the custom smiley's data. + * + * @param smiley The custom smiley. + * @param len If not @c NULL, the length of the icon data returned + * will be set in the location pointed to by this. + * + * @return A pointer to the custom smiley data. + */ +gconstpointer purple_smiley_get_data(const PurpleSmiley *smiley, size_t *len); + +/** + * Returns an extension corresponding to the custom smiley's file type. + * + * @param smiley The custom smiley. + * + * @return The custom smiley's extension, "icon" if unknown, or @c NULL if + * the image data has disappeared. + */ +const char *purple_smiley_get_extension(const PurpleSmiley *smiley); + +/** + * Returns a full path to an custom smiley. + * + * If the custom smiley has data and the file exists in the cache, this + * will return a full path to the cached file. + * + * In general, it is not appropriate to be poking in the file cached + * directly. If you find yourself wanting to use this function, think + * very long and hard about it, and then don't. + * + * @param smiley The custom smiley. + * + * @return A full path to the file, or @c NULL under various conditions. + * The caller should use #g_free to free the returned string. + */ +char *purple_smiley_get_full_path(PurpleSmiley *smiley); + +/*@}*/ + + +/**************************************************************************/ +/** @name Custom Smiley Subsystem API */ +/**************************************************************************/ +/*@{*/ + +/** + * Returns a list of all custom smileys. The caller should free the list. + * + * @return A list of all custom smileys. + */ +GList * +purple_smileys_get_all(void); + +/** + * Returns the custom smiley given it's shortcut. + * + * @param shortcut The custom smiley's shortcut. + * + * @return The custom smiley (with a reference for the caller) if found, + * or @c NULL if not found. + */ +PurpleSmiley * +purple_smileys_find_by_shortcut(const char *shortcut); + +/** + * Returns the custom smiley given it's checksum. + * + * @param checksum The custom smiley's checksum. + * + * @return The custom smiley (with a reference for the caller) if found, + * or @c NULL if not found. + */ +PurpleSmiley * +purple_smileys_find_by_checksum(const char *checksum); + +/** + * Returns the directory used to store custom smiley cached files. + * + * The default directory is PURPLEDIR/smileys, unless otherwise specified + * by purple_buddy_icons_set_cache_dir(). + * + * @return The directory to store custom smyles cached files to. + */ +const char *purple_smileys_get_storing_dir(void); + +/** + * Initializes the custom smiley subsystem. + */ +void purple_smileys_init(void); + +/** + * Uninitializes the custom smiley subsystem. + */ +void purple_smileys_uninit(void); + +/*@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* _PURPLE_SMILEY_H_ */ +
--- a/libpurple/sound.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/sound.h Thu Jun 26 09:07:56 2008 +0000 @@ -55,6 +55,9 @@ } PurpleSoundEventID; +/** Operations used by the core to request that particular sound files, or the + * sound associated with a particular event, should be played. + */ typedef struct _PurpleSoundUiOps { void (*init)(void);
--- a/libpurple/status.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/status.c Thu Jun 26 09:07:56 2008 +0000 @@ -107,10 +107,14 @@ PurpleStatusType *type; PurplePresence *presence; - const char *title; - gboolean active; + /* + * The current values of the attributes for this status. The + * key is a string containing the name of the attribute. It is + * a borrowed reference from the list of attrs in the + * PurpleStatusType. The value is a PurpleValue. + */ GHashTable *attr_values; }; @@ -563,7 +567,7 @@ status->presence = presence; status->attr_values = - g_hash_table_new_full(g_str_hash, g_str_equal, g_free, + g_hash_table_new_full(g_str_hash, g_str_equal, NULL, (GDestroyNotify)purple_value_destroy); for (l = purple_status_type_get_attrs(status_type); l != NULL; l = l->next) @@ -573,7 +577,7 @@ PurpleValue *new_value = purple_value_dup(value); g_hash_table_insert(status->attr_values, - g_strdup(purple_status_attr_get_id(attr)), + (char *)purple_status_attr_get_id(attr), new_value); }
--- a/libpurple/util.c Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/util.c Thu Jun 26 09:07:56 2008 +0000 @@ -832,6 +832,11 @@ if (offset_positive) tzoff *= -1; } + else if ((*c == 'Z') && (c = c + 1)) + { + /* 'Z' = Zulu = UTC */ + tzoff = 0; + } else if (utc) { static struct tm tmptm; @@ -939,7 +944,8 @@ else if(IS_ENTITY("'")) pln = "\'"; else if(*(text+1) == '#' && - (sscanf(text, "&#%u%1[;]", £, temp) == 2 || sscanf(text, "&#x%x%1[;]", £, temp) == 2) && + (sscanf(text, "&#%u%1[;]", £, temp) == 2 || + sscanf(text, "&#x%x%1[;]", £, temp) == 2) && pound != 0) { static char buf[7]; int buflen = g_unichar_to_utf8((gunichar)pound, buf); @@ -1356,6 +1362,14 @@ GString *cdata = NULL; GList *tags = NULL, *tag; const char *c = html; + char quote = '\0'; + +#define CHECK_QUOTE(ptr) if (*(ptr) == '\'' || *(ptr) == '\"') \ + quote = *(ptr++); \ + else \ + quote = '\0'; + +#define VALID_CHAR(ptr) (*(ptr) && *(ptr) != quote && (quote || (*(ptr) != ' ' && *(ptr) != '>'))) g_return_if_fail(xhtml_out != NULL || plain_out != NULL); @@ -1513,38 +1527,37 @@ xhtml = g_string_append(xhtml, "<span style='vertical-align:super;'>"); continue; } - if(!g_ascii_strncasecmp(c, "<img", 4) && (*(c+4) == '>' || *(c+4) == ' ')) { - const char *p = c; + if (!g_ascii_strncasecmp(c, "<img", 4) && (*(c+4) == '>' || *(c+4) == ' ')) { + const char *p = c + 4; GString *src = NULL, *alt = NULL; - while(*p && *p != '>') { - if(!g_ascii_strncasecmp(p, "src=", strlen("src="))) { - const char *q = p + strlen("src="); + while (*p && *p != '>') { + if (!g_ascii_strncasecmp(p, "src=", 4)) { + const char *q = p + 4; if (src) g_string_free(src, TRUE); src = g_string_new(""); - if(*q == '\'' || *q == '\"') - q++; - while(*q && *q != '\"' && *q != '\'' && *q != ' ') { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { src = g_string_append_c(src, *q); q++; } p = q; - } else if(!g_ascii_strncasecmp(p, "alt=", strlen("alt="))) { - const char *q = p + strlen("alt="); + } else if (!g_ascii_strncasecmp(p, "alt=", 4)) { + const char *q = p + 4; if (alt) g_string_free(alt, TRUE); alt = g_string_new(""); - if(*q == '\'' || *q == '\"') - q++; - while(*q && *q != '\"' && *q != '\'' && *q != ' ') { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { alt = g_string_append_c(alt, *q); q++; } p = q; + } else { + p++; } - p++; } - if ((c = strchr(c, '>')) != NULL) + if ((c = strchr(p, '>')) != NULL) c++; else c = p; @@ -1561,21 +1574,20 @@ g_string_free(src, TRUE); continue; } - if(!g_ascii_strncasecmp(c, "<a", 2) && (*(c+2) == '>' || *(c+2) == ' ')) { - const char *p = c; + if (!g_ascii_strncasecmp(c, "<a", 2) && (*(c+2) == '>' || *(c+2) == ' ')) { + const char *p = c + 2; struct purple_parse_tag *pt; - while(*p && *p != '>') { - if(!g_ascii_strncasecmp(p, "href=", strlen("href="))) { - const char *q = p + strlen("href="); + while (*p && *p != '>') { + if (!g_ascii_strncasecmp(p, "href=", 5)) { + const char *q = p + 5; if (url) g_string_free(url, TRUE); url = g_string_new(""); if (cdata) g_string_free(cdata, TRUE); cdata = g_string_new(""); - if(*q == '\'' || *q == '\"') - q++; - while(*q && *q != '\"' && *q != '\'' && *q != ' ') { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { int len; if ((*q == '&') && (purple_markup_unescape_entity(q, &len) == NULL)) url = g_string_append(url, "&"); @@ -1584,10 +1596,11 @@ q++; } p = q; + } else { + p++; } - p++; } - if ((c = strchr(c, '>')) != NULL) + if ((c = strchr(p, '>')) != NULL) c++; else c = p; @@ -1600,55 +1613,48 @@ continue; } if(!g_ascii_strncasecmp(c, "<font", 5) && (*(c+5) == '>' || *(c+5) == ' ')) { - const char *p = c; + const char *p = c + 5; GString *style = g_string_new(""); struct purple_parse_tag *pt; - while(*p && *p != '>') { - if(!g_ascii_strncasecmp(p, "back=", strlen("back="))) { - const char *q = p + strlen("back="); + while (*p && *p != '>') { + if (!g_ascii_strncasecmp(p, "back=", 5)) { + const char *q = p + 5; GString *color = g_string_new(""); - if(*q == '\'' || *q == '\"') - q++; - while(*q && *q != '\"' && *q != '\'' && *q != ' ') { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { color = g_string_append_c(color, *q); q++; } g_string_append_printf(style, "background: %s; ", color->str); g_string_free(color, TRUE); p = q; - } else if(!g_ascii_strncasecmp(p, "color=", strlen("color="))) { - const char *q = p + strlen("color="); + } else if (!g_ascii_strncasecmp(p, "color=", 6)) { + const char *q = p + 6; GString *color = g_string_new(""); - if(*q == '\'' || *q == '\"') - q++; - while(*q && *q != '\"' && *q != '\'' && *q != ' ') { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { color = g_string_append_c(color, *q); q++; } g_string_append_printf(style, "color: %s; ", color->str); g_string_free(color, TRUE); p = q; - } else if(!g_ascii_strncasecmp(p, "face=", strlen("face="))) { - const char *q = p + strlen("face="); - gboolean space_allowed = FALSE; + } else if (!g_ascii_strncasecmp(p, "face=", 5)) { + const char *q = p + 5; GString *face = g_string_new(""); - if(*q == '\'' || *q == '\"') { - space_allowed = TRUE; - q++; - } - while(*q && *q != '\"' && *q != '\'' && (space_allowed || *q != ' ')) { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { face = g_string_append_c(face, *q); q++; } g_string_append_printf(style, "font-family: %s; ", g_strstrip(face->str)); g_string_free(face, TRUE); p = q; - } else if(!g_ascii_strncasecmp(p, "size=", strlen("size="))) { - const char *q = p + strlen("size="); + } else if (!g_ascii_strncasecmp(p, "size=", 5)) { + const char *q = p + 5; int sz; const char *size = "medium"; - if(*q == '\'' || *q == '\"') - q++; + CHECK_QUOTE(q); sz = atoi(q); switch (sz) { @@ -1678,10 +1684,11 @@ } g_string_append_printf(style, "font-size: %s; ", size); p = q; + } else { + p++; } - p++; } - if ((c = strchr(c, '>')) != NULL) + if ((c = strchr(p, '>')) != NULL) c++; else c = p; @@ -1696,24 +1703,23 @@ g_string_free(style, TRUE); continue; } - if(!g_ascii_strncasecmp(c, "<body ", 6)) { - const char *p = c; + if (!g_ascii_strncasecmp(c, "<body ", 6)) { + const char *p = c + 6; gboolean did_something = FALSE; - while(*p && *p != '>') { - if(!g_ascii_strncasecmp(p, "bgcolor=", strlen("bgcolor="))) { - const char *q = p + strlen("bgcolor="); + while (*p && *p != '>') { + if (!g_ascii_strncasecmp(p, "bgcolor=", 8)) { + const char *q = p + 8; struct purple_parse_tag *pt = g_new0(struct purple_parse_tag, 1); GString *color = g_string_new(""); - if(*q == '\'' || *q == '\"') - q++; - while(*q && *q != '\"' && *q != '\'' && *q != ' ') { + CHECK_QUOTE(q); + while (VALID_CHAR(q)) { color = g_string_append_c(color, *q); q++; } - if(xhtml) + if (xhtml) g_string_append_printf(xhtml, "<span style='background: %s;'>", g_strstrip(color->str)); g_string_free(color, TRUE); - if ((c = strchr(c, '>')) != NULL) + if ((c = strchr(p, '>')) != NULL) c++; else c = p; @@ -1725,7 +1731,7 @@ } p++; } - if(did_something) continue; + if (did_something) continue; } /* this has to come after the special case for bgcolor */ ALLOW_TAG("body"); @@ -1788,6 +1794,8 @@ g_string_free(url, TRUE); if (cdata) g_string_free(cdata, TRUE); +#undef CHECK_QUOTE +#undef VALID_CHAR } /* The following are probably reasonable changes: @@ -2889,7 +2897,7 @@ } char * -purple_util_get_image_filename(gconstpointer image_data, size_t image_len) +purple_util_get_image_checksum(gconstpointer image_data, size_t image_len) { PurpleCipherContext *context; gchar digest[41]; @@ -2910,9 +2918,18 @@ } purple_cipher_context_destroy(context); + return g_strdup(digest); +} + +char * +purple_util_get_image_filename(gconstpointer image_data, size_t image_len) +{ /* Return the filename */ - return g_strdup_printf("%s.%s", digest, + char *checksum = purple_util_get_image_checksum(image_data, image_len); + char *filename = g_strdup_printf("%s.%s", checksum, purple_util_get_image_extension(image_data, image_len)); + g_free(checksum); + return filename; } gboolean @@ -3582,7 +3599,7 @@ static void url_fetch_connect_cb(gpointer url_data, gint source, const gchar *error_message); static gboolean -parse_redirect(const char *data, size_t data_len, gint sock, +parse_redirect(const char *data, size_t data_len, PurpleUtilFetchUrlData *gfud) { gchar *s; @@ -3756,7 +3773,7 @@ header_len, gfud->webdata); /* See if we can find a redirect. */ - if(parse_redirect(gfud->webdata, header_len, source, gfud)) + if(parse_redirect(gfud->webdata, header_len, gfud)) return; gfud->got_headers = TRUE;
--- a/libpurple/util.h Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/util.h Thu Jun 26 09:07:56 2008 +0000 @@ -229,7 +229,7 @@ * Converts a quoted printable string back to its readable equivalent. * What is a quoted printable string, you ask? It's an encoding used * to transmit binary data as ASCII. It's intended purpose is to send - * e-mails containing non-ASCII characters. Wikipedia has a pretty good + * emails containing non-ASCII characters. Wikipedia has a pretty good * explanation. Also see RFC 2045. * * @param str The quoted printable ASCII string to convert to raw data. @@ -706,6 +706,11 @@ purple_util_get_image_extension(gconstpointer data, size_t len); /** + * Returns a SHA-1 hash string of the data passed in. + */ +char *purple_util_get_image_checksum(gconstpointer image_data, size_t image_len); + +/** * @return A hex encoded version of the SHA-1 hash of the data passed * in with the correct file extention appended. The file * extension is determined by calling
--- a/libpurple/win32/global.mak Thu Jun 26 08:42:49 2008 +0000 +++ b/libpurple/win32/global.mak Thu Jun 26 09:07:56 2008 +0000 @@ -112,4 +112,4 @@ MINGW_MAKEFILE := Makefile.mingw INSTALL_PIXMAPS ?= 1 - +INSTALL_SSL_CERTIFICATES ?= 1
--- a/pidgin/Makefile.am Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/Makefile.am Thu Jun 26 09:07:56 2008 +0000 @@ -111,6 +111,7 @@ gtksavedstatuses.c \ gtkscrollbook.c \ gtksession.c \ + gtksmiley.c \ gtksound.c \ gtksourceiter.c \ gtksourceundomanager.c \ @@ -163,6 +164,7 @@ gtksavedstatuses.h \ gtkscrollbook.h \ gtksession.h \ + gtksmiley.h \ gtksound.h \ gtksourceiter.h \ gtksourceundomanager.h \
--- a/pidgin/Makefile.mingw Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/Makefile.mingw Thu Jun 26 09:07:56 2008 +0000 @@ -84,6 +84,7 @@ gtkroomlist.c \ gtksavedstatuses.c \ gtkscrollbook.c \ + gtksmiley.c \ gtksound.c \ gtksourceiter.c \ gtksourceundomanager.c \
--- a/pidgin/gtkaccount.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkaccount.c Thu Jun 26 09:07:56 2008 +0000 @@ -176,14 +176,7 @@ } if (dialog->icon_img != NULL) { - GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); - gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(dialog->icon_img), - purple_imgstore_get_size(dialog->icon_img), NULL); - gdk_pixbuf_loader_close(loader, NULL); - pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); - if (pixbuf) - g_object_ref(pixbuf); - g_object_unref(loader); + pixbuf = pidgin_pixbuf_from_imgstore(dialog->icon_img); } if (pixbuf && dialog->prpl_info && @@ -255,6 +248,25 @@ } } +static gboolean +screenname_focus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog) +{ + GHashTable *table; + const char *label; + + table = dialog->prpl_info->get_account_text_table(NULL); + label = g_hash_table_lookup(table, "login_label"); + + if(!strcmp(gtk_entry_get_text(GTK_ENTRY(widget)), label)) { + gtk_entry_set_text(GTK_ENTRY(widget), ""); + gtk_widget_modify_text(widget, GTK_STATE_NORMAL,NULL); + } + + g_hash_table_destroy(table); + + return FALSE; +} + static void screenname_changed_cb(GtkEntry *entry, AccountPrefsDialog *dialog) { @@ -270,6 +282,32 @@ } } +static gboolean +screenname_nofocus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog) +{ + GdkColor color = {0, 34952, 35466, 34181}; + GHashTable *table; + const char *label; + + table = dialog->prpl_info->get_account_text_table(NULL); + label = g_hash_table_lookup(table, "login_label"); + + if (*gtk_entry_get_text(GTK_ENTRY(widget)) == '\0') { + /* We have to avoid hitting the screenname_changed_cb function + * because it enables buttons we don't want enabled yet ;) + */ + g_signal_handlers_block_by_func(widget, G_CALLBACK(screenname_changed_cb), dialog); + gtk_entry_set_text(GTK_ENTRY(widget), label); + /* Make sure we can hit it again */ + g_signal_handlers_unblock_by_func(widget, G_CALLBACK(screenname_changed_cb), dialog); + gtk_widget_modify_text(widget, GTK_STATE_NORMAL, &color); + } + + g_hash_table_destroy(table); + + return FALSE; +} + static void icon_filesel_choose_cb(const char *filename, gpointer data) { @@ -410,6 +448,25 @@ add_pref_box(dialog, vbox, _("_Username:"), dialog->screenname_entry); + if (dialog->account != NULL) + username = g_strdup(purple_account_get_username(dialog->account)); + + if (!username && PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(dialog->prpl_info, get_account_text_table)) { + GdkColor color = {0, 34952, 35466, 34181}; + GHashTable *table; + const char *label; + table = dialog->prpl_info->get_account_text_table(NULL); + label = g_hash_table_lookup(table, "login_label"); + + gtk_entry_set_text(GTK_ENTRY(dialog->screenname_entry), label); + g_signal_connect(G_OBJECT(dialog->screenname_entry), "focus-in-event", + G_CALLBACK(screenname_focus_cb), dialog); + g_signal_connect(G_OBJECT(dialog->screenname_entry), "focus-out-event", + G_CALLBACK(screenname_nofocus_cb), dialog); + gtk_widget_modify_text(dialog->screenname_entry, GTK_STATE_NORMAL, &color); + g_hash_table_destroy(table); + } + g_signal_connect(G_OBJECT(dialog->screenname_entry), "changed", G_CALLBACK(screenname_changed_cb), dialog); @@ -419,9 +476,6 @@ else user_splits = dialog->prpl_info->user_splits; - if (dialog->account != NULL) - username = g_strdup(purple_account_get_username(dialog->account)); - if (dialog->user_split_entries != NULL) { g_list_free(dialog->user_split_entries); dialog->user_split_entries = NULL; @@ -1470,7 +1524,8 @@ add_login_options(dialog, vbox); add_user_options(dialog, vbox); - button = gtk_check_button_new_with_label(_("Create this new account on the server")); + button = gtk_check_button_new_with_mnemonic( + _("Create _this new account on the server")); gtk_box_pack_start(GTK_BOX(main_vbox), button, FALSE, FALSE, 0); gtk_widget_show(button); dialog->register_button = button; @@ -1513,6 +1568,8 @@ /* Show the window. */ gtk_widget_show(win); + if (!account) + gtk_widget_grab_focus(dialog->protocol_menu); } /************************************************************************** @@ -1753,39 +1810,6 @@ return FALSE; } -static gboolean -configure_cb(GtkWidget *w, GdkEventConfigure *event, AccountsWindow *dialog) -{ - if (GTK_WIDGET_VISIBLE(w)) { - int old_width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width"); - int col_width; - int difference; - - purple_prefs_set_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width", event->width); - purple_prefs_set_int(PIDGIN_PREFS_ROOT "/accounts/dialog/height", event->height); - - col_width = gtk_tree_view_column_get_width(dialog->screenname_col); - - if (col_width == 0) - return FALSE; - - difference = (MAX(old_width, event->width) - - MIN(old_width, event->width)); - - if (difference == 0) - return FALSE; - - if (old_width < event->width) - gtk_tree_view_column_set_min_width(dialog->screenname_col, - col_width + difference); - else - gtk_tree_view_column_set_max_width(dialog->screenname_col, - col_width - difference); - } - - return FALSE; -} - static void add_account_cb(GtkWidget *w, AccountsWindow *dialog) { @@ -1908,14 +1932,14 @@ column = gtk_tree_view_column_new_with_attributes(_("Enabled"), renderer, "active", COLUMN_ENABLED, NULL); - gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1); - gtk_tree_view_column_set_resizable(column, TRUE); + gtk_tree_view_column_set_resizable(column, FALSE); + gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); /* Screen Name column */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Username")); - gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1); gtk_tree_view_column_set_resizable(column, TRUE); + gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); /* Buddy Icon */ renderer = gtk_cell_renderer_pixbuf_new(); @@ -1934,8 +1958,8 @@ /* Protocol name */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, _("Protocol")); - gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1); - gtk_tree_view_column_set_resizable(column, TRUE); + gtk_tree_view_column_set_resizable(column, FALSE); + gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); /* Icon */ renderer = gtk_cell_renderer_pixbuf_new(); @@ -1977,21 +2001,14 @@ } if (img != NULL) { - GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); GdkPixbuf *buddyicon_pixbuf; - - gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(img), - purple_imgstore_get_size(img), NULL); - gdk_pixbuf_loader_close(loader, NULL); - buddyicon_pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); - + buddyicon_pixbuf = pidgin_pixbuf_from_imgstore(img); purple_imgstore_unref(img); if (buddyicon_pixbuf != NULL) { buddyicon = gdk_pixbuf_scale_simple(buddyicon_pixbuf, 22, 22, GDK_INTERP_HYPER); + g_object_unref(G_OBJECT(buddyicon_pixbuf)); } - - g_object_unref(loader); } gtk_list_store_set(store, iter, @@ -2174,8 +2191,7 @@ G_TYPE_STRING, /* COLUMN_SCREENNAME */ G_TYPE_BOOLEAN, /* COLUMN_ENABLED */ G_TYPE_STRING, /* COLUMN_PROTOCOL */ - G_TYPE_POINTER, /* COLUMN_DATA */ - G_TYPE_POINTER /* COLUMN_PULSE_DATA */ + G_TYPE_POINTER /* COLUMN_DATA */ ); /* And now the actual treeview */ @@ -2196,6 +2212,7 @@ gtk_container_add(GTK_CONTAINER(sw), treeview); add_columns(treeview, dialog); + gtk_tree_view_columns_autosize(GTK_TREE_VIEW(treeview)); if (populate_accounts_list(dialog)) gtk_notebook_set_current_page(GTK_NOTEBOOK(accounts_window->notebook), 1); @@ -2265,8 +2282,6 @@ g_signal_connect(G_OBJECT(win), "delete_event", G_CALLBACK(accedit_win_destroy_cb), accounts_window); - g_signal_connect(G_OBJECT(win), "configure_event", - G_CALLBACK(configure_cb), accounts_window); /* Setup the vbox */ vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(win), FALSE, PIDGIN_HIG_BORDER);
--- a/pidgin/gtkblist.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkblist.c Thu Jun 26 09:07:56 2008 +0000 @@ -57,6 +57,7 @@ #include "gtkroomlist.h" #include "gtkstatusbox.h" #include "gtkscrollbook.h" +#include "gtksmiley.h" #include "gtkutils.h" #include "pidgin/minidialog.h" #include "pidgin/pidgintooltip.h" @@ -1528,6 +1529,48 @@ return FALSE; } +static void +set_node_custom_icon_cb(const gchar *filename, gpointer data) +{ + if (filename) { + PurpleBlistNode *node = (PurpleBlistNode*)data; + + purple_buddy_icons_node_set_custom_icon_from_file(node, + filename); + } +} + +static void +set_node_custom_icon(GtkWidget *w, PurpleBlistNode *node) +{ + /* This doesn't keep track of the returned dialog (so that successive + * calls could be made to re-display that dialog). Do we want that? */ + GtkWidget *win = pidgin_buddy_icon_chooser_new(NULL, set_node_custom_icon_cb, node); + gtk_widget_show_all(win); +} + +static void +remove_node_custom_icon(GtkWidget *w, PurpleBlistNode *node) +{ + purple_buddy_icons_node_set_custom_icon(node, NULL, 0); +} + +static void +add_buddy_icon_menu_items(GtkWidget *menu, PurpleBlistNode *node) +{ + GtkWidget *item; + + pidgin_new_item_from_stock(menu, _("Set Custom Icon"), NULL, + G_CALLBACK(set_node_custom_icon), node, 0, + 0, NULL); + + item = pidgin_new_item_from_stock(menu, _("Remove Custom Icon"), NULL, + G_CALLBACK(remove_node_custom_icon), node, + 0, 0, NULL); + if (!purple_buddy_icons_node_has_custom_icon(node)) + gtk_widget_set_sensitive(item, FALSE); +} + static GtkWidget * create_group_menu (PurpleBlistNode *node, PurpleGroup *g) { @@ -1551,12 +1594,13 @@ NULL, G_CALLBACK(gtk_blist_menu_showoffline_cb), node, 0, 0, NULL); } + add_buddy_icon_menu_items(menu, node); + pidgin_append_blist_node_extended_menu(menu, node); return menu; } - static GtkWidget * create_chat_menu(PurpleBlistNode *node, PurpleChat *c) { @@ -1589,6 +1633,8 @@ pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); + add_buddy_icon_menu_items(menu, node); + return menu; } @@ -1610,6 +1656,8 @@ pidgin_new_item_from_stock(menu, _("_Remove"), GTK_STOCK_REMOVE, G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); + add_buddy_icon_menu_items(menu, node); + pidgin_separator(menu); pidgin_new_item_from_stock(menu, _("_Collapse"), GTK_STOCK_ZOOM_OUT, @@ -1634,6 +1682,8 @@ if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { pidgin_separator(menu); + add_buddy_icon_menu_items(menu, node); + if(gtknode->contact_expanded) { pidgin_new_item_from_stock(menu, _("_Collapse"), GTK_STOCK_ZOOM_OUT, @@ -2493,51 +2543,71 @@ static GdkPixbuf *pidgin_blist_get_buddy_icon(PurpleBlistNode *node, - gboolean scaled, gboolean greyed) -{ - GdkPixbuf *buf, *ret = NULL; + gboolean scaled, gboolean greyed) +{ + gsize len; GdkPixbufLoader *loader; - PurpleBuddyIcon *icon = NULL; - const guchar *data = NULL; - gsize len; PurpleBuddy *buddy = NULL; + PurpleGroup *group = NULL; + const guchar *data = NULL; + GdkPixbuf *buf, *ret = NULL; + PurpleBuddyIcon *icon = NULL; PurpleAccount *account = NULL; - PurplePluginProtocolInfo *prpl_info = NULL; + PurpleContact *contact = NULL; PurpleStoredImage *custom_img; - - if(PURPLE_BLIST_NODE_IS_CONTACT(node)) { + PurplePluginProtocolInfo *prpl_info = NULL; + gint orig_width, orig_height, scale_width, scale_height; + + if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { buddy = purple_contact_get_priority_buddy((PurpleContact*)node); - } else if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { + contact = (PurpleContact*)node; + } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { buddy = (PurpleBuddy*)node; + contact = purple_buddy_get_contact(buddy); + } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { + group = (PurpleGroup*)node; + } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { + /* We don't need to do anything here. We just need to not fall + * into the else block and return. */ } else { return NULL; } - if(buddy == NULL) - return NULL; - - account = purple_buddy_get_account(buddy); - - if(account && account->gc) + if (buddy) { + account = purple_buddy_get_account(buddy); + } + + if(account && account->gc) { prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(account->gc->prpl); + } #if 0 if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons")) return NULL; #endif - custom_img = purple_buddy_icons_find_custom_icon(purple_buddy_get_contact(buddy)); - if (custom_img) - { + /* If we have a contact then this is either a contact or a buddy and + * we want to fetch the custom icon for the contact. If we don't have + * a contact then this is a group or some other type of node and we + * want to use that directly. */ + if (contact) { + custom_img = purple_buddy_icons_node_find_custom_icon((PurpleBlistNode*)contact); + } else { + custom_img = purple_buddy_icons_node_find_custom_icon(node); + } + + if (custom_img) { data = purple_imgstore_get_data(custom_img); len = purple_imgstore_get_size(custom_img); } if (data == NULL) { - /* Not sure I like this...*/ - if (!(icon = purple_buddy_icons_find(buddy->account, buddy->name))) - return NULL; - data = purple_buddy_icon_get_data(icon, &len); + if (buddy) { + /* Not sure I like this...*/ + if (!(icon = purple_buddy_icons_find(buddy->account, buddy->name))) + return NULL; + data = purple_buddy_icon_get_data(icon, &len); + } if(data == NULL) return NULL; @@ -2555,56 +2625,68 @@ g_object_ref(G_OBJECT(buf)); g_object_unref(G_OBJECT(loader)); - if (buf) { - int orig_width, orig_height; - int scale_width, scale_height; - - if (greyed) { + if (!buf) { + return NULL; + } + + if (greyed) { + gboolean offline = FALSE, idle = FALSE; + + if (buddy) { PurplePresence *presence = purple_buddy_get_presence(buddy); if (!PURPLE_BUDDY_IS_ONLINE(buddy)) - gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.0, FALSE); + offline = TRUE; if (purple_presence_is_idle(presence)) - gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.25, FALSE); + idle = TRUE; + } else if (group) { + if (purple_blist_get_group_online_count(group) == 0) + offline = TRUE; } - /* i'd use the pidgin_buddy_icon_get_scale_size() thing, - * but it won't tell me the original size, which I need for scaling - * purposes */ - scale_width = orig_width = gdk_pixbuf_get_width(buf); - scale_height = orig_height = gdk_pixbuf_get_height(buf); - - if (prpl_info && prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY) - purple_buddy_icon_get_scale_size(&prpl_info->icon_spec, &scale_width, &scale_height); - - if (scaled || scale_height > 200 || scale_width > 200) { - GdkPixbuf *tmpbuf; - float scale_size = scaled ? 32.0 : 200.0; - if(scale_height > scale_width) { - scale_width = scale_size * (double)scale_width / (double)scale_height; - scale_height = scale_size; - } else { - scale_height = scale_size * (double)scale_height / (double)scale_width; - scale_width = scale_size; - } - /* scale & round before making square, so rectangular (but non-square) - * images get rounded corners too */ - tmpbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_width, scale_height); - gdk_pixbuf_fill(tmpbuf, 0x00000000); - gdk_pixbuf_scale(buf, tmpbuf, 0, 0, scale_width, scale_height, 0, 0, (double)scale_width/(double)orig_width, (double)scale_height/(double)orig_height, GDK_INTERP_BILINEAR); - if (pidgin_gdk_pixbuf_is_opaque(tmpbuf)) - pidgin_gdk_pixbuf_make_round(tmpbuf); - ret = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_size, scale_size); - gdk_pixbuf_fill(ret, 0x00000000); - gdk_pixbuf_copy_area(tmpbuf, 0, 0, scale_width, scale_height, ret, (scale_size-scale_width)/2, (scale_size-scale_height)/2); - g_object_unref(G_OBJECT(tmpbuf)); + if (offline) + gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.0, FALSE); + + if (idle) + gdk_pixbuf_saturate_and_pixelate(buf, buf, 0.25, FALSE); + } + + /* I'd use the pidgin_buddy_icon_get_scale_size() thing, but it won't + * tell me the original size, which I need for scaling purposes. */ + scale_width = orig_width = gdk_pixbuf_get_width(buf); + scale_height = orig_height = gdk_pixbuf_get_height(buf); + + if (prpl_info && prpl_info->icon_spec.scale_rules & PURPLE_ICON_SCALE_DISPLAY) + purple_buddy_icon_get_scale_size(&prpl_info->icon_spec, &scale_width, &scale_height); + + if (scaled || scale_height > 200 || scale_width > 200) { + GdkPixbuf *tmpbuf; + float scale_size = scaled ? 32.0 : 200.0; + if(scale_height > scale_width) { + scale_width = scale_size * (double)scale_width / (double)scale_height; + scale_height = scale_size; } else { - ret = gdk_pixbuf_scale_simple(buf,scale_width,scale_height, GDK_INTERP_BILINEAR); + scale_height = scale_size * (double)scale_height / (double)scale_width; + scale_width = scale_size; } - g_object_unref(G_OBJECT(buf)); - } + /* Scale & round before making square, so rectangular (but + * non-square) images get rounded corners too. */ + tmpbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_width, scale_height); + gdk_pixbuf_fill(tmpbuf, 0x00000000); + gdk_pixbuf_scale(buf, tmpbuf, 0, 0, scale_width, scale_height, 0, 0, (double)scale_width/(double)orig_width, (double)scale_height/(double)orig_height, GDK_INTERP_BILINEAR); + if (pidgin_gdk_pixbuf_is_opaque(tmpbuf)) + pidgin_gdk_pixbuf_make_round(tmpbuf); + ret = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, scale_size, scale_size); + gdk_pixbuf_fill(ret, 0x00000000); + gdk_pixbuf_copy_area(tmpbuf, 0, 0, scale_width, scale_height, ret, (scale_size-scale_width)/2, (scale_size-scale_height)/2); + g_object_unref(G_OBJECT(tmpbuf)); + } else { + ret = gdk_pixbuf_scale_simple(buf,scale_width,scale_height, GDK_INTERP_BILINEAR); + } + g_object_unref(G_OBJECT(buf)); return ret; } + /* # - Status Icon * P - Protocol Icon * A - Buddy Icon @@ -2653,6 +2735,7 @@ int name_width; int width; int height; + int padding; }; static PangoLayout * create_pango_layout(const char *markup, int *width, int *height) @@ -2681,6 +2764,7 @@ if (purple_account_is_disconnected(account)) gdk_pixbuf_saturate_and_pixelate(td->status_icon, td->status_icon, 0.0, FALSE); td->layout = create_pango_layout(purple_account_get_username(account), &td->width, &td->height); + td->padding = SMALL_SPACE; return td; } @@ -2696,6 +2780,7 @@ account = ((PurpleChat*)(node))->account; } + td->padding = TOOLTIP_BORDER; td->status_icon = pidgin_blist_get_status_icon(node, PIDGIN_STATUS_ICON_LARGE); td->avatar = pidgin_blist_get_buddy_icon(node, !full, FALSE); if (account != NULL) { @@ -2861,7 +2946,7 @@ } } - current_height += MAX(td->name_height + td->height, td->avatar_height) + TOOLTIP_BORDER; + current_height += MAX(td->name_height + td->height, td->avatar_height) + td->padding; } return FALSE; } @@ -2952,8 +3037,7 @@ struct tooltip_data *td = list->data; max_text_width = MAX(max_text_width, MAX(td->width, td->name_width)); max_avatar_width = MAX(max_avatar_width, td->avatar_width); - height += MAX(TOOLTIP_BORDER + MAX(STATUS_SIZE, td->avatar_height), - TOOLTIP_BORDER + td->height + td->name_height); + height += MAX(MAX(STATUS_SIZE, td->avatar_height), td->height + td->name_height) + td->padding; if (td->status_icon) status_size = MAX(status_size, STATUS_SIZE); } @@ -3155,7 +3239,7 @@ /* Buddies menu */ { N_("/_Buddies"), NULL, NULL, 0, "<Branch>", NULL }, { N_("/Buddies/New Instant _Message..."), "<CTL>M", pidgin_dialogs_im, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW }, - { N_("/Buddies/Join a _Chat..."), "<CTL>C", pidgin_blist_joinchat_show, 0, "<Item>", NULL }, + { N_("/Buddies/Join a _Chat..."), "<CTL>C", pidgin_blist_joinchat_show, 0, "<StockItem>", PIDGIN_STOCK_CHAT }, { N_("/Buddies/Get User _Info..."), "<CTL>I", pidgin_dialogs_info, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, { N_("/Buddies/View User _Log..."), "<CTL>L", pidgin_dialogs_log, 0, "<Item>", NULL }, { "/Buddies/sep1", NULL, NULL, 0, "<Separator>", NULL }, @@ -3175,7 +3259,7 @@ /* Accounts menu */ { N_("/_Accounts"), NULL, NULL, 0, "<Branch>", NULL }, - { N_("/Accounts/Manage"), "<CTL>A", pidgin_accounts_window_show, 0, "<Item>", NULL }, + { N_("/Accounts/Manage Accounts"), "<CTL>A", pidgin_accounts_window_show, 0, "<Item>", NULL }, /* Tools */ { N_("/_Tools"), NULL, NULL, 0, "<Branch>", NULL }, @@ -3184,8 +3268,9 @@ { N_("/Tools/Plu_gins"), "<CTL>U", pidgin_plugin_dialog_show, 2, "<StockItem>", PIDGIN_STOCK_TOOLBAR_PLUGINS }, { N_("/Tools/Pr_eferences"), "<CTL>P", pidgin_prefs_show, 0, "<StockItem>", GTK_STOCK_PREFERENCES }, { N_("/Tools/Pr_ivacy"), NULL, pidgin_privacy_dialog_show, 0, "<Item>", NULL }, + { N_("/Tools/Smile_y"), "<CTL>Y", pidgin_smiley_manager_show, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_SMILEY }, { "/Tools/sep2", NULL, NULL, 0, "<Separator>", NULL }, - { N_("/Tools/_File Transfers"), "<CTL>T", pidgin_xfer_dialog_show, 0, "<Item>", NULL }, + { N_("/Tools/_File Transfers"), "<CTL>T", pidgin_xfer_dialog_show, 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_TRANSFER }, { N_("/Tools/R_oom List"), NULL, pidgin_roomlist_dialog_show, 0, "<Item>", NULL }, { N_("/Tools/System _Log"), NULL, gtk_blist_show_systemlog_cb, 3, "<Item>", NULL }, { "/Tools/sep3", NULL, NULL, 0, "<Separator>", NULL }, @@ -3251,7 +3336,8 @@ g_list_length(purple_conv_chat_get_users(PURPLE_CONV_CHAT(conv)))); if (prpl_info && (prpl_info->options & OPT_PROTO_CHAT_TOPIC)) { - char *topic = g_markup_escape_text(purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)), -1); + const char *chattopic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); + char *topic = chattopic ? g_markup_escape_text(chattopic, -1) : NULL; g_string_append_printf(str, _("\n<b>Topic:</b> %s"), topic ? topic : _("(no topic set)")); g_free(topic); } @@ -5219,7 +5305,7 @@ tmp = g_strdup_printf(_("<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</b>. Once you " + "<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."), PIDGIN_NAME); pretty = pidgin_make_pretty_arrows(tmp); @@ -5820,14 +5906,16 @@ return FALSE; } -/*This version of pidgin_blist_update_group can take the original buddy -or a group, but has much better algorithmic performance with a pre-known buddy*/ -static void pidgin_blist_update_group(PurpleBuddyList *list, PurpleBlistNode *node) -{ +/* This version of pidgin_blist_update_group can take the original buddy or a + * group, but has much better algorithmic performance with a pre-known buddy. + */ +static void pidgin_blist_update_group(PurpleBuddyList *list, + PurpleBlistNode *node) +{ + gint count; PurpleGroup *group; - int count; + PurpleBlistNode* gnode; gboolean show = FALSE, show_offline = FALSE; - PurpleBlistNode* gnode; g_return_if_fail(node != NULL); @@ -5862,12 +5950,13 @@ } if (show) { + gchar *title; + gboolean biglist; GtkTreeIter iter; GtkTreePath *path; gboolean expanded; GdkColor bgcolor; - char *title; - + GdkPixbuf *avatar = NULL; if(!insert_node(list, gnode, &iter)) return; @@ -5879,17 +5968,23 @@ gtk_tree_path_free(path); title = pidgin_get_group_title(gnode, expanded); + biglist = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"); + + if (biglist) { + avatar = pidgin_blist_get_buddy_icon(gnode, TRUE, TRUE); + } gtk_tree_store_set(gtkblist->treemodel, &iter, STATUS_ICON_VISIBLE_COLUMN, FALSE, STATUS_ICON_COLUMN, NULL, NAME_COLUMN, title, NODE_COLUMN, gnode, - /* BGCOLOR_COLUMN, &bgcolor, */ + /* BGCOLOR_COLUMN, &bgcolor, */ GROUP_EXPANDER_COLUMN, TRUE, GROUP_EXPANDER_VISIBLE_COLUMN, TRUE, CONTACT_EXPANDER_VISIBLE_COLUMN, FALSE, - BUDDY_ICON_VISIBLE_COLUMN, FALSE, + BUDDY_ICON_COLUMN, avatar, + BUDDY_ICON_VISIBLE_COLUMN, biglist, IDLE_VISIBLE_COLUMN, FALSE, EMBLEM_VISIBLE_COLUMN, FALSE, -1); @@ -6179,7 +6274,7 @@ STATUS_ICON_COLUMN, status, STATUS_ICON_VISIBLE_COLUMN, TRUE, BUDDY_ICON_COLUMN, avatar ? avatar : gtkblist->empty_avatar, - BUDDY_ICON_VISIBLE_COLUMN, purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons"), + BUDDY_ICON_VISIBLE_COLUMN, showicons, EMBLEM_COLUMN, emblem, EMBLEM_VISIBLE_COLUMN, emblem != NULL, PROTOCOL_ICON_COLUMN, prpl_icon, @@ -6379,6 +6474,10 @@ purple_blist_add_buddy(b, NULL, g, NULL); purple_account_add_buddy(data->account, b); + /* Offer to merge people with the same alias. */ + if (whoalias != NULL) + gtk_blist_auto_personize((PurpleBlistNode *)g, whoalias); + /* * XXX * It really seems like it would be better if the call to @@ -7514,12 +7613,58 @@ for (l = gtk_container_get_children(GTK_CONTAINER(accountmenu)); l; l = g_list_delete_link(l, l)) { menuitem = l->data; - if (menuitem != gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts/Manage"))) + if (menuitem != gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts/Manage Accounts"))) gtk_widget_destroy(menuitem); } for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { char *buf = NULL; + GtkWidget *image = NULL; + PurpleAccount *account = NULL; + GdkPixbuf *pixbuf = NULL; + + account = accounts->data; + + if(!purple_account_get_enabled(account, PIDGIN_UI)) { + if (!disabled_accounts) { + menuitem = gtk_menu_item_new_with_label(_("Enable Account")); + gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); + gtk_widget_show(menuitem); + + submenu = gtk_menu_new(); + gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); + gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<PurpleMain>/Accounts/Enable Account")); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); + gtk_widget_show(submenu); + + disabled_accounts = TRUE; + } + + buf = g_strconcat(purple_account_get_username(account), " (", + purple_account_get_protocol_name(account), ")", NULL); + menuitem = gtk_image_menu_item_new_with_label(buf); + g_free(buf); + pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); + if (pixbuf != NULL) + { + if (!purple_account_is_connected(account)) + gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE); + image = gtk_image_new_from_pixbuf(pixbuf); + g_object_unref(G_OBJECT(pixbuf)); + gtk_widget_show(image); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); + } + g_signal_connect(G_OBJECT(menuitem), "activate", + G_CALLBACK(enable_account_cb), account); + gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); + gtk_widget_show(menuitem); + } + } + + pidgin_separator(accountmenu); + + for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { + char *buf = NULL; char *accel_path_buf = NULL; GtkWidget *image = NULL; PurpleConnection *gc = NULL; @@ -7589,51 +7734,6 @@ } } - if(disabled_accounts) { - pidgin_separator(accountmenu); - menuitem = gtk_menu_item_new_with_label(_("Enable Account")); - gtk_menu_shell_append(GTK_MENU_SHELL(accountmenu), menuitem); - gtk_widget_show(menuitem); - - submenu = gtk_menu_new(); - gtk_menu_set_accel_group(GTK_MENU(submenu), accel_group); - gtk_menu_set_accel_path(GTK_MENU(submenu), N_("<PurpleMain>/Accounts/Enable Account")); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); - gtk_widget_show(submenu); - - for (accounts = purple_accounts_get_all(); accounts; accounts = accounts->next) { - char *buf = NULL; - GtkWidget *image = NULL; - PurpleAccount *account = NULL; - GdkPixbuf *pixbuf = NULL; - - account = accounts->data; - - if(!purple_account_get_enabled(account, PIDGIN_UI)) { - - disabled_accounts = TRUE; - - buf = g_strconcat(purple_account_get_username(account), " (", - purple_account_get_protocol_name(account), ")", NULL); - menuitem = gtk_image_menu_item_new_with_label(buf); - g_free(buf); - pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL); - if (pixbuf != NULL) - { - if (!purple_account_is_connected(account)) - gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE); - image = gtk_image_new_from_pixbuf(pixbuf); - g_object_unref(G_OBJECT(pixbuf)); - gtk_widget_show(image); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); - } - g_signal_connect(G_OBJECT(menuitem), "activate", - G_CALLBACK(enable_account_cb), account); - gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); - gtk_widget_show(menuitem); - } - } - } } static GList *plugin_submenus = NULL;
--- a/pidgin/gtkconv.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkconv.c Thu Jun 26 09:07:56 2008 +0000 @@ -96,10 +96,10 @@ #define PIDGIN_CONV_ALL ((1 << 7) - 1) +/* XXX: These color defines shouldn't really be here. But the nick-color + * generation algorithm uses them, so keeping these around until we fix that. */ #define DEFAULT_SEND_COLOR "#204a87" -#define DEFAULT_RECV_COLOR "#cc0000" #define DEFAULT_HIGHLIGHT_COLOR "#AF7F00" -#define DEFAULT_ACTION_COLOR "#062585" #define BUDDYICON_SIZE_MIN 32 #define BUDDYICON_SIZE_MAX 96 @@ -159,10 +159,9 @@ static void update_typing_message(PidginConversation *gtkconv, const char *message); static const char *item_factory_translate_func (const char *path, gpointer func_data); gboolean pidgin_conv_has_focus(PurpleConversation *conv); -static void pidgin_conv_custom_smiley_allocated(GdkPixbufLoader *loader, gpointer user_data); -static void pidgin_conv_custom_smiley_closed(GdkPixbufLoader *loader, gpointer user_data); static GdkColor* generate_nick_colors(guint *numcolors, GdkColor background); static gboolean color_is_visible(GdkColor foreground, GdkColor background, int color_contrast, int brightness_contrast); +static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who, gboolean create); static void pidgin_conv_update_fields(PurpleConversation *conv, PidginConvFields fields); static void focus_out_from_menubar(GtkWidget *wid, PidginWindow *win); static void pidgin_conv_tab_pack(PidginWindow *win, PidginConversation *gtkconv); @@ -1482,7 +1481,7 @@ PurpleAccount *account; PurpleConnection *gc; PurplePluginProtocolInfo *prpl_info = NULL; - char *real_who; + gchar *real_who = NULL; account = purple_conversation_get_account(conv); g_return_if_fail(account != NULL); @@ -1495,13 +1494,11 @@ if (prpl_info && prpl_info->get_cb_real_name) real_who = prpl_info->get_cb_real_name(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); - else - real_who = g_strdup(who); - - if(!real_who) + + if(!who && !real_who) return; - pidgin_dialogs_im_with_user(account, real_who); + pidgin_dialogs_im_with_user(account, real_who ? real_who : who); g_free(real_who); } @@ -1540,11 +1537,22 @@ static void menu_chat_send_file_cb(GtkWidget *w, PidginConversation *gtkconv) { + PurplePluginProtocolInfo *prpl_info; PurpleConversation *conv = gtkconv->active_conv; const char *who = g_object_get_data(G_OBJECT(w), "user_data"); PurpleConnection *gc = purple_conversation_get_gc(conv); - - serv_send_file(gc, who, NULL); + gchar *real_who = NULL; + + g_return_if_fail(gc != NULL); + + prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); + + if (prpl_info && prpl_info->get_cb_real_name) + real_who = prpl_info->get_cb_real_name(gc, + purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); + + serv_send_file(gc, real_who ? real_who : who, NULL); + g_free(real_who); } static void @@ -1660,23 +1668,34 @@ if (gc == NULL) gtk_widget_set_sensitive(button, FALSE); - - g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); + else + g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); if (prpl_info && prpl_info->send_file) { + gboolean can_receive_file = TRUE; + button = pidgin_new_item_from_stock(menu, _("Send File"), PIDGIN_STOCK_TOOLBAR_SEND_FILE, G_CALLBACK(menu_chat_send_file_cb), PIDGIN_CONVERSATION(conv), 0, 0, NULL); - if (gc == NULL || prpl_info == NULL || - !(!prpl_info->can_receive_file || prpl_info->can_receive_file(gc, who))) - { + if (gc == NULL || prpl_info == NULL) + can_receive_file = FALSE; + else { + gchar *real_who = NULL; + if (prpl_info->get_cb_real_name) + real_who = prpl_info->get_cb_real_name(gc, + purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); + if (!(!prpl_info->can_receive_file || prpl_info->can_receive_file(gc, real_who ? real_who : who))) + can_receive_file = FALSE; + g_free(real_who); + } + + if (!can_receive_file) gtk_widget_set_sensitive(button, FALSE); - } - - g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); + else + g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); } @@ -1689,8 +1708,8 @@ if (gc == NULL) gtk_widget_set_sensitive(button, FALSE); - - g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); + else + g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); } if (prpl_info && (prpl_info->get_info || prpl_info->get_cb_info)) { @@ -1699,8 +1718,8 @@ if (gc == NULL) gtk_widget_set_sensitive(button, FALSE); - - g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); + else + g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); } if (prpl_info && prpl_info->get_cb_away) { @@ -1709,8 +1728,8 @@ if (gc == NULL) gtk_widget_set_sensitive(button, FALSE); - - g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); + else + g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); } if (!is_me && prpl_info && !(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { @@ -1723,8 +1742,8 @@ if (gc == NULL) gtk_widget_set_sensitive(button, FALSE); - - g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); + else + g_object_set_data_full(G_OBJECT(button), "user_data", g_strdup(who), g_free); } button = pidgin_new_item_from_stock(menu, _("Last said"), GTK_STOCK_INDEX, @@ -2513,10 +2532,6 @@ PurpleBuddy *b = purple_find_buddy(conv->account, conv->name); if (b) emblem = pidgin_blist_get_emblem((PurpleBlistNode*)b); - } else { - PurpleChat *c = purple_blist_find_chat(conv->account, conv->name); - if (c) - emblem = pidgin_blist_get_emblem((PurpleBlistNode*)c); } g_return_if_fail(status != NULL); @@ -2724,10 +2739,22 @@ custom_icon_sel_cb(const char *filename, gpointer data) { if (filename) { + const gchar *name; + PurpleBuddy *buddy; + PurpleContact *contact; PidginConversation *gtkconv = data; PurpleConversation *conv = gtkconv->active_conv; PurpleAccount *account = purple_conversation_get_account(conv); - pidgin_set_custom_buddy_icon(account, purple_conversation_get_name(conv), filename); + + name = purple_conversation_get_name(conv); + buddy = purple_find_buddy(account, name); + if (!buddy) { + purple_debug_info("custom-icon", "You can only set custom icons for people on your buddylist.\n"); + return; + } + contact = purple_buddy_get_contact(buddy); + + purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, filename); } } @@ -2769,12 +2796,21 @@ static void remove_custom_icon_cb(GtkWidget *widget, PidginConversation *gtkconv) { - PurpleConversation *conv; + const gchar *name; + PurpleBuddy *buddy; PurpleAccount *account; - - conv = gtkconv->active_conv; + PurpleContact *contact; + PurpleConversation *conv = gtkconv->active_conv; + account = purple_conversation_get_account(conv); - pidgin_set_custom_buddy_icon(account, purple_conversation_get_name(conv), NULL); + name = purple_conversation_get_name(conv); + buddy = purple_find_buddy(account, name); + if (!buddy) { + return; + } + contact = purple_buddy_get_contact(buddy); + + purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, NULL); } static void @@ -2875,7 +2911,7 @@ if (buddy) { PurpleContact *contact = purple_buddy_get_contact(buddy); - if (contact && purple_buddy_icons_has_custom_icon(contact)) + if (contact && purple_buddy_icons_node_has_custom_icon((PurpleBlistNode*)contact)) { pidgin_new_item_from_stock(menu, _("Remove Custom Icon"), NULL, G_CALLBACK(remove_custom_icon_cb), gtkconv, @@ -3137,10 +3173,19 @@ if ((chat == NULL) && (gtkconv->imhtml != NULL)) { GHashTable *components; - components = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, g_free); - g_hash_table_replace(components, g_strdup("channel"), - g_strdup(conv->name)); + PurpleAccount *account = purple_conversation_get_account(conv); + PurplePlugin *prpl = purple_find_prpl(purple_account_get_protocol_id(account)); + PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); + if (purple_account_get_connection(account) != NULL && + PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, chat_info_defaults)) { + components = prpl_info->chat_info_defaults(purple_account_get_connection(account), + purple_conversation_get_name(conv)); + } else { + components = g_hash_table_new_full(g_str_hash, g_str_equal, + g_free, g_free); + g_hash_table_replace(components, g_strdup("channel"), + g_strdup(purple_conversation_get_name(conv))); + } chat = purple_chat_new(conv->account, NULL, components); purple_blist_node_set_flags((PurpleBlistNode *)chat, PURPLE_BLIST_NODE_FLAG_NO_SAVE); @@ -3875,6 +3920,7 @@ gboolean is_buddy; gchar *tmp, *alias_key, *name, *alias; int flags; + GdkColor *color = NULL; alias = cb->alias; name = cb->name; @@ -3901,71 +3947,50 @@ alias_key = g_utf8_collate_key(tmp, -1); g_free(tmp); - if (is_me) - { - GdkColor send_color; - gdk_color_parse(DEFAULT_SEND_COLOR, &send_color); + if (is_me) { + GtkTextTag *tag = gtk_text_tag_table_lookup( + gtk_text_buffer_get_tag_table(GTK_IMHTML(gtkconv->imhtml)->text_buffer), + "send-name"); + g_object_get(tag, "foreground-gdk", &color, NULL); + } else { + color = (GdkColor*)get_nick_color(gtkconv, name); + } #if GTK_CHECK_VERSION(2,6,0) - gtk_list_store_insert_with_values(ls, &iter, + gtk_list_store_insert_with_values(ls, &iter, /* - * The GTK docs are mute about the effects of the "row" value for performance. - * X-Chat hardcodes their value to 0 (prepend) and -1 (append), so we will too. - * It *might* be faster to search the gtk_list_store and set row accurately, - * but no one in #gtk+ seems to know anything about it either. - * Inserting in the "wrong" location has no visible ill effects. - F.P. - */ - -1, /* "row" */ - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, &send_color, - CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, - -1); - } - else - { - gtk_list_store_insert_with_values(ls, &iter, - -1, /* "row" */ - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, name), - CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, - -1); +* The GTK docs are mute about the effects of the "row" value for performance. +* X-Chat hardcodes their value to 0 (prepend) and -1 (append), so we will too. +* It *might* be faster to search the gtk_list_store and set row accurately, +* but no one in #gtk+ seems to know anything about it either. +* Inserting in the "wrong" location has no visible ill effects. - F.P. +*/ + -1, /* "row" */ + CHAT_USERS_ICON_COLUMN, pixbuf, + CHAT_USERS_ALIAS_COLUMN, alias, + CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, + CHAT_USERS_NAME_COLUMN, name, + CHAT_USERS_FLAGS_COLUMN, flags, + CHAT_USERS_COLOR_COLUMN, color, + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + -1); #else - gtk_list_store_append(ls, &iter); - gtk_list_store_set(ls, &iter, - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, &send_color, - CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, - -1); - } - else - { - gtk_list_store_append(ls, &iter); - gtk_list_store_set(ls, &iter, - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, name), - CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, - -1); + gtk_list_store_append(ls, &iter); + gtk_list_store_set(ls, &iter, + CHAT_USERS_ICON_COLUMN, pixbuf, + CHAT_USERS_ALIAS_COLUMN, alias, + CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, + CHAT_USERS_NAME_COLUMN, name, + CHAT_USERS_FLAGS_COLUMN, flags, + CHAT_USERS_COLOR_COLUMN, color, + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + -1); #endif - } if (pixbuf) g_object_unref(pixbuf); + if (is_me && color) + gdk_color_free(color); g_free(alias_key); } @@ -4359,6 +4384,7 @@ GtkTreeModel *model; char *normalized_name; GtkTreeIter iter; + GtkTextTag *texttag; int f; g_return_if_fail(buddy != NULL); @@ -4396,6 +4422,11 @@ g_free(normalized_name); blist_node_aliased_cb((PurpleBlistNode *)buddy, NULL, conv); + + texttag = get_buddy_tag(conv, purple_buddy_get_name(buddy), FALSE); /* XXX: do we want the normalized name? */ + if (texttag) { + g_object_set(texttag, "weight", is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, NULL); + } } static void @@ -5180,6 +5211,9 @@ nbr_nick_colors = NUM_NICK_COLORS; nick_colors = generate_nick_colors(&nbr_nick_colors, gtk_widget_get_style(gtkconv->imhtml)->base[GTK_STATE_NORMAL]); } + + if (conv->features & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY) + pidgin_themes_smiley_themeize_custom(gtkconv->entry); } static void @@ -5356,7 +5390,8 @@ return FALSE; } -static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who) { +static GtkTextTag *get_buddy_tag(PurpleConversation *conv, const char *who, gboolean create) +{ PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); GtkTextTag *buddytag; gchar *str; @@ -5367,9 +5402,12 @@ gtk_text_buffer_get_tag_table( GTK_IMHTML(gtkconv->imhtml)->text_buffer), str); - if (buddytag == NULL) { + if (buddytag == NULL && create) { buddytag = gtk_text_buffer_create_tag( - GTK_IMHTML(gtkconv->imhtml)->text_buffer, str, NULL); + GTK_IMHTML(gtkconv->imhtml)->text_buffer, str, + "foreground-gdk", get_nick_color(gtkconv, who), + "weight", purple_find_buddy(purple_conversation_get_account(conv), who) ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + NULL); g_signal_connect(G_OBJECT(buddytag), "event", G_CALLBACK(buddytag_event), conv); @@ -5475,7 +5513,6 @@ char buf2[BUF_LONG]; gboolean show_date; char *mdate; - char color[10]; char *str; char *with_font_tag; char *sml_attrib = NULL; @@ -5486,8 +5523,6 @@ char *bracket; int tag_count = 0; gboolean is_rtl_message = FALSE; - GtkSmileyTree *tree = NULL; - GHashTable *smiley_data = NULL; g_return_if_fail(conv != NULL); gtkconv = PIDGIN_CONVERSATION(conv); @@ -5644,16 +5679,10 @@ gtk_font_options |= GTK_IMHTML_USE_POINTSIZE; } - if (!(flags & PURPLE_MESSAGE_RECV)) + if (!(flags & PURPLE_MESSAGE_RECV) && (conv->features & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY)) { - /* Temporarily revert to the original smiley-data to avoid showing up - * custom smileys of the buddy when sending message - */ - tree = GTK_IMHTML(gtkconv->imhtml)->default_smilies; - GTK_IMHTML(gtkconv->imhtml)->default_smilies = - GTK_IMHTML(gtkconv->entry)->default_smilies; - smiley_data = GTK_IMHTML(gtkconv->imhtml)->smiley_data; - GTK_IMHTML(gtkconv->imhtml)->smiley_data = GTK_IMHTML(gtkconv->entry)->smiley_data; + /* We want to see our own smileys. Need to revert it after send*/ + pidgin_themes_smiley_themeize_custom(gtkconv->imhtml); } /* TODO: These colors should not be hardcoded so log.c can use them */ @@ -5684,169 +5713,109 @@ char *alias_escaped = (alias ? g_markup_escape_text(alias, strlen(alias)) : g_strdup("")); /* The initial offset is to deal with * escaped entities making the string longer */ - int tag_start_offset = alias ? (strlen(alias_escaped) - strlen(alias)) : 0; + int tag_start_offset = 0; int tag_end_offset = 0; + const char *tagname = NULL; + + GtkTextIter start, end; + GtkTextMark *mark; + GtkTextTag *tag; + GtkTextBuffer *buffer = GTK_IMHTML(gtkconv->imhtml)->text_buffer; /* Enforce direction on alias */ if (is_rtl_message) str_embed_direction_chars(&alias_escaped); + str = g_malloc(1024); if (flags & PURPLE_MESSAGE_WHISPER) { - str = g_malloc(1024); - /* If we're whispering, it's not an autoresponse. */ if (purple_message_meify(new_message, -1 )) { g_snprintf(str, 1024, "***%s", alias_escaped); - strcpy(color, "#6C2585"); tag_start_offset += 3; + tagname = "whisper-action-name"; } else { g_snprintf(str, 1024, "*%s*:", alias_escaped); tag_start_offset += 1; tag_end_offset = 2; - strcpy(color, "#00FF00"); + tagname = "whisper-name"; } - } - else { + } else { if (purple_message_meify(new_message, -1)) { - GdkColor *col; - str = g_malloc(1024); - if (flags & PURPLE_MESSAGE_AUTO_RESP) { g_snprintf(str, 1024, "%s ***%s", AUTO_RESPONSE, alias_escaped); - tag_start_offset += 4 - + strlen(AUTO_RESPONSE); + tag_start_offset += strlen(AUTO_RESPONSE) - 6 + 4; } else { g_snprintf(str, 1024, "***%s", alias_escaped); tag_start_offset += 3; } if (flags & PURPLE_MESSAGE_NICK) - gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "highlight-name-color", &col, NULL); + tagname = "highlight-name"; else - gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "action-name-color", &col, NULL); - - if(col) { - g_snprintf(color, sizeof(color), "#%02X%02X%02X", - col->red >> 8, col->green >> 8, col->blue >> 8); - gdk_color_free(col); - } else { - if (flags & PURPLE_MESSAGE_NICK) - strcpy(color, DEFAULT_HIGHLIGHT_COLOR); - else - strcpy(color, DEFAULT_ACTION_COLOR); - } - } - else { - str = g_malloc(1024); + tagname = "action-name"; + } else { if (flags & PURPLE_MESSAGE_AUTO_RESP) { g_snprintf(str, 1024, "%s %s", alias_escaped, AUTO_RESPONSE); - tag_start_offset += 1 - + strlen(AUTO_RESPONSE); + tag_start_offset += strlen(AUTO_RESPONSE) - 6 + 1; } else { g_snprintf(str, 1024, "%s:", alias_escaped); tag_end_offset = 1; } + if (flags & PURPLE_MESSAGE_NICK) { - GdkColor *col; - gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "highlight-name-color", &col, NULL); - if(col) { - g_snprintf(color, sizeof(color), "#%02X%02X%02X", - col->red >> 8, col->green >> 8, col->blue >> 8); - gdk_color_free(col); - } else { - strcpy(color, DEFAULT_HIGHLIGHT_COLOR); + tagname = "highlight-name"; + } else if (flags & PURPLE_MESSAGE_RECV) { + /* The tagname for chats is handled by get_buddy_tag */ + if (type == PURPLE_CONV_TYPE_IM) { + tagname = "receive-name"; } - } - else if (flags & PURPLE_MESSAGE_RECV) { - if (type == PURPLE_CONV_TYPE_CHAT) { - const GdkColor *col = get_nick_color(gtkconv, name); - - g_snprintf(color, sizeof(color), "#%02X%02X%02X", - col->red >> 8, col->green >> 8, col->blue >> 8); - } else { - GdkColor *col; - gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "receive-name-color", &col, NULL); - if(col) { - g_snprintf(color, sizeof(color), "#%02X%02X%02X", - col->red >> 8, col->green >> 8, col->blue >> 8); - gdk_color_free(col); - } else { - strcpy(color, DEFAULT_RECV_COLOR); - } - } - } - else if (flags & PURPLE_MESSAGE_SEND) { - GdkColor *col; - gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "send-name-color", &col, NULL); - if(col) { - g_snprintf(color, sizeof(color), "#%02X%02X%02X", - col->red >> 8, col->green >> 8, col->blue >> 8); - gdk_color_free(col); - } else { - strcpy(color, DEFAULT_SEND_COLOR); - } - } - else { + } else if (flags & PURPLE_MESSAGE_SEND) { + tagname = "send-name"; + } else { purple_debug_error("gtkconv", "message missing flags\n"); - strcpy(color, "#000000"); } } } g_free(alias_escaped); - /* Are we in a chat where we can tell which users are buddies? */ - if (prpl_info && !(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME) && - purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) { - - /* Bold buddies to make them stand out from non-buddies. */ - if (flags & PURPLE_MESSAGE_SEND || - flags & PURPLE_MESSAGE_NICK || - purple_find_buddy(account, name) != NULL) { - g_snprintf(buf2, BUF_LONG, - "<FONT COLOR=\"%s\" %s><FONT SIZE=\"2\"><!--%s --></FONT>" - "<B>%s</B></FONT> ", - color, sml_attrib ? sml_attrib : "", mdate, str); - } else { - g_snprintf(buf2, BUF_LONG, - "<FONT COLOR=\"%s\" %s><FONT SIZE=\"2\"><!--%s --></FONT>" - "%s</FONT> ", - color, sml_attrib ? sml_attrib : "", mdate, str); - - } - } else { - /* Bold everyone's name to make the name stand out from the message. */ - g_snprintf(buf2, BUF_LONG, - "<FONT COLOR=\"%s\" %s><FONT SIZE=\"2\"><!--%s --></FONT>" - "<B>%s</B></FONT> ", - color, sml_attrib ? sml_attrib : "", mdate, str); - } - + if (tagname) + tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), tagname); + else + tag = get_buddy_tag(conv, name, TRUE); + + if (GTK_IMHTML(gtkconv->imhtml)->show_comments) { + /* The color for the timestamp has to be set in the font-tags, unfortunately. + * Applying the nick-tag to timestamps would work, but that can make it + * bold. I thought applying the "comment" tag again, which has "weight" set + * to PANGO_WEIGHT_NORMAL, would remove the boldness. But it doesn't. So + * this will have to do. I don't terribly like it. -- sadrul */ + GdkColor *color = NULL; + gboolean set = FALSE; + char colcode[] = "COLOR=\"#XXXXXX\""; + g_object_get(G_OBJECT(tag), "foreground-set", &set, "foreground-gdk", &color, NULL); + if (set && color) + g_snprintf(colcode, sizeof(colcode), "COLOR=\"#%02x%02x%02x\"", + color->red >> 8, color->green >> 8, color->blue >> 8); + else + colcode[0] = '\0'; + g_snprintf(buf2, BUF_LONG, "<FONT %s SIZE=\"2\"><!--%s --></FONT>", colcode, mdate); + gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), buf2, gtk_font_options_all | GTK_IMHTML_NO_SCROLL); + if (color) + gdk_color_free(color); + } + + gtk_text_buffer_get_end_iter(buffer, &end); + mark = gtk_text_buffer_create_mark(buffer, NULL, &end, TRUE); + + g_snprintf(buf2, BUF_LONG, "<FONT %s>%s</FONT> ", sml_attrib ? sml_attrib : "", str); gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), buf2, gtk_font_options_all | GTK_IMHTML_NO_SCROLL); - if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && - !(flags & PURPLE_MESSAGE_SEND)) { - - GtkTextIter start, end; - GtkTextTag *buddytag = get_buddy_tag(conv, name); - - gtk_text_buffer_get_end_iter( - GTK_IMHTML(gtkconv->imhtml)->text_buffer, - &end); - gtk_text_iter_backward_chars(&end, - tag_end_offset + 1); - - gtk_text_buffer_get_end_iter( - GTK_IMHTML(gtkconv->imhtml)->text_buffer, - &start); - gtk_text_iter_backward_chars(&start, - strlen(str) + 1 - tag_start_offset); - - gtk_text_buffer_apply_tag( - GTK_IMHTML(gtkconv->imhtml)->text_buffer, - buddytag, &start, &end); - } + gtk_text_buffer_get_end_iter(buffer, &end); + gtk_text_buffer_get_iter_at_mark(buffer, &start, mark); + gtk_text_buffer_apply_tag(buffer, tag, &start, &end); + gtk_text_buffer_delete_mark(buffer, mark); g_free(str); @@ -5864,8 +5833,7 @@ length += pre_len + post_len; g_free(pre); - } - else + } else with_font_tag = g_memdup(new_message, length); gtk_imhtml_append_text(GTK_IMHTML(gtkconv->imhtml), @@ -5896,11 +5864,10 @@ gtkconv_set_unseen(gtkconv, unseen); } - if (!(flags & PURPLE_MESSAGE_RECV)) + if (!(flags & PURPLE_MESSAGE_RECV) && (conv->features & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY)) { /* Restore the smiley-data */ - GTK_IMHTML(gtkconv->imhtml)->default_smilies = tree; - GTK_IMHTML(gtkconv->imhtml)->smiley_data = smiley_data; + pidgin_themes_smiley_themeize(gtkconv->imhtml); } purple_signal_emit(pidgin_conversations_get_handle(), @@ -6128,119 +6095,24 @@ return FALSE; } -static void pidgin_conv_custom_smiley_allocated(GdkPixbufLoader *loader, gpointer user_data) -{ - GtkIMHtmlSmiley *smiley; - - smiley = (GtkIMHtmlSmiley *)user_data; - smiley->icon = gdk_pixbuf_loader_get_animation(loader); - - if (smiley->icon) - g_object_ref(G_OBJECT(smiley->icon)); -#ifdef DEBUG_CUSTOM_SMILEY - purple_debug_info("custom-smiley", "pidgin_conv_custom_smiley_allocated(): got GdkPixbufAnimation %p for smiley '%s'\n", smiley->icon, smiley->smile); -#endif -} - -static void pidgin_conv_custom_smiley_closed(GdkPixbufLoader *loader, gpointer user_data) -{ - GtkIMHtmlSmiley *smiley; - GtkWidget *icon = NULL; - GtkTextChildAnchor *anchor = NULL; - GSList *current = NULL; - - smiley = (GtkIMHtmlSmiley *)user_data; - if (!smiley->imhtml) { -#ifdef DEBUG_CUSTOM_SMILEY - purple_debug_error("custom-smiley", "pidgin_conv_custom_smiley_closed(): orphan smiley found: %p\n", smiley); -#endif - g_object_unref(G_OBJECT(loader)); - smiley->loader = NULL; - return; - } - - for (current = smiley->anchors; current; current = g_slist_next(current)) { - - icon = gtk_image_new_from_animation(smiley->icon); - -#ifdef DEBUG_CUSTOM_SMILEY - purple_debug_info("custom-smiley", "pidgin_conv_custom_smiley_closed(): got GtkImage %p from GtkPixbufAnimation %p for smiley '%s'\n", - icon, smiley->icon, smiley->smile); -#endif - if (icon) { - GList *wids; - gtk_widget_show(icon); - - anchor = GTK_TEXT_CHILD_ANCHOR(current->data); - wids = gtk_text_child_anchor_get_widgets(anchor); - - g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_plaintext", purple_unescape_html(smiley->smile), g_free); - g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_htmltext", g_strdup(smiley->smile), g_free); - - if (smiley->imhtml) { - if (wids) { - GList *children = gtk_container_get_children(GTK_CONTAINER(wids->data)); - g_list_foreach(children, (GFunc)gtk_widget_destroy, NULL); - g_list_free(children); - gtk_container_add(GTK_CONTAINER(wids->data), icon); - } else - gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(smiley->imhtml), icon, anchor); - } - g_list_free(wids); - } - - } - - g_slist_free(smiley->anchors); - smiley->anchors = NULL; - - g_object_unref(G_OBJECT(loader)); - smiley->loader = NULL; -} - static gboolean add_custom_smiley_for_imhtml(GtkIMHtml *imhtml, const char *sml, const char *smile) { GtkIMHtmlSmiley *smiley; - GdkPixbufLoader *loader; smiley = gtk_imhtml_smiley_get(imhtml, sml, smile); if (smiley) { - if (!(smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) { return FALSE; } - - /* Close the old GdkPixbufAnimation, then create a new one for - * the smiley we are about to receive */ - g_object_unref(G_OBJECT(smiley->icon)); - - /* XXX: Is it necessary to _unref the loader first? */ - smiley->loader = gdk_pixbuf_loader_new(); - smiley->icon = NULL; - - g_signal_connect(smiley->loader, "area_prepared", G_CALLBACK(pidgin_conv_custom_smiley_allocated), smiley); - g_signal_connect(smiley->loader, "closed", G_CALLBACK(pidgin_conv_custom_smiley_closed), smiley); - + gtk_imhtml_smiley_reload(smiley); return TRUE; } - loader = gdk_pixbuf_loader_new(); - - /* this is wrong, this file ought not call g_new on GtkIMHtmlSmiley */ - /* Let gtk_imhtml have a gtk_imhtml_smiley_new function, and let - GtkIMHtmlSmiley by opaque */ - smiley = g_new0(GtkIMHtmlSmiley, 1); - smiley->file = NULL; - smiley->smile = g_strdup(smile); - smiley->loader = loader; - smiley->flags = smiley->flags | GTK_IMHTML_SMILEY_CUSTOM; - - g_signal_connect(smiley->loader, "area_prepared", G_CALLBACK(pidgin_conv_custom_smiley_allocated), smiley); - g_signal_connect(smiley->loader, "closed", G_CALLBACK(pidgin_conv_custom_smiley_closed), smiley); - + smiley = gtk_imhtml_smiley_create(NULL, smile, FALSE, GTK_IMHTML_SMILEY_CUSTOM); gtk_imhtml_associate_smiley(imhtml, sml, smiley); + g_signal_connect_swapped(imhtml, "destroy", G_CALLBACK(gtk_imhtml_smiley_destroy), smiley); return TRUE; } @@ -6465,6 +6337,11 @@ if(conv->features & PURPLE_CONNECTION_NO_IMAGES) buttons &= ~GTK_IMHTML_IMAGE; + if (conv->features & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY) + buttons |= GTK_IMHTML_CUSTOM_SMILEY; + else + buttons &= ~GTK_IMHTML_CUSTOM_SMILEY; + gtk_imhtml_set_format_functions(GTK_IMHTML(gtkconv->entry), buttons); if (account != NULL) gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(gtkconv->toolbar), purple_account_get_protocol_id(account)); @@ -6912,7 +6789,7 @@ { PurpleContact *contact = purple_buddy_get_contact(buddy); if (contact) { - custom_img = purple_buddy_icons_find_custom_icon(contact); + custom_img = purple_buddy_icons_node_find_custom_icon((PurpleBlistNode*)contact); if (custom_img) { /* There is a custom icon for this user */ data = purple_imgstore_get_data(custom_img);
--- a/pidgin/gtkdialogs.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkdialogs.c Thu Jun 26 09:07:56 2008 +0000 @@ -67,16 +67,16 @@ char *email; }; -/* Order: Lead Developer, then Alphabetical by Last Name */ +/* Order: Alphabetical by Last Name */ static const struct developer developers[] = { - {"Sean Egan", N_("lead developer"), "sean.egan@gmail.com"}, {"Daniel 'datallah' Atallah", N_("developer"), NULL}, {"John 'rekkanoryo' Bailey", N_("developer"), NULL}, {"Ethan 'Paco-Paco' Blanton", N_("developer"), NULL}, {"Thomas Butter", N_("developer"), NULL}, {"Ka-Hing Cheung", N_("developer"), NULL}, {"Sadrul Habib Chowdhury", N_("developer"), NULL}, - {"Mark 'KingAnt' Doliner", N_("developer"), NULL}, + {"Mark 'KingAnt' Doliner", N_("developer"), "mark@kingant.net"}, + {"Sean Egan", N_("developer"), "sean.egan@gmail.com"}, {"Casey Harkins", N_("developer"), NULL}, {"Gary 'grim' Kramlich", N_("developer"), NULL}, {"Richard 'rlaager' Laager", N_("developer"), NULL}, @@ -194,7 +194,7 @@ {N_("Nepali"), "ne", "Shyam Krishna Bal", "shyamkrishna_bal@yahoo.com"}, {N_("Dutch, Flemish"), "nl", "Vincent van Adrighem", "V.vanAdrighem@dirck.mine.nu"}, {N_("Norwegian Nynorsk"), "nn", "Yngve Spjeld Landro", "nynorsk@strilen.net"}, - {"Occitan", "oc", "Yannig Marchegay", "yannig@marchegay.org"}, + {N_("Occitan"), "oc", "Yannig Marchegay", "yannig@marchegay.org"}, {N_("Punjabi"), "pa", "Amanpreet Singh Alam", "aalam@users.sf.net"}, {N_("Polish"), "pl", "Emil Nowak", "emil5@go2.pl"}, {N_("Polish"), "pl", "Pawe� Godlewski", "pawel@bajk.pl"}, @@ -686,7 +686,7 @@ #ifdef LIBZEPHYR_EXT g_string_append(str, " <b>Zephyr library (libzephyr):</b> External<br/>"); #else - g_string_append(str, " <b>Zephyr library (libzephyr):</b> Not External<br/>"); + g_string_append(str, " <b>Zephyr library (libzephyr):</b> Internal<br/>"); #endif #ifdef ZEPHYR_USES_KERBEROS
--- a/pidgin/gtkdocklet.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkdocklet.c Thu Jun 26 09:07:56 2008 +0000 @@ -530,7 +530,7 @@ PidginStatusBox *statusbox = NULL; submenu = gtk_menu_new(); - menuitem = gtk_menu_item_new_with_label(_("Change Status")); + menuitem = gtk_menu_item_new_with_mnemonic(_("_Change Status")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); if(pidgin_blist_get_default_gtk_blist() != NULL) { @@ -678,12 +678,12 @@ menu = gtk_menu_new(); - menuitem = gtk_check_menu_item_new_with_label(_("Show Buddy List")); + menuitem = gtk_check_menu_item_new_with_mnemonic(_("Show Buddy _List")); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/list_visible")); g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_blist), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - menuitem = gtk_menu_item_new_with_label(_("Unread Messages")); + menuitem = gtk_menu_item_new_with_mnemonic(_("_Unread Messages")); if (pending) { GtkWidget *submenu = gtk_menu_new(); @@ -704,7 +704,7 @@ pidgin_separator(menu); - menuitem = pidgin_new_item_from_stock(menu, _("New Message..."), PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, G_CALLBACK(pidgin_dialogs_im), NULL, 0, 0, NULL); + menuitem = pidgin_new_item_from_stock(menu, _("New _Message..."), PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW, G_CALLBACK(pidgin_dialogs_im), NULL, 0, 0, NULL); if (status == PURPLE_STATUS_OFFLINE) gtk_widget_set_sensitive(menuitem, FALSE); @@ -713,20 +713,20 @@ pidgin_separator(menu); - pidgin_new_item_from_stock(menu, _("Accounts"), NULL, G_CALLBACK(pidgin_accounts_window_show), NULL, 0, 0, NULL); - pidgin_new_item_from_stock(menu, _("Plugins"), PIDGIN_STOCK_TOOLBAR_PLUGINS, G_CALLBACK(pidgin_plugin_dialog_show), NULL, 0, 0, NULL); - pidgin_new_item_from_stock(menu, _("Preferences"), GTK_STOCK_PREFERENCES, G_CALLBACK(pidgin_prefs_show), NULL, 0, 0, NULL); + pidgin_new_item_from_stock(menu, _("_Accounts"), NULL, G_CALLBACK(pidgin_accounts_window_show), NULL, 0, 0, NULL); + pidgin_new_item_from_stock(menu, _("Plu_gins"), PIDGIN_STOCK_TOOLBAR_PLUGINS, G_CALLBACK(pidgin_plugin_dialog_show), NULL, 0, 0, NULL); + pidgin_new_item_from_stock(menu, _("Pr_eferences"), GTK_STOCK_PREFERENCES, G_CALLBACK(pidgin_prefs_show), NULL, 0, 0, NULL); pidgin_separator(menu); - menuitem = gtk_check_menu_item_new_with_label(_("Mute Sounds")); + menuitem = gtk_check_menu_item_new_with_mnemonic(_("Mute _Sounds")); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute")); if (!strcmp(purple_prefs_get_string(PIDGIN_PREFS_ROOT "/sound/method"), "none")) gtk_widget_set_sensitive(GTK_WIDGET(menuitem), FALSE); g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_mute), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - menuitem = gtk_check_menu_item_new_with_label(_("Blink on New Message")); + menuitem = gtk_check_menu_item_new_with_mnemonic(_("_Blink on New Message")); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/blink")); g_signal_connect(G_OBJECT(menuitem), "toggled", G_CALLBACK(docklet_toggle_blink), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); @@ -736,7 +736,7 @@ /* add plugin actions */ docklet_plugin_actions(menu); - pidgin_new_item_from_stock(menu, _("Quit"), GTK_STOCK_QUIT, G_CALLBACK(purple_core_quit), NULL, 0, 0, NULL); + pidgin_new_item_from_stock(menu, _("_Quit"), GTK_STOCK_QUIT, G_CALLBACK(purple_core_quit), NULL, 0, 0, NULL); #ifdef _WIN32 g_signal_connect(menu, "leave-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL);
--- a/pidgin/gtkft.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkft.c Thu Jun 26 09:07:56 2008 +0000 @@ -226,8 +226,10 @@ total_pct = 100 * total_bytes_xferred / total_file_size; } - title = g_strdup_printf(_("File Transfers - %d%% of %d files"), - total_pct, num_active_xfers); + title = g_strdup_printf(ngettext("File Transfers - %d%% of %d file", + "File Transfers - %d%% of %d files", + num_active_xfers), + total_pct, num_active_xfers); gtk_window_set_title(GTK_WINDOW(dialog->window), title); g_free(title); } else {
--- a/pidgin/gtkimhtml.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkimhtml.c Thu Jun 26 09:07:56 2008 +0000 @@ -32,10 +32,14 @@ #include "internal.h" #include "pidgin.h" #include "pidginstock.h" +#include "gtkutils.h" +#include "smiley.h" +#include "imgstore.h" #include "debug.h" #include "util.h" #include "gtkimhtml.h" +#include "gtksmiley.h" #include "gtksourceiter.h" #include "gtksourceundomanager.h" #include "gtksourceview-marshal.h" @@ -393,6 +397,55 @@ gtk_imhtml_scroll_to_end(imhtml, FALSE); } +#define DEFAULT_SEND_COLOR "#204a87" +#define DEFAULT_RECV_COLOR "#cc0000" +#define DEFAULT_HIGHLIGHT_COLOR "#AF7F00" +#define DEFAULT_ACTION_COLOR "#062585" +#define DEFAULT_WHISPER_ACTION_COLOR "#6C2585" +#define DEFAULT_WHISPER_COLOR "#00FF00" + +static void (*parent_style_set)(GtkWidget *widget, GtkStyle *prev_style); + +static void +gtk_imhtml_style_set(GtkWidget *widget, GtkStyle *prev_style) +{ + int i; + struct { + const char *tag; + const char *color; + const char *def; + } styles[] = { + {"send-name", "send-name-color", DEFAULT_SEND_COLOR}, + {"receive-name", "receive-name-color", DEFAULT_RECV_COLOR}, + {"highlight-name", "highlight-name-color", DEFAULT_HIGHLIGHT_COLOR}, + {"action-name", "action-name-color", DEFAULT_ACTION_COLOR}, + {"whisper-action-name", "whisper-action-name-color", DEFAULT_WHISPER_ACTION_COLOR}, + {"whisper-name", "whisper-name-color", DEFAULT_WHISPER_COLOR}, + {NULL, NULL, NULL} + }; + GtkIMHtml *imhtml = GTK_IMHTML(widget); + GtkTextTagTable *table = gtk_text_buffer_get_tag_table(imhtml->text_buffer); + + for (i = 0; styles[i].tag; i++) { + GdkColor *color = NULL; + GtkTextTag *tag = gtk_text_tag_table_lookup(table, styles[i].tag); + if (!tag) { + purple_debug_warning("gtkimhtml", "Cannot find tag '%s'. This should never happen. Please file a bug.\n", styles[i].tag); + continue; + } + gtk_widget_style_get(widget, styles[i].color, &color, NULL); + if (color) { + g_object_set(tag, "foreground-gdk", color, NULL); + gdk_color_free(color); + } else { + GdkColor defcolor; + gdk_color_parse(styles[i].def, &defcolor); + g_object_set(tag, "foreground-gdk", &defcolor, NULL); + } + } + parent_style_set(widget, prev_style); +} + static gint gtk_imhtml_tip_paint (GtkIMHtml *imhtml) { @@ -950,19 +1003,14 @@ char *selection; #ifndef _WIN32 gsize len; - GString *str = g_string_new(NULL); if (primary) { text = gtk_imhtml_get_markup_range(imhtml, &start, &end); } else text = html_clipboard; /* Mozilla asks that we start our text/html with the Unicode byte order mark */ - str = g_string_append_unichar(str, 0xfeff); - str = g_string_append(str, text); - str = g_string_append_unichar(str, 0x0000); - selection = g_convert(str->str, str->len, "UTF-16", "UTF-8", NULL, &len, NULL); + selection = g_convert(text, -1, "UTF-16", "UTF-8", NULL, &len, NULL); gtk_selection_data_set(selection_data, gdk_atom_intern("text/html", FALSE), 16, (const guchar *)selection, len); - g_string_free(str, TRUE); #else selection = clipboard_html_to_win32(html_clipboard); gtk_selection_data_set(selection_data, gdk_atom_intern("HTML Format", FALSE), 8, (const guchar *)selection, strlen(selection)); @@ -1427,6 +1475,8 @@ widget_class->expose_event = gtk_imhtml_expose_event; parent_size_allocate = widget_class->size_allocate; widget_class->size_allocate = gtk_imhtml_size_allocate; + parent_style_set = widget_class->style_set; + widget_class->style_set = gtk_imhtml_style_set; gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("hyperlink-color", _("Hyperlink color"), @@ -1452,6 +1502,14 @@ _("Action Message Name Color"), _("Color to draw the name of an action message."), GDK_TYPE_COLOR, G_PARAM_READABLE)); + gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("whisper-action-name-color", + _("Action Message Name Color for Whispered Message"), + _("Color to draw the name of an action message."), + GDK_TYPE_COLOR, G_PARAM_READABLE)); + gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("whisper-name-color", + _("Whisper Message Name Color"), + _("Color to draw the name of an action message."), + GDK_TYPE_COLOR, G_PARAM_READABLE)); /* Customizable typing notification ... sort of. Example: * GtkIMHtml::typing-notification-font = "monospace italic light 8.0" @@ -1513,9 +1571,18 @@ gtk_text_buffer_create_tag(imhtml->text_buffer, "SUP", "rise", 5000, NULL); gtk_text_buffer_create_tag(imhtml->text_buffer, "PRE", "family", "Monospace", NULL); gtk_text_buffer_create_tag(imhtml->text_buffer, "search", "background", "#22ff00", "weight", "bold", NULL); + gtk_text_buffer_create_tag(imhtml->text_buffer, "comment", "weight", PANGO_WEIGHT_NORMAL, #if FALSE && GTK_CHECK_VERSION(2,10,10) - gtk_text_buffer_create_tag(imhtml->text_buffer, "comment", "invisible", FALSE, NULL); + "invisible", FALSE, #endif + NULL); + + gtk_text_buffer_create_tag(imhtml->text_buffer, "send-name", "weight", PANGO_WEIGHT_BOLD, NULL); + gtk_text_buffer_create_tag(imhtml->text_buffer, "receive-name", "weight", PANGO_WEIGHT_BOLD, NULL); + gtk_text_buffer_create_tag(imhtml->text_buffer, "highlight-name", "weight", PANGO_WEIGHT_BOLD, NULL); + gtk_text_buffer_create_tag(imhtml->text_buffer, "action-name", "weight", PANGO_WEIGHT_BOLD, NULL); + gtk_text_buffer_create_tag(imhtml->text_buffer, "whisper-action-name", "weight", PANGO_WEIGHT_BOLD, NULL); + gtk_text_buffer_create_tag(imhtml->text_buffer, "whisper-name", "weight", PANGO_WEIGHT_BOLD, NULL); /* When hovering over a link, we show the hand cursor--elsewhere we show the plain ol' pointer cursor */ imhtml->hand_cursor = gdk_cursor_new (GDK_HAND2); @@ -1683,11 +1750,11 @@ if (!strncmp(tempdata->url, "mailto:", 7)) { - /* Copy E-Mail Address */ + /* Copy Email Address */ img = gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU); item = gtk_image_menu_item_new_with_mnemonic( - _("_Copy E-Mail Address")); + _("_Copy Email Address")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img); g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(url_copy), tempdata->url + 7); @@ -3056,7 +3123,7 @@ #else if (imhtml->show_comments && !(options & GTK_IMHTML_NO_COMMENTS)) { wpos = g_snprintf (ws, len, "%s", tag); - gtk_text_buffer_insert(imhtml->text_buffer, iter, ws, wpos); + gtk_text_buffer_insert_with_tags_by_name(imhtml->text_buffer, iter, ws, wpos, "comment", NULL); } #endif ws[0] = '\0'; wpos = 0; @@ -3623,6 +3690,15 @@ gtk_widget_show(image->filesel); } +static void +gtk_imhtml_custom_smiley_save(GtkWidget *w, GtkIMHtmlImage *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); +} + /* * So, um, AIM Direct IM lets you send any file, not just images. You can * just insert a sound or a file or whatever in a conversation. It's @@ -3647,6 +3723,19 @@ g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(gtk_imhtml_image_save), image); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + /* Add menu item for adding custom smiley to local smileys */ + /* we only add the menu if the image is of "custom smiley size" + <= 96x96 pixels */ + if (image->width <= 96 && image->height <= 96) { + text = g_strdup_printf(_("_Add Custom Smiley...")); + img = gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU); + item = gtk_image_menu_item_new_with_mnemonic(text); + 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); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + } + gtk_widget_show_all(menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event_button->button, event_button->time); @@ -3668,7 +3757,7 @@ GdkPixbufAnimation *anim = NULL; GtkIMHtmlScalable *image = NULL; gboolean ret; - + if (event->type != GDK_BUTTON_RELEASE || ((GdkEventButton*)event)->button != 3) return FALSE; @@ -4777,7 +4866,7 @@ gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(imhtml), ebox ? ebox : icon, anchor); } else if (imhtml_smiley != NULL && (imhtml->format_functions & GTK_IMHTML_SMILEY)) { anchor = gtk_text_buffer_create_child_anchor(imhtml->text_buffer, iter); - imhtml_smiley->anchors = g_slist_append(imhtml_smiley->anchors, anchor); + imhtml_smiley->anchors = g_slist_append(imhtml_smiley->anchors, g_object_ref(anchor)); if (ebox) { GtkWidget *img = gtk_image_new_from_stock(GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_MENU); char *text = g_strdup(unescaped); @@ -4904,7 +4993,68 @@ g_snprintf(buf, sizeof(buf), "<font size=\"%s\">", &name[10]); return buf; } else { - return ""; + char *str = buf; + gboolean isset; + int ivalue = 0; + GdkColor *color = NULL; + GObject *obj = G_OBJECT(tag); + gboolean empty = TRUE; + + str += g_snprintf(str, sizeof(buf) - (str - buf), "<span style='"); + + /* Weight */ + g_object_get(obj, "weight-set", &isset, "weight", &ivalue, NULL); + if (isset) { + const char *weight = ""; + if (ivalue >= PANGO_WEIGHT_ULTRABOLD) + weight = "bolder"; + else if (ivalue >= PANGO_WEIGHT_BOLD) + weight = "bold"; + else if (ivalue >= PANGO_WEIGHT_NORMAL) + weight = "normal"; + else + weight = "lighter"; + + str += g_snprintf(str, sizeof(buf) - (str - buf), "font-weight: %s;", weight); + empty = FALSE; + } + + /* Foreground color */ + g_object_get(obj, "foreground-set", &isset, "foreground-gdk", &color, NULL); + if (isset && color) { + str += g_snprintf(str, sizeof(buf) - (str - buf), + "color: #%02x%02x%02x;", + color->red >> 8, color->green >> 8, color->blue >> 8); + empty = FALSE; + } + gdk_color_free(color); + + /* Background color */ + g_object_get(obj, "background-set", &isset, "background-gdk", &color, NULL); + if (isset && color) { + str += g_snprintf(str, sizeof(buf) - (str - buf), + "background: #%02x%02x%02x;", + color->red >> 8, color->green >> 8, color->blue >> 8); + empty = FALSE; + } + gdk_color_free(color); + + /* Underline */ + g_object_get(obj, "underline-set", &isset, "underline", &ivalue, NULL); + if (isset) { + switch (ivalue) { + case PANGO_UNDERLINE_NONE: + case PANGO_UNDERLINE_ERROR: + break; + default: + str += g_snprintf(str, sizeof(buf) - (str - buf), "text-decoration: underline;"); + empty = FALSE; + } + } + + g_snprintf(str, sizeof(buf) - (str - buf), "'>"); + + return (empty ? "" : buf); } } @@ -4936,10 +5086,52 @@ } else if (strncmp(name, "FONT SIZE ", 10) == 0) { return "</font>"; } else { + const char *props[] = {"weight-set", "foreground-set", "background-set", + "size-set", "underline-set", NULL}; + int i; + for (i = 0; props[i]; i++) { + gboolean set = FALSE; + g_object_get(G_OBJECT(tag), props[i], &set, NULL); + if (set) + return "</span>"; + } + return ""; } } +typedef struct { + GtkTextTag *tag; + char *end; + char *start; +} PidginTextTagData; + +static PidginTextTagData *text_tag_data_new(GtkTextTag *tag) +{ + const char *start, *end; + PidginTextTagData *ret = NULL; + + start = tag_to_html_start(tag); + if (!start || !*start) + return NULL; + end = tag_to_html_end(tag); + if (!end || !*end) + return NULL; + + ret = g_new0(PidginTextTagData, 1); + ret->start = g_strdup(start); + ret->end = g_strdup(end); + ret->tag = tag; + return ret; +} + +static void text_tag_data_destroy(PidginTextTagData *data) +{ + g_free(data->start); + g_free(data->end); + g_free(data); +} + static gboolean tag_ends_here(GtkTextTag *tag, GtkTextIter *iter, GtkTextIter *niter) { return ((gtk_text_iter_has_tag(iter, GTK_TEXT_TAG(tag)) && @@ -4960,12 +5152,11 @@ gboolean is_rtl_message = FALSE; GString *str = g_string_new(""); GSList *tags, *sl; - GQueue *q, *r; + GQueue *q; GtkTextTag *tag; + PidginTextTagData *tagdata; q = g_queue_new(); - r = g_queue_new(); - gtk_text_iter_order(start, end); non_neutral_iter = next_iter = iter = *start; @@ -4988,9 +5179,11 @@ for (sl = tags; sl; sl = sl->next) { tag = sl->data; if (!gtk_text_iter_toggles_tag(start, GTK_TEXT_TAG(tag))) { - if (strlen(tag_to_html_end(tag)) > 0) - g_string_append(str, tag_to_html_start(tag)); - g_queue_push_tail(q, tag); + PidginTextTagData *data = text_tag_data_new(tag); + if (data) { + g_string_append(str, data->start); + g_queue_push_tail(q, data); + } } } g_slist_free(tags); @@ -5002,13 +5195,14 @@ for (sl = tags; sl; sl = sl->next) { tag = sl->data; if (gtk_text_iter_begins_tag(&iter, GTK_TEXT_TAG(tag))) { - if (strlen(tag_to_html_end(tag)) > 0) - g_string_append(str, tag_to_html_start(tag)); - g_queue_push_tail(q, tag); + PidginTextTagData *data = text_tag_data_new(tag); + if (data) { + g_string_append(str, data->start); + g_queue_push_tail(q, data); + } } } - if (c == 0xFFFC) { GtkTextChildAnchor* anchor = gtk_text_iter_get_child_anchor(&iter); if (anchor) { @@ -5034,28 +5228,33 @@ for (sl = tags; sl; sl = sl->next) { tag = sl->data; /** don't worry about non-printing tags ending */ - if (tag_ends_here(tag, &iter, &next_iter) && strlen(tag_to_html_end(tag)) > 0) { - - GtkTextTag *tmp; - - while ((tmp = g_queue_pop_tail(q)) != tag) { - if (tmp == NULL) - break; - - if (!tag_ends_here(tmp, &iter, &next_iter) && strlen(tag_to_html_end(tmp)) > 0) + if (tag_ends_here(tag, &iter, &next_iter) && + strlen(tag_to_html_end(tag)) > 0 && + strlen(tag_to_html_start(tag)) > 0) { + + PidginTextTagData *tmp; + GQueue *r = g_queue_new(); + + while ((tmp = g_queue_pop_tail(q)) && tmp->tag != tag) { + g_string_append(str, tmp->end); + if (!tag_ends_here(tmp->tag, &iter, &next_iter)) g_queue_push_tail(r, tmp); - g_string_append(str, tag_to_html_end(GTK_TEXT_TAG(tmp))); + else + text_tag_data_destroy(tmp); } if (tmp == NULL) purple_debug_warning("gtkimhtml", "empty queue, more closing tags than open tags!\n"); - else - g_string_append(str, tag_to_html_end(GTK_TEXT_TAG(tag))); + else { + g_string_append(str, tmp->end); + text_tag_data_destroy(tmp); + } while ((tmp = g_queue_pop_head(r))) { - g_string_append(str, tag_to_html_start(GTK_TEXT_TAG(tmp))); + g_string_append(str, tmp->start); g_queue_push_tail(q, tmp); } + g_queue_free(r); } } @@ -5064,15 +5263,16 @@ gtk_text_iter_forward_char(&next_iter); } - while ((tag = g_queue_pop_tail(q))) - g_string_append(str, tag_to_html_end(GTK_TEXT_TAG(tag))); + while ((tagdata = g_queue_pop_tail(q))) { + g_string_append(str, tagdata->end); + text_tag_data_destroy(tagdata); + } /* Bi-directional text support - close tags */ if (is_rtl_message) g_string_append(str, "</SPAN>"); g_queue_free(q); - g_queue_free(r); return g_string_free(str, FALSE); } @@ -5265,7 +5465,152 @@ if (flags & PURPLE_CONNECTION_NO_IMAGES) buttons &= ~GTK_IMHTML_IMAGE; + if (flags & PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY) + buttons |= GTK_IMHTML_CUSTOM_SMILEY; + else + buttons &= ~GTK_IMHTML_CUSTOM_SMILEY; + gtk_imhtml_set_format_functions(imhtml, buttons); } - +/******* + * GtkIMHtmlSmiley functions + *******/ +static void gtk_custom_smiley_allocated(GdkPixbufLoader *loader, gpointer user_data) +{ + GtkIMHtmlSmiley *smiley; + + smiley = (GtkIMHtmlSmiley *)user_data; + smiley->icon = gdk_pixbuf_loader_get_animation(loader); + + if (smiley->icon) + g_object_ref(G_OBJECT(smiley->icon)); +#ifdef DEBUG_CUSTOM_SMILEY + purple_debug_info("custom-smiley", "gtk_custom_smiley_allocated(): got GdkPixbufAnimation %p for smiley '%s'\n", smiley->icon, smiley->smile); +#endif +} + +static void gtk_custom_smiley_closed(GdkPixbufLoader *loader, gpointer user_data) +{ + GtkIMHtmlSmiley *smiley; + GtkWidget *icon = NULL; + GtkTextChildAnchor *anchor = NULL; + GSList *current = NULL; + + smiley = (GtkIMHtmlSmiley *)user_data; + if (!smiley->imhtml) { +#ifdef DEBUG_CUSTOM_SMILEY + purple_debug_error("custom-smiley", "gtk_custom_smiley_closed(): orphan smiley found: %p\n", smiley); +#endif + g_object_unref(G_OBJECT(loader)); + smiley->loader = NULL; + return; + } + + for (current = smiley->anchors; current; current = g_slist_next(current)) { + anchor = GTK_TEXT_CHILD_ANCHOR(current->data); + if (gtk_text_child_anchor_get_deleted(anchor)) + icon = NULL; + else + icon = gtk_image_new_from_animation(smiley->icon); + +#ifdef DEBUG_CUSTOM_SMILEY + purple_debug_info("custom-smiley", "gtk_custom_smiley_closed(): got GtkImage %p from GtkPixbufAnimation %p for smiley '%s'\n", + icon, smiley->icon, smiley->smile); +#endif + if (icon) { + GList *wids; + gtk_widget_show(icon); + + wids = gtk_text_child_anchor_get_widgets(anchor); + + g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_plaintext", purple_unescape_html(smiley->smile), g_free); + g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_htmltext", g_strdup(smiley->smile), g_free); + + if (smiley->imhtml) { + if (wids) { + GList *children = gtk_container_get_children(GTK_CONTAINER(wids->data)); + g_list_foreach(children, (GFunc)gtk_widget_destroy, NULL); + g_list_free(children); + gtk_container_add(GTK_CONTAINER(wids->data), icon); + } else + gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(smiley->imhtml), icon, anchor); + } + g_list_free(wids); + } + g_object_unref(anchor); + } + + g_slist_free(smiley->anchors); + smiley->anchors = NULL; + + g_object_unref(G_OBJECT(loader)); + smiley->loader = NULL; +} + +static void +gtk_custom_smiley_size_prepared(GdkPixbufLoader *loader, gint width, gint height, gpointer data) +{ +#define CUSTOM_SMILEY_SIZE 96 /* XXX: Should this be a theme setting? */ + if (width <= CUSTOM_SMILEY_SIZE && height <= CUSTOM_SMILEY_SIZE) + return; + + if (width >= height) { + height = height * CUSTOM_SMILEY_SIZE / width; + width = CUSTOM_SMILEY_SIZE; + } else { + width = width * CUSTOM_SMILEY_SIZE / height; + height = CUSTOM_SMILEY_SIZE; + } + + gdk_pixbuf_loader_set_size(loader, width, height); +} + +void +gtk_imhtml_smiley_reload(GtkIMHtmlSmiley *smiley) +{ + if (smiley->icon) + g_object_unref(smiley->icon); + if (smiley->loader) + g_object_unref(smiley->loader); /* XXX: does this crash? */ + + smiley->icon = NULL; + smiley->loader = NULL; + + if (smiley->file) { + /* We do not use the pixbuf loader for a smiley that can be loaded + * from a file. (e.g., local custom smileys) + */ + return; + } + + smiley->loader = gdk_pixbuf_loader_new(); + + g_signal_connect(smiley->loader, "area_prepared", G_CALLBACK(gtk_custom_smiley_allocated), smiley); + g_signal_connect(smiley->loader, "closed", G_CALLBACK(gtk_custom_smiley_closed), smiley); + g_signal_connect(smiley->loader, "size_prepared", G_CALLBACK(gtk_custom_smiley_size_prepared), smiley); +} + +GtkIMHtmlSmiley *gtk_imhtml_smiley_create(const char *file, const char *shortcut, gboolean hide, + GtkIMHtmlSmileyFlags flags) +{ + GtkIMHtmlSmiley *smiley = g_new0(GtkIMHtmlSmiley, 1); + smiley->file = g_strdup(file); + smiley->smile = g_strdup(shortcut); + smiley->hidden = hide; + smiley->flags = flags; + gtk_imhtml_smiley_reload(smiley); + return smiley; +} + +void gtk_imhtml_smiley_destroy(GtkIMHtmlSmiley *smiley) +{ + g_free(smiley->smile); + g_free(smiley->file); + if (smiley->icon) + g_object_unref(smiley->icon); + if (smiley->loader) + g_object_unref(smiley->loader); + g_free(smiley); +} +
--- a/pidgin/gtkimhtml.h Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkimhtml.h Thu Jun 26 09:07:56 2008 +0000 @@ -76,6 +76,8 @@ GTK_IMHTML_SMILEY = 1 << 11, GTK_IMHTML_LINKDESC = 1 << 12, GTK_IMHTML_STRIKE = 1 << 13, + /** Show custom smileys when appropriate. @since 2.5.0 */ + GTK_IMHTML_CUSTOM_SMILEY = 1 << 14, GTK_IMHTML_ALL = -1 } GtkIMHtmlButtons; @@ -852,6 +854,37 @@ */ void gtk_imhtml_setup_entry(GtkIMHtml *imhtml, PurpleConnectionFlags flags); +/** + * Create a new GtkIMHtmlSmiley. + * + * @param file The image file for the smiley + * @param shortcut The key shortcut for the smiley + * @param hide @c TRUE if the smiley should be hidden in the smiley dialog, @c FALSE otherwise + * @param flags The smiley flags + * + * @return The newly created smiley + * @since 2.5.0 + */ +GtkIMHtmlSmiley *gtk_imhtml_smiley_create(const char *file, const char *shortcut, gboolean hide, + GtkIMHtmlSmileyFlags flags); + +/** + * Reload the image data for the smiley. + * + * @param smiley The smiley to reload + * + * @since 2.5.0 + */ +void gtk_imhtml_smiley_reload(GtkIMHtmlSmiley *smiley); + +/** + * Destroy a GtkIMHtmlSmiley. + * + * @param smiley The smiley to destroy + * + * @since 2.5.0 + */ +void gtk_imhtml_smiley_destroy(GtkIMHtmlSmiley *smiley); /*@}*/ #ifdef __cplusplus
--- a/pidgin/gtkimhtmltoolbar.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkimhtmltoolbar.c Thu Jun 26 09:07:56 2008 +0000 @@ -36,6 +36,7 @@ #include "gtkdialogs.h" #include "gtkimhtmltoolbar.h" +#include "gtksmiley.h" #include "gtkthemes.h" #include "gtkutils.h" @@ -579,8 +580,7 @@ } static gboolean -close_smiley_dialog(GtkWidget *widget, GdkEvent *event, - GtkIMHtmlToolbar *toolbar) +close_smiley_dialog(GtkIMHtmlToolbar *toolbar) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->smiley), FALSE); return FALSE; @@ -601,24 +601,30 @@ g_free(escaped_smiley); - close_smiley_dialog(NULL, NULL, toolbar); + close_smiley_dialog(toolbar); } /* smiley buttons list */ struct smiley_button_list { int width, height; GtkWidget *button; + const GtkIMHtmlSmiley *smiley; struct smiley_button_list *next; }; static struct smiley_button_list * -sort_smileys(struct smiley_button_list *ls, GtkIMHtmlToolbar *toolbar, int *width, char *filename, char *face) +sort_smileys(struct smiley_button_list *ls, GtkIMHtmlToolbar *toolbar, + int *width, const GtkIMHtmlSmiley *smiley) { GtkWidget *image; GtkWidget *button; GtkRequisition size; struct smiley_button_list *cur; struct smiley_button_list *it, *it_last; + const gchar *filename = smiley->file; + gchar *face = smiley->smile; + PurpleSmiley *psmiley = NULL; + gboolean supports_custom = (gtk_imhtml_get_format_functions(GTK_IMHTML(toolbar->imhtml)) & GTK_IMHTML_CUSTOM_SMILEY); cur = g_new0(struct smiley_button_list, 1); it = ls; @@ -626,6 +632,35 @@ image = gtk_image_new_from_file(filename); gtk_widget_size_request(image, &size); + + if (size.width > 24 && + smiley->flags & GTK_IMHTML_SMILEY_CUSTOM) { /* This is a custom smiley, let's scale it */ + GdkPixbuf *pixbuf = NULL; + GtkImageType type; + + type = gtk_image_get_storage_type(GTK_IMAGE(image)); + + if (type == GTK_IMAGE_PIXBUF) { + pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(image)); + } else if (type == GTK_IMAGE_ANIMATION) { + GdkPixbufAnimation *animation; + + animation = gtk_image_get_animation(GTK_IMAGE(image)); + + pixbuf = gdk_pixbuf_animation_get_static_image(animation); + } + + if (pixbuf != NULL) { + GdkPixbuf *resized; + resized = gdk_pixbuf_scale_simple(pixbuf, 24, 24, + GDK_INTERP_HYPER); + + gtk_image_set_from_pixbuf(GTK_IMAGE(image), resized); /* This unrefs pixbuf */ + gtk_widget_size_request(image, &size); + g_object_unref(G_OBJECT(resized)); + } + } + (*width) += size.width; button = gtk_button_new(); @@ -639,10 +674,28 @@ /* these look really weird with borders */ gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); + psmiley = purple_smileys_find_by_shortcut(smiley->smile); + /* If this is a "non-custom" smiley, check to see if its shortcut is + "shadowed" by any custom smiley. This can only happen if the connection + is custom smiley-enabled */ + if (supports_custom && psmiley && !(smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) { + gchar tip[128]; + g_snprintf(tip, sizeof(tip), + _("This smiley is disabled because a custom smiley exists for this shortcut:\n %s"), + face); + gtk_tooltips_set_tip(toolbar->tooltips, button, tip, NULL); + gtk_widget_set_sensitive(button, FALSE); + } else if (psmiley) { + /* Remove the button if the smiley is destroyed */ + g_signal_connect_object(G_OBJECT(psmiley), "destroy", G_CALLBACK(gtk_widget_destroy), + button, G_CONNECT_SWAPPED); + } + /* set current element to add */ cur->height = size.height; cur->width = size.width; cur->button = button; + cur->smiley = smiley; cur->next = ls; /* check where to insert by height */ @@ -661,7 +714,7 @@ smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { while (list) { - GtkIMHtmlSmiley *cur = list->data; + GtkIMHtmlSmiley *cur = (GtkIMHtmlSmiley *) list->data; if (!strcmp(cur->file, smiley->file)) return FALSE; list = list->next; @@ -675,7 +728,7 @@ if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_Escape) || (event->type == GDK_BUTTON_PRESS && event->button.button == 1)) { - close_smiley_dialog(NULL, NULL, toolbar); + close_smiley_dialog(toolbar); return TRUE; } @@ -683,11 +736,43 @@ } static void +add_smiley_list(GtkWidget *container, struct smiley_button_list *list, + int max_width, gboolean custom) +{ + GtkWidget *line; + int line_width = 0; + + if (!list) + return; + + line = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(container), line, FALSE, FALSE, 0); + for (; list; list = list->next) { + if (custom != !!(list->smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) + continue; + gtk_box_pack_start(GTK_BOX(line), list->button, FALSE, FALSE, 0); + gtk_widget_show(list->button); + line_width += list->width; + if (line_width >= max_width) { + if (list->next) { + line = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(container), line, FALSE, FALSE, 0); + } + line_width = 0; + } + } +} + +static void insert_smiley_cb(GtkWidget *smiley, GtkIMHtmlToolbar *toolbar) { - GtkWidget *dialog; + GtkWidget *dialog, *vbox; GtkWidget *smiley_table = NULL; GSList *smileys, *unique_smileys = NULL; + const GSList *custom_smileys = NULL; + gboolean supports_custom = FALSE; + GtkRequisition req; + GtkWidget *scrolled, *viewport; if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(smiley))) { destroy_smiley_dialog(toolbar); @@ -700,62 +785,81 @@ else smileys = pidgin_themes_get_proto_smileys(NULL); + /* Note: prepend smileys to list to avoid O(n^2) overhead when there is + a large number of smileys... need to revers the list after for the dialog + work... */ while(smileys) { - GtkIMHtmlSmiley *smiley = smileys->data; + GtkIMHtmlSmiley *smiley = (GtkIMHtmlSmiley *) smileys->data; if(!smiley->hidden) { - if(smiley_is_unique(unique_smileys, smiley)) - unique_smileys = g_slist_append(unique_smileys, smiley); + if(smiley_is_unique(unique_smileys, smiley)) { + unique_smileys = g_slist_prepend(unique_smileys, smiley); + } } smileys = smileys->next; } + supports_custom = (gtk_imhtml_get_format_functions(GTK_IMHTML(toolbar->imhtml)) & GTK_IMHTML_CUSTOM_SMILEY); + if (toolbar->imhtml && supports_custom) { + const GSList *iterator = NULL; + custom_smileys = pidgin_smileys_get_all(); + + for (iterator = custom_smileys ; iterator ; + iterator = g_slist_next(iterator)) { + GtkIMHtmlSmiley *smiley = (GtkIMHtmlSmiley *) iterator->data; + unique_smileys = g_slist_prepend(unique_smileys, smiley); + } + } + + /* we need to reverse the list to get the smileys in the correct order */ + unique_smileys = g_slist_reverse(unique_smileys); dialog = pidgin_create_dialog(_("Smile!"), 0, "smiley_dialog", FALSE); - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); + vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(dialog), FALSE, 0); if (unique_smileys != NULL) { - struct smiley_button_list *ls, *it, *it_tmp; - GtkWidget *line; - int line_width = 0; - int max_line_width, num_lines; - int col=0; + struct smiley_button_list *ls; + int max_line_width, num_lines, button_width = 0; /* We use hboxes packed in a vbox */ ls = NULL; - line = gtk_hbox_new(FALSE, 0); - line_width = 0; max_line_width = 0; num_lines = floor(sqrt(g_slist_length(unique_smileys))); smiley_table = gtk_vbox_new(FALSE, 0); + if (supports_custom) { + GtkWidget *manage = gtk_button_new_with_mnemonic(_("_Manage custom smileys")); + GtkRequisition req; + g_signal_connect(G_OBJECT(manage), "clicked", + G_CALLBACK(pidgin_smiley_manager_show), NULL); + g_signal_connect_swapped(G_OBJECT(manage), "clicked", + G_CALLBACK(gtk_widget_destroy), dialog); + gtk_box_pack_end(GTK_BOX(vbox), manage, FALSE, TRUE, 0); + gtk_widget_size_request(manage, &req); + button_width = req.width; + } + /* create list of smileys sorted by height */ while (unique_smileys) { - GtkIMHtmlSmiley *smiley = unique_smileys->data; + GtkIMHtmlSmiley *smiley = (GtkIMHtmlSmiley *) unique_smileys->data; if (!smiley->hidden) { - ls = sort_smileys(ls, toolbar, &max_line_width, smiley->file, smiley->smile); + ls = sort_smileys(ls, toolbar, &max_line_width, smiley); } unique_smileys = g_slist_delete_link(unique_smileys, unique_smileys); } + /* The window will be at least as wide as the 'Manage ..' button */ + max_line_width = MAX(button_width, max_line_width / num_lines); + /* pack buttons of the list */ - max_line_width = max_line_width / num_lines; - it = ls; - while (it != NULL) - { - it_tmp = it; - gtk_box_pack_start(GTK_BOX(line), it->button, FALSE, FALSE, 0); - gtk_widget_show(it->button); - line_width += it->width; - if (line_width >= max_line_width) { - gtk_box_pack_start(GTK_BOX(smiley_table), line, FALSE, FALSE, 0); - line = gtk_hbox_new(FALSE, 0); - line_width = 0; - col = 0; - } - col++; - it = it->next; - g_free(it_tmp); + add_smiley_list(smiley_table, ls, max_line_width, FALSE); + if (supports_custom) { + gtk_box_pack_start(GTK_BOX(smiley_table), gtk_hseparator_new(), TRUE, FALSE, 0); + add_smiley_list(smiley_table, ls, max_line_width, TRUE); } - gtk_box_pack_start(GTK_BOX(smiley_table), line, FALSE, TRUE, 0); + while (ls) { + struct smiley_button_list *tmp = ls->next; + g_free(ls); + ls = tmp; + } gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK); } @@ -765,19 +869,41 @@ g_signal_connect(G_OBJECT(dialog), "button-press-event", (GCallback)smiley_dialog_input_cb, toolbar); } - g_signal_connect(G_OBJECT(dialog), "key-press-event", (GCallback)smiley_dialog_input_cb, toolbar); - gtk_container_add(GTK_CONTAINER(pidgin_dialog_get_vbox(GTK_DIALOG(dialog))), smiley_table); + scrolled = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_NONE); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), + GTK_POLICY_NEVER, GTK_POLICY_NEVER); + gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0); + gtk_widget_show(scrolled); + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), smiley_table); gtk_widget_show(smiley_table); + viewport = gtk_widget_get_parent(smiley_table); + gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); + /* connect signals */ - g_signal_connect(G_OBJECT(dialog), "delete_event", - G_CALLBACK(close_smiley_dialog), toolbar); + g_signal_connect_swapped(G_OBJECT(dialog), "destroy", G_CALLBACK(close_smiley_dialog), toolbar); + g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(smiley_dialog_input_cb), toolbar); + + gtk_window_set_transient_for(GTK_WINDOW(dialog), + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(toolbar)))); /* show everything */ gtk_widget_show_all(dialog); - gtk_window_set_transient_for(GTK_WINDOW(dialog), - GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(toolbar)))); + + gtk_widget_size_request(viewport, &req); + gtk_widget_set_size_request(scrolled, MIN(300, req.width), MIN(290, req.height)); + + /* The window has to be made resizable, and the scrollbars in the scrolled window + * enabled only after setting the desired size of the window. If we do either of + * these tasks before now, GTK+ miscalculates the required size, and erronously + * makes one or both scrollbars visible (sometimes). + * I too think this hack is gross. But I couldn't find a better way -- sadrul */ + gtk_window_set_resizable(GTK_WINDOW(dialog), TRUE); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + #ifdef _WIN32 winpidgin_ensure_onscreen(dialog); #endif
--- a/pidgin/gtkmain.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkmain.c Thu Jun 26 09:07:56 2008 +0000 @@ -62,6 +62,7 @@ #include "gtkroomlist.h" #include "gtksavedstatuses.h" #include "gtksession.h" +#include "gtksmiley.h" #include "gtksound.h" #include "gtkthemes.h" #include "gtkutils.h" @@ -186,7 +187,6 @@ switch (sig) { case SIGHUP: purple_debug_warning("sighandler", "Caught signal %d\n", sig); - purple_connections_disconnect_all(); break; case SIGSEGV: fprintf(stderr, "%s", segfault_message); @@ -216,13 +216,7 @@ break; default: purple_debug_warning("sighandler", "Caught signal %d\n", sig); - purple_connections_disconnect_all(); - - purple_plugins_unload_all(); - - if (gtk_main_level()) - gtk_main_quit(); - exit(0); + purple_core_quit(); } } #endif @@ -315,6 +309,7 @@ pidgin_roomlist_init(); pidgin_log_init(); pidgin_docklet_init(); + pidgin_smileys_init(); } static GHashTable *ui_info = NULL; @@ -331,6 +326,7 @@ pidgin_plugins_save(); /* Uninit */ + pidgin_smileys_uninit(); pidgin_conversations_uninit(); pidgin_status_uninit(); pidgin_docklet_uninit();
--- a/pidgin/gtknotify.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtknotify.c Thu Jun 26 09:07:56 2008 +0000 @@ -596,8 +596,8 @@ if (!GTK_WIDGET_VISIBLE(dialog)) { GdkPixbuf *pixbuf = gtk_widget_render_icon(dialog, PIDGIN_STOCK_DIALOG_MAIL, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL), NULL); - char *label_text = g_strdup_printf(ngettext("<b>%d new e-mail.</b>", - "<b>%d new e-mails.</b>", + char *label_text = g_strdup_printf(ngettext("<b>%d new email.</b>", + "<b>%d new emails.</b>", mail_dialog->total_count), mail_dialog->total_count); mail_dialog->in_use = TRUE; /* So that _set_headline doesn't accidentally remove the notifications when replacing an
--- a/pidgin/gtkpounce.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkpounce.c Thu Jun 26 09:07:56 2008 +0000 @@ -100,6 +100,7 @@ GtkWidget *play_sound_entry; GtkWidget *play_sound_browse; GtkWidget *play_sound_test; + GtkWidget *play_sound_reset; GtkWidget *save_pounce; @@ -166,13 +167,26 @@ pounce_test_sound(GtkWidget *w, GtkWidget *entry) { const char *filename; + gboolean temp_mute; + + temp_mute = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/sound/mute"); + + if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", FALSE); filename = gtk_entry_get_text(GTK_ENTRY(entry)); - if (filename != NULL && *filename != '\0') + if (filename != NULL && *filename != '\0' && strcmp(filename, _("(default)"))) purple_sound_play_file(filename, NULL); else purple_sound_play_event(PURPLE_SOUND_POUNCE_DEFAULT, NULL); + + if (temp_mute) purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/sound/mute", TRUE); +} + +static void +pounce_reset_sound(GtkWidget *w, GtkWidget *entry) +{ + gtk_entry_set_text(GTK_ENTRY(entry), _("(default)")); } static void @@ -304,7 +318,7 @@ message = NULL; } if (*command == '\0') command = NULL; - if (*sound == '\0') sound = NULL; + if (*sound == '\0' || !strcmp(sound, _("(default)"))) sound = NULL; /* If the pounce has already been triggered, let's pretend it is a new one */ if (dialog->pounce != NULL @@ -652,7 +666,7 @@ /* Create the "Action" frame. */ frame = pidgin_make_frame(vbox2, _("Action")); - table = gtk_table_new(3, 5, FALSE); + table = gtk_table_new(3, 6, FALSE); gtk_container_add(GTK_CONTAINER(frame), table); gtk_table_set_col_spacings(GTK_TABLE(table), PIDGIN_HIG_BORDER); gtk_widget_show(table); @@ -674,8 +688,11 @@ dialog->popup_entry = gtk_entry_new(); dialog->exec_cmd_browse = gtk_button_new_with_mnemonic(_("Brows_e...")); dialog->play_sound_entry = gtk_entry_new(); + gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), _("(default)")); + gtk_editable_set_editable(GTK_EDITABLE(dialog->play_sound_entry), FALSE); dialog->play_sound_browse = gtk_button_new_with_mnemonic(_("Br_owse...")); dialog->play_sound_test = gtk_button_new_with_mnemonic(_("Pre_view")); + dialog->play_sound_reset = gtk_button_new_with_mnemonic(_("Reset")); gtk_widget_set_sensitive(send_msg_imhtml, FALSE); gtk_widget_set_sensitive(dialog->exec_cmd_entry, FALSE); @@ -684,6 +701,7 @@ gtk_widget_set_sensitive(dialog->play_sound_entry, FALSE); gtk_widget_set_sensitive(dialog->play_sound_browse, FALSE); gtk_widget_set_sensitive(dialog->play_sound_test, FALSE); + gtk_widget_set_sensitive(dialog->play_sound_reset, FALSE); g_object_unref(sg); @@ -698,6 +716,7 @@ gtk_size_group_add_widget(sg, dialog->play_sound_entry); gtk_size_group_add_widget(sg, dialog->play_sound_browse); gtk_size_group_add_widget(sg, dialog->play_sound_test); + gtk_size_group_add_widget(sg, dialog->play_sound_reset); g_object_unref(sg); sg = NULL; @@ -706,11 +725,11 @@ GTK_FILL, 0, 0, 0); gtk_table_attach(GTK_TABLE(table), dialog->popup, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); - gtk_table_attach(GTK_TABLE(table), dialog->popup_entry, 1, 4, 1, 2, + gtk_table_attach(GTK_TABLE(table), dialog->popup_entry, 1, 5, 1, 2, GTK_FILL, 0, 0, 0); - gtk_table_attach(GTK_TABLE(table), dialog->send_msg, 0, 4, 2, 3, + gtk_table_attach(GTK_TABLE(table), dialog->send_msg, 0, 5, 2, 3, GTK_FILL, 0, 0, 0); - gtk_table_attach(GTK_TABLE(table), send_msg_imhtml, 0, 4, 3, 4, + gtk_table_attach(GTK_TABLE(table), send_msg_imhtml, 0, 5, 3, 4, GTK_FILL, 0, 0, 0); gtk_table_attach(GTK_TABLE(table), dialog->exec_cmd, 0, 1, 4, 5, GTK_FILL, 0, 0, 0); @@ -726,6 +745,8 @@ GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_table_attach(GTK_TABLE(table), dialog->play_sound_test, 3, 4, 5, 6, GTK_FILL | GTK_EXPAND, 0, 0, 0); + gtk_table_attach(GTK_TABLE(table), dialog->play_sound_reset, 4, 5, 5, 6, + GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_table_set_row_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE / 2); @@ -741,6 +762,7 @@ gtk_widget_show(dialog->play_sound_entry); gtk_widget_show(dialog->play_sound_browse); gtk_widget_show(dialog->play_sound_test); + gtk_widget_show(dialog->play_sound_reset); g_signal_connect(G_OBJECT(dialog->message_recv), "clicked", G_CALLBACK(message_recv_toggle), @@ -771,6 +793,7 @@ g_ptr_array_add(sound_widgets,dialog->play_sound_entry); g_ptr_array_add(sound_widgets,dialog->play_sound_browse); g_ptr_array_add(sound_widgets,dialog->play_sound_test); + g_ptr_array_add(sound_widgets,dialog->play_sound_reset); g_signal_connect(G_OBJECT(dialog->play_sound), "clicked", G_CALLBACK(pidgin_toggle_sensitive_array), @@ -781,6 +804,9 @@ g_signal_connect(G_OBJECT(dialog->play_sound_test), "clicked", G_CALLBACK(pounce_test_sound), dialog->play_sound_entry); + g_signal_connect(G_OBJECT(dialog->play_sound_reset), "clicked", + G_CALLBACK(pounce_reset_sound), + dialog->play_sound_entry); g_object_set_data_full(G_OBJECT(dialog->window), "sound-widgets", sound_widgets, (GDestroyNotify)g_ptr_array_free); @@ -795,8 +821,6 @@ G_CALLBACK(save_pounce_cb), dialog); g_signal_connect(G_OBJECT(dialog->exec_cmd_entry), "activate", G_CALLBACK(save_pounce_cb), dialog); - g_signal_connect(G_OBJECT(dialog->play_sound_entry), "activate", - G_CALLBACK(save_pounce_cb), dialog); /* Create the "Options" frame. */ frame = pidgin_make_frame(vbox2, _("Options")); @@ -924,7 +948,7 @@ "play-sound", "filename")) != NULL) { - gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), value); + gtk_entry_set_text(GTK_ENTRY(dialog->play_sound_entry), (value && *value != '\0') ? value : _("(default)")); } } else
--- a/pidgin/gtkprefs.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkprefs.c Thu Jun 26 09:07:56 2008 +0000 @@ -2001,18 +2001,18 @@ gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE); gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, PIDGIN_HIG_BOX_SPACE); - button = gtk_button_new_with_label(_("Test")); + button = gtk_button_new_with_mnemonic(_("_Browse...")); + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_sound), NULL); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); + + button = gtk_button_new_with_mnemonic(_("Pre_view")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); - button = gtk_button_new_with_label(_("Reset")); + button = gtk_button_new_with_mnemonic(_("_Reset")); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); - button = gtk_button_new_with_label(_("Choose...")); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_sound), NULL); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); - gtk_widget_show_all(ret); g_object_unref(sg);
--- a/pidgin/gtksavedstatuses.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtksavedstatuses.c Thu Jun 26 09:07:56 2008 +0000 @@ -59,6 +59,7 @@ STATUS_WINDOW_COLUMN_MESSAGE, /** A hidden column containing a pointer to the editor for this saved status. */ STATUS_WINDOW_COLUMN_WINDOW, + STATUS_WINDOW_COLUMN_ICON, STATUS_WINDOW_NUM_COLUMNS }; @@ -80,6 +81,7 @@ STATUS_EDITOR_COLUMN_STATUS_ID, STATUS_EDITOR_COLUMN_STATUS_NAME, STATUS_EDITOR_COLUMN_STATUS_MESSAGE, + STATUS_EDITOR_COLUMN_STATUS_ICON, STATUS_EDITOR_NUM_COLUMNS }; @@ -392,12 +394,35 @@ g_list_free(sel_paths); } +static const gchar * +get_stock_icon_from_primitive(PurpleStatusPrimitive type) +{ + switch (type) { + case PURPLE_STATUS_AVAILABLE: + return PIDGIN_STOCK_STATUS_AVAILABLE; + case PURPLE_STATUS_AWAY: + return PIDGIN_STOCK_STATUS_AWAY; + case PURPLE_STATUS_EXTENDED_AWAY: + return PIDGIN_STOCK_STATUS_XA; + case PURPLE_STATUS_INVISIBLE: + return PIDGIN_STOCK_STATUS_INVISIBLE; + case PURPLE_STATUS_OFFLINE: + return PIDGIN_STOCK_STATUS_OFFLINE; + case PURPLE_STATUS_UNAVAILABLE: + return PIDGIN_STOCK_STATUS_BUSY; + default: + /* this shouldn't happen */ + return NULL; + } +} + static void add_status_to_saved_status_list(GtkListStore *model, PurpleSavedStatus *saved_status) { GtkTreeIter iter; const char *title; const char *type; + const gchar *icon; char *message; if (purple_savedstatus_is_transient(saved_status)) @@ -406,14 +431,16 @@ title = purple_savedstatus_get_title(saved_status); type = purple_primitive_get_name_from_type(purple_savedstatus_get_type(saved_status)); message = purple_markup_strip_html(purple_savedstatus_get_message(saved_status)); + icon = get_stock_icon_from_primitive(purple_savedstatus_get_type(saved_status)); gtk_list_store_append(model, &iter); gtk_list_store_set(model, &iter, + STATUS_WINDOW_COLUMN_ICON, icon, STATUS_WINDOW_COLUMN_TITLE, title, STATUS_WINDOW_COLUMN_TYPE, type, STATUS_WINDOW_COLUMN_MESSAGE, message, -1); - free(message); + g_free(message); } static void @@ -479,7 +506,8 @@ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_POINTER); + G_TYPE_POINTER, + G_TYPE_STRING); /* Create the treeview */ treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); @@ -517,6 +545,10 @@ gtk_tree_view_column_set_sort_column_id(column, STATUS_WINDOW_COLUMN_TYPE); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); + renderer = gtk_cell_renderer_pixbuf_new(); + gtk_tree_view_column_pack_start(column, renderer, TRUE); + gtk_tree_view_column_add_attribute(column, renderer, "stock-id", + STATUS_WINDOW_COLUMN_ICON); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_add_attribute(column, renderer, "text", @@ -717,8 +749,8 @@ } -static gboolean -status_editor_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) +static void +status_editor_destroy_cb(GtkWidget *widget, gpointer user_data) { StatusEditor *dialog = user_data; @@ -726,19 +758,13 @@ g_free(dialog->original_title); g_object_unref(G_OBJECT(dialog->model)); g_free(dialog); - - return FALSE; } static void status_editor_cancel_cb(GtkButton *button, gpointer user_data) { StatusEditor *dialog = user_data; - - status_editor_remove_dialog(dialog); gtk_widget_destroy(dialog->window); - g_free(dialog->original_title); - g_free(dialog); } static void @@ -842,20 +868,11 @@ g_free(message); g_free(unformatted); - status_editor_remove_dialog(dialog); - gtk_widget_destroy(dialog->window); - g_free(dialog->original_title); - -/* - if (status_window != NULL) - add_status_to_saved_status_list(status_window->model, saved_status); -*/ - /* If they clicked on "Save & Use" or "Use," then activate the status */ if (button != dialog->save_button) purple_savedstatus_activate(saved_status); - g_free(dialog); + gtk_widget_destroy(dialog->window); } static void @@ -871,6 +888,26 @@ } static GtkWidget * +create_stock_item(const gchar *str, const gchar *icon) +{ + GtkWidget *menuitem = gtk_menu_item_new(); + GtkWidget *label = gtk_label_new_with_mnemonic(str); + GtkWidget *hbox = gtk_hbox_new(FALSE, 4); + GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL); + GtkWidget *image = gtk_image_new_from_stock(icon, icon_size);; + + gtk_widget_show(label); + gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); + + gtk_container_add(GTK_CONTAINER(menuitem), hbox); + + return menuitem; +} + +static GtkWidget * create_status_type_menu(PurpleStatusPrimitive type) { int i; @@ -889,7 +926,9 @@ * status types, so don't show them in the list. */ continue; - item = gtk_menu_item_new_with_label(purple_primitive_get_name_from_type(i)); + + item = create_stock_item(purple_primitive_get_name_from_type(i), + get_stock_icon_from_primitive(i)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); } @@ -945,6 +984,7 @@ STATUS_EDITOR_COLUMN_STATUS_ID, NULL, STATUS_EDITOR_COLUMN_STATUS_NAME, NULL, STATUS_EDITOR_COLUMN_STATUS_MESSAGE, NULL, + STATUS_EDITOR_COLUMN_STATUS_ICON, NULL, -1); } } @@ -990,6 +1030,10 @@ gtk_tree_view_column_set_title(column, _("Status")); gtk_tree_view_insert_column(GTK_TREE_VIEW(dialog->treeview), column, -1); gtk_tree_view_column_set_resizable(column, TRUE); + renderer = gtk_cell_renderer_pixbuf_new(); + gtk_tree_view_column_pack_start(column, renderer, FALSE); + gtk_tree_view_column_add_attribute(column, renderer, "stock-id", + STATUS_EDITOR_COLUMN_STATUS_ICON); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_add_attribute(column, renderer, "text", @@ -1016,6 +1060,7 @@ { GdkPixbuf *pixbuf; const char *id = NULL, *name = NULL, *message = NULL; + PurpleStatusPrimitive prim = PURPLE_STATUS_UNSET; pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM); if ((pixbuf != NULL) && !purple_account_is_connected(account)) @@ -1030,6 +1075,7 @@ type = purple_savedstatus_substatus_get_type(substatus); id = purple_status_type_get_id(type); name = purple_status_type_get_name(type); + prim = purple_status_type_get_primitive(type); if (purple_status_type_get_attr(type, "message")) message = purple_savedstatus_substatus_get_message(substatus); } @@ -1042,6 +1088,7 @@ STATUS_EDITOR_COLUMN_STATUS_ID, id, STATUS_EDITOR_COLUMN_STATUS_NAME, name, STATUS_EDITOR_COLUMN_STATUS_MESSAGE, message, + STATUS_EDITOR_COLUMN_STATUS_ICON, get_stock_icon_from_primitive(prim), -1); if (pixbuf != NULL) @@ -1133,7 +1180,7 @@ dialog->window = win = pidgin_create_dialog(_("Status"), PIDGIN_HIG_BORDER, "status", TRUE); - g_signal_connect(G_OBJECT(win), "delete_event", + g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(status_editor_destroy_cb), dialog); /* Setup the vbox */ @@ -1198,6 +1245,7 @@ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_STRING); /* Create the treeview */ @@ -1325,25 +1373,20 @@ } } -static gboolean -substatus_editor_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) +static void +substatus_editor_destroy_cb(GtkWidget *widget, gpointer user_data) { SubStatusEditor *dialog = user_data; substatus_editor_remove_dialog(dialog); g_free(dialog); - - return FALSE; } static void substatus_editor_cancel_cb(GtkButton *button, gpointer user_data) { SubStatusEditor *dialog = user_data; - - substatus_editor_remove_dialog(dialog); gtk_widget_destroy(dialog->window); - g_free(dialog); } @@ -1356,12 +1399,11 @@ PurpleStatusType *type; char *id = NULL; char *message = NULL; - const char *name = NULL; + const char *name = NULL, *stock = NULL; if (!gtk_combo_box_get_active_iter(dialog->box, &iter)) { gtk_widget_destroy(dialog->window); - g_free(dialog); return; } @@ -1372,6 +1414,7 @@ if (purple_status_type_get_attr(type, "message") != NULL) message = gtk_imhtml_get_markup(GTK_IMHTML(dialog->message)); name = purple_status_type_get_name(type); + stock = get_stock_icon_from_primitive(purple_status_type_get_primitive(type)); status_editor = dialog->status_editor; @@ -1383,13 +1426,13 @@ STATUS_EDITOR_COLUMN_STATUS_NAME, name, STATUS_EDITOR_COLUMN_STATUS_MESSAGE, message, STATUS_EDITOR_COLUMN_WINDOW, NULL, + STATUS_EDITOR_COLUMN_STATUS_ICON, stock, -1); } gtk_widget_destroy(dialog->window); g_free(id); g_free(message); - g_free(dialog); } static void @@ -1438,7 +1481,7 @@ dialog->window = win = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "substatus", TRUE); g_free(tmp); - g_signal_connect(G_OBJECT(win), "delete_event", + g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(substatus_editor_destroy_cb), dialog); /* Setup the vbox */ @@ -1679,6 +1722,96 @@ return currently_selected; } +static void +pidgin_status_menu_update_iter(GtkWidget *combobox, GtkListStore *store, GtkTreeIter *iter, + PurpleSavedStatus *status) +{ + GdkPixbuf *pixbuf; + + if (store == NULL) + store = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(combobox))); + + pixbuf = pidgin_create_status_icon(purple_savedstatus_get_type(status), + combobox, PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL); + gtk_list_store_set(store, iter, + SS_MENU_TYPE_COLUMN, SS_MENU_ENTRY_TYPE_SAVEDSTATUS, + SS_MENU_ICON_COLUMN, pixbuf, + SS_MENU_TEXT_COLUMN, purple_savedstatus_get_title(status), + SS_MENU_DATA_COLUMN, GINT_TO_POINTER(purple_savedstatus_get_creation_time(status)), + SS_MENU_EMBLEM_COLUMN, GTK_STOCK_SAVE, + SS_MENU_EMBLEM_VISIBLE_COLUMN, TRUE, + -1); + if (pixbuf) + g_object_unref(G_OBJECT(pixbuf)); +} + +static gboolean +pidgin_status_menu_find_iter(GtkListStore *store, GtkTreeIter *iter, PurpleSavedStatus *find) +{ + int type; + gpointer data; + time_t creation_time = purple_savedstatus_get_creation_time(find); + GtkTreeModel *model = GTK_TREE_MODEL(store); + + if (!gtk_tree_model_get_iter_first(model, iter)) + return FALSE; + + do { + gtk_tree_model_get(model, iter, + SS_MENU_TYPE_COLUMN, &type, + SS_MENU_DATA_COLUMN, &data, + -1); + if (type == SS_MENU_ENTRY_TYPE_PRIMITIVE) + continue; + if (GPOINTER_TO_INT(data) == creation_time) + return TRUE; + } while (gtk_tree_model_iter_next(model, iter)); + + return FALSE; +} + +static void +savedstatus_added_cb(PurpleSavedStatus *status, GtkWidget *combobox) +{ + GtkListStore *store; + GtkTreeIter iter; + + if (purple_savedstatus_is_transient(status)) + return; + + store = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(combobox))); + gtk_list_store_append(store, &iter); + pidgin_status_menu_update_iter(combobox, store, &iter, status); +} + +static void +savedstatus_deleted_cb(PurpleSavedStatus *status, GtkWidget *combobox) +{ + GtkListStore *store; + GtkTreeIter iter; + + if (purple_savedstatus_is_transient(status)) + return; + + store = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(combobox))); + if (pidgin_status_menu_find_iter(store, &iter, status)) + gtk_list_store_remove(store, &iter); +} + +static void +savedstatus_modified_cb(PurpleSavedStatus *status, GtkWidget *combobox) +{ + GtkListStore *store; + GtkTreeIter iter; + + if (purple_savedstatus_is_transient(status)) + return; + + store = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(combobox))); + if (pidgin_status_menu_find_iter(store, &iter, status)) + pidgin_status_menu_update_iter(combobox, store, &iter, status); +} + GtkWidget *pidgin_status_menu(PurpleSavedStatus *current_status, GCallback callback) { GtkWidget *combobox; @@ -1686,7 +1819,6 @@ GList *sorted, *cur; int i = 0; int index = -1; - GdkPixbuf *pixbuf; GtkTreeIter iter; GtkCellRenderer *text_rend; GtkCellRenderer *icon_rend; @@ -1720,18 +1852,9 @@ PurpleSavedStatus *status = (PurpleSavedStatus *) cur->data; if (!purple_savedstatus_is_transient(status)) { - pixbuf = pidgin_create_status_icon(purple_savedstatus_get_type(status), - combobox, PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL); gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, - SS_MENU_TYPE_COLUMN, SS_MENU_ENTRY_TYPE_SAVEDSTATUS, - SS_MENU_ICON_COLUMN, pixbuf, - SS_MENU_TEXT_COLUMN, purple_savedstatus_get_title(status), - SS_MENU_DATA_COLUMN, GINT_TO_POINTER(purple_savedstatus_get_creation_time(status)), - SS_MENU_EMBLEM_COLUMN, GTK_STOCK_SAVE, - SS_MENU_EMBLEM_VISIBLE_COLUMN, TRUE, - -1); - g_object_unref(G_OBJECT(pixbuf)); + + pidgin_status_menu_update_iter(combobox, model, &iter, status); if (status == current_status) index = i; @@ -1756,6 +1879,17 @@ gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), index); g_signal_connect(G_OBJECT(combobox), "changed", G_CALLBACK(status_menu_cb), callback); + /* Make sure the list is updated dynamically when a substatus is changed/deleted + * or a new one is added. */ + purple_signal_connect(purple_savedstatuses_get_handle(), "savedstatus-added", + combobox, G_CALLBACK(savedstatus_added_cb), combobox); + purple_signal_connect(purple_savedstatuses_get_handle(), "savedstatus-deleted", + combobox, G_CALLBACK(savedstatus_deleted_cb), combobox); + purple_signal_connect(purple_savedstatuses_get_handle(), "savedstatus-modified", + combobox, G_CALLBACK(savedstatus_modified_cb), combobox); + g_signal_connect(G_OBJECT(combobox), "destroy", + G_CALLBACK(purple_signals_disconnect_by_handle), NULL); + return combobox; }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/gtksmiley.c Thu Jun 26 09:07:56 2008 +0000 @@ -0,0 +1,721 @@ +/** + * @file gtksmiley.c GTK+ Smiley Manager API + * @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 "pidgin.h" + +#include "debug.h" +#include "notify.h" +#include "smiley.h" + +#include "gtkimhtml.h" +#include "gtksmiley.h" +#include "gtkutils.h" +#include "pidginstock.h" + +#define PIDGIN_RESPONSE_EDIT 1000 + +struct _PidginSmiley +{ + PurpleSmiley *smiley; + GtkWidget *parent; + GtkWidget *smile; + GtkWidget *smiley_image; + gchar *filename; + GdkPixbuf *custom_pixbuf; +}; + +typedef struct +{ + GtkWidget *window; + + GtkWidget *treeview; + GtkListStore *model; +} SmileyManager; + +enum +{ + ICON, + SHORTCUT, + SMILEY, + N_COL +}; + +static SmileyManager *smiley_manager = NULL; +static GSList *gtk_smileys = NULL; + +static void +pidgin_smiley_destroy(PidginSmiley *smiley) +{ + gtk_widget_destroy(smiley->parent); + g_free(smiley->filename); + if (smiley->custom_pixbuf) + gdk_pixbuf_unref(smiley->custom_pixbuf); + g_free(smiley); +} + +/****************************************************************************** + * GtkIMHtmlSmileys stuff + *****************************************************************************/ +/* Perhaps these should be in gtkimhtml.c instead. -- sadrul */ +static void add_gtkimhtml_to_list(GtkIMHtmlSmiley *gtksmiley) +{ + gtk_smileys = g_slist_prepend(gtk_smileys, gtksmiley); + + purple_debug_info("gtksmiley", "adding %s to gtk_smileys\n", gtksmiley->smile); +} + +static void +shortcut_changed_cb(PurpleSmiley *smiley, gpointer dontcare, GtkIMHtmlSmiley *gtksmiley) +{ + g_free(gtksmiley->smile); + gtksmiley->smile = g_strdup(purple_smiley_get_shortcut(smiley)); +} + +static void +image_changed_cb(PurpleSmiley *smiley, gpointer dontcare, GtkIMHtmlSmiley *gtksmiley) +{ + const char *file; + + g_free(gtksmiley->file); + + file = purple_imgstore_get_filename(purple_smiley_get_stored_image(smiley)); + gtksmiley->file = g_build_filename(purple_smileys_get_storing_dir(), file, NULL); + gtk_imhtml_smiley_reload(gtksmiley); +} + +static GtkIMHtmlSmiley *smiley_purple_to_gtkimhtml(PurpleSmiley *smiley) +{ + GtkIMHtmlSmiley *gtksmiley; + gchar *filename; + const gchar *file; + + file = purple_imgstore_get_filename(purple_smiley_get_stored_image(smiley)); + + filename = g_build_filename(purple_smileys_get_storing_dir(), file, NULL); + + gtksmiley = gtk_imhtml_smiley_create(filename, purple_smiley_get_shortcut(smiley), + FALSE, GTK_IMHTML_SMILEY_CUSTOM); + g_free(filename); + + /* Make sure the shortcut for the GtkIMHtmlSmiley is updated with the PurpleSmiley */ + g_signal_connect(G_OBJECT(smiley), "notify::shortcut", + G_CALLBACK(shortcut_changed_cb), gtksmiley); + + /* And update the pixbuf too when the image is changed */ + g_signal_connect(G_OBJECT(smiley), "notify::image", + G_CALLBACK(image_changed_cb), gtksmiley); + + return gtksmiley; +} + +void pidgin_smiley_del_from_list(PurpleSmiley *smiley) +{ + GSList *list = NULL; + GtkIMHtmlSmiley *gtksmiley; + + if (gtk_smileys == NULL) + return; + + list = gtk_smileys; + + for (; list; list = list->next) { + gtksmiley = (GtkIMHtmlSmiley*)list->data; + + if (strcmp(gtksmiley->smile, purple_smiley_get_shortcut(smiley))) + continue; + + gtk_imhtml_smiley_destroy(gtksmiley); + g_signal_handlers_disconnect_matched(G_OBJECT(smiley), G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, gtksmiley); + break; + } + + if (list) + gtk_smileys = g_slist_delete_link(gtk_smileys, list); +} + +void pidgin_smiley_add_to_list(PurpleSmiley *smiley) +{ + GtkIMHtmlSmiley *gtksmiley; + + gtksmiley = smiley_purple_to_gtkimhtml(smiley); + add_gtkimhtml_to_list(gtksmiley); + g_signal_connect(G_OBJECT(smiley), "destroy", G_CALLBACK(pidgin_smiley_del_from_list), NULL); +} + +void pidgin_smileys_init(void) +{ + GList *smileys; + PurpleSmiley *smiley; + + if (gtk_smileys != NULL) + return; + + smileys = purple_smileys_get_all(); + + for (; smileys; smileys = g_list_delete_link(smileys, smileys)) { + smiley = (PurpleSmiley*)smileys->data; + + pidgin_smiley_add_to_list(smiley); + } +} + +void pidgin_smileys_uninit(void) +{ + GSList *list; + GtkIMHtmlSmiley *gtksmiley; + + list = gtk_smileys; + + if (list == NULL) + return; + + for (; list; list = g_slist_delete_link(list, list)) { + gtksmiley = (GtkIMHtmlSmiley*)list->data; + gtk_imhtml_smiley_destroy(gtksmiley); + } + + gtk_smileys = NULL; +} + +GSList *pidgin_smileys_get_all(void) +{ + return gtk_smileys; +} + +/****************************************************************************** + * Manager stuff + *****************************************************************************/ + +static void refresh_list(void); + +/****************************************************************************** + * The Add dialog + ******************************************************************************/ + +static void do_add(GtkWidget *widget, PidginSmiley *s) +{ + const gchar *entry; + PurpleSmiley *emoticon; + + entry = gtk_entry_get_text(GTK_ENTRY(s->smile)); + emoticon = purple_smileys_find_by_shortcut(entry); + if (emoticon && emoticon != s->smiley) { + purple_notify_error(s->parent, _("Custom Smiley"), + _("Duplicate Shortcut"), + _("A custom smiley for the selected shortcut already exists. Please specify a different shortcut.")); + return; + } + + if (s->smiley) { + if (s->filename) { + gchar *data = NULL; + size_t len; + GError *err = NULL; + + if (!g_file_get_contents(s->filename, &data, &len, &err)) { + purple_debug_error("gtksmiley", "Error reading %s: %s\n", + s->filename, err->message); + g_error_free(err); + + return; + } + purple_smiley_set_data(s->smiley, (guchar*)data, len); + } + purple_smiley_set_shortcut(s->smiley, entry); + } else { + if ((s->filename == NULL && s->custom_pixbuf == NULL) + || *entry == 0) { + purple_notify_error(s->parent, _("Custom Smiley"), + _("More Data needed"), + s->filename ? _("Please provide a shortcut to associate with the smiley.") + : _("Please select an image for the smiley.")); + return; + } + + 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; + + gdk_pixbuf_save_to_bufferv(s->custom_pixbuf, &buffer, &size, + "png", NULL, NULL, NULL); + filename = purple_util_get_image_filename(buffer, size); + s->filename = g_build_filename(purple_smileys_get_storing_dir(), filename, NULL); + purple_util_write_data_to_file_absolute(s->filename, buffer, size); + g_free(filename); + g_free(buffer); + } + emoticon = purple_smiley_new_from_file(entry, s->filename); + pidgin_smiley_add_to_list(emoticon); + } + + if (smiley_manager != NULL) + refresh_list(); + + gtk_widget_destroy(s->parent); +} + +static void do_add_select_cb(GtkWidget *widget, gint resp, PidginSmiley *s) +{ + switch (resp) { + case GTK_RESPONSE_ACCEPT: + do_add(widget, s); + break; + case GTK_RESPONSE_DELETE_EVENT: + case GTK_RESPONSE_CANCEL: + gtk_widget_destroy(s->parent); + break; + default: + purple_debug_error("gtksmiley", "no valid response\n"); + break; + } +} + +static void do_add_file_cb(const char *filename, gpointer data) +{ + PidginSmiley *s = data; + GdkPixbuf *pixbuf; + + if (!filename) + return; + + g_free(s->filename); + s->filename = g_strdup(filename); + pixbuf = gdk_pixbuf_new_from_file_at_scale(filename, 64, 64, FALSE, NULL); + gtk_image_set_from_pixbuf(GTK_IMAGE(s->smiley_image), pixbuf); + if (pixbuf) + gdk_pixbuf_unref(pixbuf); + gtk_widget_grab_focus(s->smile); +} + +static void +open_image_selector(GtkWidget *widget, PidginSmiley *psmiley) +{ + GtkWidget *file_chooser; + file_chooser = pidgin_buddy_icon_chooser_new(GTK_WINDOW(gtk_widget_get_toplevel(widget)), + do_add_file_cb, psmiley); + gtk_window_set_title(GTK_WINDOW(file_chooser), _("Custom Smiley")); + gtk_window_set_role(GTK_WINDOW(file_chooser), "file-selector-custom-smiley"); + gtk_widget_show_all(file_chooser); +} + +PidginSmiley * +pidgin_smiley_edit(GtkWidget *widget, PurpleSmiley *smiley) +{ + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *filech; + GtkWidget *window; + GdkPixbuf *pixbuf = NULL; + PurpleStoredImage *stored_img; + + PidginSmiley *s = g_new0(PidginSmiley, 1); + s->smiley = smiley; + + window = gtk_dialog_new_with_buttons(smiley ? _("Edit Smiley") : _("Add Smiley"), + widget ? GTK_WINDOW(widget) : NULL, + GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + smiley ? GTK_STOCK_SAVE : GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, + NULL); + s->parent = window; + + gtk_container_set_border_width(GTK_CONTAINER(window), PIDGIN_HIG_BORDER); + + g_signal_connect(window, "response", G_CALLBACK(do_add_select_cb), s); + + /* The vbox */ + vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), vbox); + gtk_widget_show(vbox); + + /* The hbox */ + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); + gtk_container_add(GTK_CONTAINER(GTK_VBOX(vbox)), hbox); + + label = gtk_label_new_with_mnemonic(_("Smiley _Image")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + gtk_widget_show(label); + + filech = gtk_button_new(); + gtk_box_pack_end(GTK_BOX(hbox), filech, FALSE, FALSE, 0); + pidgin_set_accessible_label(filech, label); + + s->smiley_image = gtk_image_new(); + gtk_container_add(GTK_CONTAINER(filech), s->smiley_image); + if (smiley && (stored_img = purple_smiley_get_stored_image(smiley))) { + pixbuf = pidgin_pixbuf_from_imgstore(stored_img); + purple_imgstore_unref(stored_img); + } else { + GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL); + pixbuf = gtk_widget_render_icon(window, PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, + icon_size, "PidginSmiley"); + } + + gtk_image_set_from_pixbuf(GTK_IMAGE(s->smiley_image), pixbuf); + if (pixbuf != NULL) + g_object_unref(G_OBJECT(pixbuf)); + g_signal_connect(G_OBJECT(filech), "clicked", G_CALLBACK(open_image_selector), s); + + gtk_widget_show_all(hbox); + + /* info */ + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); + gtk_container_add(GTK_CONTAINER(GTK_VBOX(vbox)),hbox); + + /* Smiley shortcut */ + label = gtk_label_new_with_mnemonic(_("Smiley S_hortcut")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + gtk_widget_show(label); + + s->smile = gtk_entry_new(); + gtk_entry_set_activates_default(GTK_ENTRY(s->smile), TRUE); + pidgin_set_accessible_label(s->smile, label); + if (smiley) + gtk_entry_set_text(GTK_ENTRY(s->smile), purple_smiley_get_shortcut(smiley)); + + g_signal_connect(s->smile, "activate", G_CALLBACK(do_add), s); + + gtk_box_pack_end(GTK_BOX(hbox), s->smile, FALSE, FALSE, 0); + gtk_widget_show(s->smile); + + gtk_widget_show(hbox); + + gtk_widget_show(GTK_WIDGET(window)); + g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(pidgin_smiley_destroy), s); + g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(purple_notify_close_with_handle), s); + + return s; +} + +void +pidgin_smiley_editor_set_shortcut(PidginSmiley *editor, const gchar *shortcut) +{ + gtk_entry_set_text(GTK_ENTRY(editor->smile), shortcut ? shortcut : ""); +} + +void +pidgin_smiley_editor_set_image(PidginSmiley *editor, GdkPixbuf *image) +{ + if (editor->custom_pixbuf) + gdk_pixbuf_unref(editor->custom_pixbuf); + editor->custom_pixbuf = image ? gdk_pixbuf_ref(image) : NULL; + if (image) + gtk_image_set_from_pixbuf(GTK_IMAGE(editor->smiley_image), image); +} + +/****************************************************************************** + * Delete smiley + *****************************************************************************/ +static void delete_foreach(GtkTreeModel *model, GtkTreePath *path, + GtkTreeIter *iter, gpointer data) +{ + PurpleSmiley *smiley = NULL; + SmileyManager *dialog; + + dialog = (SmileyManager*)data; + + gtk_tree_model_get(model, iter, + SMILEY, &smiley, + -1); + + if(smiley != NULL) { + g_object_unref(G_OBJECT(smiley)); + pidgin_smiley_del_from_list(smiley); + purple_smiley_delete(smiley); + } +} + +static void append_to_list(GtkTreeModel *model, GtkTreePath *path, + GtkTreeIter *iter, gpointer data) +{ + GList **list = data; + *list = g_list_prepend(*list, gtk_tree_path_copy(path)); +} + +static void smiley_delete(SmileyManager *dialog) +{ + GtkTreeSelection *selection; + GList *list = NULL; + + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); + gtk_tree_selection_selected_foreach(selection, delete_foreach, dialog); + gtk_tree_selection_selected_foreach(selection, append_to_list, &list); + + while (list) { + GtkTreeIter iter; + if (gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, list->data)) + gtk_list_store_remove(GTK_LIST_STORE(dialog->model), &iter); + gtk_tree_path_free(list->data); + list = g_list_delete_link(list, list); + } +} +/****************************************************************************** + * The Smiley Manager + *****************************************************************************/ +static void add_columns(GtkWidget *treeview, SmileyManager *dialog) +{ + GtkCellRenderer *rend; + GtkTreeViewColumn *column; + + /* Icon */ + column = gtk_tree_view_column_new(); + gtk_tree_view_column_set_title(column, _("Smiley")); + gtk_tree_view_column_set_resizable(column, TRUE); + gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); + + rend = gtk_cell_renderer_pixbuf_new(); + gtk_tree_view_column_pack_start(column, rend, FALSE); + gtk_tree_view_column_add_attribute(column, rend, "pixbuf", ICON); + + /* Shortcut */ + column = gtk_tree_view_column_new(); + gtk_tree_view_column_set_title(column, _("Shortcut")); + gtk_tree_view_column_set_resizable(column, TRUE); + gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); + + rend = gtk_cell_renderer_text_new(); + gtk_tree_view_column_pack_start(column, rend, TRUE); + gtk_tree_view_column_add_attribute(column, rend, "text", SHORTCUT); +} + +static void store_smiley_add(PurpleSmiley *smiley) +{ + GtkTreeIter iter; + PurpleStoredImage *img; + GdkPixbuf *sized_smiley = NULL; + + if (smiley_manager == NULL) + return; + + img = purple_smiley_get_stored_image(smiley); + + if (img != NULL) { + GdkPixbuf *smiley_image = pidgin_pixbuf_from_imgstore(img); + purple_imgstore_unref(img); + + if (smiley_image != NULL) + sized_smiley = gdk_pixbuf_scale_simple(smiley_image, + 22, 22, GDK_INTERP_HYPER); + g_object_unref(G_OBJECT(smiley_image)); + } + + + gtk_list_store_append(smiley_manager->model, &iter); + + gtk_list_store_set(smiley_manager->model, &iter, + ICON, sized_smiley, + SHORTCUT, purple_smiley_get_shortcut(smiley), + SMILEY, smiley, + -1); + + if (sized_smiley != NULL) + g_object_unref(G_OBJECT(sized_smiley)); +} + +static void populate_smiley_list(SmileyManager *dialog) +{ + GList *list; + PurpleSmiley *emoticon; + + gtk_list_store_clear(dialog->model); + + for(list = purple_smileys_get_all(); list != NULL; + list = g_list_delete_link(list, list)) { + emoticon = (PurpleSmiley*)list->data; + + store_smiley_add(emoticon); + } +} + +static void smile_selected_cb(GtkTreeSelection *sel, SmileyManager *dialog) +{ + gint selected; + + selected = gtk_tree_selection_count_selected_rows(sel); + + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->window), + GTK_RESPONSE_NO, selected > 0); + + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->window), + PIDGIN_RESPONSE_EDIT, selected > 0); +} + +static void +smiley_edit_iter(SmileyManager *dialog, GtkTreeIter *iter) +{ + PurpleSmiley *smiley = NULL; + gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), iter, SMILEY, &smiley, -1); + pidgin_smiley_edit(gtk_widget_get_toplevel(GTK_WIDGET(dialog->treeview)), smiley); + g_object_unref(G_OBJECT(smiley)); +} + +static void smiley_edit_cb(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) +{ + GtkTreeIter iter; + SmileyManager *dialog = data; + + gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path); + smiley_edit_iter(dialog, &iter); +} + +static void +edit_selected_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +{ + smiley_edit_iter(data, iter); +} + +static GtkWidget *smiley_list_create(SmileyManager *dialog) +{ + GtkWidget *sw; + GtkWidget *treeview; + GtkTreeSelection *sel; + + sw = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), + GTK_SHADOW_IN); + gtk_widget_show(sw); + + /* Create the list model */ + dialog->model = gtk_list_store_new(N_COL, + GDK_TYPE_PIXBUF, /* ICON */ + G_TYPE_STRING, /* SHORTCUT */ + G_TYPE_OBJECT /* SMILEY */ + ); + + /* the actual treeview */ + treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); + dialog->treeview = treeview; + gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), SHORTCUT, GTK_SORT_ASCENDING); + g_object_unref(G_OBJECT(dialog->model)); + + sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); + gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); + gtk_container_add(GTK_CONTAINER(sw), treeview); + + g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smile_selected_cb), dialog); + g_signal_connect(G_OBJECT(treeview), "row_activated", G_CALLBACK(smiley_edit_cb), dialog); + + gtk_widget_show(treeview); + + add_columns(treeview, dialog); + populate_smiley_list(dialog); + + return sw; +} + +static void refresh_list() +{ + populate_smiley_list(smiley_manager); +} + +static void smiley_manager_select_cb(GtkWidget *widget, gint resp, SmileyManager *dialog) +{ + GtkTreeSelection *selection = NULL; + + switch (resp) { + case GTK_RESPONSE_YES: + pidgin_smiley_edit(dialog->window, NULL); + break; + case GTK_RESPONSE_NO: + smiley_delete(dialog); + break; + case GTK_RESPONSE_DELETE_EVENT: + case GTK_RESPONSE_CLOSE: + gtk_widget_destroy(dialog->window); + g_free(smiley_manager); + smiley_manager = NULL; + break; + case PIDGIN_RESPONSE_EDIT: + /* Find smiley of selection... */ + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); + gtk_tree_selection_selected_foreach(selection, edit_selected_cb, dialog); + break; + default: + purple_debug_info("gtksmiley", "No valid selection\n"); + break; + } +} + +void pidgin_smiley_manager_show(void) +{ + SmileyManager *dialog; + GtkWidget *win; + GtkWidget *sw; + GtkWidget *vbox; + + if (smiley_manager) { + gtk_window_present(GTK_WINDOW(smiley_manager->window)); + return; + } + + dialog = g_new0(SmileyManager, 1); + smiley_manager = dialog; + + dialog->window = win = gtk_dialog_new_with_buttons( + _("Custom Smiley Manager"), + NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_ADD, GTK_RESPONSE_YES, + GTK_STOCK_EDIT, PIDGIN_RESPONSE_EDIT, + GTK_STOCK_DELETE, GTK_RESPONSE_NO, + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, + NULL); + + gtk_window_set_default_size(GTK_WINDOW(win), 50, 400); + gtk_window_set_role(GTK_WINDOW(win), "custom_smiley_manager"); + gtk_container_set_border_width(GTK_CONTAINER(win),PIDGIN_HIG_BORDER); + gtk_dialog_set_response_sensitive(GTK_DIALOG(win), GTK_RESPONSE_NO, FALSE); + gtk_dialog_set_response_sensitive(GTK_DIALOG(win), PIDGIN_RESPONSE_EDIT, + FALSE); + + g_signal_connect(win, "response", G_CALLBACK(smiley_manager_select_cb), + dialog); + + /* The vbox */ + vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(win)->vbox), vbox); + gtk_widget_show(vbox); + + /* get the scrolled window with all stuff */ + sw = smiley_list_create(dialog); + gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); + gtk_widget_show(sw); + + gtk_widget_show(win); +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/gtksmiley.h Thu Jun 26 09:07:56 2008 +0000 @@ -0,0 +1,103 @@ +/** + * @file gtksmiley.h GTK+ Custom Smiley API + * @ingroup pidgin + * @since 2.5.0 + */ + +/* 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_GTKSMILEY_H_ +#define _PIDGIN_GTKSMILEY_H_ + +#include "smiley.h" + +typedef struct _PidginSmiley PidginSmiley; + +/** + * Add a PurpleSmiley to the GtkIMHtmlSmiley's list to be able to use it + * in pidgin + * + * @param smiley The smiley to be added. + */ +void pidgin_smiley_add_to_list(PurpleSmiley *smiley); + +/** + * Delete a PurpleSmiley from the GtkIMHtmlSmiley's list + * + * @param smiley The smiley to be deleted. + */ +void pidgin_smiley_del_from_list(PurpleSmiley *smiley); + +/** + * Load the GtkIMHtml list + */ +void pidgin_smileys_init(void); + +/** + * Uninit the GtkIMHtml list + */ +void pidgin_smileys_uninit(void); + +/** + * Returns a GSList with the GtkIMHtmlSmiley of each custom smiley + * + * @constreturn A GtkIMHmlSmiley list + */ +GSList* pidgin_smileys_get_all(void); + +/****************************************************************************** + * Smiley Manager + *****************************************************************************/ +/** + * Displays the Smiley Manager Window + */ +void pidgin_smiley_manager_show(void); + +/** + * Shows an editor for a smiley. + * + * @param widget The parent widget to be linked or @c NULL + * @param smiley The PurpleSmiley to be edited, or @c NULL for a new smiley + * @return The smiley add dialog + * + * @see pidgin_smiley_editor_set_shortcut + * @see pidgin_smiley_editor_set_image + */ +PidginSmiley *pidgin_smiley_edit(GtkWidget *widget, PurpleSmiley *smiley); + +/** + * Set the shortcut in a smiley add dialog + * + * @param editor A smiley editor dialog (created by pidgin_smiley_edit) + * @param shortcut The shortcut to set + */ +void pidgin_smiley_editor_set_shortcut(PidginSmiley *editor, const gchar *shortcut); + +/** + * Set the image in a smiley add dialog + * + * @param editor A smiley editor dialog + * @param image A GdkPixbuf image + */ +void pidgin_smiley_editor_set_image(PidginSmiley *editor, GdkPixbuf *image); + +#endif /* _PIDGIN_GTKSMILEY_H_*/
--- a/pidgin/gtksound.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtksound.c Thu Jun 26 09:07:56 2008 +0000 @@ -488,29 +488,13 @@ return; volume = (float)(CLAMP(purple_prefs_get_int(PIDGIN_PREFS_ROOT "/sound/volume"),0,100)) / 50; if (!strcmp(method, "automatic")) { - if (purple_running_gnome()) { - sink = gst_element_factory_make("gconfaudiosink", "sink"); - } - if (!sink) - sink = gst_element_factory_make("autoaudiosink", "sink"); - if (!sink) { - purple_debug_error("sound", "Unable to create GStreamer audiosink.\n"); - return; - } + sink = gst_element_factory_make("gconfaudiosink", "sink"); } #ifndef _WIN32 else if (!strcmp(method, "esd")) { sink = gst_element_factory_make("esdsink", "sink"); - if (!sink) { - purple_debug_error("sound", "Unable to create GStreamer audiosink.\n"); - return; - } } else if (!strcmp(method, "alsa")) { sink = gst_element_factory_make("alsasink", "sink"); - if (!sink) { - purple_debug_error("sound", "Unable to create GStreamer audiosink.\n"); - return; - } } #endif else { @@ -518,6 +502,11 @@ return; } + if (strcmp(method, "automatic") != 0 && !sink) { + purple_debug_error("sound", "Unable to create GStreamer audiosink.\n"); + return; + } + play = gst_element_factory_make("playbin", "play"); if (play == NULL) {
--- a/pidgin/gtkstatusbox.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkstatusbox.c Thu Jun 26 09:07:56 2008 +0000 @@ -209,7 +209,8 @@ for (l = purple_account_get_status_types(account); l != NULL; l = l->next) { PurpleStatusType *status_type = (PurpleStatusType *)l->data; - if (!purple_status_type_is_user_settable(status_type)) + if (!purple_status_type_is_user_settable(status_type) || + purple_status_type_is_independent(status_type)) continue; status_no++; if (statustype == status_type) @@ -769,7 +770,8 @@ for (i = 0; l; l = l->next) { PurpleStatusType *status_type = l->data; - if (!purple_status_type_is_user_settable(status_type)) + if (!purple_status_type_is_user_settable(status_type) || + purple_status_type_is_independent(status_type)) continue; if (active == i) @@ -1030,12 +1032,13 @@ PurpleStatusType *status_type = (PurpleStatusType *)l->data; PurpleStatusPrimitive prim; - if (!purple_status_type_is_user_settable(status_type)) + if (!purple_status_type_is_user_settable(status_type) || + purple_status_type_is_independent(status_type)) continue; - prim = purple_status_type_get_primitive(status_type); - - pixbuf = pidgin_status_box_get_pixbuf(status_box, prim); + prim = purple_status_type_get_primitive(status_type); + + pixbuf = pidgin_status_box_get_pixbuf(status_box, prim); pidgin_status_box_add(PIDGIN_STATUS_BOX(status_box), PIDGIN_STATUS_BOX_TYPE_PRIMITIVE, pixbuf, @@ -1706,6 +1709,48 @@ } static void +treeview_cursor_changed_cb(GtkTreeView *treeview, gpointer data) +{ + GtkTreeSelection *sel = gtk_tree_view_get_selection (treeview); + GtkTreeModel *model = GTK_TREE_MODEL (data); + GtkTreeIter iter; + GtkTreePath *cursor; + GtkTreePath *selection; + gint cmp; + + if (gtk_tree_selection_get_selected (sel, NULL, &iter)) { + if ((selection = gtk_tree_model_get_path (model, &iter)) == NULL) { + /* Shouldn't happen, but ignore anyway */ + return; + } + } else { + /* I don't think this can happen, but we'll just ignore it */ + return; + } + + gtk_tree_view_get_cursor (treeview, &cursor, NULL); + if (cursor == NULL) { + /* Probably won't happen in a 'cursor-changed' event? */ + gtk_tree_path_free (selection); + return; + } + + cmp = gtk_tree_path_compare (cursor, selection); + if (cmp < 0) { + /* The cursor moved up without moving the selection, so move it up again */ + gtk_tree_path_prev (cursor); + gtk_tree_view_set_cursor (treeview, cursor, NULL, FALSE); + } else if (cmp > 0) { + /* The cursor moved down without moving the selection, so move it down again */ + gtk_tree_path_next (cursor); + gtk_tree_view_set_cursor (treeview, cursor, NULL, FALSE); + } + + gtk_tree_path_free (selection); + gtk_tree_path_free (cursor); +} + +static void pidgin_status_box_init (PidginStatusBox *status_box) { GtkCellRenderer *text_rend; @@ -1869,6 +1914,8 @@ G_CALLBACK(imhtml_scroll_event_cb), status_box->imhtml); g_signal_connect(G_OBJECT(status_box->popup_window), "button_release_event", G_CALLBACK(treeview_button_release_cb), status_box); g_signal_connect(G_OBJECT(status_box->popup_window), "key_press_event", G_CALLBACK(treeview_key_press_event), status_box); + g_signal_connect(G_OBJECT(status_box->tree_view), "cursor-changed", + G_CALLBACK(treeview_cursor_changed_cb), status_box->dropdown_store); #if GTK_CHECK_VERSION(2,6,0) gtk_tree_view_set_row_separator_func(GTK_TREE_VIEW(status_box->tree_view), dropdown_store_row_separator_func, NULL, NULL);
--- a/pidgin/gtkthemes.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkthemes.c Thu Jun 26 09:07:56 2008 +0000 @@ -31,6 +31,7 @@ #include "gtkconv.h" #include "gtkdialogs.h" #include "gtkimhtml.h" +#include "gtksmiley.h" #include "gtkthemes.h" GSList *smiley_themes = NULL; @@ -119,7 +120,7 @@ g_free(theme_dir); } -void pidgin_themes_smiley_themeize(GtkWidget *imhtml) +static void _pidgin_themes_smiley_themeize(GtkWidget *imhtml, gboolean custom) { struct smiley_list *list; if (!current_smiley_theme) @@ -134,10 +135,30 @@ gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), sml, icons->data); icons = icons->next; } + + if (custom == TRUE) { + icons = pidgin_smileys_get_all(); + + while (icons) { + gtk_imhtml_associate_smiley(GTK_IMHTML(imhtml), sml, icons->data); + icons = icons->next; + } + } + list = list->next; } } +void pidgin_themes_smiley_themeize(GtkWidget *imhtml) +{ + _pidgin_themes_smiley_themeize(imhtml, FALSE); +} + +void pidgin_themes_smiley_themeize_custom(GtkWidget *imhtml) +{ + _pidgin_themes_smiley_themeize(imhtml, TRUE); +} + static void pidgin_themes_destroy_smiley_theme_smileys(struct smiley_theme *theme) { @@ -274,7 +295,6 @@ } else if (load && list) { gboolean hidden = FALSE; char *sfile = NULL; - gboolean have_used_sfile = FALSE; if (*i == '!' && *(i + 1) == ' ') { hidden = TRUE; @@ -288,17 +308,12 @@ i++; l[li++] = *(i++); } + l[li] = 0; if (!sfile) { - l[li] = 0; sfile = g_build_filename(dirname, l, NULL); } else { - GtkIMHtmlSmiley *smiley = g_new0(GtkIMHtmlSmiley, 1); - l[li] = 0; - smiley->file = sfile; - smiley->smile = g_strdup(l); - smiley->hidden = hidden; + GtkIMHtmlSmiley *smiley = gtk_imhtml_smiley_create(sfile, l, hidden, 0); list->smileys = g_slist_prepend(list->smileys, smiley); - have_used_sfile = TRUE; } while (isspace(*i)) i++; @@ -306,8 +321,7 @@ } - if (!have_used_sfile) - g_free(sfile); + g_free(sfile); } } @@ -340,8 +354,9 @@ PurpleConversation *conv = cnv->data; if (PIDGIN_IS_PIDGIN_CONVERSATION(conv)) { + /* We want to see our custom smileys on our entry if we write the shortcut */ pidgin_themes_smiley_themeize(PIDGIN_CONVERSATION(conv)->imhtml); - pidgin_themes_smiley_themeize(PIDGIN_CONVERSATION(conv)->entry); + pidgin_themes_smiley_themeize_custom(PIDGIN_CONVERSATION(conv)->entry); } } }
--- a/pidgin/gtkthemes.h Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkthemes.h Thu Jun 26 09:07:56 2008 +0000 @@ -51,6 +51,11 @@ void pidgin_themes_smiley_themeize(GtkWidget *); +/** + * @since 2.5.0 + */ +void pidgin_themes_smiley_themeize_custom(GtkWidget *); + void pidgin_themes_smiley_theme_probe(void); void pidgin_themes_load_smiley_theme(const char *file, gboolean load);
--- a/pidgin/gtkutils.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkutils.c Thu Jun 26 09:07:56 2008 +0000 @@ -1001,13 +1001,14 @@ } prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(conn->prpl); + if (prpl_info != NULL && prpl_info->get_cb_real_name) + who = prpl_info->get_cb_real_name(conn, chat, name); if (prpl_info == NULL || prpl_info->get_cb_info == NULL) { - pidgin_retrieve_user_info(conn, name); + pidgin_retrieve_user_info(conn, who ? who : name); + g_free(who); return; } - if (prpl_info->get_cb_real_name) - who = prpl_info->get_cb_real_name(conn, chat, name); show_retrieveing_info(conn, who ? who : name); prpl_info->get_cb_info(conn, chat, name); g_free(who); @@ -1436,7 +1437,7 @@ static void dnd_image_ok_callback(_DndData *data, int choice) { - char *filedata; + gchar *filedata; size_t size; struct stat st; GError *err = NULL; @@ -1444,6 +1445,8 @@ PidginConversation *gtkconv; GtkTextIter iter; int id; + PurpleBuddy *buddy; + PurpleContact *contact; switch (choice) { case DND_BUDDY_ICON: if (g_stat(data->filename, &st)) { @@ -1459,7 +1462,13 @@ return; } - pidgin_set_custom_buddy_icon(data->account, data->who, data->filename); + buddy = purple_find_buddy(data->account, data->who); + if (!buddy) { + purple_debug_info("custom-icon", "You can only set custom icons for people on your buddylist.\n"); + break; + } + contact = purple_buddy_get_contact(buddy); + purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, data->filename); break; case DND_FILE_TRANSFER: serv_send_file(purple_account_get_connection(data->account), data->who, data->filename); @@ -2869,12 +2878,11 @@ } #endif /* ! Gtk 2.6.0 */ +#ifndef PURPLE_DISABLE_DEPRECATED void pidgin_set_custom_buddy_icon(PurpleAccount *account, const char *who, const char *filename) { PurpleBuddy *buddy; PurpleContact *contact; - gpointer data = NULL; - size_t len = 0; buddy = purple_find_buddy(account, who); if (!buddy) { @@ -2883,20 +2891,9 @@ } contact = purple_buddy_get_contact(buddy); - - if (filename) { - const char *prpl_id = purple_account_get_protocol_id(account); - PurplePlugin *prpl = purple_find_prpl(prpl_id); - - data = pidgin_convert_buddy_icon(prpl, filename, &len); - - /* We don't want to delete the old icon if the new one didn't load. */ - if (data == NULL) - return; - } - - purple_buddy_icons_set_custom_icon(contact, data, len); + purple_buddy_icons_node_set_custom_icon_from_file((PurpleBlistNode*)contact, filename); } +#endif char *pidgin_make_pretty_arrows(const char *str) { @@ -3469,3 +3466,17 @@ #endif } +GdkPixbuf * pidgin_pixbuf_from_imgstore(PurpleStoredImage *image) +{ + GdkPixbuf *pixbuf; + GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); + gdk_pixbuf_loader_write(loader, purple_imgstore_get_data(image), + purple_imgstore_get_size(image), NULL); + gdk_pixbuf_loader_close(loader, NULL); + pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); + if (pixbuf) + g_object_ref(pixbuf); + g_object_unref(loader); + return pixbuf; +} +
--- a/pidgin/gtkutils.h Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/gtkutils.h Thu Jun 26 09:07:56 2008 +0000 @@ -638,6 +638,7 @@ GError **error); #endif +#ifndef PURPLE_DISABLE_DEPRECATED /** * Set or unset a custom buddyicon for a user. * @@ -645,8 +646,10 @@ * @param who The name of the user. * @param filename The path of the custom icon. If this is @c NULL, then any * previously set custom buddy icon for the user is removed. + * @deprecated See purple_buddy_icons_node_set_custom_icon_from_file() */ void pidgin_set_custom_buddy_icon(PurpleAccount *account, const char *who, const char *filename); +#endif /** * Converts "->" and "<-" in strings to Unicode arrow characters, for use in referencing @@ -689,7 +692,7 @@ */ GtkWidget *pidgin_make_mini_dialog(PurpleConnection *handle, const char* stock_id, const char *primary, const char *secondary, - void *user_data, ...); + void *user_data, ...) G_GNUC_NULL_TERMINATED; /** * This is a callback function to be used for Ctrl+F searching in treeviews. @@ -809,5 +812,15 @@ */ GtkWidget *pidgin_add_widget_to_vbox(GtkBox *vbox, const char *widget_label, GtkSizeGroup *sg, GtkWidget *widget, gboolean expand, GtkWidget **p_label); +/** + * Create a GdkPixbuf from a PurpleStoredImage. + * + * @param image A PurpleStoredImage. + * + * @return A GdkPixbuf created from the stored image. + * @since 2.5.0 + */ +GdkPixbuf * pidgin_pixbuf_from_imgstore(PurpleStoredImage *image); + #endif /* _PIDGINUTILS_H_ */
--- a/pidgin/pidginstock.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pidginstock.c Thu Jun 26 09:07:56 2008 +0000 @@ -168,6 +168,7 @@ { 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_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 },
--- a/pidgin/pidginstock.h Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pidginstock.h Thu Jun 26 09:07:56 2008 +0000 @@ -129,6 +129,7 @@ #define PIDGIN_STOCK_TOOLBAR_UNBLOCK "pidgin-unblock" #define PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR "pidgin-select-avatar" #define PIDGIN_STOCK_TOOLBAR_SEND_FILE "pidgin-send-file" +#define PIDGIN_STOCK_TOOLBAR_TRANSFER "pidgin-transfer" /* Tray icons */ #define PIDGIN_STOCK_TRAY_AVAILABLE "pidgin-tray-available"
--- a/pidgin/pixmaps/Makefile.am Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/Makefile.am Thu Jun 26 09:07:56 2008 +0000 @@ -565,6 +565,7 @@ toolbar/16/message-new.png \ toolbar/16/plugins.png \ toolbar/16/send-file.png \ + toolbar/16/transfer.png \ toolbar/16/unblock.png TOOLBAR_22_SCALABLE = \
--- a/pidgin/pixmaps/status/16/scalable/available.svg Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/status/16/scalable/available.svg Thu Jun 26 09:07:56 2008 +0000 @@ -2,7 +2,7 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" @@ -13,9 +13,9 @@ height="16" id="svg2" sodipodi:version="0.32" - inkscape:version="0.45" + inkscape:version="0.46+devel" version="1.0" - inkscape:export-filename="/home/hbons/GUI/Tango/Gaim Refresh/status/16/available.png" + inkscape:export-filename="/home/hbons/Desktop/available.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" sodipodi:docbase="/home/hbons/Desktop/2.1.1/status/16/scalable" @@ -26,6 +26,25 @@ id="defs4"> <linearGradient inkscape:collect="always" + id="linearGradient3286"> + <stop + style="stop-color:#459000;stop-opacity:1" + offset="0" + id="stop3288" /> + <stop + style="stop-color:#204300;stop-opacity:1" + offset="1" + id="stop3290" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + id="perspective43" /> + <linearGradient + inkscape:collect="always" id="linearGradient2898"> <stop style="stop-color:white;stop-opacity:1;" @@ -50,10 +69,10 @@ xlink:href="#linearGradient3149" id="linearGradient4740" gradientUnits="userSpaceOnUse" - x1="15.498499" - y1="9.4211226" - x2="24.240097" - y2="36.603138" /> + x1="11.127699" + y1="10.823074" + x2="30.341434" + y2="31.325201" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient3149" @@ -230,6 +249,39 @@ fx="31.112698" fy="19.008621" r="8.6620579" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3286" + id="linearGradient3292" + x1="15.893391" + y1="15.213944" + x2="26.533659" + y2="28.579245" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + id="filter3360" + x="-0.13093077" + width="1.2618615" + y="-0.11042095" + height="1.2208419"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.19314814" + id="feGaussianBlur3362" /> + </filter> + <filter + inkscape:collect="always" + id="filter3374" + x="-0.13117394" + width="1.2623479" + y="-0.11015608" + height="1.2203122"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.19309804" + id="feGaussianBlur3376" /> + </filter> </defs> <sodipodi:namedview id="base" @@ -239,16 +291,27 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.992076" - inkscape:cx="4.1907826" - inkscape:cy="8.6773979" + inkscape:cx="12.058565" + inkscape:cy="10.562588" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fill="#eeeeec" - inkscape:window-width="1274" - inkscape:window-height="844" - inkscape:window-x="3" - inkscape:window-y="25" /> + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:window-x="0" + inkscape:window-y="22" + inkscape:snap-bbox="true" + inkscape:snap-nodes="false" + objecttolerance="13" + gridtolerance="10"> + <inkscape:grid + type="xygrid" + id="grid3284" + empspacing="5" + visible="true" + enabled="true" /> + </sodipodi:namedview> <metadata id="metadata7"> <rdf:RDF> @@ -265,14 +328,24 @@ inkscape:groupmode="layer" id="layer1"> <path - transform="matrix(0.538297,0,0,0.538297,-1.630177,-1.459246)" - style="fill:url(#linearGradient4738);fill-opacity:1;fill-rule:evenodd;stroke:#306300;stroke-width:1.85770929;stroke-miterlimit:4;stroke-opacity:1" + style="fill:url(#linearGradient4738);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3292);stroke-width:1.85770929000000007;stroke-miterlimit:4;stroke-opacity:1" d="M 31.822886,17.572527 C 31.822886,25.263442 25.580983,31.505344 17.890068,31.505344 C 10.199153,31.505344 3.9572506,25.263442 3.9572506,17.572527 C 3.9572506,9.8816117 10.199153,3.6397095 17.890068,3.6397095 C 25.580983,3.6397095 31.822886,9.8816117 31.822886,17.572527 z " - id="path4331" /> + id="path4331" + transform="matrix(0.538297,0,0,0.538297,-1.630177,-1.459246)" /> + <path + style="opacity:0.59999999999999998;fill:url(#linearGradient4740);fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:2.14350747999999980;stroke-miterlimit:4;stroke-opacity:1" + d="M 31.822886,17.572527 C 31.822886,25.263442 25.580983,31.505344 17.890068,31.505344 C 10.199153,31.505344 3.9572506,25.263442 3.9572506,17.572527 C 3.9572506,9.8816117 10.199153,3.6397095 17.890068,3.6397095 C 25.580983,3.6397095 31.822886,9.8816117 31.822886,17.572527 z " + id="path4333" + transform="matrix(0.466524,0,0,0.466525,-0.346154,-0.198015)" /> <path - transform="matrix(0.466524,0,0,0.466525,-0.346154,-0.198015)" - style="opacity:0.6;fill:url(#linearGradient4740);fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:2.14350748;stroke-miterlimit:4;stroke-opacity:1" - d="M 31.822886,17.572527 C 31.822886,25.263442 25.580983,31.505344 17.890068,31.505344 C 10.199153,31.505344 3.9572506,25.263442 3.9572506,17.572527 C 3.9572506,9.8816117 10.199153,3.6397095 17.890068,3.6397095 C 25.580983,3.6397095 31.822886,9.8816117 31.822886,17.572527 z " - id="path4333" /> + sodipodi:type="arc" + style="opacity:0.19499996000000000;fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter3374)" + id="path3302" + sodipodi:cx="11.484269" + sodipodi:cy="4.7465701" + sodipodi:rx="1.8659533" + sodipodi:ry="1.9428998" + d="m 13.350222,4.7465701 a 1.8659533,1.9428998 0 1 1 -3.7319067,0 A 1.8659533,1.9428998 0 1 1 13.350222,4.7465701 z" + transform="matrix(2.2014717,-1.281888,0.9447394,1.6503281,-23.266565,12.888149)" /> </g> </svg>
--- a/pidgin/pixmaps/status/16/scalable/away.svg Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/status/16/scalable/away.svg Thu Jun 26 09:07:56 2008 +0000 @@ -2,7 +2,7 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" @@ -13,9 +13,9 @@ height="16" id="svg2" sodipodi:version="0.32" - inkscape:version="0.45" + inkscape:version="0.46+devel" version="1.0" - inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/status/16/available16.png" + inkscape:export-filename="/home/hbons/Desktop/away.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" sodipodi:docbase="/home/hbons/Desktop/2.1.1/status/16/scalable" @@ -26,6 +26,37 @@ id="defs4"> <linearGradient inkscape:collect="always" + id="linearGradient3284"> + <stop + style="stop-color:#173867;stop-opacity:1;" + offset="0" + id="stop3286" /> + <stop + style="stop-color:#173867;stop-opacity:0;" + offset="1" + id="stop3288" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3276"> + <stop + style="stop-color:#2863b7;stop-opacity:1" + offset="0" + id="stop3278" /> + <stop + style="stop-color:#14325c;stop-opacity:1" + offset="1" + id="stop3280" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + id="perspective35" /> + <linearGradient + inkscape:collect="always" id="linearGradient2812"> <stop style="stop-color:#2e3436;stop-opacity:1;" @@ -94,9 +125,9 @@ xlink:href="#linearGradient2804" id="linearGradient2810" x1="4.5264969" - y1="2.7991772" - x2="10.623409" - y2="11.024895" + y1="2.6807978" + x2="9.7444448" + y2="9.9594812" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" @@ -108,6 +139,24 @@ fy="19.008621" r="8.6620579" gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3276" + id="linearGradient3282" + x1="15.377563" + y1="12.744186" + x2="22.868998" + y2="29.821121" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3284" + id="linearGradient3290" + x1="23.221344" + y1="24.700239" + x2="8.2601509" + y2="0.92288947" + gradientUnits="userSpaceOnUse" /> </defs> <sodipodi:namedview id="base" @@ -117,8 +166,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="25.992076" - inkscape:cx="14.729231" - inkscape:cy="2.7799575" + inkscape:cx="13.286484" + inkscape:cy="9.6281985" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" @@ -126,11 +175,22 @@ inkscape:window-width="1434" inkscape:window-height="840" inkscape:window-x="3" - inkscape:window-y="25" + inkscape:window-y="27" inkscape:object-paths="false" inkscape:grid-bbox="true" inkscape:guide-bbox="false" - inkscape:grid-points="true" /> + inkscape:grid-points="true" + objecttolerance="14" + gridtolerance="18" + inkscape:snap-bbox="true" + inkscape:snap-nodes="false"> + <inkscape:grid + type="xygrid" + id="grid3274" + empspacing="5" + visible="true" + enabled="true" /> + </sodipodi:namedview> <metadata id="metadata7"> <rdf:RDF> @@ -148,7 +208,7 @@ id="layer1"> <path sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#173867;stroke-width:1.91314828px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + style="opacity:1;color:#000000;fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3282);stroke-width:1.91314827999999992px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" id="path1339" sodipodi:cx="15.590227" sodipodi:cy="16.57217" @@ -168,7 +228,7 @@ transform="matrix(2.192102,0,0,2.091316,16.34939,1.090661)" /> <path sodipodi:type="arc" - style="opacity:0.40340911;color:black;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:#173867;stroke-width:2.60821199px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + style="opacity:0.40340911000000002;color:black;fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3290);stroke-width:2.60821199000000004px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" id="path1341" sodipodi:cx="15.590227" sodipodi:cy="16.57217" @@ -188,7 +248,7 @@ transform="matrix(3.094296,0,0,3.766968,-10.69048,-20.45989)" /> <path sodipodi:type="arc" - style="opacity:0.76704544;fill:none;fill-opacity:1;stroke:url(#linearGradient2810);stroke-width:0.80677563;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="opacity:0.76704543999999986;fill:none;fill-opacity:1;stroke:url(#linearGradient2810);stroke-width:0.80677562999999985;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="path2802" sodipodi:cx="7.5" sodipodi:cy="7" @@ -197,7 +257,7 @@ d="M 13 7 A 5.5 5 0 1 1 2,7 A 5.5 5 0 1 1 13 7 z" transform="matrix(1.18182,0,0,1.3,-0.86365,-1.1)" /> <rect - style="opacity:1;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="opacity:1;fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect2820" width="1" height="1" @@ -231,7 +291,7 @@ y="-10" transform="matrix(0,1,-1,0,0,0)" /> <rect - style="opacity:1;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="opacity:1;fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect2846" width="1" height="1"
--- a/pidgin/pixmaps/status/16/scalable/busy.svg Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/status/16/scalable/busy.svg Thu Jun 26 09:07:56 2008 +0000 @@ -2,7 +2,7 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" @@ -13,9 +13,9 @@ height="16" id="svg2" sodipodi:version="0.32" - inkscape:version="0.45" + inkscape:version="0.46+devel" version="1.0" - inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/status/16/available16.png" + inkscape:export-filename="/home/hbons/Desktop/busy.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" sodipodi:docbase="/home/hbons/Desktop/2.1.1/status/16/scalable" @@ -26,6 +26,37 @@ id="defs4"> <linearGradient inkscape:collect="always" + id="linearGradient3290"> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="0" + id="stop3292" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3294" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3280"> + <stop + style="stop-color:#a60000;stop-opacity:1" + offset="0" + id="stop3282" /> + <stop + style="stop-color:#460000;stop-opacity:1" + offset="1" + id="stop3284" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + id="perspective39" /> + <linearGradient + inkscape:collect="always" id="linearGradient2898"> <stop style="stop-color:white;stop-opacity:1;" @@ -71,28 +102,6 @@ r="8.6620579" /> <linearGradient inkscape:collect="always" - id="linearGradient2186"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop2188" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop2190" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2186" - id="linearGradient2194" - x1="9.2594385" - y1="-1.5641226" - x2="11.226587" - y2="17.697369" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.684526,0,0,0.687171,-0.20455,-0.253325)" /> - <linearGradient - inkscape:collect="always" id="linearGradient2239"> <stop style="stop-color:#ffffff;stop-opacity:1;" @@ -107,12 +116,12 @@ inkscape:collect="always" xlink:href="#linearGradient2239" id="linearGradient2245" - x1="8.7505674" - y1="4.5934086" - x2="31.18539" - y2="39.834526" + x1="-1.5418521" + y1="-6.2826729" + x2="63.127094" + y2="59.183727" gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.482882,0,0,0.482874,0.269812,0.26982)" /> + gradientTransform="matrix(0.482882,0,0,0.482874,0.269812,0.2698205)" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient3149" @@ -177,6 +186,240 @@ x2="12.233074" y2="27.77807" gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3280" + id="linearGradient3286" + x1="11.549973" + y1="7.078577" + x2="33.836056" + y2="45.494511" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3290" + id="linearGradient3282" + x1="5.8424845" + y1="-1.2794704" + x2="10.945268" + y2="11.145247" + gradientUnits="userSpaceOnUse" /> + <linearGradient + gradientUnits="userSpaceOnUse" + y2="28.579245" + x2="26.533659" + y1="15.213944" + x1="15.893391" + id="linearGradient3292" + xlink:href="#linearGradient3280" + inkscape:collect="always" /> + <radialGradient + r="8.6620579" + fy="19.008621" + fx="31.112698" + cy="19.008621" + cx="31.112698" + gradientUnits="userSpaceOnUse" + id="radialGradient2621" + xlink:href="#linearGradient2812" + inkscape:collect="always" /> + <linearGradient + y2="11.024895" + x2="10.623409" + y1="2.7991772" + x1="4.5264969" + gradientUnits="userSpaceOnUse" + id="linearGradient3007" + xlink:href="#linearGradient2804" + inkscape:collect="always" /> + <radialGradient + r="8.6620579" + fy="19.008621" + fx="31.112698" + cy="19.008621" + cx="31.112698" + gradientUnits="userSpaceOnUse" + id="radialGradient3005" + xlink:href="#linearGradient2812" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + id="linearGradient2804"> + <stop + style="stop-color:white;stop-opacity:1;" + offset="0" + id="stop2806" /> + <stop + style="stop-color:white;stop-opacity:0;" + offset="1" + id="stop2808" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3149" + id="linearGradient2949" + gradientUnits="userSpaceOnUse" + x1="17.890068" + y1="8.0617304" + x2="17.890068" + y2="40.032413" /> + <linearGradient + id="linearGradient2951"> + <stop + style="stop-color:#73d216;stop-opacity:1;" + offset="0" + id="stop2953" /> + <stop + style="stop-color:#5ca911;stop-opacity:1;" + offset="1" + id="stop2955" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2851" + id="linearGradient2963" + x1="6.878005" + y1="11.789385" + x2="12.233074" + y2="27.77807" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2804" + id="linearGradient2810" + x1="4.5264969" + y1="2.7991772" + x2="10.623409" + y2="11.024895" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient2812" + id="radialGradient2818" + cx="31.112698" + cy="19.008621" + fx="31.112698" + fy="19.008621" + r="8.6620579" + gradientUnits="userSpaceOnUse" /> + <radialGradient + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.018423,0.664359,-1.388844,4.257661,-0.134567,-26.02469)" + r="0.8078171" + fy="6.9473476" + fx="4.8470273" + cy="6.9473476" + cx="4.8470273" + id="radialGradient2601" + xlink:href="#linearGradient2898" + inkscape:collect="always" /> + <linearGradient + gradientUnits="userSpaceOnUse" + y2="27.77807" + x2="12.233074" + y1="11.789385" + x1="6.878005" + id="linearGradient2599" + xlink:href="#linearGradient2851" + inkscape:collect="always" /> + <radialGradient + gradientTransform="matrix(0.914124,-3.896132e-15,-2.475021e-18,1.631747,2.671799,-12.00863)" + gradientUnits="userSpaceOnUse" + r="8.6620579" + fy="19.008621" + fx="31.112698" + cy="19.008621" + cx="31.112698" + id="radialGradient2597" + xlink:href="#linearGradient3816" + inkscape:collect="always" /> + <linearGradient + id="linearGradient2579"> + <stop + id="stop2581" + offset="0" + style="stop-color:#73d216;stop-opacity:1;" /> + <stop + id="stop2583" + offset="1" + style="stop-color:#5ca911;stop-opacity:1;" /> + </linearGradient> + <linearGradient + y2="40.032413" + x2="17.890068" + y1="8.0617304" + x1="17.890068" + gradientUnits="userSpaceOnUse" + id="linearGradient2577" + xlink:href="#linearGradient3149" + inkscape:collect="always" /> + <linearGradient + y2="31.325201" + x2="30.341434" + y1="10.823074" + x1="11.127699" + gradientUnits="userSpaceOnUse" + id="linearGradient4740" + xlink:href="#linearGradient3149" + inkscape:collect="always" /> + <linearGradient + y2="27.77807" + x2="12.233074" + y1="11.789385" + x1="6.878005" + gradientUnits="userSpaceOnUse" + id="linearGradient4738" + xlink:href="#linearGradient2851" + inkscape:collect="always" /> + <inkscape:perspective + id="perspective43" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + inkscape:vp_z="16 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 8 : 1" + sodipodi:type="inkscape:persp3d" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3149" + id="linearGradient2635" + gradientUnits="userSpaceOnUse" + x1="11.127699" + y1="10.823074" + x2="30.341434" + y2="31.325201" + gradientTransform="matrix(0.466524,0,0,0.466525,-23.253129,0.8019768)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2851" + id="linearGradient2638" + gradientUnits="userSpaceOnUse" + x1="6.878005" + y1="11.789385" + x2="12.233074" + y2="27.77807" + gradientTransform="matrix(0.538297,0,0,0.538297,-24.537152,-0.4592542)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3280" + id="linearGradient2640" + gradientUnits="userSpaceOnUse" + x1="15.893391" + y1="15.213944" + x2="26.533659" + y2="28.579245" + gradientTransform="matrix(0.538297,0,0,0.538297,-24.537152,-0.4592542)" /> + <filter + inkscape:collect="always" + id="filter3416" + x="-0.13117394" + width="1.2623479" + y="-0.11015608" + height="1.2203122"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.19309804" + id="feGaussianBlur3418" /> + </filter> </defs> <sodipodi:namedview id="base" @@ -185,17 +428,21 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="25.992076" - inkscape:cx="8.3811422" - inkscape:cy="5.1075896" + inkscape:zoom="18.379173" + inkscape:cx="0.35485832" + inkscape:cy="7.0130435" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fill="#eeeeec" - inkscape:window-width="1268" - inkscape:window-height="844" - inkscape:window-x="3" - inkscape:window-y="25" /> + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:window-x="0" + inkscape:window-y="22"> + <inkscape:grid + type="xygrid" + id="grid2508" /> + </sodipodi:namedview> <metadata id="metadata7"> <rdf:RDF> @@ -223,7 +470,7 @@ transform="matrix(0.468971,0,0,0.468971,0.730372,0.26987)" /> <path sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#f24747;fill-opacity:1;fill-rule:evenodd;stroke:#820000;stroke-width:1.91298747px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + style="opacity:1;color:#000000;fill:#f13d3d;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3286);stroke-width:1.91298747000000002px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" id="path1339" sodipodi:cx="15.590227" sodipodi:cy="16.57217" @@ -232,17 +479,27 @@ d="M 29.935402 16.57217 A 14.345175 14.345175 0 1 1 1.2450523,16.57217 A 14.345175 14.345175 0 1 1 29.935402 16.57217 z" transform="matrix(0.522706,0,0,0.522779,-0.14857,-0.663013)" /> <path - style="opacity:0.6;color:#000000;fill:url(#linearGradient2194);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2245);stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - d="M 14.525974,7.9894993 C 14.525974,11.598577 11.608166,14.527685 8.0130095,14.527685 C 4.4178543,14.527685 1.500047,11.598577 1.500047,7.9894993 C 1.500047,4.3804219 4.4178543,1.4513155 8.0130095,1.4513155 C 11.608166,1.4513155 14.525974,4.3804219 14.525974,7.9894993 z " + style="opacity:0.75000000000000000;color:#000000;fill:url(#linearGradient3282);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2245);stroke-width:1.00000011999999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + d="m 14.525974,7.9894993 c 0,3.6090777 -2.917808,6.5381857 -6.5129645,6.5381857 -3.5951552,0 -6.5129625,-2.929108 -6.5129625,-6.5381857 0,-3.6090774 2.9178073,-6.5381838 6.5129625,-6.5381838 3.5951565,0 6.5129645,2.9291064 6.5129645,6.5381838 z" id="path2220" /> + <path + sodipodi:type="arc" + style="opacity:0.19499996000000000;fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter3416)" + id="path3302" + sodipodi:cx="11.484269" + sodipodi:cy="4.7465701" + sodipodi:rx="1.8659533" + sodipodi:ry="1.9428998" + d="m 13.350222,4.7465701 a 1.8659533,1.9428998 0 1 1 -3.7319067,0 A 1.8659533,1.9428998 0 1 1 13.350222,4.7465701 z" + transform="matrix(2.2014717,-1.281888,0.9447394,1.6503281,-23.212768,12.908772)" /> <rect - style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#a40000;stroke-width:1.00000024;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#a40000;stroke-width:1.00000024000000010;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="rect3207" width="11.000004" height="2.9999959" x="2.500001" y="6.5000038" - rx="0.96183157" - ry="0.96183157" /> + rx="1.0387781" + ry="1.0387781" /> </g> </svg>
--- a/pidgin/pixmaps/status/16/scalable/chat.svg Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/status/16/scalable/chat.svg Thu Jun 26 09:07:56 2008 +0000 @@ -2,92 +2,313 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/s odipodi-0.dtd" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16" height="16" - id="svg13306" + id="svg7380" sodipodi:version="0.32" - inkscape:version="0.43" - version="1.0" - inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/status/16/irc16.png" + inkscape:version="0.46+devel" + sodipodi:docbase="/home/hbons/Desktop" + sodipodi:docname="person.svg" + inkscape:export-filename="/home/hbons/Desktop/person.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" - sodipodi:docbase="/home/hbons/Desktop/Gaim Refresh/status/16/scalable" - sodipodi:docname="irc16.svg"> + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0"> <defs - id="defs13308"> + id="defs7382"> + <linearGradient + inkscape:collect="always" + id="linearGradient3301"> + <stop + style="stop-color:#46284e;stop-opacity:1;" + offset="0" + id="stop3303" /> + <stop + style="stop-color:#7a4588;stop-opacity:1" + offset="1" + id="stop3305" /> + </linearGradient> <linearGradient inkscape:collect="always" - id="linearGradient2280"> + id="linearGradient3483"> + <stop + style="stop-color:#c17802;stop-opacity:1" + offset="0" + id="stop3485" /> <stop - style="stop-color:#d3d7cf;stop-opacity:1;" + style="stop-color:#935a00;stop-opacity:1" + offset="1" + id="stop3487" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3475"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" offset="0" - id="stop2282" /> + id="stop3477" /> <stop - style="stop-color:#d3d7cf;stop-opacity:0;" + style="stop-color:#eeeeec;stop-opacity:0;" offset="1" - id="stop2284" /> + id="stop3479" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3451"> + <stop + style="stop-color:#3465a4;stop-opacity:1" + offset="0" + id="stop3453" /> + <stop + style="stop-color:#15325b;stop-opacity:1" + offset="1" + id="stop3455" /> </linearGradient> <linearGradient inkscape:collect="always" - id="linearGradient3150"> + id="linearGradient3335"> + <stop + style="stop-color:#b2730d;stop-opacity:1;" + offset="0" + id="stop3337" /> <stop - style="stop-color:#2e3436;stop-opacity:1;" + style="stop-color:#935f0a;stop-opacity:1" + offset="1" + id="stop3339" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3327"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" offset="0" - id="stop3152" /> + id="stop3329" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3331" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 5.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="11 : 5.5 : 1" + inkscape:persp3d-origin="5.5 : 3.6666667 : 1" + id="perspective28" /> + <linearGradient + id="linearGradient3800"> + <stop + style="stop-color:#f4d9b1;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop3802" /> <stop - style="stop-color:#2e3436;stop-opacity:0;" + style="stop-color:#df9725;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop3804" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3800" + id="radialGradient4171" + gradientUnits="userSpaceOnUse" + cx="27.702486" + cy="14.540437" + fx="27.702486" + fy="14.540437" + r="9.1620579" + gradientTransform="matrix(1.191087,0,0,1.124022,-5.086983,-1.361697)" /> + <linearGradient + inkscape:collect="always" + id="linearGradient7300"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop7302" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" offset="1" - id="stop3154" /> + id="stop7304" /> </linearGradient> <radialGradient inkscape:collect="always" - xlink:href="#linearGradient3150" - id="radialGradient3156" - cx="10.748654" - cy="10.457643" - fx="10.748654" - fy="10.457643" - r="6.6449099" - gradientTransform="matrix(-0.842757,5.698892e-16,-4.565819e-9,-0.35721,19.80716,14.19321)" + xlink:href="#linearGradient7300" + id="radialGradient7306" + cx="24.248138" + cy="27.184834" + fx="24.248138" + fy="27.184834" + r="12.499089" + gradientTransform="matrix(0.964825,0,0,0.631898,0.954495,11.94073)" gradientUnits="userSpaceOnUse" /> <linearGradient inkscape:collect="always" - id="linearGradient3131"> + id="linearGradient3816"> <stop - style="stop-color:#eeeeec;stop-opacity:1;" + style="stop-color:#000000;stop-opacity:1;" offset="0" - id="stop3133" /> + id="stop3818" /> <stop - style="stop-color:#d3d7cf" + style="stop-color:#000000;stop-opacity:0;" offset="1" - id="stop3135" /> + id="stop3820" /> </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3816" + id="radialGradient4179" + gradientUnits="userSpaceOnUse" + cx="31.112698" + cy="19.008621" + fx="31.112698" + fy="19.008621" + r="8.6620579" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7300" + id="radialGradient4244" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.964825,0,0,0.631898,0.954495,11.94073)" + cx="24.248138" + cy="27.184834" + fx="24.248138" + fy="27.184834" + r="12.499089" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3800" + id="radialGradient4246" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.191087,0,0,1.124022,-5.086983,-1.361697)" + cx="27.702486" + cy="14.540437" + fx="27.702486" + fy="14.540437" + r="9.1620579" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7300" + id="radialGradient2631" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.964825,0,0,0.631898,0.954495,11.94073)" + cx="24.248138" + cy="27.184834" + fx="24.248138" + fy="27.184834" + r="12.499089" /> + <inkscape:perspective + id="perspective2506" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient3131" - id="linearGradient3137" - x1="18.206755" - y1="4.8468447" - x2="18.150391" - y2="13.775416" + xlink:href="#linearGradient3327" + id="linearGradient3333" + x1="32.26284" + y1="18.39094" + x2="40.463146" + y2="28.908117" + gradientUnits="userSpaceOnUse" /> + <inkscape:perspective + id="perspective3358" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + r="9.1620579" + fy="14.809424" + fx="26.819485" + cy="14.809424" + cx="26.819485" + gradientTransform="matrix(0.9647715,0.3755394,-0.3764009,0.966985,7.9289748,-9.623708)" + gradientUnits="userSpaceOnUse" + id="radialGradient3376" + xlink:href="#linearGradient3800" + inkscape:collect="always" /> + <linearGradient + y2="25.307449" + x2="33.637684" + y1="20.449879" + x1="30.189112" + gradientUnits="userSpaceOnUse" + id="linearGradient3378" + xlink:href="#linearGradient3335" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3327" + id="linearGradient3409" + gradientUnits="userSpaceOnUse" + x1="32.26284" + y1="18.39094" + x2="40.463146" + y2="28.908117" /> + <inkscape:perspective + id="perspective3418" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7300" + id="radialGradient3449" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.964825,0,0,0.631898,0.954495,11.94073)" + cx="24.248138" + cy="27.184834" + fx="24.248138" + fy="27.184834" + r="12.499089" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3451" + id="linearGradient3457" + x1="5.0000005" + y1="11.446214" + x2="8.2252016" + y2="16.493296" gradientUnits="userSpaceOnUse" /> <radialGradient inkscape:collect="always" - xlink:href="#linearGradient2280" - id="radialGradient2286" - cx="10.332581" - cy="6.9103003" - fx="10.332581" - fy="6.9103003" - r="9.5" - gradientTransform="matrix(1.895669,2.346468e-16,-3.526656e-16,2.238626,-11.89066,-12.56638)" + xlink:href="#linearGradient3475" + id="radialGradient3481" + cx="28.779234" + cy="14.68485" + fx="28.779234" + fy="14.68485" + r="9.8994964" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1189106,0,0,1.1189106,-3.422157,-1.7461848)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3483" + id="linearGradient3489" + x1="30.669531" + y1="17.247086" + x2="34.812038" + y2="24.987169" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3301" + id="linearGradient3307" + x1="16.510134" + y1="13.467242" + x2="13.781501" + y2="9.1689024" gradientUnits="userSpaceOnUse" /> </defs> <sodipodi:namedview @@ -97,20 +318,34 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="39.59798" - inkscape:cx="14.115129" - inkscape:cy="9.9583634" + inkscape:zoom="36.060436" + inkscape:cx="12.472661" + inkscape:cy="7.0601917" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" - fill="#eeeeec" - inkscape:window-width="1268" - inkscape:window-height="971" - inkscape:window-x="6" - inkscape:window-y="21" /> + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:window-x="0" + inkscape:window-y="22" + width="11px" + height="11px" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + objecttolerance="7" + gridtolerance="7" + showguides="true" + inkscape:guide-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid2497" + empspacing="5" + visible="true" + enabled="true" /> + </sodipodi:namedview> <metadata - id="metadata13311"> + id="metadata7385"> <rdf:RDF> <cc:Work rdf:about=""> @@ -125,91 +360,80 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> <path - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 0.49919572,3.436028 L 0.49919572,8.024108 C 0.49919572,10.030365 0.43094041,12.50277 3.4779698,12.50277 L 3.5190997,14.938304 L 6.2391563,12.547388 L 10.144168,12.531827 C 13.477975,12.531827 15.5,11.518177 15.5,9.379431 L 15.484468,3.556577 C 15.484468,1.4311219 14.423292,0.51556128 12.453894,0.51556128 L 3.4753207,0.50000048 C 1.4741104,0.50000048 0.49919572,1.561826 0.49919572,3.436028 z " - id="path2199" - sodipodi:nodetypes="ccccccccccc" /> - <path - sodipodi:type="inkscape:offset" - inkscape:radius="-1.0020103" - inkscape:original="M 10.03125 5.5 C 5.2809556 5.6861502 1.5 8.7231084 1.5 12.4375 C 1.5 14.570281 2.4139213 16.850503 4.375 18.125 C 4.790921 19.906271 3.5825788 21.282326 3.375 21.5 C 3.7506605 21.398222 6.7302843 20.58004 7.84375 19.375 C 8.9660824 19.328744 9.5914383 19.40625 10.5 19.40625 C 15.465015 19.40625 19.500001 16.271711 19.5 12.4375 C 19.499999 8.6032883 15.465015 5.5 10.5 5.5 C 10.344844 5.4999998 10.184486 5.4939951 10.03125 5.5 z " - xlink:href="#path13316" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path2288" - inkscape:href="#path13316" - d="M 10.0625,6.5 C 7.8900031,6.5851338 5.9762716,7.3427975 4.625,8.4375 C 3.2737284,9.5322025 2.5,10.920293 2.5,12.4375 C 2.5,14.284032 3.2837785,16.226812 4.90625,17.28125 C 5.1287835,17.423752 5.2860248,17.648382 5.34375,17.90625 C 5.4955807,18.556498 5.4707531,19.125743 5.375,19.65625 C 6.0781419,19.333618 6.8270886,18.976092 7.09375,18.6875 C 7.2809756,18.490079 7.540428,18.377274 7.8125,18.375 C 8.9961476,18.326217 9.6484235,18.40625 10.5,18.40625 C 12.771643,18.40625 14.815021,17.674738 16.25,16.5625 C 17.684979,15.450262 18.5,14.003112 18.5,12.4375 C 18.5,10.871887 17.684227,9.4172787 16.25,8.3125 C 14.815773,7.2077213 12.773745,6.5 10.5,6.5 C 10.318992,6.4999998 10.162289,6.4960896 10.0625,6.5 z " - transform="matrix(-1,0,0,1,23.99247,-3.990738)" /> - <path - style="opacity:1;fill:url(#radialGradient2286);fill-opacity:1;stroke:#555753;stroke-width:1.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 0.49919572,3.436028 L 0.49919572,8.024108 C 0.49919572,10.030365 0.43094041,12.50277 3.4779698,12.50277 L 3.5190997,14.938304 L 6.2391563,12.547388 L 10.144168,12.531827 C 13.477975,12.531827 15.5,11.518177 15.5,9.379431 L 15.484468,3.556577 C 15.484468,1.4311219 14.423292,0.51556128 12.453894,0.51556128 L 3.4753207,0.50000048 C 1.4741104,0.50000048 0.49919572,1.561826 0.49919572,3.436028 z " - id="rect1326" - sodipodi:nodetypes="ccccccccccc" /> - <path - sodipodi:type="inkscape:offset" - inkscape:radius="-0.99553573" - inkscape:original="M 3.46875 0.5 C 1.4675396 0.5 0.5 1.563298 0.5 3.4375 L 0.5 8.03125 C 0.5 10.037507 0.42172061 12.5 3.46875 12.5 L 3.53125 14.9375 L 6.25 12.5625 L 10.15625 12.53125 C 13.490057 12.53125 15.5 11.513746 15.5 9.375 L 15.5 3.5625 C 15.5 1.4370449 14.438148 0.5 12.46875 0.5 L 3.46875 0.5 z " - xlink:href="#rect1326" - style="opacity:1;fill:none;fill-opacity:1;stroke:#eeeeec;stroke-width:1.03363752;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path2248" - inkscape:href="#rect1326" - d="M 3.96875,9.0625 C 3.1444632,9.0625002 2.7022172,9.2621947 2.4375,9.53125 C 2.1727828,9.8003053 2,10.234211 2,11 L 2,15.59375 C 2,16.609826 2.0106197,17.613475 2.25,18.1875 C 2.4893803,18.761525 2.71342,19.0625 3.96875,19.0625 C 4.5099878,19.05993 4.9541408,19.490203 4.96875,20.03125 L 4.96875,20.34375 L 6.09375,19.34375 C 6.2748748,19.183476 6.5081463,19.094611 6.75,19.09375 L 10.65625,19.09375 C 12.221872,19.09375 13.413842,18.823397 14.09375,18.4375 C 14.773658,18.051603 15,17.695013 15,16.9375 L 15,11.125 C 15,10.228058 14.802621,9.7651678 14.53125,9.5 C 14.259879,9.2348322 13.795556,9.0625 12.96875,9.0625 L 3.96875,9.0625 z " - transform="matrix(0.997403,0,0,0.938411,3.636372e-2,0.123235)" /> - <path - sodipodi:type="arc" - style="opacity:0.2;fill:url(#radialGradient3156);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3140" - sodipodi:cx="10.748654" - sodipodi:cy="10.457643" - sodipodi:rx="6.6449099" - sodipodi:ry="2.3675451" - d="M 17.393564 10.457643 A 6.6449099 2.3675451 0 1 1 4.1037445,10.457643 A 6.6449099 2.3675451 0 1 1 17.393564 10.457643 z" - transform="matrix(1.655402,0,0,1.267134,-5.793347,6.748769)" /> + style="opacity:1;color:#000000;fill:#855b8c;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3307);stroke-width:0.99999987999999995px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + d="m 9.2852706,13.499999 3.6531493,0 c 1.0350584,0 2.059811,-0.3777864 2.4354322,-1.4545452 C 15.730548,11.022944 15.434737,9.0757587 13.121077,7.5000022 l -4.3228932,0 C 6.4845226,8.9545462 6.1953886,10.943768 6.7280666,12.106061 7.2707356,13.290156 8.1893256,13.5 9.2852706,13.5 z" + id="path3443" + sodipodi:nodetypes="cczcczc" /> <path sodipodi:type="inkscape:offset" - inkscape:radius="-1.0020103" - inkscape:original="M 10.03125 5.5 C 5.2809556 5.6861502 1.5 8.7231084 1.5 12.4375 C 1.5 14.570281 2.4139213 16.850503 4.375 18.125 C 4.790921 19.906271 3.5825788 21.282326 3.375 21.5 C 3.7506605 21.398222 6.7302843 20.58004 7.84375 19.375 C 8.9660824 19.328744 9.5914383 19.40625 10.5 19.40625 C 15.465015 19.40625 19.500001 16.271711 19.5 12.4375 C 19.499999 8.6032883 15.465015 5.5 10.5 5.5 C 10.344844 5.4999998 10.184486 5.4939951 10.03125 5.5 z " - xlink:href="#path13316" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path13434" - inkscape:href="#path13316" - d="M 10.0625,6.5 C 7.8900031,6.5851338 5.9762716,7.3427975 4.625,8.4375 C 3.2737284,9.5322025 2.5,10.920293 2.5,12.4375 C 2.5,14.284032 3.2837785,16.226812 4.90625,17.28125 C 5.1287835,17.423752 5.2860248,17.648382 5.34375,17.90625 C 5.4955807,18.556498 5.4707531,19.125743 5.375,19.65625 C 6.0781419,19.333618 6.8270886,18.976092 7.09375,18.6875 C 7.2809756,18.490079 7.540428,18.377274 7.8125,18.375 C 8.9961476,18.326217 9.6484235,18.40625 10.5,18.40625 C 12.771643,18.40625 14.815021,17.674738 16.25,16.5625 C 17.684979,15.450262 18.5,14.003112 18.5,12.4375 C 18.5,10.871887 17.684227,9.4172787 16.25,8.3125 C 14.815773,7.2077213 12.773745,6.5 10.5,6.5 C 10.318992,6.4999998 10.162289,6.4960896 10.0625,6.5 z " - transform="matrix(-1,0,0,1,32,-8.84375)" /> + inkscape:radius="-1.1784238" + inkscape:original="M 24.5625 24.125 C 17.844986 28.367641 17.015916 34.172303 18.5625 37.5625 C 20.138096 41.016289 22.818019 41.625 26 41.625 L 36.59375 41.625 C 39.598953 41.624999 42.565667 40.546959 43.65625 37.40625 C 44.691891 34.423774 43.842514 28.721194 37.125 24.125 L 24.5625 24.125 z " + style="opacity:0.5;color:#000000;fill:url(#radialGradient3449);fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:3.58186674000000016px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + id="path3445" + d="m 24.96875,25.3125 c -6.080867,3.980556 -6.594767,9.007702 -5.34375,11.75 0.693936,1.521145 1.541625,2.278662 2.5625,2.75 1.020875,0.471338 2.296653,0.625 3.8125,0.625 l 10.59375,0 c 1.361692,0 2.658712,-0.23791 3.6875,-0.78125 1.028788,-0.54334 1.79962,-1.327976 2.25,-2.625 0.804003,-2.315397 0.274744,-7.39869 -5.8125,-11.71875 z" + transform="matrix(0.2947246,0,0,0.2644629,1.8788978,1.8057826)" /> + <path + style="opacity:0.78977272;fill:#eeeeec;fill-opacity:1;stroke:none" + d="m 12.999999,10.150001 c 0,1.0212 -1.053115,1.320578 -2,1.85 -1.339673,-0.49828 -2,-0.8288 -2,-1.85 0,-1.0212014 0.8959998,-1.8500014 2,-1.8500014 1.104,0 2,0.8288 2,1.8500014 z" + id="path3447" + sodipodi:nodetypes="ccssc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:#d28812;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3489);stroke-width:1.92490505999999995px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + id="path2549" + sodipodi:cx="31.112698" + sodipodi:cy="19.008621" + sodipodi:rx="8.6620579" + sodipodi:ry="8.6620579" + d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324116,0 A 8.6620579,8.6620579 0 1 1 39.774755,19.008621 z" + transform="matrix(0.5195068,0,0,0.5195069,-5.1632599,-4.8751084)" /> + <path + d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324116,0 A 8.6620579,8.6620579 0 1 1 39.774755,19.008621 z" + sodipodi:ry="8.6620579" + sodipodi:rx="8.6620579" + sodipodi:cy="19.008621" + sodipodi:cx="31.112698" + id="path2551" + style="opacity:0.625;color:#000000;fill:url(#radialGradient3481);fill-opacity:1;stroke:url(#linearGradient3333);stroke-width:2.47487712px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" + transform="matrix(0.4040609,0,0,0.4040609,-1.5714252,-2.6806412)" /> + <path + style="opacity:1;color:#000000;fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3457);stroke-width:0.99999987999999995px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + d="m 3.2852716,15.499999 3.6531493,0 c 1.0350584,0 2.059811,-0.3777864 2.4354322,-1.4545452 C 9.7305489,13.022944 9.4347379,11.075758 7.1210779,9.5000014 l -4.3228932,0 c -2.3136607,1.454544 -2.6027951,3.443766 -2.0701172,4.606059 0.54266971,1.184095 1.4612592,1.393939 2.5572041,1.393939 z" + id="path4308" + sodipodi:nodetypes="cczcczc" /> <path sodipodi:type="inkscape:offset" - inkscape:radius="-1.0020103" - inkscape:original="M 10.03125 5.5 C 5.2809556 5.6861502 1.5 8.7231084 1.5 12.4375 C 1.5 14.570281 2.4139213 16.850503 4.375 18.125 C 4.790921 19.906271 3.5825788 21.282326 3.375 21.5 C 3.7506605 21.398222 6.7302843 20.58004 7.84375 19.375 C 8.9660824 19.328744 9.5914383 19.40625 10.5 19.40625 C 15.465015 19.40625 19.500001 16.271711 19.5 12.4375 C 19.499999 8.6032883 15.465015 5.5 10.5 5.5 C 10.344844 5.4999998 10.184486 5.4939951 10.03125 5.5 z " - xlink:href="#path13316" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path13323" - inkscape:href="#path13316" - d="M 10.0625,6.5 C 7.8900031,6.5851338 5.9762716,7.3427975 4.625,8.4375 C 3.2737284,9.5322025 2.5,10.920293 2.5,12.4375 C 2.5,14.284032 3.2837785,16.226812 4.90625,17.28125 C 5.1287835,17.423752 5.2860248,17.648382 5.34375,17.90625 C 5.4955807,18.556498 5.4707531,19.125743 5.375,19.65625 C 6.0781419,19.333618 6.8270886,18.976092 7.09375,18.6875 C 7.2809756,18.490079 7.540428,18.377274 7.8125,18.375 C 8.9961476,18.326217 9.6484235,18.40625 10.5,18.40625 C 12.771643,18.40625 14.815021,17.674738 16.25,16.5625 C 17.684979,15.450262 18.5,14.003112 18.5,12.4375 C 18.5,10.871887 17.684227,9.4172787 16.25,8.3125 C 14.815773,7.2077213 12.773745,6.5 10.5,6.5 C 10.318992,6.4999998 10.162289,6.4960896 10.0625,6.5 z " - transform="matrix(0.750603,0,0,0.750603,0.123492,-2.625632)" /> - <rect - style="opacity:1;fill:#9a9b96;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect2207" - width="9" - height="1" - x="3" - y="4" - rx="0.5" - ry="0.5" /> - <rect - style="opacity:1;fill:#9a9b96;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect1343" - width="8" - height="1" - x="3" - y="8" - rx="0.5" - ry="0.5" /> - <rect - style="opacity:1;fill:#9a9b96;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="rect1345" - width="7" - height="1" - x="3" - y="6" - rx="0.5" - ry="0.5" /> + inkscape:radius="-1.1784238" + inkscape:original="M 24.5625 24.125 C 17.844986 28.367641 17.015916 34.172303 18.5625 37.5625 C 20.138096 41.016289 22.818019 41.625 26 41.625 L 36.59375 41.625 C 39.598953 41.624999 42.565667 40.546959 43.65625 37.40625 C 44.691891 34.423774 43.842514 28.721194 37.125 24.125 L 24.5625 24.125 z " + style="opacity:0.5;color:#000000;fill:url(#radialGradient2631);fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:3.58186674000000016px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + id="path7281" + d="m 24.96875,25.3125 c -6.080867,3.980556 -6.594767,9.007702 -5.34375,11.75 0.693936,1.521145 1.541625,2.278662 2.5625,2.75 1.020875,0.471338 2.296653,0.625 3.8125,0.625 l 10.59375,0 c 1.361692,0 2.658712,-0.23791 3.6875,-0.78125 1.028788,-0.54334 1.79962,-1.327976 2.25,-2.625 0.804003,-2.315397 0.274744,-7.39869 -5.8125,-11.71875 z" + transform="matrix(0.2947246,0,0,0.2644629,-4.1211012,3.8057819)" /> + <path + style="opacity:0.78977272;fill:#eeeeec;fill-opacity:1;stroke:none" + d="M 7,12.15 C 7,13.1712 5.9468852,13.470578 5.0000003,14 3.6603268,13.50172 2.9999998,13.1712 2.9999998,12.15 c 0,-1.021201 0.896,-1.850001 2.000001,-1.850001 1.1039998,0 1.9999997,0.8288 1.9999997,1.850001 z" + id="path7285" + sodipodi:nodetypes="ccssc" /> + <path + sodipodi:type="arc" + style="opacity:1;color:#000000;fill:url(#radialGradient3376);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3378);stroke-width:1.92490506px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + id="path3405" + sodipodi:cx="31.112698" + sodipodi:cy="19.008621" + sodipodi:rx="8.6620579" + sodipodi:ry="8.6620579" + d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324116,0 A 8.6620579,8.6620579 0 1 1 39.774755,19.008621 z" + transform="matrix(0.5195068,0,0,0.5195069,-11.163257,-2.8751094)" /> + <path + d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324116,0 A 8.6620579,8.6620579 0 1 1 39.774755,19.008621 z" + sodipodi:ry="8.6620579" + sodipodi:rx="8.6620579" + sodipodi:cy="19.008621" + sodipodi:cx="31.112698" + id="path3407" + style="opacity:0.625;color:#000000;fill:none;stroke:url(#linearGradient3409);stroke-width:2.47487712px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + sodipodi:type="arc" + transform="matrix(0.4040609,0,0,0.4040609,-7.5714222,-0.6806422)" /> </g> </svg>
--- a/pidgin/pixmaps/status/16/scalable/offline.svg Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/status/16/scalable/offline.svg Thu Jun 26 09:07:56 2008 +0000 @@ -2,7 +2,7 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" @@ -13,7 +13,7 @@ height="16" id="svg2" sodipodi:version="0.32" - inkscape:version="0.45" + inkscape:version="0.46+devel" version="1.0" inkscape:export-filename="/home/hbons/Desktop/offline.png" inkscape:export-xdpi="90" @@ -26,25 +26,47 @@ id="defs4"> <linearGradient inkscape:collect="always" - id="linearGradient2225"> + id="linearGradient3303"> <stop - style="stop-color:#eeeeec;stop-opacity:1;" + style="stop-color:#ffffff;stop-opacity:1;" offset="0" - id="stop2227" /> + id="stop3305" /> <stop - style="stop-color:#eeeeec;stop-opacity:0;" + style="stop-color:#ffffff;stop-opacity:0;" offset="1" - id="stop2229" /> + id="stop3307" /> </linearGradient> <linearGradient inkscape:collect="always" - xlink:href="#linearGradient2225" - id="linearGradient2231" - x1="11.802028" - y1="1.9986149" - x2="11.802028" - y2="14.895812" - gradientUnits="userSpaceOnUse" /> + id="linearGradient3295"> + <stop + style="stop-color:#babdb6;stop-opacity:1" + offset="0" + id="stop3297" /> + <stop + style="stop-color:#888a85;stop-opacity:1" + offset="1" + id="stop3299" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3275"> + <stop + style="stop-color:#2e3436;stop-opacity:1;" + offset="0" + id="stop3277" /> + <stop + style="stop-color:#61635f;stop-opacity:1" + offset="1" + id="stop3279" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 8 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="16 : 8 : 1" + inkscape:persp3d-origin="8 : 5.3333333 : 1" + id="perspective34" /> <linearGradient inkscape:collect="always" id="linearGradient2186"> @@ -153,6 +175,33 @@ x2="12.233074" y2="27.77807" gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3275" + id="linearGradient3281" + x1="14.345539" + y1="14.69435" + x2="6.8097677" + y2="4.3450422" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3295" + id="linearGradient3301" + x1="4.8374491" + y1="3.565635" + x2="12.060304" + y2="13.821809" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3303" + id="linearGradient3309" + x1="6.8490844" + y1="8.6799088" + x2="-3.3852992" + y2="-4.1349444" + gradientUnits="userSpaceOnUse" /> </defs> <sodipodi:namedview id="base" @@ -161,17 +210,28 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="25.992076" - inkscape:cx="26.27121" - inkscape:cy="5.5692688" + inkscape:zoom="8" + inkscape:cx="1.3444167" + inkscape:cy="3.0859953" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" fill="#eeeeec" - inkscape:window-width="1434" - inkscape:window-height="844" - inkscape:window-x="3" - inkscape:window-y="25" /> + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:window-x="0" + inkscape:window-y="22" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + objecttolerance="11" + gridtolerance="10"> + <inkscape:grid + type="xygrid" + empspacing="5" + visible="true" + enabled="true" + id="grid2503" /> + </sodipodi:namedview> <metadata id="metadata7"> <rdf:RDF> @@ -188,7 +248,7 @@ inkscape:groupmode="layer" id="layer1"> <path - style="fill:#888a85;fill-opacity:1;stroke:#2e3436;stroke-width:0.99999827;stroke-miterlimit:4;stroke-opacity:1" + style="fill:url(#linearGradient3301);fill-opacity:1;stroke:url(#linearGradient3281);stroke-width:0.99999826999999997;stroke-miterlimit:4;stroke-opacity:1" d="M 13.307074,13.307079 C 10.376958,16.237198 5.6213214,16.237693 2.6918157,13.308187 C -0.23769028,10.378679 -0.23719421,5.623042 2.692923,2.6929237 C 5.62304,-0.23719442 10.378675,-0.23769056 13.308181,2.6918165 C 16.237687,5.6213234 16.237192,10.376962 13.307074,13.307079 z " id="path2187" /> <path @@ -196,15 +256,22 @@ inkscape:radius="-1.0137641" inkscape:original="M 8 0.5 C 6.0786384 0.50020041 4.1525585 1.2224409 2.6875 2.6875 C -0.24261721 5.6176183 -0.24200589 10.382992 2.6875 13.3125 C 5.6170057 16.242006 10.382384 16.242619 13.3125 13.3125 C 16.242618 10.382383 16.242006 5.6170068 13.3125 2.6875 C 11.847747 1.2227465 9.9213616 0.49979959 8 0.5 z " xlink:href="#path2187" - style="opacity:0.4;fill:url(#linearGradient2231);fill-opacity:1;stroke:#ffffff;stroke-width:0.99995583;stroke-miterlimit:4;stroke-opacity:1" + style="opacity:0.40000000000000002;fill:none;fill-opacity:1;stroke:url(#linearGradient3309);stroke-width:0.99995583000000021;stroke-miterlimit:4;stroke-opacity:1" id="path2215" inkscape:href="#path2187" - d="M 8,1.5 C 6.3326173,1.5001739 4.674966,2.1375335 3.40625,3.40625 C 0.86479124,5.9477097 0.86538373,10.052882 3.40625,12.59375 C 5.9471154,15.134616 10.052293,15.135209 12.59375,12.59375 C 15.135209,10.052292 15.134616,5.9471167 12.59375,3.40625 C 11.325315,2.1378146 9.6669929,1.4998261 8,1.5 z " - transform="matrix(1.000056,0,0,1.000028,-4.353349e-4,-2.926381e-5)" /> + d="M 8,1.5 C 6.3326173,1.5001739 4.674966,2.1375335 3.40625,3.40625 c -2.5414588,2.5414597 -2.5408663,6.646632 0,9.1875 2.5408654,2.540866 6.646043,2.541459 9.1875,0 2.541459,-2.541458 2.540866,-6.6466333 0,-9.1875 C 11.325315,2.1378146 9.6669929,1.4998261 8,1.5 z" + transform="matrix(-1.000056,0,0,-1.000028,16.000461,16.000041)" /> <path - style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#555753;stroke-width:1.00000036;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 11.54182,4.2658182 C 10.931116,3.6551131 10.447965,3.347327 9.8372602,3.9580321 L 8.0000001,5.7952921 L 6.1627401,3.9580321 C 5.5520351,3.3473271 4.9919392,3.7705329 4.381234,4.381238 C 3.770529,4.991943 3.347323,5.5520393 3.9580281,6.1627441 L 5.7952881,8.0000041 L 3.9580281,9.8372641 C 3.3473229,10.447969 3.6935827,10.969592 4.3042875,11.580298 C 4.9149927,12.191002 5.5520349,12.652681 6.1627401,12.041977 L 8.0000001,10.204716 L 9.8372602,12.041977 C 10.447965,12.652681 11.046535,12.306422 11.657239,11.695718 C 12.267944,11.085012 12.652677,10.447969 12.041972,9.8372641 L 10.204713,8.0000041 L 12.041972,6.1627441 C 12.652677,5.552039 12.152526,4.8765236 11.54182,4.2658182 z " + style="opacity:1;fill:#eeeeec;fill-opacity:1;stroke:#555753;stroke-width:1.00000036;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="M 11.85704,4.0822721 C 11.226174,3.4531102 10.534706,3.2129687 9.903839,3.8421305 L 8.0059223,5.7349162 6.1080057,3.8421305 C 5.4771385,3.2129688 4.7446581,3.5335449 4.1137906,4.1627068 3.4829234,4.7918685 3.1996385,5.4843118 3.8305058,6.1134733 L 5.7284224,8.006259 3.8305058,9.8990447 C 3.1996384,10.528207 3.4803833,11.334907 4.1112504,11.96407 4.7421178,12.59323 5.4771383,12.799549 6.1080057,12.170389 L 8.0059223,10.277602 9.903839,12.170389 C 10.534706,12.799549 11.306931,12.596719 11.937797,11.967558 12.568664,11.338395 12.812206,10.528207 12.181339,9.8990449 L 10.283423,8.0062592 12.181339,6.1134736 C 12.812206,5.4843115 12.487908,4.7114342 11.85704,4.0822721 z" id="rect2920" sodipodi:nodetypes="ccccscccscccscccc" /> + <rect + style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none" + id="rect3285" + width="4" + height="4" + x="6" + y="6" /> </g> </svg>
--- a/pidgin/pixmaps/status/16/scalable/person.svg Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/pixmaps/status/16/scalable/person.svg Thu Jun 26 09:07:56 2008 +0000 @@ -2,26 +2,107 @@ <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" + xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16px" - height="16px" + width="16" + height="16" id="svg7380" sodipodi:version="0.32" - inkscape:version="0.44.1" - sodipodi:docbase="/home/hbons/GUI/Tango/Gaim Refresh/status/16/scalable" + inkscape:version="0.46+devel" + sodipodi:docbase="/home/hbons/Desktop" sodipodi:docname="person.svg" - inkscape:export-filename="/home/hbons/GUI/Tango/Gaim Refresh/status/16/person.png" + inkscape:export-filename="/home/hbons/Desktop/person.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> + inkscape:export-ydpi="90" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.0"> <defs id="defs7382"> <linearGradient + inkscape:collect="always" + id="linearGradient3301"> + <stop + style="stop-color:#46284e;stop-opacity:1;" + offset="0" + id="stop3303" /> + <stop + style="stop-color:#7a4588;stop-opacity:1" + offset="1" + id="stop3305" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3483"> + <stop + style="stop-color:#c17802;stop-opacity:1" + offset="0" + id="stop3485" /> + <stop + style="stop-color:#935a00;stop-opacity:1" + offset="1" + id="stop3487" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3475"> + <stop + style="stop-color:#eeeeec;stop-opacity:1;" + offset="0" + id="stop3477" /> + <stop + style="stop-color:#eeeeec;stop-opacity:0;" + offset="1" + id="stop3479" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3451"> + <stop + style="stop-color:#3465a4;stop-opacity:1" + offset="0" + id="stop3453" /> + <stop + style="stop-color:#15325b;stop-opacity:1" + offset="1" + id="stop3455" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3335"> + <stop + style="stop-color:#b2730d;stop-opacity:1;" + offset="0" + id="stop3337" /> + <stop + style="stop-color:#935f0a;stop-opacity:1" + offset="1" + id="stop3339" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3327"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3329" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3331" /> + </linearGradient> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 5.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="11 : 5.5 : 1" + inkscape:persp3d-origin="5.5 : 3.6666667 : 1" + id="perspective28" /> + <linearGradient id="linearGradient3800"> <stop style="stop-color:#f4d9b1;stop-opacity:1.0000000;" @@ -110,6 +191,160 @@ fx="27.702486" fy="14.540437" r="9.1620579" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient7300" + id="radialGradient2631" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.964825,0,0,0.631898,0.954495,11.94073)" + cx="24.248138" + cy="27.184834" + fx="24.248138" + fy="27.184834" + r="12.499089" /> + <inkscape:perspective + id="perspective2506" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3327" + id="linearGradient3333" + x1="32.26284" + y1="18.39094" + x2="40.463146" + y2="28.908117" + gradientUnits="userSpaceOnUse" /> + <inkscape:perspective + id="perspective3358" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + r="9.1620579" + fy="14.809424" + fx="26.819485" + cy="14.809424" + cx="26.819485" + gradientTransform="matrix(0.9647715,0.3755394,-0.3764009,0.966985,7.9289748,-9.623708)" + gradientUnits="userSpaceOnUse" + id="radialGradient3376" + xlink:href="#linearGradient3800" + inkscape:collect="always" /> + <linearGradient + y2="25.307449" + x2="33.637684" + y1="20.449879" + x1="30.189112" + gradientUnits="userSpaceOnUse" + id="linearGradient3378" + xlink:href="#linearGradient3335" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3327" + id="linearGradient3409" + gradientUnits="userSpaceOnUse" + x1="32.26284" + y1="18.39094" + x2="40.463146" + y2="28.908117" /> + <inkscape:perspective + id="perspective3418" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3451" + id="linearGradient3457" + x1="5.0000005" + y1="11.446214" + x2="8.2252016" + y2="16.493296" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient3475" + id="radialGradient3481" + cx="28.779234" + cy="14.68485" + fx="28.779234" + fy="14.68485" + r="9.8994964" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1189106,0,0,1.1189106,-3.422157,-1.7461848)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3483" + id="linearGradient3489" + x1="30.669531" + y1="17.247086" + x2="34.812038" + y2="24.987169" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3301" + id="linearGradient3307" + x1="13.753093" + y1="16.35816" + x2="11.875512" + y2="10.748822" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1111113,0,0,1.1666667,-4.7222232,-0.2500063)" /> + <inkscape:perspective + id="perspective2538" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + <radialGradient + r="9.1620579" + fy="14.809424" + fx="26.819485" + cy="14.809424" + cx="26.819485" + gradientTransform="matrix(0.9647715,0.3755394,-0.3764009,0.966985,7.9289748,-9.623708)" + gradientUnits="userSpaceOnUse" + id="radialGradient2556" + xlink:href="#linearGradient3800" + inkscape:collect="always" /> + <linearGradient + y2="25.307449" + x2="33.637684" + y1="20.449879" + x1="30.189112" + gradientUnits="userSpaceOnUse" + id="linearGradient2558" + xlink:href="#linearGradient3335" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3327" + id="linearGradient2587" + gradientUnits="userSpaceOnUse" + x1="32.26284" + y1="18.39094" + x2="40.463146" + y2="28.908117" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7300" + id="linearGradient3300" + x1="17.57398" + y1="32.875" + x2="44.321774" + y2="32.875" + gradientUnits="userSpaceOnUse" /> </defs> <sodipodi:namedview id="base" @@ -118,17 +353,32 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="36.060436" - inkscape:cx="13.280605" - inkscape:cy="9.4853742" + inkscape:zoom="25.498579" + inkscape:cx="8.3447229" + inkscape:cy="9.4891345" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:document-units="px" - inkscape:window-width="1274" - inkscape:window-height="972" - inkscape:window-x="6" - inkscape:window-y="25" /> + inkscape:window-width="1440" + inkscape:window-height="847" + inkscape:window-x="0" + inkscape:window-y="22" + width="11px" + height="11px" + inkscape:snap-nodes="false" + inkscape:snap-bbox="true" + objecttolerance="7" + gridtolerance="7" + showguides="true" + inkscape:guide-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid2497" + empspacing="5" + visible="true" + enabled="true" /> + </sodipodi:namedview> <metadata id="metadata7385"> <rdf:RDF> @@ -145,44 +395,42 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> <path - style="opacity:1;color:black;fill:#ad7fa8;fill-opacity:1;fill-rule:evenodd;stroke:#5c3566;stroke-width:2.39089775px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - d="M 25.986174,41.636039 L 36.592776,41.636039 C 39.59798,41.636039 42.57326,40.534107 43.663843,37.393398 C 44.699482,34.410922 43.84062,28.73134 37.123106,24.135146 L 24.57196,24.135146 C 17.854446,28.377786 17.014969,34.179977 18.561553,37.570174 C 20.137148,41.023964 22.804193,41.636039 25.986174,41.636039 z " - id="path4308" - sodipodi:nodetypes="cczcczc" - transform="matrix(0.382691,0,0,0.457119,-3.349933,-3.532635)" /> + style="opacity:1;color:#000000;fill:#855b8c;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3307);stroke-width:0.99999963999999997px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + d="m 5.5947456,15.499992 4.0590553,0 c 1.1500651,0 2.2886792,-0.44075079 2.7060362,-1.6969693 C 12.756166,12.610095 12.427487,10.338379 9.856753,8.4999962 l -4.8032154,0 C 2.4828029,10.196964 2.1615429,12.517723 2.7534074,13.873731 c 0.6029656,1.381444 1.6236213,1.626262 2.8413382,1.626262 z" + id="path3443" + sodipodi:nodetypes="cczcczc" /> <path sodipodi:type="inkscape:offset" inkscape:radius="-1.1784238" inkscape:original="M 24.5625 24.125 C 17.844986 28.367641 17.015916 34.172303 18.5625 37.5625 C 20.138096 41.016289 22.818019 41.625 26 41.625 L 36.59375 41.625 C 39.598953 41.624999 42.565667 40.546959 43.65625 37.40625 C 44.691891 34.423774 43.842514 28.721194 37.125 24.125 L 24.5625 24.125 z " - style="opacity:0.45454544;color:black;fill:url(#radialGradient7306);fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:2.73569775px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path7281" - d="M 24.96875,25.3125 C 18.887883,29.293056 18.373983,34.320202 19.625,37.0625 C 20.318936,38.583645 21.166625,39.341162 22.1875,39.8125 C 23.208375,40.283838 24.484153,40.4375 26,40.4375 L 36.59375,40.4375 C 37.955442,40.4375 39.252462,40.19959 40.28125,39.65625 C 41.310038,39.11291 42.08087,38.328274 42.53125,37.03125 C 43.335253,34.715853 42.805994,29.63256 36.71875,25.3125 L 24.96875,25.3125 z " - transform="matrix(0.336828,0,0,0.396695,-1.924113,-1.54134)" /> + style="opacity:0.5;color:#000000;fill:url(#linearGradient3300);fill-opacity:1;fill-rule:evenodd;stroke:#eeeeec;stroke-width:2.99680495px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + id="path3445" + d="m 24.96875,25.3125 c -6.080867,3.980556 -6.594767,9.007702 -5.34375,11.75 0.693936,1.521145 1.541625,2.278662 2.5625,2.75 1.020875,0.471338 2.296653,0.625 3.8125,0.625 l 10.59375,0 c 1.361692,0 2.658712,-0.23791 3.6875,-0.78125 1.028788,-0.54334 1.79962,-1.327976 2.25,-2.625 0.804003,-2.315397 0.274744,-7.39869 -5.8125,-11.71875 z" + transform="matrix(-0.3368281,0,0,0.3305786,17.924115,1.1322288)" /> <path - transform="matrix(0.761596,0,0,0.870395,-3.301291,-7.391088)" - style="opacity:0.78977272;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1" - d="M 20.091094,19.980694 C 20.091094,21.249084 17.671238,21.620929 15.495478,22.278502 C 12.417166,21.65961 10.899861,21.249084 10.899861,19.980694 C 10.899861,18.712304 12.958697,17.682885 15.495478,17.682885 C 18.032258,17.682885 20.091094,18.712304 20.091094,19.980694 z " - id="path7285" + style="opacity:0.78977272;fill:#eeeeec;fill-opacity:1;stroke:none" + d="M 10,10.500001 C 10,11.88 8.6836063,12.284565 7.5,13 5.8254087,12.326649 5,11.88 5,10.500001 5,9.1200001 6.1199997,8 7.5,8 8.88,8 10,9.1199996 10,10.500001 z" + id="path3447" sodipodi:nodetypes="ccssc" /> <path sodipodi:type="arc" - style="opacity:1;color:black;fill:url(#radialGradient4171);fill-opacity:1;fill-rule:evenodd;stroke:#b2730d;stroke-width:1.73241472px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path4320" + style="opacity:1;color:#000000;fill:url(#radialGradient2556);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2558);stroke-width:1.73241425px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" + id="path3405" sodipodi:cx="31.112698" sodipodi:cy="19.008621" sodipodi:rx="8.6620579" sodipodi:ry="8.6620579" - d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" - transform="matrix(0.57723,0,0,0.57723,-9.459179,-5.472346)" /> + d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324116,0 A 8.6620579,8.6620579 0 1 1 39.774755,19.008621 z" + transform="matrix(0.57723,0,0,0.5772299,-10.459182,-5.4723453)" /> <path - d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" + d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324116,0 A 8.6620579,8.6620579 0 1 1 39.774755,19.008621 z" sodipodi:ry="8.6620579" sodipodi:rx="8.6620579" sodipodi:cy="19.008621" sodipodi:cx="31.112698" - id="path4322" - style="opacity:0.25;color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:2.165519px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="path3407" + style="opacity:0.625;color:#000000;fill:none;stroke:url(#linearGradient2587);stroke-width:2.16551685px;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" sodipodi:type="arc" - transform="matrix(0.461783,0,0,0.461784,-5.867326,-3.277881)" /> + transform="matrix(0.461784,0,0,0.461784,-6.8673454,-3.2778773)" /> </g> </svg>
--- a/pidgin/plugins/cap/cap.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/plugins/cap/cap.c Thu Jun 26 09:07:56 2008 +0000 @@ -333,7 +333,7 @@ static gboolean max_message_difference_cb(gpointer data) { CapStatistics *stats = data; - purple_debug_info("cap", "Max Message Difference timeout occured\n"); + purple_debug_info("cap", "Max Message Difference timeout occurred\n"); insert_cap_failure(stats); stats->timeout_source_id = 0; return FALSE;
--- a/pidgin/plugins/gevolution/gevolution.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/plugins/gevolution/gevolution.c Thu Jun 26 09:07:56 2008 +0000 @@ -239,14 +239,14 @@ } else { - purple_notify_error(NULL, NULL, _("Unable to send e-mail"), + purple_notify_error(NULL, NULL, _("Unable to send email"), _("The evolution executable was not found in the PATH.")); } } else { - purple_notify_error(NULL, NULL, _("Unable to send e-mail"), - _("An e-mail address was not found for this buddy.")); + purple_notify_error(NULL, NULL, _("Unable to send email"), + _("An email address was not found for this buddy.")); } } @@ -284,7 +284,7 @@ if (mail != NULL) { - act = purple_menu_action_new(_("Send E-Mail"), + act = purple_menu_action_new(_("Send Email"), PURPLE_CALLBACK(menu_item_send_mail_activate_cb), NULL, NULL); *menu = g_list_append(*menu, act); g_free(mail);
--- a/pidgin/plugins/gevolution/new_person_dialog.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/plugins/gevolution/new_person_dialog.c Thu Jun 26 09:07:56 2008 +0000 @@ -375,9 +375,9 @@ G_CALLBACK(person_info_changed_cb), dialog); } - /* E-Mail address field */ + /* Email address field */ dialog->email = gtk_entry_new(); - add_pref_box(sg2, vbox2, _("E-mail:"), dialog->email); + add_pref_box(sg2, vbox2, _("Email:"), dialog->email); if (contact != NULL) {
--- a/pidgin/plugins/spellchk.c Thu Jun 26 08:42:49 2008 +0000 +++ b/pidgin/plugins/spellchk.c Thu Jun 26 09:07:56 2008 +0000 @@ -1740,6 +1740,7 @@ "BAD wroking\nGOOD working\n" "BAD wtih\nGOOD with\n" "BAD wuould\nGOOD would\n" + "BAD wud\nGOOD would\n" "BAD wut\nGOOD what\n" "BAD wya\nGOOD way\n" "BAD y\nGOOD why\n"
--- a/po/POTFILES.in Thu Jun 26 08:42:49 2008 +0000 +++ b/po/POTFILES.in Thu Jun 26 09:07:56 2008 +0000 @@ -180,6 +180,7 @@ libpurple/request.h libpurple/savedstatuses.c libpurple/server.c +libpurple/smiley.c libpurple/sslconn.c libpurple/status.c libpurple/util.c @@ -209,6 +210,7 @@ pidgin/gtkrequest.c pidgin/gtkroomlist.c pidgin/gtksavedstatuses.c +pidgin/gtksmiley.c pidgin/gtksound.c pidgin/gtkstatusbox.c pidgin/gtkutils.c
--- a/po/af.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/af.po Thu Jun 26 09:07:56 2008 +0000 @@ -2773,7 +2773,7 @@ msgid "Last name" msgstr "Van" -msgid "E-Mail" +msgid "Email" msgstr "E-pos" msgid "AIM Account" @@ -2798,9 +2798,6 @@ msgid "Purple Person" msgstr "Pers persoon" -msgid "E-mail" -msgstr "E-pos" - msgid "Bonjour" msgstr "Bonjour" @@ -3880,7 +3877,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "Vul een of meer velde in om te soek vir passende XMPP-gebruikers." -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-posadres" msgid "Search for XMPP users" @@ -4614,7 +4611,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "Sintaksfout (dalk 'n kli谷ntfout)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ongeldige e-posadres" msgid "User does not exist" @@ -4971,7 +4968,7 @@ msgid "Home Fax" msgstr "Huisfaks" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Persoonlike e-pos" msgid "Personal IM" @@ -5014,7 +5011,7 @@ msgid "Work Fax" msgstr "Werkfaks" -msgid "Work E-Mail" +msgid "Work Email" msgstr "Werks-e-pos" msgid "Work IM" @@ -6357,7 +6354,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6501,11 +6498,11 @@ msgstr[1] "Die volgende skermname word met %s geassosieer" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Geen resultate gekry vir e-posadres %s nie" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "U behoort 'n e-pos te ontvang wat vra dat u %s bevestig." msgid "Account Confirmation Requested" @@ -6534,7 +6531,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Fout 0x%04x: Kan nie die e-posadres verander nie omdat daar reeds 'n versoek " @@ -6542,7 +6539,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Fout 0x%04x: Kon nie e-posadres verander nie omdat die gegewe adres te veel " @@ -6550,7 +6547,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Fout 0x%04x: Kon nie e-posadres verander nie omdat die gegewe adres ongeldig " @@ -6564,7 +6561,7 @@ msgstr "Kon nie rekeninginligting verander nie" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Die e-posadres vir %s is %s" msgid "Account Info" @@ -6779,13 +6776,13 @@ "U kan magtiging van hierdie vriende weer aanvra, deur op hulle te regskliek " "en \"Vra weer magtiging aan\" te kies." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Vind vriend volgens e-pos" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Soek vir 'n vriend volgens e-posadres" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Gee die e-posadres van die vriend waarvoor u soek." msgid "_Search" @@ -6808,16 +6805,16 @@ msgid "Confirm Account" msgstr "Bevestig rekening" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Wys e-posadres wat tans geregistreer is" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Verander e-posadres wat tans geregistreer is..." msgid "Show Buddies Awaiting Authorization" msgstr "Wys vriende wat op magtiging wag" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Soek vir vriend met e-posadres..." msgid "Search for Buddy by Information" @@ -6883,9 +6880,6 @@ msgid "College" msgstr "Kollege" -msgid "Email" -msgstr "E-pos" - msgid "Zipcode" msgstr "Poskode" @@ -8645,7 +8639,7 @@ msgstr "Gebruikernaam: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-pos: \t\t%s\n" #, c-format @@ -8883,7 +8877,7 @@ msgid "Dir service temporarily unavailable." msgstr "Gidsdiens is tydelik nie beskikbaar nie." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-posopsoek ingeperk." msgid "Keyword ignored." @@ -11207,7 +11201,7 @@ msgid "Enable typing notification" msgstr "Aktiveer tikkennisgewings" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopieer e-posadres" msgid "_Open Link in Browser" @@ -11561,8 +11555,8 @@ msgstr[1] "%s het %d nuwe boodskappe." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d nuwe e-pos.</b>" msgstr[1] "<b>%d nuwe e-posse.</b>" @@ -12597,19 +12591,19 @@ msgid "_Associate Buddy" msgstr "_Assosieer vriend" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Kan nie e-pos stuur nie" msgid "The evolution executable was not found in the PATH." msgstr "Die evolution-programl棚er is nie in die PATH gevind nie." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Daar is nie 'n e-posadres vir hierdie vriend gevind nie." msgid "Add to Address Book" msgstr "Voeg by adresboek" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Stuur e-pos" #. Configuration frame @@ -12655,7 +12649,7 @@ msgid "Last name:" msgstr "Van:" -msgid "E-mail:" +msgid "Email:" msgstr "E-pos:" #. *< type
--- a/po/am.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/am.po Thu Jun 26 09:07:56 2008 +0000 @@ -3553,7 +3553,7 @@ #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 #, fuzzy -msgid "E-Mail" +msgid "Email" msgstr "�≡���〟��" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3592,17 +3592,6 @@ msgid "Purple Person" msgstr "<���過�� �衣������>" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "�≡���〟��" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5297,7 +5286,7 @@ #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 #, fuzzy -msgid "E-Mail Address" +msgid "Email Address" msgstr "�≡������ ���求����" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6387,7 +6376,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, fuzzy, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�≡������ ���求����" #: ../libpurple/protocols/msn/error.c:49 @@ -6949,7 +6938,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "�求��-���潤��" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7020,7 +7009,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "�≡���〟��" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8650,7 +8639,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8842,12 +8831,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8881,21 +8870,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8906,7 +8895,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9158,15 +9147,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9197,11 +9186,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9210,7 +9199,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "���≡�� ��������" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9298,10 +9287,6 @@ msgid "College" msgstr "" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�≡���〟��" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "" @@ -12079,7 +12064,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�≡���〟��" #: ../libpurple/protocols/silc/util.c:364 @@ -12427,7 +12412,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15374,7 +15359,7 @@ #: ../pidgin/gtkimhtml.c:1598 #, fuzzy -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "�≡������ ���求����" #: ../pidgin/gtkimhtml.c:1610 @@ -15767,8 +15752,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17039,7 +17024,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�衣�������戟��" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17047,7 +17032,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17056,7 +17041,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "�≡���〟��" #. Configuration frame @@ -17119,7 +17104,7 @@ #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 #, fuzzy -msgid "E-mail:" +msgid "Email:" msgstr "�≡���〟��" #. *< type
--- a/po/ar.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ar.po Thu Jun 26 09:07:56 2008 +0000 @@ -3808,7 +3808,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" +msgid "Email" msgstr "悋�惡惘�惆 悋�悒��惠惘���" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3840,16 +3840,6 @@ msgid "Purple Person" msgstr "愆悽惶 悖惘悴�悋��" -#: ../libpurple/protocols/bonjour/bonjour.c:704 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "悋�惡惘�惆 悋�悒��惠惘���" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "惡��悴�惘" @@ -5531,7 +5521,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3761 #: ../libpurple/protocols/oscar/oscar.c:3770 -msgid "E-Mail Address" +msgid "Email Address" msgstr "惺��悋� 悋�惡惘�惆 悋�悋��惠惘���" #: ../libpurple/protocols/jabber/buddy.c:2470 @@ -6594,7 +6584,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "惺��悋� 惡惘�惆 悒��惠惘��� 愃�惘 惶悋�忰" #: ../libpurple/protocols/msn/error.c:49 @@ -7204,7 +7194,7 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "悋�惡惘�惆 悋�悒��惠惘��� 悋�愆悽惶�" #: ../libpurple/protocols/msn/msn.c:1827 @@ -7280,7 +7270,7 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" +msgid "Work Email" msgstr "悋�惡惘�惆 悋�悒��惠惘��� ��惺��" #: ../libpurple/protocols/msn/msn.c:1858 @@ -9086,7 +9076,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2507 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9293,12 +9283,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3995 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�悋 惠�悴惆 �惠悋悧悴 �惺��悋� 悋�惡惘�惆 悋�悒��惠惘��� %s" #: ../libpurple/protocols/oscar/oscar.c:4016 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "愕惠惠愕�� 惡惘�惆悋 悒��惠惘���悋 �愕悖�� 惠���惆 %s." #: ../libpurple/protocols/oscar/oscar.c:4018 @@ -9327,14 +9317,14 @@ #: ../libpurple/protocols/oscar/oscar.c:4057 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "悽愀悖 0x%04x: 惠惺悵�惘 惠愃��惘 惺��悋� 悋�惡惘�惆 悋�悒��惠惘��� ��悴�惆 愀�惡 愕悋惡� ��悵悋 悋�悋愕�." #: ../libpurple/protocols/oscar/oscar.c:4059 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "悽愀悖 0x%04x: 惠惺悵�惘 惠愃��惘 惺��悋� 悋�惡惘�惆 悋�悒��惠惘��� �悖� 悋�惺��悋� 悋��惺愀� 惠�悴惆 悖愕�悋悄 " @@ -9343,7 +9333,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4061 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "悽愀悖 0x%04x: 惠惺悵�惘 惠愃��惘 惺��悋� 悋�惡惘�惆 悋�悒��惠惘��� �悖� 悋�惺��悋� 悋��惺愀� 愃�惘 惶悋�忰." @@ -9358,7 +9348,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4071 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "惺��悋� 悋�惡惘�惆 悋�悒��惠惘��� �� %s �� %s" #: ../libpurple/protocols/oscar/oscar.c:4073 @@ -9622,15 +9612,15 @@ "悋悽惠�悋惘 \"悖惺�惆 愀�惡 悋�惠惶惘�忰.\"" #: ../libpurple/protocols/oscar/oscar.c:6361 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "悋惡忰惓 惺� 惶惆�� 惡悋�惡惘�惆" #: ../libpurple/protocols/oscar/oscar.c:6362 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "悋惡忰惓 惺� 惶惆�� 惡�悋愕愀悸 惺��悋� 惡惘�惆� 悋�悒��惠惘���" #: ../libpurple/protocols/oscar/oscar.c:6363 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "悖惆悽� 惺��悋� 悋�惡惘�惆 悋�悒��惠惘��� ��惶惆�� 悋�悵� 惠惡忰惓 惺��." #: ../libpurple/protocols/oscar/oscar.c:6366 @@ -9660,11 +9650,11 @@ msgstr "悖��惆 悋�忰愕悋惡" #: ../libpurple/protocols/oscar/oscar.c:6560 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "悋惺惘惷 惺�悋��� 悋�惡惘�惆 悋�悒��惠惘��� 悋��愕悴�悸 忰悋���悋" #: ../libpurple/protocols/oscar/oscar.c:6564 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "愃��惘 惺�悋��� 悋�惡惘�惆 悋�悒��惠惘��� 悋��愕悴�悸 忰悋���悋..." #: ../libpurple/protocols/oscar/oscar.c:6571 @@ -9672,7 +9662,7 @@ msgstr "悋惺惘惷 悋�悖惶惆�悋悄 悋�悵�� ��惠惴惘�� 惠惶惘�忰悋惠" #: ../libpurple/protocols/oscar/oscar.c:6577 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "悋惡忰惓 惺� 惶惆�� 惡�悋愕愀悸 惺��悋� 悋�惡惘�惆 悋�悒��惠惘���..." #: ../libpurple/protocols/oscar/oscar.c:6582 @@ -9753,10 +9743,6 @@ msgid "College" msgstr "悋�����悸" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "悋�惡惘�惆 悋�悒��惠惘���" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "悋�惘��慍 悋�惡惘�惆��" @@ -12503,7 +12489,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "悋�惡惘�惆 悋�悒��惠惘���: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 @@ -12820,7 +12806,7 @@ msgstr "悽惆�悸 悋�惆��� 愃�惘 �惠悋忰悸 �悗�惠悋." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "悋�惡忰惓 �� 悋�惡惘�惆 ���惆." #: ../libpurple/protocols/toc/toc.c:533 @@ -15893,7 +15879,7 @@ msgstr "��� 惘愕� 悋愕� 惘愕悋�悸 悒悴惘悋悄." #: ../pidgin/gtkimhtml.c:1636 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "悋_�愕悽 惺��悋� 悋�惡惘�惆 悋�悒��惠惘���" #: ../pidgin/gtkimhtml.c:1648 @@ -16310,8 +16296,8 @@ #: ../pidgin/gtknotify.c:575 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>�悋 惡惘�惆 悴惆�惆.</b>" msgstr[1] "<b>�惆�� 惘愕悋�悸 惡惘�惆 �悋忰惆悸 悴惆�惆悸.</b>" msgstr[2] "<b>�惆�� 惘愕悋�惠� 惡惘�惆 悴惆�惆惠��.</b>" @@ -17597,7 +17583,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "惠惺悵�惘 悒惘愕悋� 惡惘�惆 悒��惠惘���" #: ../pidgin/plugins/gevolution/gevolution.c:243 @@ -17605,7 +17591,7 @@ msgstr "�� ��惺惓惘 惺�� ��� 悋�惠愆愃�� �惡惘�悴�悸 悒���愆� �� 悋��愕悋惘 (PATH)" #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�� ��惺惓惘 惺�� 惺��悋� 惡惘�惆 悒��惠惘��� ��悵悋 悋�惶惆��." #: ../pidgin/plugins/gevolution/gevolution.c:275 @@ -17613,7 +17599,7 @@ msgstr "悖惷� 悒�� 惆�惠惘 悋�惺�悋���" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" +msgid "Send Email" msgstr "悖惘愕� 惡惘�惆悋 悒��惠惘���悋" #. Configuration frame @@ -17671,7 +17657,7 @@ msgstr "悋�悋愕� 悋�悖悽�惘:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" +msgid "Email:" msgstr "悋�惡惘�惆 悋�悒��惠惘���:" #. *< type
--- a/po/az.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/az.po Thu Jun 26 09:07:56 2008 +0000 @@ -3563,7 +3563,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3599,17 +3599,6 @@ msgid "Purple Person" msgstr "Yeni ��xs" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "E-po巽t:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5292,8 +5281,8 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "E-Po巽t �nvan脹" +msgid "Email Address" +msgstr "Epo巽t �nvan脹" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6350,7 +6339,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "" #: ../libpurple/protocols/msn/error.c:49 @@ -6905,7 +6894,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Fayl脹 G旦nd�r" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6971,7 +6960,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "Fayl脹 G旦nd�r" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8584,7 +8573,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8768,12 +8757,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8807,21 +8796,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8832,7 +8821,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9081,15 +9070,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9121,11 +9110,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9133,7 +9122,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9222,10 +9211,6 @@ msgid "College" msgstr "_Y脹�camla�d脹r" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Epo巽t" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "" @@ -11962,8 +11947,8 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-po巽t:" +msgid "Email: \t\t%s\n" +msgstr "Epo巽t:" #: ../libpurple/protocols/silc/util.c:364 #: ../libpurple/protocols/silc10/util.c:361 @@ -12310,7 +12295,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15245,7 +15230,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "" #: ../pidgin/gtkimhtml.c:1610 @@ -15647,8 +15632,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -16927,7 +16912,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Soket a巽脹la bilm�di" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16935,7 +16920,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16944,7 +16929,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "Fayl脹 G旦nd�r" #. Configuration frame @@ -17003,8 +16988,8 @@ msgstr "Soyad:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-po巽t:" +msgid "Email:" +msgstr "Epo巽t:" #. *< type #. *< ui_requirement @@ -18138,7 +18123,7 @@ #~ msgid "%s (%d new/%d total)" #~ msgstr "%s (%d yeni/%d toplam)" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "Po巽tu h�r X saniy�d� bir yoxla.\n" #~ msgid "Auto-login"
--- a/po/be@latin.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/be@latin.po Thu Jun 26 09:07:56 2008 +0000 @@ -2766,8 +2766,8 @@ msgid "Last name" msgstr "Pro添vi邸�a" -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" msgid "AIM Account" msgstr "Kont AIM" @@ -2791,9 +2791,6 @@ msgid "Purple Person" msgstr "Asoba Purple" -msgid "E-mail" -msgstr "E-mail" - msgid "Bonjour" msgstr "Bonjour" @@ -3869,8 +3866,8 @@ msgstr "" "Zapo鏑ni adno ci niekalki palo鏑, kab 邸uka� adpaviednych karystalnika鏑 XMPP." -msgid "E-Mail Address" -msgstr "Adras e-mail" +msgid "Email Address" +msgstr "Adras email" msgid "Search for XMPP users" msgstr "�ukaj karystalnika鏑 XMPP" @@ -4599,8 +4596,8 @@ msgid "Syntax Error (probably a client bug)" msgstr "Syntaksy�naja pamy�ka (mah�yma, pamy�ka klijenta)" -msgid "Invalid e-mail address" -msgstr "Niapravilny adras e-mail" +msgid "Invalid email address" +msgstr "Niapravilny adras email" msgid "User does not exist" msgstr "Karystalnik nie isnuje" @@ -4957,8 +4954,8 @@ msgid "Home Fax" msgstr "Chatni faks" -msgid "Personal E-Mail" -msgstr "Persanalny E-mail" +msgid "Personal Email" +msgstr "Persanalny Email" msgid "Personal IM" msgstr "Persanalny kont chutkich paviedamle�nia鏑" @@ -5000,8 +4997,8 @@ msgid "Work Fax" msgstr "Praco鏑ny faks" -msgid "Work E-Mail" -msgstr "Praco鏑ny E-mail" +msgid "Work Email" +msgstr "Praco鏑ny Email" msgid "Work IM" msgstr "Praco鏑ny kont chutkich paviedamle�nia鏑" @@ -6214,7 +6211,7 @@ "only letters, numbers and spaces, or contain only numbers." msgstr "" "Niemah�yma 鏑vaj�ci: niemah�yma 鏑vaj�ci jak %s, bo nazva karystalnika " -"niapravilnaja. Nazvy karystalnika鏑 musia� by� pravilnymi adrasami e-mail " +"niapravilnaja. Nazvy karystalnika鏑 musia� by� pravilnymi adrasami email " "albo pa�ynacca 添 litary i 鏑trymliva� tolki litary, li�by j prabie�y, albo " "tolki li�by." @@ -6352,12 +6349,12 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Ty atryma鏑/atryma�a e-mail ICQ ad %s [%s]\n" +"Ty atryma鏑/atryma�a email ICQ ad %s [%s]\n" "\n" "Paviedamle�nie:\n" "%s" @@ -6504,11 +6501,11 @@ msgstr[2] "Nastupnyja nazvy karystalnika鏑 添viazanyja z %s" #, c-format -msgid "No results found for e-mail address %s" -msgstr "Ni�oha nia znojdziena dla adrasu e-maila %s" - -#, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "No results found for email address %s" +msgstr "Ni�oha nia znojdziena dla adrasu emaila %s" + +#, c-format +msgid "You should receive an email asking to confirm %s." msgstr "Ty pavinny atryma� list z pro�baj pa�vierdzi� %s." msgid "Account Confirmation Requested" @@ -6538,26 +6535,26 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Pamy�ka 0x%04x: Niemah�yma 添miani� adras e-mail, bo 鏑転o adzin zapyt �akaje " +"Pamy�ka 0x%04x: Niemah�yma 添miani� adras email, bo 鏑転o adzin zapyt �akaje " "ra添viaza�nia dla hetaj nazvy karystalnika." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Pamy�ka 0x%04x: Niemah�yma 添miani� adras e-mail, bo akre�leny adras maje " +"Pamy�ka 0x%04x: Niemah�yma 添miani� adras email, bo akre�leny adras maje " "nadta 邸mat nazva鏑 karystalnika鏑, 添viazanych 添 im." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Pamy�ka 0x%04x: Niemah�yma 添miani� adras e-mail, bo akre�leny adras " +"Pamy�ka 0x%04x: Niemah�yma 添miani� adras email, bo akre�leny adras " "niapravilny." #, c-format @@ -6568,8 +6565,8 @@ msgstr "Pamy�ka 添mieny 添viestak kontu" #, c-format -msgid "The e-mail address for %s is %s" -msgstr "Adras e-mail dla %s - %s" +msgid "The email address for %s is %s" +msgstr "Adras email dla %s - %s" msgid "Account Info" msgstr "店viestki kontu" @@ -6639,7 +6636,7 @@ "numbers and spaces, or contain only numbers." msgstr "" "Niemah�yma dada� siabra %s, bo nazva karystalnika niapravilnaja. Hetyja " -"nazvy pavinny by� albo pravilnym adrasam e-mail, albo pa�ynacca 添 litary i " +"nazvy pavinny by� albo pravilnym adrasam email, albo pa�ynacca 添 litary i " "鏑trymliva� tolki litary, li�by j prabie�y, albo 鏑trymliva� tolki li�by." msgid "Unable To Add" @@ -6793,14 +6790,14 @@ "Ty mo転a邸 pierazapyta� a鏑taryzacyi 鏑 hetych siabro鏑, praz pravy klik i " "abra鏑邸y \"Pierazapytaj a鏑taryzacyi\"." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "�ukaj siabra pavodle e-mai�u" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "�ukaj siabra pavodle adrasu e-mai�u" -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Akre�l adras e-mail siabra, jakoha ty 邸ukaje邸." +msgid "Type the email address of the buddy you are searching for." +msgstr "Akre�l adras email siabra, jakoha ty 邸ukaje邸." msgid "_Search" msgstr "�_ukaj" @@ -6822,17 +6819,17 @@ msgid "Confirm Account" msgstr "Pa�vierd添 kont" -msgid "Display Currently Registered E-Mail Address" -msgstr "Paka転y dziejna zarehistravany adras e-mail" - -msgid "Change Currently Registered E-Mail Address..." -msgstr "店miani dziejna zarehistravany adras e-mail..." +msgid "Display Currently Registered Email Address" +msgstr "Paka転y dziejna zarehistravany adras email" + +msgid "Change Currently Registered Email Address..." +msgstr "店miani dziejna zarehistravany adras email..." msgid "Show Buddies Awaiting Authorization" msgstr "Paka転y siabro鏑, 邸to �akaju� a鏑taryzacyi" -msgid "Search for Buddy by E-Mail Address..." -msgstr "�ukaj siabra pavodle adrasu e-mail..." +msgid "Search for Buddy by Email Address..." +msgstr "�ukaj siabra pavodle adrasu email..." msgid "Search for Buddy by Information" msgstr "�ukaj siabra pavodle 添viestak" @@ -6896,9 +6893,6 @@ msgid "College" msgstr "Kaled転" -msgid "Email" -msgstr "E-mail" - msgid "Zipcode" msgstr "Zip-kod" @@ -8657,8 +8651,8 @@ msgstr "Nazva karystalnika: %s\n" #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: %s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: %s\n" #, c-format msgid "Host Name: \t%s\n" @@ -8895,7 +8889,7 @@ msgid "Dir service temporarily unavailable." msgstr "Servis katalohu �asova niedastupny." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Po邸uk pavodle e-mai�u abmie転avany." msgid "Keyword ignored." @@ -11234,8 +11228,8 @@ msgid "Enable typing notification" msgstr "Uklu�y infarmava�ni pra nabor tekstu" -msgid "_Copy E-Mail Address" -msgstr "_Skapijuj adras e-mail" +msgid "_Copy Email Address" +msgstr "_Skapijuj adras email" msgid "_Open Link in Browser" msgstr "_Ad�yni spasy�ku 鏑 harta�y" @@ -11587,8 +11581,8 @@ msgstr[2] "%s maje %d novych paviedamle�nia鏑." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d novy list.</b>" msgstr[1] "<b>%d novyja listy.</b>" msgstr[2] "<b>%d novych listo鏑.</b>" @@ -12618,19 +12612,19 @@ msgid "_Associate Buddy" msgstr "_Asacyjuj siabra" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Niemah�yma das�a� list" msgid "The evolution executable was not found in the PATH." msgstr "Prahrama evolution nia znojdzienaja 鏑 �cie転cy po邸uku prahram PATH." -msgid "An e-mail address was not found for this buddy." -msgstr "Adras e-mail dla hetaha siabra nia znojdzieny." +msgid "An email address was not found for this buddy." +msgstr "Adras email dla hetaha siabra nia znojdzieny." msgid "Add to Address Book" msgstr "Dadaj u adrasnuju knihu" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Da邸li list" #. Configuration frame @@ -12676,8 +12670,8 @@ msgid "Last name:" msgstr "Pro添vi邸�a:" -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/bg.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/bg.po Thu Jun 26 09:07:56 2008 +0000 @@ -3592,7 +3592,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "�-仗仂�舒" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3627,17 +3627,6 @@ msgid "Purple Person" msgstr "�仂于 仗仂��亠弍亳�亠仍" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "�-仗仂�舒:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5308,7 +5297,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�-仗仂�舒" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6379,7 +6368,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�亠仗�舒于亳仍亠仆 舒亟�亠� 仆舒 亠-仗仂�舒" #: ../libpurple/protocols/msn/error.c:49 @@ -6936,7 +6925,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "�亳�仆舒 ���舒仆亳�舒 于 �仆�亠�仆亠�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7005,7 +6994,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "�-仗仂�舒" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8646,7 +8635,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8834,12 +8823,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "��仄舒 �亠亰�仍�舒�亳 亰舒 亠仍亠从��仂仆亠仆 舒亟�亠� %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" "丐��弍于舒 亟舒 仗仂仍��亳�亠 亠仍亠从��仂仆仆仂 ��仂弍�亠仆亳亠, 于 从仂亠�仂 �亠 亳�从舒 亟舒 仗仂�于��亟亳�亠 %s." @@ -8877,21 +8866,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "��亠�从舒 0x%04x: �仍亠从��仂仆仆亳�� 舒亟�亠� 仆亠 仄仂亢亠 亟舒 弍�亟亠 �仄亠仆亠仆, ��亶 从舒�仂 " @@ -8904,7 +8893,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�-仗仂�舒�舒 仆舒 %s 亠 %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9179,15 +9168,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "丐���亠仆亠 仗仂��亠弍亳�亠仍 仗仂 亠仍亠从��仂仆亠仆 舒亟�亠�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "丐���亠仆亠 仆舒 仗仂��亠弍亳�亠仍 仗仂 亠仍亠从��仂仆亠仆 舒亟�亠�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "�舒亟舒于舒仆亠 亠仍亠从��仂仆亠仆 舒亟�亠� 仆舒 仗仂��亠弍亳�亠仍�, 从仂亞仂�仂 ����亳�亠." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9220,12 +9209,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "�仂从舒亰于舒仆亠 仆舒 �亠亞亳���亳�舒仆亳�亠 亟仂 仄仂仄亠仆�舒 舒亟�亠�亳" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "��仂仄�仆舒 仆舒 �亠亞亳���亳�舒仆亳�亠 亟仂 仄仂仄亠仆�舒 舒亟�亠�亳..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9234,7 +9223,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "丐���亠仆亠 仆舒 仗仂��亠弍亳�亠仍 仗仂 亠仍亠从��仂仆亠仆 舒亟�亠�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9329,10 +9318,6 @@ msgid "College" msgstr "_�舒亰亞���舒仆亠" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�-仗仂�舒" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12107,7 +12092,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�-仗仂�舒: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12460,7 +12445,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15407,7 +15392,7 @@ msgstr "丶于�� 亰舒 仂�于亠��于舒仆亠 仆舒 �亳仗亠�-于��亰从亳�亠." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_�仂仗亳�舒仆亠 仆舒 舒亟�亠�舒 仆舒 亠仍. 仗仂�舒" #: ../pidgin/gtkimhtml.c:1610 @@ -15820,8 +15805,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>�舒���仂亶从亳 仆舒 仗�亳��舒于从舒�舒</b>" msgstr[1] "<b>�舒���仂亶从亳 仆舒 仗�亳��舒于从舒�舒</b>" @@ -17100,7 +17085,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�亳�仄仂�仂 仆亠 仄仂亢亠 亟舒 弍�亟亠 亳亰仗�舒�亠仆仂" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17108,7 +17093,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17116,7 +17101,7 @@ msgstr "�仂弍舒于�仆亠 从�仄 舒亟�亠�仆亳从舒" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "�亰仗�舒�舒仆亠 仆舒 亠-仗仂�舒" #. Configuration frame @@ -17176,7 +17161,7 @@ msgstr "个舒仄亳仍亳�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "�-仗仂�舒:" #. *< type
--- a/po/bn.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/bn.po Thu Jun 26 09:07:56 2008 +0000 @@ -3557,19 +3557,6 @@ msgid "Last name" msgstr "爨�Ζ爨��" -#: ../libpurple/protocols/bonjour/bonjour.c:357 -#: ../libpurple/protocols/jabber/buddy.c:295 -#: ../libpurple/protocols/jabber/buddy.c:1325 -#: ../libpurple/protocols/jabber/buddy.c:1335 -#: ../libpurple/protocols/jabber/buddy.c:2216 -#: ../libpurple/protocols/silc/ops.c:1041 -#: ../libpurple/protocols/silc/util.c:555 -#: ../libpurple/protocols/silc10/ops.c:1075 -#: ../libpurple/protocols/silc10/util.c:551 -#: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "爨�爨��爨�爨�" - #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 msgid "AIM Account" @@ -3601,16 +3588,6 @@ msgid "Purple Person" msgstr "爨�Δ爭�爨� 爨��爨��爭�爨む�" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "爨�-爨��爨�爨�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5278,7 +5255,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "爨�爨��爨�爨�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6342,7 +6319,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "爨�爨��爨� 爨���爨��爨�爨� 爨�爨逗�爨鉦Θ爨�" #: ../libpurple/protocols/msn/error.c:49 @@ -6887,7 +6864,7 @@ msgstr "爨��爨伍�爨� 爨��爨��爨�爭�爨�" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "爨��爨��爭�爨む�爨�爨� 爨�爨��爨�爨�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6949,7 +6926,7 @@ msgstr "爨�爨��爨� 爨��爨��爨�爭�爨�" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "爨�爨��爨� 爨�爨��爨�爨�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8573,7 +8550,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8754,12 +8731,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8793,21 +8770,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8818,7 +8795,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9067,15 +9044,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9105,11 +9082,11 @@ msgstr "爨�爭�爨��爨�爨鉦�爨��爨� 爨��爨謹�爨�爨逗Δ爨�爨萎Γ" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9117,7 +9094,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -11877,7 +11854,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "爨�爨��爨�爨�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12216,7 +12193,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15079,7 +15056,7 @@ msgstr "爨項�爨�爨��爨萎Σ爨逗�爭�爨�爭�爨� 爨�爨�Π 爨��爨�爨� 爨ム�爨�爨鉦�爨鉦Σ爭�爨� 爨萎�" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "爨�爨��爨�爨� 爨�爨逗�爨鉦Θ爨� 爨�爨�� 爨�爨萎� (_C)" #: ../pidgin/gtkimhtml.c:1610 @@ -15507,8 +15484,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>爨�爨�Θ爨鉦Π %d 爨�爭�爨迦� 爨�Δ爭�爨� 爨�-爨��爨�爨� 爨�爨�爭�爛�</b>" msgstr[1] "<b>爨�爨�Θ爨鉦Π %d 爨�爭�爨迦� 爨�Δ爭�爨� 爨�-爨��爨�爨� 爨�爨�爭�爛�</b>" @@ -16754,7 +16731,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "爨�爨��爨�爨� 爨��爨�爨鉦Δ爭� 爨��爨�Π爭�爨�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16762,7 +16739,7 @@ msgstr "PATH-爨踶� 爨�Η爭�爨�� 爨�爨〝�爨迦�爨��爨謹Θ爭�爨� 爨踶�爭�爨伍�爨�爨逗�爨�爨逗Μ爨迦���爨�爨� 爨��爨�爭�爨� 爨��爭�爨��爛� " #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16770,7 +16747,7 @@ msgstr "爨�爨逗�爨鉦Θ爨鉦Π 爨��爭�爭� 爨��爨� 爨�爨萎�爨�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "爨�爨��爨�爨� 爨��爨�爨鉦Θ" #. Configuration frame @@ -16829,7 +16806,7 @@ msgstr "爨�Ζ爨��:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "爨�爨��爨�爨�:" #. *< type
--- a/po/bs.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/bs.po Thu Jun 26 09:07:56 2008 +0000 @@ -3617,7 +3617,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3653,17 +3653,6 @@ msgid "Purple Person" msgstr "Nova osoba" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "Email:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5424,7 +5413,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Email adresa" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6509,8 +6498,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Pogre邸na e-mail adresa" +msgid "Invalid email address" +msgstr "Pogre邸na email adresa" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -7073,7 +7062,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Titula" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7142,7 +7131,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8828,12 +8817,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Primili ste ICQ e-mail od %s [%s]\n" +"Primili ste ICQ email od %s [%s]\n" "\n" "Poruka je:\n" "%s" @@ -9019,13 +9008,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nema pronadenih rezultata za e-mail adresu %s" +msgid "No results found for email address %s" +msgstr "Nema pronadenih rezultata za email adresu %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Trebali biste dobiti e-mail da potvrdite %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Trebali biste dobiti email da potvrdite %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -9064,28 +9053,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Gre邸ka 0x%04x: Nije moguce promjeniti e-mail adresu, jer vec postoji zahtjev " +"Gre邸ka 0x%04x: Nije moguce promjeniti email adresu, jer vec postoji zahtjev " "u toku za ovo ime." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Gre邸ka 0x%04x: Nije moguce promjeniti e-mail adresu, jer data adresa ima i " +"Gre邸ka 0x%04x: Nije moguce promjeniti email adresu, jer data adresa ima i " "suvi邸e imena asociranih s njom." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Gre邸ka 0x%04x: Nije moguce promjeniti e-mail adresu, jer je data adresa " +"Gre邸ka 0x%04x: Nije moguce promjeniti email adresu, jer je data adresa " "pogre邸na." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -9095,7 +9084,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Email adresa za %s je %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9378,16 +9367,16 @@ "cete na njih desno-kliknuti i izabrati \"Ponovni zahtjev autorizacije.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Potra転ite prijatelja preko e-maila" +msgid "Find Buddy by Email" +msgstr "Potra転ite prijatelja preko emaila" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "Pretraga za prijateljem preko e-mail adrese" +msgid "Search for a buddy by email address" +msgstr "Pretraga za prijateljem preko email adrese" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Ukucajte e-mail adresu prijatelja, kojeg tra転ite." +msgid "Type the email address of the buddy you are searching for." +msgstr "Ukucajte email adresu prijatelja, kojeg tra転ite." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9419,12 +9408,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Prika転i trenutno registrovanu adresu" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Promjeni trenutno registrovanu adresu..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9433,8 +9422,8 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." -msgstr "Tra転i prijatelja preko e-maila..." +msgid "Search for Buddy by Email Address..." +msgstr "Tra転i prijatelja preko emaila..." #: ../libpurple/protocols/oscar/oscar.c:6452 msgid "Search for Buddy by Information" @@ -9526,10 +9515,6 @@ msgid "College" msgstr "_Collapse" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12373,7 +12358,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12728,8 +12713,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "Pregledanje e-maila zabranjeno." +msgid "Email lookup restricted." +msgstr "Pregledanje emaila zabranjeno." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -15750,8 +15735,8 @@ msgstr "Boja za bojenje hiperlinkova." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Kopiraj e-mail adresu" +msgid "_Copy Email Address" +msgstr "_Kopiraj email adresu" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -16149,8 +16134,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17472,7 +17457,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Nije moguce poslati poruku." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17480,7 +17465,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17489,7 +17474,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "Email" #. Configuration frame @@ -17549,7 +17534,7 @@ msgstr "Prezime:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "Email:" #. *< type @@ -18473,7 +18458,7 @@ #~ msgid "%s (%d new/%d total)" #~ msgstr "%s (%d novo/%d totalno)" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "Provjeri mail svakih X sekundi.\n" #~ msgid "Use last matching buddy"
--- a/po/ca.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ca.po Thu Jun 26 09:07:56 2008 +0000 @@ -2804,7 +2804,7 @@ msgid "Last name" msgstr "Cognoms" -msgid "E-Mail" +msgid "Email" msgstr "Correu electr嘆nic" msgid "AIM Account" @@ -2830,9 +2830,6 @@ msgid "Purple Person" msgstr "Persona porpra" -msgid "E-mail" -msgstr "Correu electr嘆nic" - msgid "Bonjour" msgstr "Bonjour" @@ -3924,7 +3921,7 @@ msgstr "" "Introdu誰u un o m辿s camps per cercar usuaris de XMPP que hi coincideixin." -msgid "E-Mail Address" +msgid "Email Address" msgstr "Adre巽a de correu electr嘆nic" msgid "Search for XMPP users" @@ -4662,7 +4659,7 @@ msgstr "Error de sintaxi (probablement errada del client)" #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "L'adre巽a de correu no 辿s v�lida" #, c-format @@ -5068,7 +5065,7 @@ msgid "Home Fax" msgstr "Fax de casa" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Correu electr嘆nic personal" msgid "Personal IM" @@ -5112,7 +5109,7 @@ msgid "Work Fax" msgstr "Fax de la feina" -msgid "Work E-Mail" +msgid "Work Email" msgstr "Correu electr嘆nic de la feina" msgid "Work IM" @@ -6497,7 +6494,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6640,11 +6637,11 @@ msgstr[1] "Els seg端ents noms d'usuari estan associats amb %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "No s'han obtingut resultats per a l'adre巽a de correu %s" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Haur鱈eu de rebre un correu demanant-vos confirmar %s." msgid "Account Confirmation Requested" @@ -6673,7 +6670,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Error 0x%04x: no s'ha pogut canviar l'adre巽a de correu electr嘆nic perqu竪 ja " @@ -6681,7 +6678,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Error 0x%04x: no s'ha pogut canviar l'adre巽a de correu electr嘆nic perqu竪 " @@ -6689,7 +6686,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Error 0x%04x: No s'ha pogut canviar l'adre巽a de correu perqu竪 l'adre巽a " @@ -6703,7 +6700,7 @@ msgstr "S'ha produ誰t un error en canviar la informaci坦 del compte" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "L'adre巽a de correu per a %s 辿s %s" msgid "Account Info" @@ -6918,13 +6915,13 @@ "Podeu tornar a demanar l'autoritzaci坦 d'aquests amics fent-hi clic a sobre " "amb el bot坦 dret del ratol鱈, i seleccionant 束Torna a demanar l'autoritzaci坦損." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Troba un amic per l'adre巽a de correu" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Cerca un amic per l'adre巽a de correu" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Escriviu l'adre巽a de correu de l'amic que estigueu cercant." msgid "_Search" @@ -6947,16 +6944,16 @@ msgid "Confirm Account" msgstr "Confirma el compte" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Mostra l'adre巽a actualment registrada" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Canvia l'adre巽a actualment registrada..." msgid "Show Buddies Awaiting Authorization" msgstr "Mostra els amics pendents d'autoritzaci坦" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Cerca un amic per l'adre巽a de correu..." msgid "Search for Buddy by Information" @@ -7024,9 +7021,6 @@ msgid "College" msgstr "Col揃legi" -msgid "Email" -msgstr "Correu electr嘆nic" - msgid "Zipcode" msgstr "Codi postal" @@ -8789,7 +8783,7 @@ msgstr "Nom d'usuari: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Correu electr嘆nic: \t\t%s\n" #, c-format @@ -9048,7 +9042,7 @@ msgstr "Servei de directori no disponible temporalment." #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Recerca per adre巽a de correu electr嘆nic restringida." #, c-format @@ -11433,7 +11427,7 @@ msgid "Enable typing notification" msgstr "Habilita les notificacions de que s'est� escrivint" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Copia l'adre巽a de correu" msgid "_Open Link in Browser" @@ -11796,8 +11790,8 @@ msgstr[1] "%s t辿 %d missatges nous." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>Teniu %d correu electr嘆nic.</b>" msgstr[1] "<b>Teniu %d correus electr嘆nics.</b>" @@ -12845,20 +12839,20 @@ msgid "_Associate Buddy" msgstr "_Associa l'amic" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "No s'ha pogut enviar el correu electr嘆nic." msgid "The evolution executable was not found in the PATH." msgstr "" "No s'ha trobat l'executable de l'Evolution a la variable d'entorn PATH." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "No s'ha trobat cap adre巽a de correu electr嘆nic per a aquest amic." msgid "Add to Address Book" msgstr "Afegeix a la llibreta d'adreces" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Envia un correu" #. Configuration frame @@ -12906,7 +12900,7 @@ msgid "Last name:" msgstr "Cognoms:" -msgid "E-mail:" +msgid "Email:" msgstr "Correu electr嘆nic:" #. *< type @@ -14971,7 +14965,7 @@ #~ msgid "Check Mail" #~ msgstr "Comprova el correu" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "Comprova el correu electr嘆nic cada X segons.\n" #~ msgid "Auto-login"
--- a/po/ca@valencia.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ca@valencia.po Thu Jun 26 09:07:56 2008 +0000 @@ -3586,7 +3586,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "Adre巽a electr嘆nica" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3618,16 +3618,6 @@ msgid "Purple Person" msgstr "Persona Purple" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "Adre巽a electr嘆nica" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5328,7 +5318,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Adre巽a electr嘆nica" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6404,7 +6394,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "L'adre巽a electr嘆nica no 辿s v�lida" #: ../libpurple/protocols/msn/error.c:49 @@ -6946,7 +6936,7 @@ msgstr "Fax de casa" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Adre巽a electr嘆nica personal" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7009,7 +6999,7 @@ msgstr "Fax faena" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Adre巽a electr嘆nica faena" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8704,7 +8694,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8892,12 +8882,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "No s'han obtingut resultats per a l'adre巽a electr嘆nica %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Haur鱈eu de rebre un correu demanant-vos confirmar %s." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8936,7 +8926,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "Error 0x%04x: no s'ha pogut canviar l'adre巽a electr嘆nica perqu竪 ja hi ha una " @@ -8945,7 +8935,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "Error 0x%04x: no s'ha pogut canviar l'adre巽a electr嘆nica perqu竪 l'adre巽a " @@ -8954,7 +8944,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Error 0x%04x: No s'ha pogut canviar l'adre巽a electr嘆nica perqu竪 l'adre巽a " @@ -8967,7 +8957,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "L'adre巽a electr嘆nica per a %s 辿s %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9246,15 +9236,15 @@ "amb el bot坦 dret del ratol鱈, i seleccionant 束Torna a demanar l'autoritzaci坦損." #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Troba un amic per l'adre巽a electr嘆nica" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Cerca un amic per l'adre巽a electr嘆nica" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Escriviu l'adre巽a electr嘆nica de l'amic que estigueu cercant." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9284,11 +9274,11 @@ msgstr "Confirma el compte" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Mostra l'adre巽a actualment registrada" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Canvia l'adre巽a actualment registrada..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9296,7 +9286,7 @@ msgstr "Mostra els amics pendents d'autoritzaci坦" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Cerca un amic per l'adre巽a electr嘆nica..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9387,10 +9377,6 @@ msgid "College" msgstr "Col揃legi" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Adre巽a electr嘆nica" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Codi postal" @@ -12153,7 +12139,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Adre巽a electr嘆nica: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12498,7 +12484,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "La consulta d'adreces electr嘆niques est� restringida." #: ../libpurple/protocols/toc/toc.c:533 @@ -15422,7 +15408,7 @@ "sobre." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Copia l'adre巽a electr嘆nica" #: ../pidgin/gtkimhtml.c:1610 @@ -15870,8 +15856,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>Teniu %d correu electr嘆nic nou.</b>" msgstr[1] "<b>Teniu %d correus electr嘆nics nous.</b>" @@ -17129,7 +17115,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "No s'ha pogut enviar el correu electr嘆nic." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17138,7 +17124,7 @@ "No s'ha trobat l'executable de l'Evolution a la variable d'entorn PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "No s'ha trobat cap adre巽a electr嘆nica per a este amic." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17146,7 +17132,7 @@ msgstr "Afig a la llibreta d'adreces" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Envia un correu" #. Configuration frame @@ -17205,7 +17191,7 @@ msgstr "Cognoms:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "Adre巽a electr嘆nica:" #. *< type
--- a/po/cs.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/cs.po Thu Jun 26 09:07:56 2008 +0000 @@ -819,7 +819,7 @@ msgstr "Syst辿mov箪 z叩znam" msgid "Emails" -msgstr "E-maily" +msgstr "Emaily" msgid "You have mail!" msgstr "P�i邸la v叩m po邸ta!" @@ -838,7 +838,7 @@ msgstr[2] "%s (%s) m叩 %d nov箪ch zpr叩v." msgid "New Mail" -msgstr "Nov箪 e-mail" +msgstr "Nov箪 email" #, c-format msgid "Info for %s" @@ -2744,7 +2744,7 @@ msgid "Last name" msgstr "P�鱈jmen鱈" -msgid "E-Mail" +msgid "Email" msgstr "Email" msgid "AIM Account" @@ -2769,9 +2769,6 @@ msgid "Purple Person" msgstr "Osoba Purple" -msgid "E-mail" -msgstr "E-mail" - msgid "Bonjour" msgstr "Bonjour" @@ -3845,8 +3842,8 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "Hledejte odpov鱈daj鱈c鱈 u転ivatele XMPP vypln�n鱈m jedno nebo v鱈ce pol鱈." -msgid "E-Mail Address" -msgstr "E-mailov叩 adresa" +msgid "Email Address" +msgstr "Emailov叩 adresa" msgid "Search for XMPP users" msgstr "Hledat u転ivatele XMPP" @@ -4572,8 +4569,8 @@ msgid "Syntax Error (probably a client bug)" msgstr "Syntaktick叩 chyba (pravd�podobn� chyba v klientovi)" -msgid "Invalid e-mail address" -msgstr "Neplatn叩 e-mailov叩 adresa" +msgid "Invalid email address" +msgstr "Neplatn叩 emailov叩 adresa" msgid "User does not exist" msgstr "U転ivatel neexistuje" @@ -4930,8 +4927,8 @@ msgid "Home Fax" msgstr "Osobn鱈 fax" -msgid "Personal E-Mail" -msgstr "Osobn鱈 e-mail" +msgid "Personal Email" +msgstr "Osobn鱈 email" msgid "Personal IM" msgstr "Osobn鱈 IM" @@ -4973,8 +4970,8 @@ msgid "Work Fax" msgstr "Pracovn鱈 fax" -msgid "Work E-Mail" -msgstr "Pracovn鱈 e-mail" +msgid "Work Email" +msgstr "Pracovn鱈 email" msgid "Work IM" msgstr "Pracovn鱈 IM" @@ -6173,7 +6170,7 @@ "only letters, numbers and spaces, or contain only numbers." msgstr "" "Nemohu se p�ihl叩sit: Nemohu se p�ihl叩sit jako %s, proto転e jm辿no u転ivatele " -"nen鱈 platn辿. Jm辿no u転ivatele mus鱈 b箪t platn叩 e-mailov叩 adresa nebo za�鱈nat " +"nen鱈 platn辿. Jm辿no u転ivatele mus鱈 b箪t platn叩 emailov叩 adresa nebo za�鱈nat " "p鱈smenem a obsahovat jen �鱈slice, p鱈smena a mezery, nebo obsahovat jen " "�鱈slice." @@ -6313,12 +6310,12 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"P�ijali jste e-mail ICQ od %s [%s]\n" +"P�ijali jste email ICQ od %s [%s]\n" "\n" "Zpr叩va je:\n" "%s" @@ -6465,12 +6462,12 @@ msgstr[2] "N叩sleduj鱈c鱈 jm辿na u転ivatele jsou asociov叩na s %s" #, c-format -msgid "No results found for e-mail address %s" -msgstr "Pro e-mailovou adresu %s nebyly nalezeny 転叩dn辿 v箪sledky" - -#, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "M�li byste dostat e-mail 転叩daj鱈c鱈 o potvrzen鱈 %s." +msgid "No results found for email address %s" +msgstr "Pro emailovou adresu %s nebyly nalezeny 転叩dn辿 v箪sledky" + +#, c-format +msgid "You should receive an email asking to confirm %s." +msgstr "M�li byste dostat email 転叩daj鱈c鱈 o potvrzen鱈 %s." msgid "Account Confirmation Requested" msgstr "Po転adov叩no potvrzen鱈 炭�tu" @@ -6498,26 +6495,26 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Chyba 0x%04x: Nemohu zm�nit e-mailovou adresu, proto転e pro toto jm辿no " +"Chyba 0x%04x: Nemohu zm�nit emailovou adresu, proto転e pro toto jm辿no " "u転ivatele ji転 existuje po転adavek." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Chyba 0x%04x: Nemohu zm�nit e-mailovou adresu, proto転e zadan叩 adresa m叩 " +"Chyba 0x%04x: Nemohu zm�nit emailovou adresu, proto転e zadan叩 adresa m叩 " "asociov叩no p�鱈li邸 mnoho jmen u転ivatel哲." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Chyba 0x%04x: Nemohu zm�nit e-mailovou adresu, proto転e zadan叩 adresa je " +"Chyba 0x%04x: Nemohu zm�nit emailovou adresu, proto転e zadan叩 adresa je " "neplatn叩." #, c-format @@ -6528,7 +6525,7 @@ msgstr "Chyba p�i zm�n� informac鱈 o 炭�tu" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Emailov叩 adresa pro %s je %s" msgid "Account Info" @@ -6595,7 +6592,7 @@ "numbers and spaces, or contain only numbers." msgstr "" "Nemohu p�idat kamar叩da %s, proto転e jm辿no u転ivatele nen鱈 platn辿. Jm辿no " -"u転ivatele mus鱈 b箪t platn叩 e-mailov叩 adresa, nebo za�鱈nat p鱈smenem a " +"u転ivatele mus鱈 b箪t platn叩 emailov叩 adresa, nebo za�鱈nat p鱈smenem a " "obsahovat jen �鱈slice, p鱈smena a mezery, nebo obsahovat jen �鱈slice." msgid "Unable To Add" @@ -6745,14 +6742,14 @@ "M哲転ete znovu po転叩dat o autorizaci od t�chto kamar叩d哲 kliknut鱈m na n� prav箪m " "tla�鱈tkem a zvolen鱈m \"Znovu po転叩dat o autorizaci.\"" -msgid "Find Buddy by E-Mail" -msgstr "Hledat kamar叩da podle e-mailu" - -msgid "Search for a buddy by e-mail address" -msgstr "Hledat kamar叩da podle e-mailov辿 adresy" - -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Zadejte e-mailovou adresu kamar叩da, kter辿ho hled叩te." +msgid "Find Buddy by Email" +msgstr "Hledat kamar叩da podle emailu" + +msgid "Search for a buddy by email address" +msgstr "Hledat kamar叩da podle emailov辿 adresy" + +msgid "Type the email address of the buddy you are searching for." +msgstr "Zadejte emailovou adresu kamar叩da, kter辿ho hled叩te." msgid "_Search" msgstr "_Hledat" @@ -6774,17 +6771,17 @@ msgid "Confirm Account" msgstr "Potvrdit 炭�et" -msgid "Display Currently Registered E-Mail Address" -msgstr "Zobrazit moment叩ln� zaregistrovanou e-mailovou adresu" - -msgid "Change Currently Registered E-Mail Address..." -msgstr "Zm�nit moment叩ln� zaregistrovanou e-mailovou adresu..." +msgid "Display Currently Registered Email Address" +msgstr "Zobrazit moment叩ln� zaregistrovanou emailovou adresu" + +msgid "Change Currently Registered Email Address..." +msgstr "Zm�nit moment叩ln� zaregistrovanou emailovou adresu..." msgid "Show Buddies Awaiting Authorization" msgstr "Zobrazit kamar叩dy �ekaj鱈c鱈 na autorizaci" -msgid "Search for Buddy by E-Mail Address..." -msgstr "Hledat kamar叩da podle e-mailov辿 adresy..." +msgid "Search for Buddy by Email Address..." +msgstr "Hledat kamar叩da podle emailov辿 adresy..." msgid "Search for Buddy by Information" msgstr "Hledat kamar叩da podle informac鱈" @@ -6849,9 +6846,6 @@ msgid "College" msgstr "Vysok叩 邸kola" -msgid "Email" -msgstr "E-mail" - msgid "Zipcode" msgstr "PS�" @@ -8601,8 +8595,8 @@ msgstr "Jm辿no u転ivatele: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #, c-format msgid "Host Name: \t%s\n" @@ -8837,8 +8831,8 @@ msgid "Dir service temporarily unavailable." msgstr "Adres叩�ov叩 slu転ba moment叩ln� nen鱈 k dispozici." -msgid "E-mail lookup restricted." -msgstr "Vyhled叩v叩n鱈 podle e-mailu omezeno." +msgid "Email lookup restricted." +msgstr "Vyhled叩v叩n鱈 podle emailu omezeno." msgid "Keyword ignored." msgstr "Kl鱈�ov辿 slovo ignorov叩no." @@ -11167,8 +11161,8 @@ msgid "Enable typing notification" msgstr "Povolit upozorn�n鱈 na psan鱈" -msgid "_Copy E-Mail Address" -msgstr "_Kop鱈rovat e-mailovou adresu" +msgid "_Copy Email Address" +msgstr "_Kop鱈rovat emailovou adresu" msgid "_Open Link in Browser" msgstr "_Otev�鱈t odkaz v prohl鱈転e�i" @@ -11518,11 +11512,11 @@ msgstr[2] "%s m叩 %d nov箪ch zpr叩v." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d nov箪 e-mail</b>" -msgstr[1] "<b>%d nov辿 e-maily</b>" -msgstr[2] "<b>%d nov箪ch e-mail哲</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d nov箪 email</b>" +msgstr[1] "<b>%d nov辿 emaily</b>" +msgstr[2] "<b>%d nov箪ch email哲</b>" #, c-format msgid "The browser command \"%s\" is invalid." @@ -12543,20 +12537,20 @@ msgid "_Associate Buddy" msgstr "_P�i�adit kamar叩da" -msgid "Unable to send e-mail" -msgstr "Nemohu odeslat e-mail" +msgid "Unable to send email" +msgstr "Nemohu odeslat email" msgid "The evolution executable was not found in the PATH." msgstr "Program evolution nebyl nalezen v PATH." -msgid "An e-mail address was not found for this buddy." -msgstr "Pro tohoto kamar叩da nebyla nalezena e-mailov叩 adresa." +msgid "An email address was not found for this buddy." +msgstr "Pro tohoto kamar叩da nebyla nalezena emailov叩 adresa." msgid "Add to Address Book" msgstr "P�idat do adres叩�e" -msgid "Send E-Mail" -msgstr "Odeslat e-mail" +msgid "Send Email" +msgstr "Odeslat email" #. Configuration frame msgid "Evolution Integration Configuration" @@ -12601,8 +12595,8 @@ msgid "Last name:" msgstr "P�鱈jmen鱈:" -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -13875,7 +13869,7 @@ #~ msgstr "<b>Stav</b>: %s" #~ msgid "EMail" -#~ msgstr "E-mail" +#~ msgstr "Email" #~ msgid "Re-type Passphrase" #~ msgstr "Heslo (znovu)"
--- a/po/da.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/da.po Thu Jun 26 09:07:56 2008 +0000 @@ -1162,7 +1162,7 @@ #: ../finch/gntnotify.c:225 ../pidgin/gtknotify.c:341 msgid "New Mail" -msgstr "Ny e-mail" +msgstr "Ny email" #: ../finch/gntnotify.c:290 ../pidgin/gtknotify.c:940 #, c-format @@ -3605,8 +3605,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3639,16 +3639,6 @@ msgid "Purple Person" msgstr "Ny person" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5063,7 +5053,7 @@ #: ../libpurple/protocols/jabber/buddy.c:1025 #, fuzzy msgid "Reachability Address" -msgstr "E-mail adresse" +msgstr "Email adresse" #: ../libpurple/protocols/jabber/buddy.c:867 #: ../libpurple/protocols/jabber/buddy.c:1027 @@ -5348,8 +5338,8 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "E-mail adresse" +msgid "Email Address" +msgstr "Email adresse" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6431,8 +6421,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Ugyldig e-mail adresse" +msgid "Invalid email address" +msgstr "Ugyldig email adresse" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -6976,8 +6966,8 @@ msgstr "Hjemmefax" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" -msgstr "Personlig e-mail" +msgid "Personal Email" +msgstr "Personlig email" #: ../libpurple/protocols/msn/msn.c:1657 msgid "Personal IM" @@ -7038,8 +7028,8 @@ msgstr "Arbejdsfax" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" -msgstr "Arbejds e-mail" +msgid "Work Email" +msgstr "Arbejds email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -8709,12 +8699,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Du har modtaget en ICQ e-mail fra %s [%s]\n" +"Du har modtaget en ICQ email fra %s [%s]\n" "\n" "Beskeden er:\n" "%s" @@ -8899,13 +8889,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Ingen resultater fundet for post-adressen %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Du b淡r modtage en e-mail for at acceptere %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Du b淡r modtage en email for at acceptere %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -8942,28 +8932,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Fejl 0x%04x: UDe i stand til at 脱ndre e-mail adresse, fordi der allerede er " +"Fejl 0x%04x: UDe i stand til at 脱ndre email adresse, fordi der allerede er " "en anmodning ventende for dette brugernavn." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Fejl 0x%04x: Ikke i stand til at 脱ndre e-mail adresse, fordi den angivne " +"Fejl 0x%04x: Ikke i stand til at 脱ndre email adresse, fordi den angivne " "adresse har for mange brugernavne tilknyttet til sig." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Fejl 0x%04x: Ikke i stand til at 脱ndre e-mail adresse, fordi den angivne " +"Fejl 0x%04x: Ikke i stand til at 脱ndre email adresse, fordi den angivne " "adresse er ugyldig." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -8973,7 +8963,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s's post-adresse er %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9252,16 +9242,16 @@ "og v脱lge \"Anmod om ny godkendelse\"." #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Find ven udfra e-mail adresse" +msgid "Find Buddy by Email" +msgstr "Find ven udfra email adresse" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "S淡g efter en ven udfra e-mail adresse" +msgid "Search for a buddy by email address" +msgstr "S淡g efter en ven udfra email adresse" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Indtast e-mail adressen p奪 vennen du s淡ger efter." +msgid "Type the email address of the buddy you are searching for." +msgstr "Indtast email adressen p奪 vennen du s淡ger efter." #: ../libpurple/protocols/oscar/oscar.c:6236 msgid "_Search" @@ -9290,11 +9280,11 @@ msgstr "Bekr脱ft Konto" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Vis nuv脱rende registrede e-post adresse" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Skift nuv脱rende registrede e-post adresse..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9302,7 +9292,7 @@ msgstr "Vis venner der afventer godkendelse" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "S淡g efter ven udfra e-post adresse..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9391,10 +9381,6 @@ msgid "College" msgstr "Fold sammen" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-post" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Postnummer" @@ -12157,8 +12143,8 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 #: ../libpurple/protocols/silc10/util.c:361 @@ -12500,8 +12486,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "E-mail s淡gning er begr脱nset." +msgid "Email lookup restricted." +msgstr "Email s淡gning er begr脱nset." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -15419,8 +15405,8 @@ msgstr "Farve som hyperlinks skal v脱re n奪r musen er over dem." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Kopier e-mail adresse" +msgid "_Copy Email Address" +msgstr "_Kopier email adresse" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -15860,8 +15846,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>Du har %d nye meddelelser.</b>" msgstr[1] "<b>Du har %d nye meddelelser.</b>" @@ -17117,15 +17103,15 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" -msgstr "Kunne ikke sende e-mail." +msgid "Unable to send email" +msgstr "Kunne ikke sende email." #: ../pidgin/plugins/gevolution/gevolution.c:241 msgid "The evolution executable was not found in the PATH." msgstr "Den ekskvebar Evolution fil blev ikke fundet i PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "En e-post-adresse blev ikke fundet for denne ven." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17133,8 +17119,8 @@ msgstr "Tilf淡j til adressebog" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" -msgstr "Send e-mail" +msgid "Send Email" +msgstr "Send email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -17191,8 +17177,8 @@ msgstr "Efternavn:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/de.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/de.po Thu Jun 26 09:07:56 2008 +0000 @@ -11,9 +11,9 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-05-15 22:36+0200\n" -"PO-Revision-Date: 2008-05-15 22:35+0200\n" -"Last-Translator: Bj旦rn Voigt <bjoern@cs.tu-berlin.de>\n" +"POT-Creation-Date: 2008-06-25 23:30+0200\n" +"PO-Revision-Date: 2008-06-25 23:27+0200\n" +"Last-Translator: Bjoern 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" @@ -100,6 +100,10 @@ msgid "Alias:" msgstr "Alias:" +#. Register checkbox +msgid "Create this account on the server" +msgstr "Dieses Konto auf dem Server anlegen" + #. Cancel button #. Cancel msgid "Cancel" @@ -409,6 +413,9 @@ msgid "View Log..." msgstr "Mitschnitt anzeigen..." +msgid "View All Logs" +msgstr "Alle Mitschnitte anzeigen" + msgid "Show" msgstr "Anzeigen" @@ -608,6 +615,19 @@ msgid "Send To" msgstr "Senden an" +msgid "Invite message" +msgstr "Einladungsnachricht" + +msgid "Invite" +msgstr "Einladen" + +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 "Conversation" msgstr "Unterhaltung" @@ -620,6 +640,9 @@ msgid "Add Buddy Pounce..." msgstr "Buddy-Alarm hinzuf端gen..." +msgid "Invite..." +msgstr "Einladen..." + msgid "Enable Logging" msgstr "Mitschnitt einschalten" @@ -647,6 +670,20 @@ "zu erhalten.\n" "Die folgenden Kommandos sind in diesem Kontext verf端gbar:\n" +#, c-format +msgid "" +"%s is not a valid message class. See '/help msgcolor' for valid message " +"classes." +msgstr "" +"%s ist keine g端ltige Nachrichtenklasse. Die g端ltigen Nachrichtenklassen " +"finden Sie unter '/help msgcolor'." + +#, c-format +msgid "%s is not a valid color. See '/help msgcolor' for valid colors." +msgstr "" +"%s ist keine g端ltige Farbe. Die g端ltigen Farben finden Sie unter '/help " +"msgcolor'." + msgid "" "say <message>: Send a message normally as if you weren't using a " "command." @@ -693,6 +730,20 @@ msgid "statuses: Show the savedstatuses window." msgstr "statuses: Das Fenster mit gespeicherten Status-Infos anzeigen." +msgid "" +"msgcolor <class> <foreground> <background>: Set the color " +"for different classes of messages in the conversation window.<br> <" +"class>: receive, send, highlight, action, timestamp<br> <foreground/" +"background>: black, red, green, blue, white, gray, darkgray, magenta, " +"cyan, default<br><br>EXAMPLE:<br> msgcolor send cyan default" +msgstr "" +"msgcolor <Klasse> <Vordergrund> <Hintergrund>: Die Farbe " +"f端r verschiedene Klassen von Nachrichten im Gespr辰chsfenster festlegen." +"<br> <Klasse>: receive, send, highlight, action, timestamp<br> " +"<Vordergrund/Hintergrund>: black, red, green, blue, white, gray, " +"darkgray, magenta, cyan, default<br><br>BEISPIEL:<br> msgcolor send cyan " +"default" + msgid "Unable to open file." msgstr "Konnte die Datei nicht 旦ffnen." @@ -713,8 +764,10 @@ msgstr "Pause" #, c-format -msgid "File Transfers - %d%% of %d files" -msgstr "Datei端bertragungen - %d%% von %d Dateien" +msgid "File Transfers - %d%% of %d file" +msgid_plural "File Transfers - %d%% of %d files" +msgstr[0] "Datei端bertragungen - %d%% von %d Datei" +msgstr[1] "Datei端bertragungen - %d%% von %d Dateien" #. Create the window. msgid "File Transfers" @@ -829,6 +882,9 @@ msgid "Conversations with %s" msgstr "Unterhaltung mit %s" +msgid "All Conversations" +msgstr "Alle Unterhaltungen" + msgid "System Log" msgstr "System-Mitschnitt" @@ -866,9 +922,6 @@ msgid "IM" msgstr "Nachricht" -msgid "Invite" -msgstr "Einladen" - msgid "(none)" msgstr "(kein)" @@ -2092,8 +2145,10 @@ msgid "ABI version mismatch %d.%d.x (need %d.%d.x)" msgstr "ABI Versionskonflikt %d.%d.x (brauche %d.%d.x)" -msgid "Plugin does not implement all required functions" -msgstr "Plugin enth辰lt nicht alle ben旦tigten Funktionen" +msgid "" +"Plugin does not implement all required functions (list_icon, login and close)" +msgstr "" +"Plugin enth辰lt nicht alle ben旦tigten Funktionen (list_icon, login und close)" #, c-format msgid "" @@ -2757,13 +2812,11 @@ "dann installieren Sie ActiveTCL von http://www.activestate.com\n" msgid "" -"The Apple Bonjour For Windows toolkit wasn't found, see the FAQ at: http://" -"developer.pidgin.im/wiki/Using%20Pidgin#CanIusePidginforBonjourLink-" -"LocalMessaging for more information." +"The Apple Bonjour For Windows toolkit wasn't found, see the FAQ at: http://d." +"pidgin.im/BonjourWindows for more information." msgstr "" "Apples Bonjour-Toolkit f端r Windows konnte nicht gefunden werden, f端r weitere " -"Informationen besuchen Sie die FAQ unter: http://developer.pidgin.im/wiki/" -"Using%20Pidgin#CanIusePidginforBonjourLink-LocalMessaging." +"Informationen besuchen Sie die FAQ unter: http://d.pidgin.im/BonjourWindows" msgid "Unable to listen for incoming IM connections\n" msgstr "Kann nicht auf eingehende IM-Verbindungen h旦ren\n" @@ -2780,7 +2833,7 @@ msgid "Last name" msgstr "Nachname" -msgid "E-Mail" +msgid "Email" msgstr "E-Mail" msgid "AIM Account" @@ -2805,9 +2858,6 @@ msgid "Purple Person" msgstr "Purple-Person" -msgid "E-mail" -msgstr "E-Mail" - msgid "Bonjour" msgstr "Bonjour" @@ -2874,6 +2924,9 @@ msgid "Save buddylist..." msgstr "Buddy-Liste speichern..." +msgid "Load buddylist from file..." +msgstr "Buddy-Liste aus Datei laden..." + msgid "Fill in the registration fields." msgstr "F端llen Sie die Registrierungsfelder aus." @@ -3050,9 +3103,6 @@ msgid "Save buddylist to file..." msgstr "Buddy-Liste in Datei speichern..." -msgid "Load buddylist from file..." -msgstr "Buddy-Liste aus Datei laden..." - #. magic #. major_version #. minor_version @@ -3182,8 +3232,10 @@ msgstr "Falscher Modus" #, c-format -msgid "Ban on %s by %s, set %ld seconds ago" -msgstr "Verbot zu %s von %s, gesetzt vor %ld Sekunden" +msgid "Ban on %s by %s, set %ld second ago" +msgid_plural "Ban on %s by %s, set %ld seconds ago" +msgstr[0] "Verbot zu %s von %s, gesetzt vor %ld Sekunde" +msgstr[1] "Verbot zu %s von %s, gesetzt vor %ld Sekunden" #, c-format msgid "Ban on %s" @@ -3619,6 +3671,8 @@ msgid "Country" msgstr "Land" +#. lots of clients (including purple) do this, but it's +#. * out of spec msgid "Telephone" msgstr "Telefon" @@ -3806,12 +3860,12 @@ msgid "Capabilities" msgstr "F辰higkeiten" +msgid "Priority" +msgstr "Priorit辰t" + msgid "Resource" msgstr "Ressource" -msgid "Priority" -msgstr "Priorit辰t" - msgid "Middle Name" msgstr "Zweiter Name" @@ -3895,7 +3949,7 @@ "F端llen sie ein oder mehrere Felder aus, um nach entsprechenden XMPP-" "Benutzern zu suchen." -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-Mail-Adresse" msgid "Search for XMPP users" @@ -4507,8 +4561,8 @@ msgstr "XMPP-Nachrichtenfehler" #, c-format -msgid " (Code %s)" -msgstr " (Code %s)" +msgid "(Code %s)" +msgstr "(Code %s)" msgid "XML Parse error" msgstr "Fehler bei Einlesen von XML-Daten" @@ -4533,14 +4587,14 @@ msgstr "Standards _akzeptieren" #, c-format +msgid "Error joining chat %s" +msgstr "Fehler beim Betreten des Chats %s" + +#, c-format msgid "Error in chat %s" msgstr "Fehler im Chat %s" #, c-format -msgid "Error joining chat %s" -msgstr "Fehler beim Betreten des Chats %s" - -#, c-format msgid "Unable to send file to %s, user does not support file transfers" msgstr "" "Kann die Datei nicht an %s senden, da der Client des Benutzers keine " @@ -4633,7 +4687,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "Syntaxfehler (wahrscheinlich ein Client-Bug)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ung端ltige E-Mail-Adresse" msgid "User does not exist" @@ -4806,6 +4860,9 @@ msgid "Nudging %s..." msgstr "%s ansto�en..." +msgid "Email Address..." +msgstr "E-Mail-Adresse..." + msgid "Your new MSN friendly name is too long." msgstr "Ihr neuer MSN-Benutzername zu lang." @@ -4992,7 +5049,7 @@ msgid "Home Fax" msgstr "Fax (privat)" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "E-Mail (privat)" msgid "Personal IM" @@ -5035,7 +5092,7 @@ msgid "Work Fax" msgstr "Fax (gesch辰ftlich)" -msgid "Work E-Mail" +msgid "Work Email" msgstr "E-Mail (gesch辰ftlich)" msgid "Work IM" @@ -5363,8 +5420,11 @@ msgstr "Logge ein" #, c-format -msgid "Connection to server lost (no data received within %d seconds)" -msgstr "" +msgid "Connection to server lost (no data received within %d second)" +msgid_plural "Connection to server lost (no data received within %d seconds)" +msgstr[0] "" +"Verbindung zum Server verloren (seit %d Sekunde keine Daten empfangen)" +msgstr[1] "" "Verbindung zum Server verloren (seit %d Sekunden keine Daten empfangen)" #. Can't write _()'d strings in array initializers. Workaround. @@ -5464,9 +5524,15 @@ #, 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 "" +msgstr[0] "" +"%d Buddy wurde vom Server hinzugef端gt oder aktualisiert (inklusive der " +"Buddys, die schon auf der Serverliste sind)" +msgstr[1] "" "%d Buddys wurden vom Server hinzugef端gt oder aktualisiert (inklusive der " "Buddys, die schon auf der Serverliste sind)" @@ -6106,11 +6172,11 @@ msgid "In local permit/deny" msgstr "In lokaler erlaubt/verboten-Liste" -msgid "Too evil (sender)" -msgstr "Zu boshaft (Sender)" - -msgid "Too evil (receiver)" -msgstr "Zu boshaft (Empf辰nger)" +msgid "Warning level too high (sender)" +msgstr "Warnstufe zu hoch (Absender)" + +msgid "Warning level too high (receiver)" +msgstr "Warnstufe zu hoch (Empf辰nger)" msgid "User temporarily unavailable" msgstr "Benutzer ist tempor辰r nicht verf端gbar" @@ -6214,6 +6280,9 @@ msgid "Camera" msgstr "Kamera" +msgid "Screen Sharing" +msgstr "Gemeinsamer Bildschirm" + msgid "Free For Chat" msgstr "Bereit zum Chatten" @@ -6346,6 +6415,7 @@ msgid "Unable to get a valid login hash." msgstr "Konnte keinen g端ltigen Login-Hash bekommen." +#. allow multple logins? msgid "Password sent" msgstr "Passwort gesendet" @@ -6415,7 +6485,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6465,20 +6535,26 @@ "端berschritten wurde." #, c-format -msgid "You missed %hu message from %s because he/she was too evil." -msgid_plural "You missed %hu messages from %s because he/she was too evil." +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] "" -"Sie haben %hu Nachricht von %s nicht erhalten, da er/sie zu boshaft war." +"Sie haben %hu Nachricht von %s nicht erhalten, da seine/ihre Warnstufe zu " +"hoch ist." msgstr[1] "" -"Sie haben %hu Nachrichten von %s nicht erhalten,/sie zu boshaft war." - -#, c-format -msgid "You missed %hu message from %s because you are too evil." -msgid_plural "You missed %hu messages from %s because you are too evil." +"Sie haben %hu Nachrichten von %s nicht erhalten, da seine/ihre Warnstufe zu " +"hoch ist." + +#, 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] "" -"Sie haben %hu Nachricht von %s nicht erhalten, da Sie zu boshaft sind." +"Sie haben %hu Nachricht von %s nicht erhalten, da Ihre Warnstufe zu hoch ist." msgstr[1] "" -"Sie haben %hu Nachrichten von %s nicht erhalten, da Sie zu boshaft sind." +"Sie haben %hu Nachrichten von %s nicht erhalten, da Ihre Warnstufe zu hoch " +"ist." #, c-format msgid "You missed %hu message from %s for an unknown reason." @@ -6510,9 +6586,6 @@ msgid "Member Since" msgstr "Mitglied seit" -msgid "Available Message" -msgstr "Verf端gbarkeitsnachricht" - msgid "Your AIM connection may be lost." msgstr "Ihre AIM-Verbindung k旦nnte unterbrochen sein." @@ -6542,12 +6615,17 @@ msgid "Personal Web Page" msgstr "Pers旦nliche Webseite" +#. aim_userinfo_t +#. strip_html_tags msgid "Additional Information" msgstr "Zus辰tzliche Informationen" msgid "Zip Code" msgstr "PLZ" +msgid "Work Information" +msgstr "Information (Arbeit)" + msgid "Division" msgstr "Abteilung" @@ -6557,9 +6635,6 @@ msgid "Web Page" msgstr "Webseite" -msgid "Work Information" -msgstr "Information (Arbeit)" - msgid "Pop-Up Message" msgstr "Pop-Up Nachricht" @@ -6570,11 +6645,11 @@ msgstr[1] "Die folgenden Benutzernamen sind verbunden mit %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Keine Ergebnisse f端r die E-Mail-Adresse %s gefunden" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" "Sie sollten eine E-Mail erhalten, in der Sie aufgefordert werden, %s zu " "best辰tigen." @@ -6606,7 +6681,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Error 0x%04x: Kann die E-Mail-Adresse nicht 辰ndern, weil es schon eine " @@ -6614,7 +6689,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Fehler 0x%04x: Kann die E-Mail-Adresse nicht 辰ndern, weil zu dieser Adresse " @@ -6622,7 +6697,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Fehler 0x%04x: Kann die E-Mail-Adresse nicht 辰ndern, weil die angegebene " @@ -6636,7 +6711,7 @@ msgstr "Fehler beim �ndern der Konten-Information" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Die E-Mail-Adresse f端r %s ist %s" msgid "Account Info" @@ -6780,12 +6855,6 @@ "Ihr IM-Bild wurde nicht gesendet. Sie k旦nnen keine IM-Bilder in AIM-Chats " "senden." -msgid "Away Message" -msgstr "Abwesenheitsnachricht" - -msgid "<i>(retrieving)</i>" -msgstr "<i>(empfange)</i>" - msgid "iTunes Music Store Link" msgstr "iTunes Music Store Link" @@ -6859,13 +6928,13 @@ "den Buddy mit einem Rechtsklick anklicken und ��Nochmal nach Autorisierung " "fragen�� ausw辰hlen." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Suche Buddys nach E-Mail-Adresse" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Suche nach einem Buddy mit einer bestimmten E-Mail-Adresse" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Geben Sie die E-Mail-Adresse des Buddys ein, nach dem Sie suchen." msgid "_Search" @@ -6888,16 +6957,16 @@ msgid "Confirm Account" msgstr "Konto best辰tigen" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Zeige die aktuell registrierte E-Mail-Adresse" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�ndere die aktuell registrierte E-Mail-Adresse..." msgid "Show Buddies Awaiting Authorization" msgstr "Zeige Buddys, von denen Sie Autorisierung erwarten" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Suche Buddys nach E-Mail-Adresse..." msgid "Search for Buddy by Information" @@ -6912,6 +6981,9 @@ "Datei端bertragungen und Direkt-IM (langsamer,\n" "aber zeigt Ihre IP-Adresse nicht)" +msgid "Allow multiple simultaneous logins" +msgstr "Mehrere gleichzeitige Logins erlauben" + #, c-format msgid "Asking %s to connect to us at %s:%hu for Direct IM." msgstr "Frage %s, ob er sich zu uns auf %s:%hu f端r Direkt-IM verbinden m旦chte." @@ -6963,9 +7035,6 @@ msgid "College" msgstr "College" -msgid "Email" -msgstr "E-Mail" - msgid "Zipcode" msgstr "PLZ" @@ -8738,7 +8807,7 @@ msgstr "Benutzername: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-Mail: \t\t%s\n" #, c-format @@ -8986,7 +9055,7 @@ msgid "Dir service temporarily unavailable." msgstr "Verzeichnis-Dienst ist zur Zeit nicht verf端gbar." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-Mail-Suche eingeschr辰nkt." msgid "Keyword ignored." @@ -9683,6 +9752,20 @@ msgid "Accept chat invitation?" msgstr "Akzeptieren Sie die Chat-Einladung?" +#. Shortcut +msgid "Shortcut" +msgstr "Tastenkombination" + +msgid "The text-shortcut for the smiley" +msgstr "Die Tastenkombination f端r den Smiley" + +#. Stored Image +msgid "Stored Image" +msgstr "Gespeichertes Bild" + +msgid "Stored Image. (that'll have to do for now)" +msgstr "Gespeichertes Bild. (Das muss erstmal reichen)" + msgid "SSL Connection Failed" msgstr "SSL-Verbindung gescheitert" @@ -9957,8 +10040,8 @@ msgid "_Basic" msgstr "_Einfach" -msgid "Create this new account on the server" -msgstr "Dieses neue Konto auf dem Server anlegen" +msgid "Create _this new account on the server" +msgstr "Dieses _neue Konto auf dem Server anlegen" msgid "_Advanced" msgstr "_Erweitert" @@ -10064,6 +10147,12 @@ msgid "_Remove" msgstr "_Entfernen" +msgid "Set Custom Icon" +msgstr "Setze benutzerdefiniertes Icon" + +msgid "Remove Custom Icon" +msgstr "Benutzerdefiniertes Icon entfernen" + msgid "Add _Buddy..." msgstr "_Buddy hinzuf端gen..." @@ -10163,8 +10252,8 @@ msgid "/_Accounts" msgstr "/_Konten" -msgid "/Accounts/Manage" -msgstr "/Konten/Verwalten" +msgid "/Accounts/Manage Accounts" +msgstr "/Konten/Konten verwalten" #. Tools msgid "/_Tools" @@ -10185,6 +10274,9 @@ msgid "/Tools/Pr_ivacy" msgstr "/Werkzeuge/Pri_vatsph辰re" +msgid "/Tools/Smile_y" +msgstr "/Werkzeuge/Smile_y" + msgid "/Tools/_File Transfers" msgstr "/Werkzeuge/_Datei端bertragungen" @@ -10351,13 +10443,13 @@ "<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</b>. Once you enable accounts, you'll be " -"able to sign on, set your status, and talk to your friends." +"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 "" "<span weight='bold' size='larger'>Willkommen bei %s!</span>\n" "\n" "Sie haben keine Konten aktiviert. Aktivieren Sie Ihre IM-Konten vom " -"<b>Konten</b>-Fenster 端ber <b>Konten->Verwalten</b>. Wenn Sie Konten " +"<b>Konten</b>-Fenster 端ber <b>Konten->Konten verwalten</b>. Wenn Sie Konten " "aktiviert haben, k旦nnen Sie sich anmelden, Ihren Status setzen und mit Ihren " "Freunden reden." @@ -10418,6 +10510,12 @@ msgid "Please enter the name of the group to be added." msgstr "Bitte geben Sie den Namen der Gruppe ein, die hinzugef端gt werden soll." +msgid "Enable Account" +msgstr "Konten aktivieren" + +msgid "<PurpleMain>/Accounts/Enable Account" +msgstr "<PurpleMain>/Konten/Konto aktivieren" + msgid "<PurpleMain>/Accounts/" msgstr "<PurpleMain>/Konten/" @@ -10430,12 +10528,6 @@ msgid "_Disable" msgstr "_Deaktivieren" -msgid "Enable Account" -msgstr "Konten aktivieren" - -msgid "<PurpleMain>/Accounts/Enable Account" -msgstr "<PurpleMain>/Konten/Konto aktivieren" - msgid "/Tools" msgstr "/Werkzeuge" @@ -10521,9 +10613,6 @@ msgid "Change Size" msgstr "�ndere Gr旦�e" -msgid "Remove Custom Icon" -msgstr "Benutzerdefiniertes Icon entfernen" - msgid "Show All" msgstr "Alle anzeigen" @@ -10791,9 +10880,6 @@ msgid "Fatal Error" msgstr "Schwerer Fehler" -msgid "lead developer" -msgstr "Hauptentwickler" - msgid "developer" msgstr "Entwickler" @@ -10828,6 +10914,9 @@ msgid "original author" msgstr "Originalautor" +msgid "lead developer" +msgstr "Hauptentwickler" + msgid "Afrikaans" msgstr "Afrikaans" @@ -10963,6 +11052,9 @@ msgid "Norwegian Nynorsk" msgstr "Norwegisch (Nynorsk)" +msgid "Occitan" +msgstr "Okzitanisch" + msgid "Punjabi" msgstr "Pandschabi" @@ -11204,23 +11296,35 @@ msgid "Right-click for more unread messages...\n" msgstr "Rechtsklicken f端r weitere ungelesene Nachrichten...\n" -msgid "Change Status" -msgstr "�ndere Status" - -msgid "Show Buddy List" -msgstr "Buddy-Liste anzeigen" - -msgid "New Message..." -msgstr "Neue Nachricht..." - -msgid "Mute Sounds" -msgstr "Stummschalten" - -msgid "Blink on New Message" -msgstr "Bei neuen Nachrichten blinken" - -msgid "Quit" -msgstr "Beenden" +msgid "_Change Status" +msgstr "�ndere _Status" + +msgid "Show Buddy _List" +msgstr "Buddy-_Liste anzeigen" + +msgid "_Unread Messages" +msgstr "_Ungelesene Nachrichten" + +msgid "New _Message..." +msgstr "_Neue Nachricht..." + +msgid "_Accounts" +msgstr "_Konten" + +msgid "Plu_gins" +msgstr "_Plugins" + +msgid "Pr_eferences" +msgstr "_Einstellungen" + +msgid "Mute _Sounds" +msgstr "Stu_mmschalten" + +msgid "_Blink on New Message" +msgstr "Be_i neuen Nachrichten blinken" + +msgid "_Quit" +msgstr "_Beenden" msgid "Not started" msgstr "Nicht gestartet" @@ -11338,6 +11442,12 @@ msgid "Color to draw the name of an action message." msgstr "Farbe, mit der der Name in einer Aktions-Nachricht dargestellt wird." +msgid "Action Message Name Color for Whispered Message" +msgstr "Farbe des Absendernamens f端r gefl端sterte Aktions-Nachrichten" + +msgid "Whisper Message Name Color" +msgstr "Farbe des Absendernamens f端r Fl端ster-Nachrichten" + msgid "Typing notification color" msgstr "Farbe der Tipp-Benachrichtigung" @@ -11355,7 +11465,7 @@ msgid "Enable typing notification" msgstr "Tipp-Benachrichtigung aktivieren" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "Kopiere _E-Mail-Adresse" msgid "_Open Link in Browser" @@ -11408,6 +11518,9 @@ msgid "_Save Image..." msgstr "Bild _speichern..." +msgid "_Add Custom Smiley..." +msgstr "Benutzerdefinierten Smiley _hinzuf端gen..." + msgid "Select Font" msgstr "Schriftart w辰hlen" @@ -11446,9 +11559,21 @@ msgid "Insert Image" msgstr "Bild einf端gen" +#, c-format +msgid "" +"This smiley is disabled because a custom smiley exists for this shortcut:\n" +" %s" +msgstr "" +"Dieser Smiley ist deaktiviert, da ein benutzerdefinierter Smiley f端r diese " +"Tastenkombination existiert:\n" +" %s" + msgid "Smile!" msgstr "L辰cheln!" +msgid "_Manage custom smileys" +msgstr "Benutzerdefinierte Smileys _verwalten" + msgid "This theme has no available smileys." msgstr "Dieses Thema verf端gt 端ber keine Smileys." @@ -11711,8 +11836,8 @@ msgstr[1] "%s hat %d neue Nachrichten." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d neue E-Mail.</b>" msgstr[1] "<b>%d neue E-Mails.</b>" @@ -12164,6 +12289,12 @@ msgid "Play" msgstr "Abspielen" +msgid "_Browse..." +msgstr "Aus_w辰hlen..." + +msgid "_Reset" +msgstr "_Zur端cksetzen" + msgid "_Report idle time:" msgstr "Inaktivit辰tszei_ten anzeigen:" @@ -12342,6 +12473,47 @@ msgid "Status for %s" msgstr "Status f端r %s" +msgid "Custom Smiley" +msgstr "Benutzerdefinierter Smiley" + +msgid "Duplicate Shortcut" +msgstr "Doppelte Tastenkombination" + +msgid "" +"A custom smiley for the selected shortcut already exists. Please specify a " +"different shortcut." +msgstr "" +"F端r diese Tastenkombination existiert bereits ein benutzerdefinierter " +"Smiley. Bitten w辰hlen Sie eine andere Tastenkombination." + +msgid "More Data needed" +msgstr "Weitere Daten ben旦tigt" + +msgid "Please provide a shortcut to associate with the smiley." +msgstr "Bitte geben Sie eine Tastenkombination f端r den Smiley an." + +msgid "Please select an image for the smiley." +msgstr "Bitte w辰hlen Sie ein Bild f端r den Smiley." + +msgid "Edit Smiley" +msgstr "Smiley bearbeiten" + +msgid "Add Smiley" +msgstr "Smiley hinzuf端gen" + +msgid "Smiley _Image" +msgstr "Smiley-_Bild" + +#. Smiley shortcut +msgid "Smiley S_hortcut" +msgstr "_Tastenkombination" + +msgid "Smiley" +msgstr "Smiley" + +msgid "Custom Smiley Manager" +msgstr "Verwaltung f端r benutzerdefinierte Smileys" + msgid "Waiting for network connection" msgstr "Warte auf Netzwerkverbindung" @@ -12751,19 +12923,19 @@ msgid "_Associate Buddy" msgstr "_Assoziiere den Buddy" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "E-Mail konnte nicht gesendet werden" msgid "The evolution executable was not found in the PATH." msgstr "Die ausf端hrbare Evolution-Datei wurde nicht im Pfad (PATH) gefunden." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "F端r diesen Buddy wurde keine E-Mail-Adresse gefunden." msgid "Add to Address Book" msgstr "Zum Adressbuch hinzuf端gen" -msgid "Send E-Mail" +msgid "Send Email" msgstr "E-Mail senden" #. Configuration frame @@ -12813,7 +12985,7 @@ msgid "Last name:" msgstr "Nachname:" -msgid "E-mail:" +msgid "Email:" msgstr "E-Mail:" #. *< type @@ -13153,8 +13325,8 @@ "You are using %s version %s. The current version is %s. You can get it " "from <a href=\"%s\">%s</a><hr>" msgstr "" -"Sie verwenden %s Version %s. Die aktuelle Version ist %s.Download unter <a " -"href=\"%s\">%s</a><hr>" +"Sie verwenden gerade %s Version %s. Die aktuelle Version ist %s. Sie " +"k旦nnen Pidgin von <a href=\"%s\">%s</a> herunterladen.<hr>" #, c-format msgid "<b>ChangeLog:</b><br>%s"
--- a/po/dz.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/dz.po Thu Jun 26 09:07:56 2008 +0000 @@ -3608,7 +3608,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3642,16 +3642,6 @@ msgid "Purple Person" msgstr "狃�狃�犲�狃�狃�犲�狃�狃�就狃�犲�" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "狃�狃園充狃�犲�狃�狃酌就犲�" @@ -5357,7 +5347,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�犲�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6437,7 +6427,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃巌拾犲�狃�狃材�犲�" #: ../libpurple/protocols/msn/error.c:49 @@ -6985,7 +6975,7 @@ msgstr "狃�狆園讐狃�犲�狃�狃�狃∇�狃�狃�狆迦讐狃�犲�" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "狃∇�犲�狃�狃酌�犲�狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7048,7 +7038,7 @@ msgstr "狃�襲犲�狃�狃÷充狃�犲� 狃�狃�狃∇�狃�狃�狆迦讐狃�犲�" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲� 狃�襲犲�狃�狃÷充狃�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8723,7 +8713,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8921,12 +8911,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲� %s 狃�輯犲� 狃�狆迦輯狃�犲�狃�狃�狆迦拾犲�狃�狃巌�狃�犲�狃�狃酌�犲�狃�狃��" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s 狃�狃材拾犲�狃�狃�狆園�犲�狃�輯犲�狃�狃�狆迦讐犲�狃�狃�狆園�犲�狃�狃�狃�犲�狃�狃材就犲�狃�狃�狃迦�狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�狃�狃迦�犲�狃�狃酌�犲�狃�狃�狃酌�犲�狃�讐狃�犲�" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8964,7 +8954,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "狃�狃�狃酌州犲�狃�犲� 0x%04x: 狃�犲�狃�狃迦�狃�狃�州犲�狃�狃�狃迦�狃�輯犲�狃о什犲�狃�犲�狃�拾犲�狃∇�犲�狃�狃巌�狃�犲�狃�狃�狃迦�犲�狃�狃�升狃∇�狃蹱材�狃÷充狃�狃�犲�狃�拾犲� 狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃��狆園輯狃∇�" @@ -8973,7 +8963,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "狃�狃�狃酌州犲�狃�犲� 0x%04x: 狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃��狆園輯狃∇�狃�狃�狃酌拾犲�狃�狃�狃�犲�狃�狃迦�狃�狃巌�狃��狃�狃��狃�犲�狃�狃迦�狃�商狃材�狃�狃材就犲�狃�犲�狃�狃迦�犲� 狃�狆園讐狃�犲�狃蹱材�狃÷充狃�犲�狃�狃�狃迦�狃�犲�" @@ -8982,7 +8972,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "狃�狃�狃酌州犲�狃�犲� 0x%04x: 狃�狆園讐狃�犲�狃蹱材�狃÷充狃�犲�狃�狃�狃迦�狃�犲�狃�狆園�犲�狃�狃�狃迦�狃�狃巌拾犲�狃�狃材�犲�狃�狃�狃迦�犲�狃�讐狃�狃�犲�狃�拾犲� 狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃��狆園輯狃∇�狃�狃�狃酌拾犲�狃�狃�狃�犲�" @@ -8995,7 +8985,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 狃�輯犲�狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃�狃迦� %s 狃�讐狃�犲�" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9274,15 +9264,15 @@ "狃�狆園讐狃��狃�犲�狃∇充狃�狃��狃�狃巌�狃�狃�犲�狃�拾犲� 狃�狃�狃�犲�狃�召狆迦充狃�犲�狃�廠狃∇�狃�狃巌�狃�狃巌�狃��" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�狆園讐犲�狃�狃酌�犲�狃�拾犲� 狃�犲�狃∇充狃�狃��狃�狃�狃酌州犲�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�狆園讐犲�狃�狃酌�犲�狃�拾犲�狃�犲�狃∇充狃�狃��狃�狃迦�犲�狃�狃迦�狃�狃酌�犲�狃�輯犲�狃�狃�狃酌州犲�狃�狃迦�犲�狃�狃�狃�犲�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "狃�狆園充狃�犲�狃�狆園讐狃��狃�狃�狃酌州犲�狃�狃迦�犲�狃�狃�狃�犲�狃�狃�狃迦�狃�狃��狃�犲�狃�狃迦� 狃�犲�狃∇充狃�狃��狃�狆園讐犲�狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃�狃迦�狃÷讐狃�犲�狃�狃�狃∇�狃∇�狆園�狃��" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9313,11 +9303,11 @@ msgstr "狃∇奨狃迦拾犲�狃�狃酌�狃�狃材拾犲�狃�狃蹱�犲�狃�狃�狃酌�" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "狃�犲�狃��狃酌� 狃�狃酌�狃�狃�狃酌�犲�狃�狃�狃�犲�狃÷充狃�犲�狃�狃�狃迦�狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃�狃迦� 狃�狃�狆迦�犲�狃��狃酌�犲�狃�狃�狃�犲�" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "狃�犲�狃��狃酌� 狃�狃酌�狃�狃�狃酌�犲�狃�狃�狃�犲�狃÷充狃�犲�狃�狃�狃迦�狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃�狃迦� 狃�狃��狆園輯狃∇�狃�狃�狃酌拾犲�狃�狃�狃�犲�..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9325,7 +9315,7 @@ msgstr "狃�狃�狃�犲�狃�召狆迦充狃�犲�狃�狃��狃巌�犲�狃�狃�狃迦�犲�狃�狃巌�狃迦�狃�犲�狃∇充狃�狃��狃�狃巌�狃��狃酌�犲�" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�犲�狃�狆園�犲�狃�狃迦拾犲�狃�狃酌�犲�狃�拾犲� 狃�犲�狃∇充狃�狃��狃�狆園讐犲�狃�狃酌�犲�狃�輯犲� 狃�狃�狃酌州犲�狃�狃迦�犲�狃�狃�狃�犲�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9415,10 +9405,6 @@ msgid "College" msgstr "狃�狃�狃酌�狃∇讐狃�犲�狃�廠狃酌�犲�狃�狆迦将犲�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "狃�狃�狃��狃��犲�犲�" @@ -12187,7 +12173,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12534,7 +12520,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�狃��犲�狃�狃迦�狃�狃�狃�犲�狃�狃�犲�狃�狃�狃�犲�狃÷充狃�狃�犲�" #: ../libpurple/protocols/toc/toc.c:533 @@ -15460,7 +15446,7 @@ msgstr "狃�狃園�狃巌拾狃迦�狃�狃�狃迦� 狃�狃酌�犲�狃∇�狃迦�狃�狃巌�狃�輯犲�狃÷充狃�狃�犲�狃�犲� 狃�狃�犲�狃�狃∇�狃��狃�狃�狆迦什狃��狃��犲�狃�狃巌�狃�狃�狆迦讐犲�狃�狃迦�狃迦�狃�狃酌拾犲�狃�狃�狃迦�" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�狃�狃�狆迦�狃�狃む輯狃��狃∇�狆園�狃�(_C)" #: ../pidgin/gtkimhtml.c:1610 @@ -15899,8 +15885,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>狃�犲�狃��犲�狃�讐狃�犲�狃∇�狆園拾犲�狃�狃む�犲�狃�狃巌�</b>" msgstr[1] "<b>狃�犲�狃��犲�狃�讐狃�犲�狃∇�狆園拾犲�狃�狃む�犲�狃�狃巌�</b>" @@ -17173,7 +17159,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�狃蹱�犲�狃�犲�狃�狃巌�狃��" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17181,7 +17167,7 @@ msgstr "狃��犲�狃�什狃�犲�狃�狃�狃�犲�狃�狃蹱巌�犲�狃�狃�狃迦�狃�讐犲�狃�狃酌�狃�輯犲�狃む襲狃�犲�狃�狃�狃迦� 狃�狃�狆迦輯狃��狃��犲�狃�狃�犲�狃�犲�狃�狃酌�犲�狃�狃��" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17189,7 +17175,7 @@ msgstr "狃�犲�狃�狆園�犲�狃�狃迦�狃�狃材�犲�狃�輯犲�狃�犲�狃��狃酌�犲�狃∇�狆園�狃��" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "狃�狆橿充狃�犲�-狃�狃�狆迦讐狃�犲�狃�狃蹱�犲�犲�" #. Configuration frame @@ -17247,7 +17233,7 @@ msgstr "狃�狃�狃巌�犲�狃�狃迦�犲�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "狃�狆橿充狃�犲�狃�狃�狆迦讐狃�犲�" #. *< type
--- a/po/el.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/el.po Thu Jun 26 09:07:56 2008 +0000 @@ -3856,8 +3856,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1067 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:401 #: ../libpurple/protocols/bonjour/bonjour.c:707 @@ -3888,16 +3888,6 @@ msgid "Purple Person" msgstr "" -#: ../libpurple/protocols/bonjour/bonjour.c:704 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:988 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5559,8 +5549,8 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3747 #: ../libpurple/protocols/oscar/oscar.c:3756 -msgid "E-Mail Address" -msgstr "�旅竜�慮�僚�侶 e-mail" +msgid "Email Address" +msgstr "�旅竜�慮�僚�侶 email" #: ../libpurple/protocols/jabber/buddy.c:2427 #: ../libpurple/protocols/jabber/buddy.c:2428 @@ -6606,8 +6596,8 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" -msgstr "�侶 劉粒虜��侶 隆旅竜�慮�僚�侶 e-mail" +msgid "Invalid email address" +msgstr "�侶 劉粒虜��侶 隆旅竜�慮�僚�侶 email" #: ../libpurple/protocols/msn/error.c:49 #: ../libpurple/protocols/msnp9/error.c:49 @@ -7218,8 +7208,8 @@ #: ../libpurple/protocols/msn/msn.c:1812 #: ../libpurple/protocols/msnp9/msn.c:1668 -msgid "Personal E-Mail" -msgstr "��凌���旅虜� E-Mail" +msgid "Personal Email" +msgstr "��凌���旅虜� Email" #: ../libpurple/protocols/msn/msn.c:1813 #: ../libpurple/protocols/msnp9/msn.c:1669 @@ -7294,8 +7284,8 @@ #: ../libpurple/protocols/msn/msn.c:1843 #: ../libpurple/protocols/msnp9/msn.c:1699 -msgid "Work E-Mail" -msgstr "E-mail 竜�粒留�溜留�" +msgid "Work Email" +msgstr "Email 竜�粒留�溜留�" #: ../libpurple/protocols/msn/msn.c:1844 #: ../libpurple/protocols/msnp9/msn.c:1700 @@ -9125,12 +9115,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2500 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"�略硫留�竜 劉僚留 ICQ e-mail 留�� %s [%s]\n" +"�略硫留�竜 劉僚留 ICQ email 留�� %s [%s]\n" "\n" "里凌 亮流僚�亮留 竜溜僚留旅:\n" "%s" @@ -9310,13 +9300,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3981 #, c-format -msgid "No results found for e-mail address %s" -msgstr "�竜 硫�劉慮侶虜留僚 留�凌�竜了劉�亮留�留 粒旅留 �侶 隆旅竜�慮�僚�侶 e-mail %s" +msgid "No results found for email address %s" +msgstr "�竜 硫�劉慮侶虜留僚 留�凌�竜了劉�亮留�留 粒旅留 �侶 隆旅竜�慮�僚�侶 email %s" #: ../libpurple/protocols/oscar/oscar.c:4002 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "��劉�竜旅 僚留 了略硫竜�竜 劉僚留 e-mail 竜�旅硫竜硫留溜��侶� �凌� %s." +msgid "You should receive an email asking to confirm %s." +msgstr "��劉�竜旅 僚留 了略硫竜�竜 劉僚留 email 竜�旅硫竜硫留溜��侶� �凌� %s." #: ../libpurple/protocols/oscar/oscar.c:4004 msgid "Account Confirmation Requested" @@ -9354,7 +9344,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4047 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "裡�略了亮留 0x%04x: �隆�僚留亮溜留 留了了留粒流� �侶� 侶了. 隆旅竜�慮�僚�侶� 竜�竜旅隆流 ��略��竜旅 亮溜留 留溜�侶�侶 " @@ -9363,7 +9353,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4050 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "裡�略了亮留 0x%04x: �隆�僚留亮溜留 留了了留粒流� �侶� 侶了. 隆旅竜�慮�僚�侶� 竜�竜旅隆流 侶 隆旅竜�慮�僚�侶 �凌� " @@ -9372,7 +9362,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4053 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Error 0x%04x: �隆�僚留亮溜留 留了了留粒流� �侶� 侶了. 隆旅竜�慮�僚�侶� 竜�竜旅隆流 侶 隆旅竜�慮�僚�侶 �凌� " @@ -9385,8 +9375,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4066 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "� 隆旅竜�慮�僚�侶 e-mail �凌� %s 竜溜僚留旅 %s" +msgid "The email address for %s is %s" +msgstr "� 隆旅竜�慮�僚�侶 email �凌� %s 竜溜僚留旅 %s" #: ../libpurple/protocols/oscar/oscar.c:4068 msgid "Account Info" @@ -9662,16 +9652,16 @@ "竜�略僚� �凌�� 虜留旅 竜�旅了劉粒凌僚�留� \"�溜�侶�侶 劉粒虜�旅�侶� (両留僚略).\"" #: ../libpurple/protocols/oscar/oscar.c:6334 -msgid "Find Buddy by E-Mail" -msgstr "���竜�侶 �溜了凌� 亮竜 e-mail" +msgid "Find Buddy by Email" +msgstr "���竜�侶 �溜了凌� 亮竜 email" #: ../libpurple/protocols/oscar/oscar.c:6335 -msgid "Search for a buddy by e-mail address" -msgstr "�僚留龍流�侶�侶 竜僚�� �溜了凌� 亮竜 e-mail" +msgid "Search for a buddy by email address" +msgstr "�僚留龍流�侶�侶 竜僚�� �溜了凌� 亮竜 email" #: ../libpurple/protocols/oscar/oscar.c:6336 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "�了侶虜��凌了凌粒竜溜��竜 �凌 e-mail �凌� �溜了凌� �凌� �略�僚竜�竜." +msgid "Type the email address of the buddy you are searching for." +msgstr "�了侶虜��凌了凌粒竜溜��竜 �凌 email �凌� �溜了凌� �凌� �略�僚竜�竜." #: ../libpurple/protocols/oscar/oscar.c:6339 msgid "_Search" @@ -9700,20 +9690,20 @@ msgstr "��旅硫竜硫留溜��侶 了凌粒留�旅留�亮凌�" #: ../libpurple/protocols/oscar/oscar.c:6533 -msgid "Display Currently Registered E-Mail Address" -msgstr "�亮�略僚旅�侶 虜留�留���侶亮劉僚侶� 隆旅竜�慮�僚�侶� e-mail" +msgid "Display Currently Registered Email Address" +msgstr "�亮�略僚旅�侶 虜留�留���侶亮劉僚侶� 隆旅竜�慮�僚�侶� email" #: ../libpurple/protocols/oscar/oscar.c:6537 -msgid "Change Currently Registered E-Mail Address..." -msgstr "�了了留粒流 虜留�留���侶亮劉僚侶� 隆旅竜�慮�僚�侶� e-mail..." +msgid "Change Currently Registered Email Address..." +msgstr "�了了留粒流 虜留�留���侶亮劉僚侶� 隆旅竜�慮�僚�侶� email..." #: ../libpurple/protocols/oscar/oscar.c:6544 msgid "Show Buddies Awaiting Authorization" msgstr "�亮�略僚旅�侶 �溜了�僚 �凌� �竜�旅亮劉僚凌�僚 劉粒虜�旅�侶" #: ../libpurple/protocols/oscar/oscar.c:6550 -msgid "Search for Buddy by E-Mail Address..." -msgstr "�僚留龍流�侶�侶 �溜了凌� 亮竜 e-mail..." +msgid "Search for Buddy by Email Address..." +msgstr "�僚留龍流�侶�侶 �溜了凌� 亮竜 email..." #: ../libpurple/protocols/oscar/oscar.c:6555 msgid "Search for Buddy by Information" @@ -9794,10 +9784,6 @@ msgid "College" msgstr "�凌了劉粒旅凌" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "里留�. ��隆旅虜留�" @@ -12521,8 +12507,8 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 #: ../libpurple/protocols/silc10/util.c:361 @@ -12842,8 +12828,8 @@ msgstr "� ��侶�竜�溜留 虜留�留了�粒凌� 竜溜僚留旅 ��凌���旅僚略 亮侶 隆旅留慮劉�旅亮侶." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." -msgstr "��留粒凌�竜�竜�留旅 侶 竜��竜�侶 e-mail." +msgid "Email lookup restricted." +msgstr "��留粒凌�竜�竜�留旅 侶 竜��竜�侶 email." #: ../libpurple/protocols/toc/toc.c:533 msgid "Keyword ignored." @@ -15868,8 +15854,8 @@ msgstr "律��亮留 �凌� 慮留 龍�粒�留�溜龍竜�留旅 �凌 �僚凌亮留 竜僚�� 亮侶僚�亮留�凌� 竜僚劉�粒竜旅留�." #: ../pidgin/gtkimhtml.c:1632 -msgid "_Copy E-Mail Address" -msgstr "_�僚�旅粒�留�流 隆旅竜�慮�僚�侶� e-mail" +msgid "_Copy Email Address" +msgstr "_�僚�旅粒�留�流 隆旅竜�慮�僚�侶� email" #: ../pidgin/gtkimhtml.c:1644 msgid "_Open Link in Browser" @@ -16277,10 +16263,10 @@ #: ../pidgin/gtknotify.c:575 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>��竜�竜 %d 僚劉凌 e-mail.</b>" -msgstr[1] "<b>��竜�竜 %d 僚劉留 e-mail.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>��竜�竜 %d 僚劉凌 email.</b>" +msgstr[1] "<b>��竜�竜 %d 僚劉留 email.</b>" #: ../pidgin/gtknotify.c:1008 #, c-format @@ -17596,24 +17582,24 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" -msgstr "�隆�僚留亮溜留 留�凌��凌了流� e-mail" +msgid "Unable to send email" +msgstr "�隆�僚留亮溜留 留�凌��凌了流� email" #: ../pidgin/plugins/gevolution/gevolution.c:241 msgid "The evolution executable was not found in the PATH." msgstr "里凌 竜虜�竜了劉�旅亮凌 evolution 隆竜 硫�劉慮侶虜竜 ��侶 ����痢���." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." -msgstr "�竜 硫�劉慮侶虜竜 隆旅竜�慮�僚�侶 e-mail 粒旅留 留���僚 �凌 �溜了凌." +msgid "An email address was not found for this buddy." +msgstr "�竜 硫�劉慮侶虜竜 隆旅竜�慮�僚�侶 email 粒旅留 留���僚 �凌 �溜了凌." #: ../pidgin/plugins/gevolution/gevolution.c:273 msgid "Add to Address Book" msgstr "��凌�慮流虜侶 ��凌 硫旅硫了溜凌 隆旅竜�慮�僚�竜�僚" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" -msgstr "��凌��凌了流 e-mail" +msgid "Send Email" +msgstr "��凌��凌了流 email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -17674,8 +17660,8 @@ msgstr "���僚�亮凌:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/en_AU.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/en_AU.po Thu Jun 26 09:07:56 2008 +0000 @@ -1173,7 +1173,7 @@ #: ../finch/gntnotify.c:225 ../pidgin/gtknotify.c:341 #, fuzzy msgid "New Mail" -msgstr "E-Mail" +msgstr "Email" #: ../finch/gntnotify.c:290 ../pidgin/gtknotify.c:940 #, c-format @@ -3631,8 +3631,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3667,17 +3667,6 @@ msgid "Purple Person" msgstr "New Person" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "E-mail:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5443,14 +5432,14 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "E-Mail Address" +msgid "Email Address" +msgstr "Email Address" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 #, fuzzy msgid "Search for XMPP users" -msgstr "Search for a buddy by e-mail address" +msgstr "Search for a buddy by email address" #. "Search" #: ../libpurple/protocols/jabber/buddy.c:2412 @@ -6519,8 +6508,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Invalid e-mail address" +msgid "Invalid email address" +msgstr "Invalid email address" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -7084,7 +7073,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Personal Title" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7153,8 +7142,8 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" -msgstr "E-Mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -8849,12 +8838,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9040,13 +9029,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "No results found for e-mail address %s" +msgid "No results found for email address %s" +msgstr "No results found for email address %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." +msgstr "You should receive an email asking to confirm %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -9085,28 +9074,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -9116,8 +9105,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "The e-mail address for %s is %s" +msgid "The email address for %s is %s" +msgstr "The email address for %s is %s" #: ../libpurple/protocols/oscar/oscar.c:4035 msgid "Account Info" @@ -9402,16 +9391,16 @@ "them and selecting \"Re-request Authorisation.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Find Buddy by E-Mail" +msgid "Find Buddy by Email" +msgstr "Find Buddy by Email" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" +msgstr "Search for a buddy by email address" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." +msgstr "Type the email address of the buddy you are searching for." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9443,12 +9432,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Display Currently Registered Address" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Change Currently Registered Address..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9457,8 +9446,8 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." -msgstr "Search for Buddy by E-Mail..." +msgid "Search for Buddy by Email Address..." +msgstr "Search for Buddy by Email..." #: ../libpurple/protocols/oscar/oscar.c:6452 msgid "Search for Buddy by Information" @@ -9550,10 +9539,6 @@ msgid "College" msgstr "_Collapse" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12399,7 +12384,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "EMail: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12754,8 +12739,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "E-mail lookup restricted." +msgid "Email lookup restricted." +msgstr "Email lookup restricted." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -14911,7 +14896,7 @@ msgid "%d person in room" msgid_plural "%d people in room" msgstr[0] "%d person in room" -msgstr[1] "%d person in room" +msgstr[1] "%d people in room" #: ../pidgin/gtkconv.c:6486 ../pidgin/gtkstatusbox.c:660 #, fuzzy @@ -15779,8 +15764,8 @@ msgstr "Colour to draw hyperlinks." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Copy E-Mail Address" +msgid "_Copy Email Address" +msgstr "_Copy Email Address" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -16186,8 +16171,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17507,7 +17492,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Unable to send message." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17515,7 +17500,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17524,8 +17509,8 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" -msgstr "E-Mail" +msgid "Send Email" +msgstr "Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -17583,8 +17568,8 @@ msgstr "Last name:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -19165,8 +19150,8 @@ #~ msgid "Check Mail" #~ msgstr "Check Mail" -#~ msgid "Check e-mail every X seconds.\n" -#~ msgstr "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" +#~ msgstr "Check email every X seconds.\n" #~ msgid "Auto-login" #~ msgstr "Auto-login"
--- a/po/en_CA.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/en_CA.po Thu Jun 26 09:07:56 2008 +0000 @@ -1173,7 +1173,7 @@ #: ../finch/gntnotify.c:225 ../pidgin/gtknotify.c:341 #, fuzzy msgid "New Mail" -msgstr "E-Mail" +msgstr "Email" #: ../finch/gntnotify.c:290 ../pidgin/gtknotify.c:940 #, c-format @@ -3631,8 +3631,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3667,17 +3667,6 @@ msgid "Purple Person" msgstr "New Person" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "E-mail:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5445,14 +5434,14 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "E-Mail Address" +msgid "Email Address" +msgstr "Email Address" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 #, fuzzy msgid "Search for XMPP users" -msgstr "Search for a buddy by e-mail address" +msgstr "Search for a buddy by email address" #. "Search" #: ../libpurple/protocols/jabber/buddy.c:2412 @@ -6521,8 +6510,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Invalid e-mail address" +msgid "Invalid email address" +msgstr "Invalid email address" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -7085,7 +7074,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Personal Title" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7154,8 +7143,8 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" -msgstr "E-Mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -8839,12 +8828,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9032,13 +9021,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "No results found for e-mail address %s" +msgid "No results found for email address %s" +msgstr "No results found for email address %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." +msgstr "You should receive an email asking to confirm %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -9077,28 +9066,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -9108,8 +9097,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "The e-mail address for %s is %s" +msgid "The email address for %s is %s" +msgstr "The email address for %s is %s" #: ../libpurple/protocols/oscar/oscar.c:4035 msgid "Account Info" @@ -9390,16 +9379,16 @@ "them and selecting \"Re-request Authorization.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Find Buddy by E-Mail" +msgid "Find Buddy by Email" +msgstr "Find Buddy by Email" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" +msgstr "Search for a buddy by email address" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." +msgstr "Type the email address of the buddy you are searching for." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9431,12 +9420,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Display Currently Registered Address" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Change Currently Registered Address..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9445,8 +9434,8 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." -msgstr "Search for Buddy by E-Mail..." +msgid "Search for Buddy by Email Address..." +msgstr "Search for Buddy by Email..." #: ../libpurple/protocols/oscar/oscar.c:6452 msgid "Search for Buddy by Information" @@ -9538,10 +9527,6 @@ msgid "College" msgstr "_Collapse" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12387,7 +12372,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "EMail: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12742,8 +12727,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "E-mail lookup restricted." +msgid "Email lookup restricted." +msgstr "Email lookup restricted." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -15767,8 +15752,8 @@ msgstr "Colour to draw hyperlinks." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Copy E-Mail Address" +msgid "_Copy Email Address" +msgstr "_Copy Email Address" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -16174,8 +16159,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17495,7 +17480,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Unable to send message." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17503,7 +17488,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17512,8 +17497,8 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" -msgstr "E-Mail" +msgid "Send Email" +msgstr "Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -17571,8 +17556,8 @@ msgstr "Last name:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -19147,8 +19132,8 @@ #~ msgid "Check Mail" #~ msgstr "Check Mail" -#~ msgid "Check e-mail every X seconds.\n" -#~ msgstr "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" +#~ msgstr "Check email every X seconds.\n" #~ msgid "Auto-login" #~ msgstr "Auto-login"
--- a/po/en_GB.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/en_GB.po Thu Jun 26 09:07:56 2008 +0000 @@ -818,7 +818,7 @@ msgstr "Emails" msgid "You have mail!" -msgstr "You have e-mail!" +msgstr "You have email!" msgid "Sender" msgstr "Sender" @@ -2753,8 +2753,8 @@ msgid "Last name" msgstr "Surname" -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" msgid "AIM Account" msgstr "AIM Account" @@ -2778,9 +2778,6 @@ msgid "Purple Person" msgstr "Purple Person" -msgid "E-mail" -msgstr "E-mail" - msgid "Bonjour" msgstr "Bonjour" @@ -2914,7 +2911,7 @@ msgstr "Your current password is different from the one that you specified." msgid "Unable to change password. Error occurred.\n" -msgstr "Unable to change password. An error occured.\n" +msgstr "Unable to change password. An error occurred.\n" msgid "Change password for the Gadu-Gadu account" msgstr "Change password for the Gadu-Gadu account" @@ -3854,8 +3851,8 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "Fill in one or more fields to search for any matching XMPP users." -msgid "E-Mail Address" -msgstr "E-Mail Address" +msgid "Email Address" +msgstr "Email Address" msgid "Search for XMPP users" msgstr "Search for XMPP users" @@ -4585,8 +4582,8 @@ msgstr "Syntax Error (probably a client bug)" #, c-format -msgid "Invalid e-mail address" -msgstr "Invalid e-mail address" +msgid "Invalid email address" +msgstr "Invalid email address" #, c-format msgid "User does not exist" @@ -4991,8 +4988,8 @@ msgid "Home Fax" msgstr "Home Fax" -msgid "Personal E-Mail" -msgstr "Personal E-mail" +msgid "Personal Email" +msgstr "Personal Email" msgid "Personal IM" msgstr "Personal IM" @@ -5034,8 +5031,8 @@ msgid "Work Fax" msgstr "Work Fax" -msgid "Work E-Mail" -msgstr "Work E-mail" +msgid "Work Email" +msgstr "Work Email" msgid "Work IM" msgstr "Work IM" @@ -5273,7 +5270,7 @@ msgstr "Message could not be sent because the user is offline:" msgid "Message could not be sent because a connection error occurred:" -msgstr "Message could not be sent because a connection error occured:" +msgstr "Message could not be sent because a connection error occurred:" msgid "Message could not be sent because we are sending too quickly:" msgstr "Message could not be sent because we are sending too quickly:" @@ -6380,12 +6377,12 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6524,12 +6521,12 @@ msgstr[1] "The following usernames are associated with %s" #, c-format -msgid "No results found for e-mail address %s" -msgstr "No results found for e-mail address %s" - -#, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "You should receive an e-mail asking to confirm %s." +msgid "No results found for email address %s" +msgstr "No results found for email address %s" + +#, c-format +msgid "You should receive an email asking to confirm %s." +msgstr "You should receive an email asking to confirm %s." msgid "Account Confirmation Requested" msgstr "Account Confirmation Requested" @@ -6556,26 +6553,26 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." #, c-format @@ -6586,8 +6583,8 @@ msgstr "Error Changing Account Info" #, c-format -msgid "The e-mail address for %s is %s" -msgstr "The e-mail address for %s is %s" +msgid "The email address for %s is %s" +msgstr "The email address for %s is %s" msgid "Account Info" msgstr "Account Info" @@ -6799,14 +6796,14 @@ "You can re-request authorisation from these buddies by right-clicking on " "them and selecting \"Re-request Authorisation.\"" -msgid "Find Buddy by E-Mail" -msgstr "Find Buddy by E-Mail" - -msgid "Search for a buddy by e-mail address" -msgstr "Search for a buddy by e-mail address" - -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Type the e-mail address of the buddy you are searching for." +msgid "Find Buddy by Email" +msgstr "Find Buddy by Email" + +msgid "Search for a buddy by email address" +msgstr "Search for a buddy by email address" + +msgid "Type the email address of the buddy you are searching for." +msgstr "Type the email address of the buddy you are searching for." msgid "_Search" msgstr "_Search" @@ -6828,17 +6825,17 @@ msgid "Confirm Account" msgstr "Confirm Account" -msgid "Display Currently Registered E-Mail Address" -msgstr "Display Currently Registered E-mail Address" - -msgid "Change Currently Registered E-Mail Address..." -msgstr "Change Currently Registered E-mail Address" +msgid "Display Currently Registered Email Address" +msgstr "Display Currently Registered Email Address" + +msgid "Change Currently Registered Email Address..." +msgstr "Change Currently Registered Email Address" msgid "Show Buddies Awaiting Authorization" msgstr "Show Buddies Awaiting Authorisation" -msgid "Search for Buddy by E-Mail Address..." -msgstr "Search for Buddy by E-mail Address..." +msgid "Search for Buddy by Email Address..." +msgstr "Search for Buddy by Email Address..." msgid "Search for Buddy by Information" msgstr "Search for Buddy by Information" @@ -6904,9 +6901,6 @@ msgid "College" msgstr "College/University" -msgid "Email" -msgstr "Email" - msgid "Zipcode" msgstr "Postcode" @@ -8655,8 +8649,8 @@ msgstr "User Name: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #, c-format msgid "Host Name: \t%s\n" @@ -8909,8 +8903,8 @@ msgstr "Dir service temporarily unavailable." #, c-format -msgid "E-mail lookup restricted." -msgstr "E-mail lookup restricted." +msgid "Email lookup restricted." +msgstr "Email lookup restricted." #, c-format msgid "Keyword ignored." @@ -11251,8 +11245,8 @@ msgid "Enable typing notification" msgstr "Enable typing notification" -msgid "_Copy E-Mail Address" -msgstr "_Copy E-Mail Address" +msgid "_Copy Email Address" +msgstr "_Copy Email Address" msgid "_Open Link in Browser" msgstr "_Open Link in Browser" @@ -11605,10 +11599,10 @@ msgstr[1] "%s has %d new messages." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d new e-mail.</b>" -msgstr[1] "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d new email.</b>" +msgstr[1] "<b>%d new emails.</b>" #, c-format msgid "The browser command \"%s\" is invalid." @@ -12637,20 +12631,20 @@ msgid "_Associate Buddy" msgstr "_Associate Buddy" -msgid "Unable to send e-mail" -msgstr "Unable to send e-mail" +msgid "Unable to send email" +msgstr "Unable to send email" msgid "The evolution executable was not found in the PATH." msgstr "The evolution executable was not found in the PATH." -msgid "An e-mail address was not found for this buddy." -msgstr "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." +msgstr "An email address was not found for this buddy." msgid "Add to Address Book" msgstr "Add to Address Book" -msgid "Send E-Mail" -msgstr "Send E-Mail" +msgid "Send Email" +msgstr "Send Email" #. Configuration frame msgid "Evolution Integration Configuration" @@ -12695,8 +12689,8 @@ msgid "Last name:" msgstr "Surname" -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/eo.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/eo.po Thu Jun 26 09:07:56 2008 +0000 @@ -3739,7 +3739,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1067 -msgid "E-Mail" +msgid "Email" msgstr "Retadreso" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3771,16 +3771,6 @@ msgid "Purple Person" msgstr "Purpura Persono" -#: ../libpurple/protocols/bonjour/bonjour.c:704 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:995 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "Retadreso" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5389,7 +5379,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3761 #: ../libpurple/protocols/oscar/oscar.c:3770 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Retadreso" #: ../libpurple/protocols/jabber/buddy.c:2427 @@ -6418,7 +6408,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Malvalida retadreso" #: ../libpurple/protocols/msn/error.c:49 @@ -7026,7 +7016,7 @@ #: ../libpurple/protocols/msn/msn.c:1812 #: ../libpurple/protocols/msnp9/msn.c:1668 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Persona Retadreso" #: ../libpurple/protocols/msn/msn.c:1813 @@ -7102,7 +7092,7 @@ #: ../libpurple/protocols/msn/msn.c:1843 #: ../libpurple/protocols/msnp9/msn.c:1699 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Laboro Retadreso" #: ../libpurple/protocols/msn/msn.c:1844 @@ -8845,7 +8835,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2507 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9022,12 +9012,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3995 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4016 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4018 @@ -9060,21 +9050,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4061 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4064 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4067 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -9085,7 +9075,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4080 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "La retadreso de %s estas %s" #: ../libpurple/protocols/oscar/oscar.c:4082 @@ -9333,15 +9323,15 @@ "elekti \"Re-petu a鏑tentigon.\"" #: ../libpurple/protocols/oscar/oscar.c:6355 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Trovu kunulon la鏑 Retadreso" #: ../libpurple/protocols/oscar/oscar.c:6356 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Ser�u kunulon la鏑 retadreso" #: ../libpurple/protocols/oscar/oscar.c:6357 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Tajpu retadreson de la kunul kiun vi ser�as." #: ../libpurple/protocols/oscar/oscar.c:6360 @@ -9371,11 +9361,11 @@ msgstr "Konfirmu Konton" #: ../libpurple/protocols/oscar/oscar.c:6554 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Vidigu Aktualajn Ali�intajn Retadresojn" #: ../libpurple/protocols/oscar/oscar.c:6558 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�an�u Aktualajn Ali�intajn Retadresojn.." #: ../libpurple/protocols/oscar/oscar.c:6565 @@ -9383,7 +9373,7 @@ msgstr "Montru Kunulojn Atendante Permeso" #: ../libpurple/protocols/oscar/oscar.c:6571 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Ser�u Kunulon la鏑 Retadreso..." #: ../libpurple/protocols/oscar/oscar.c:6576 @@ -9462,10 +9452,6 @@ msgid "College" msgstr "Kolegio" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Retadreso" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Po�tkodo" @@ -12100,7 +12086,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "" #: ../libpurple/protocols/silc/util.c:370 @@ -12414,7 +12400,7 @@ msgstr "" #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15368,7 +15354,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1632 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopiu Retadreson" #: ../pidgin/gtkimhtml.c:1644 @@ -15764,8 +15750,8 @@ #: ../pidgin/gtknotify.c:575 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d nova retmesa�o.</b>" msgstr[1] "<b>%d novaj retmesa�oj.</b>" @@ -17033,7 +17019,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Ne eblas sendi retmesa�on" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17041,7 +17027,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17049,7 +17035,7 @@ msgstr "Aldonu al adresaro" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Sendu retmesa�on" #. Configuration frame @@ -17107,7 +17093,7 @@ msgstr "Familia nomo:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "Retadreso:" #. *< type
--- a/po/es.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/es.po Thu Jun 26 09:07:56 2008 +0000 @@ -3972,7 +3972,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" +msgid "Email" msgstr "Correo electr坦nico" #: ../libpurple/protocols/bonjour/bonjour.c:402 @@ -4004,16 +4004,6 @@ msgid "Purple Person" msgstr "Persona morada" -#: ../libpurple/protocols/bonjour/bonjour.c:705 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:986 -#: ../libpurple/protocols/silc/silc.c:1227 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "Correo electr坦nico" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5671,7 +5661,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3753 #: ../libpurple/protocols/oscar/oscar.c:3762 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Direcci坦n de correo electr坦nico" #: ../libpurple/protocols/jabber/buddy.c:2471 @@ -6726,7 +6716,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Direcci坦n de correo electr坦nico inv叩lida" #: ../libpurple/protocols/msn/error.c:49 @@ -7342,7 +7332,7 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Correo-e personal" #: ../libpurple/protocols/msn/msn.c:1827 @@ -7420,7 +7410,7 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Correo-e del trabajo" #: ../libpurple/protocols/msn/msn.c:1858 @@ -9264,7 +9254,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2495 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9449,12 +9439,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3987 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "No se encontraron resultados para la direcci坦n de correo %s" #: ../libpurple/protocols/oscar/oscar.c:4008 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Deber鱈a recibir un mensaje solicitando confirmaci坦n de %s." #: ../libpurple/protocols/oscar/oscar.c:4010 @@ -9489,7 +9479,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4049 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Error 0x%04x: No se puede cambiar la direcci坦n de correo electr坦nico porque " @@ -9498,7 +9488,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4051 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Error 0x%04x: No se puede cambiar la direcci坦n de correo electr坦nico porque " @@ -9507,7 +9497,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4053 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Error 0x%04x: No se puede cambiar la direcci坦n de correo electr坦nico porque " @@ -9524,7 +9514,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4063 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "La direcci坦n de correo electr坦nico para %s es %s" #: ../libpurple/protocols/oscar/oscar.c:4065 @@ -9797,15 +9787,15 @@ "del rat坦n sobre ellos y escogiendo 束Solicitar autorizaci坦n otra vez.損" #: ../libpurple/protocols/oscar/oscar.c:6347 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Buscar un amigo en base a su correo electr坦nico" #: ../libpurple/protocols/oscar/oscar.c:6348 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Buscar amigo por la direcci坦n correo electr坦nico" #: ../libpurple/protocols/oscar/oscar.c:6349 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" "Escriba la direcci坦n de correo electr坦nico del amigo que est叩 buscando." @@ -9836,11 +9826,11 @@ msgstr "Confirmar cuenta" #: ../libpurple/protocols/oscar/oscar.c:6546 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Mostrar direcciones de correo registradas actualmente" #: ../libpurple/protocols/oscar/oscar.c:6550 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Cambiar la direcci坦n de correo registrada actualmente..." #: ../libpurple/protocols/oscar/oscar.c:6557 @@ -9848,7 +9838,7 @@ msgstr "Mostrar amigos pendientes de autorizaci坦n" #: ../libpurple/protocols/oscar/oscar.c:6563 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Buscar un amigo por correo electr坦nico..." #: ../libpurple/protocols/oscar/oscar.c:6568 @@ -9931,10 +9921,6 @@ msgid "College" msgstr "Universidad" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Correo electr坦nico" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "C坦digo postal" @@ -12684,7 +12670,7 @@ #: ../libpurple/protocols/silc/util.c:367 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Correo electr坦nico: %s\n" #: ../libpurple/protocols/silc/util.c:369 @@ -13010,7 +12996,7 @@ msgstr "Servicio de directorio temporalmente no disponible." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "B炭squeda de direcciones de correo electr坦nico restringida." #: ../libpurple/protocols/toc/toc.c:533 @@ -16073,7 +16059,7 @@ msgstr "Activar la notificaci坦n de tecleo" #: ../pidgin/gtkimhtml.c:1688 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Copiar direcci坦n de correo electr坦nico" #: ../pidgin/gtkimhtml.c:1700 @@ -16504,8 +16490,8 @@ #: ../pidgin/gtknotify.c:599 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>Tiene %d nuevo correo.</b>" msgstr[1] "<b>Tiene %d nuevos correos.</b>" @@ -17831,7 +17817,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "No se pudo enviar el correo electr坦nico" #: ../pidgin/plugins/gevolution/gevolution.c:243 @@ -17839,7 +17825,7 @@ msgstr "No se encontr坦 el ejecutable de Evolution en la ruta." #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "No se ha encontrado una direcci坦n de correo para este amigo." #: ../pidgin/plugins/gevolution/gevolution.c:275 @@ -17847,7 +17833,7 @@ msgstr "A単adir a la agenda" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Enviar correo electr坦nico" #. Configuration frame @@ -17907,7 +17893,7 @@ msgstr "Apellidos:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" +msgid "Email:" msgstr "Correo electr坦nico:" #. *< type
--- a/po/et.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/et.po Thu Jun 26 09:07:56 2008 +0000 @@ -3832,7 +3832,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "E-post" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3864,16 +3864,6 @@ msgid "Purple Person" msgstr "" -#: ../libpurple/protocols/bonjour/bonjour.c:704 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:988 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "E-post" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5500,7 +5490,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3747 #: ../libpurple/protocols/oscar/oscar.c:3756 -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-posti aadress" #: ../libpurple/protocols/jabber/buddy.c:2427 @@ -6542,7 +6532,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Vigane e-posti aadress" #: ../libpurple/protocols/msn/error.c:49 @@ -7150,7 +7140,7 @@ #: ../libpurple/protocols/msn/msn.c:1812 #: ../libpurple/protocols/msnp9/msn.c:1668 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Isiklik e-post" #: ../libpurple/protocols/msn/msn.c:1813 @@ -7226,7 +7216,7 @@ #: ../libpurple/protocols/msn/msn.c:1843 #: ../libpurple/protocols/msnp9/msn.c:1699 -msgid "Work E-Mail" +msgid "Work Email" msgstr "T旦旦 e-post" #: ../libpurple/protocols/msn/msn.c:1844 @@ -9005,7 +8995,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2500 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9184,12 +9174,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3981 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4002 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4004 @@ -9225,7 +9215,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4047 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "Viga 0x%04x: E-postiaadressi pole v探imalik muuta kuna selle ekraaninime alt " @@ -9234,7 +9224,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4050 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "Viga 0x%04x: E-posti aadressi pole v探imalik muuta kuna m辰辰ratud aadressiga " @@ -9243,7 +9233,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4053 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Viga 0x%04x: E-posti aadressi pole v探imalik muuta kuna m辰辰ratud aadress on " @@ -9256,7 +9246,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4066 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Kasutaja %s e-posti aadress on %s" #: ../libpurple/protocols/oscar/oscar.c:4068 @@ -9502,15 +9492,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6334 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6335 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "S探bra otsimine e-posti aadressi j辰rgi" #: ../libpurple/protocols/oscar/oscar.c:6336 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Sisesta otsitava s探bra e-posti aadress." #: ../libpurple/protocols/oscar/oscar.c:6339 @@ -9540,11 +9530,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6533 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6537 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6544 @@ -9552,7 +9542,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6550 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6555 @@ -9631,10 +9621,6 @@ msgid "College" msgstr "" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-post" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Indeks" @@ -12302,7 +12288,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-post: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 @@ -12619,7 +12605,7 @@ msgstr "Kataloogiteenus pole ajutiselt saadaval." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15592,7 +15578,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1632 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopeeri e-posti aadress" #: ../pidgin/gtkimhtml.c:1644 @@ -15993,8 +15979,8 @@ #: ../pidgin/gtknotify.c:575 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d uus e-s探num.</b>" msgstr[1] "<b>%d uut e-s探numit.</b>" @@ -17268,7 +17254,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "E-kirja pole v探imalik saata" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17276,7 +17262,7 @@ msgstr "Evolutioni programmi pole v探imalik PATH radadel leida." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Selle s探bra e-posti aadressi ei leitud." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17284,7 +17270,7 @@ msgstr "Lisa aadressiraamatusse" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Saada e-kiri" #. Configuration frame @@ -17342,7 +17328,7 @@ msgstr "Perekonnanimi:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "E-post:" #. *< type
--- a/po/eu.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/eu.po Thu Jun 26 09:07:56 2008 +0000 @@ -1,246 +1,3 @@ -# translation of eu.po to -# translation of eu.po to -# translation of eu.po to -# translation of eu.po to -# translation of eu.po to -# translation of eu.po to -# translation of eu.po to -# translation of gaim-2.0_eu.po to -# translation of gaim-2.0_eu.po to -# translation of gaim-2.0_eu.po to -# translation of gaim-2.0_eu.po to -# translation of gaim-2.0_eu.po to Basque -# translation of gaim.po to Basque -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. -# tamax, 2006. # Hizkuntza Politikarako Sailburuordetza <hizkpol@ej-gv.es>, 2005. # I単aki Larra単aga Murgoitio <dooteo@zundan.com>, 2006. # tamax, 2006. @@ -3887,7 +3644,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "Helb. el." #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3922,16 +3679,6 @@ msgid "Purple Person" msgstr "Pertsona berria" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "Helbide elektronikoa" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5649,7 +5396,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Helbide elektronikoa" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6734,7 +6481,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Helbide elektronikoa ez da zuzena" #: ../libpurple/protocols/msn/error.c:49 @@ -7282,7 +7029,7 @@ msgstr "Etxeko Fax-a" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Norberaren posta elektronikoa" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7346,7 +7093,7 @@ msgstr "Laneko Fax-a" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Laneko helbide elektronikoa" #: ../libpurple/protocols/msn/msn.c:1688 @@ -9039,7 +8786,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9241,12 +8988,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Emaitzarik ez %s helbide elektronikoarentzat " #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s berrestea eskatzeko posta-mezu bat jaso beharko zenuke. " #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -9286,7 +9033,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "0x%04x errorea: ezin da helbide elektronikoa aldatu, lehendik " @@ -9295,7 +9042,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "0x%04x errorea: ezin da helbide elektronikoa aldatu, emandako helbideak " @@ -9304,7 +9051,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "0x%04x errorea: ezin da helbide elektronikoa aldatu, emandako helbidea ez " @@ -9317,7 +9064,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s erabiltzailearen helbide elektronikoa %s da " #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9602,15 +9349,15 @@ "gainean, eta hautatu \"Eskatu baimena berriro.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Bilatu laguna helbide elektronikoaren arabera " #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Bilatu laguna helbide elektronikoaren arabera" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Idatzi aurkitu nahi duzun lagunaren helbide elektronikoa." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9642,12 +9389,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Bistaratu une honetan erregistratuta dagoen helbidea" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Aldatu une honetan erregistratuta dagoen helbidea..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9656,7 +9403,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Bilatu laguna helbide elektronikoaren arabera... " #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9749,11 +9496,6 @@ msgid "College" msgstr "_Tolestu" -#: ../libpurple/protocols/qq/buddy_info.c:55 -#, fuzzy -msgid "Email" -msgstr "Helbide elektronikoa" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12578,7 +12320,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Helbide elektronikoa.: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12931,7 +12673,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Helbide elektronikoaren bilaketa murriztu da. " #: ../libpurple/protocols/toc/toc.c:533 @@ -15881,7 +15623,7 @@ msgstr "Kolorea hiperestekak marrazteko sagua gainetik pasatzean." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopiatu helbide elektronikoa" #: ../pidgin/gtkimhtml.c:1610 @@ -16308,8 +16050,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>Plugin ezaugarriak</b>" msgstr[1] "<b>Plugin ezaugarriak</b>" @@ -17590,7 +17332,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Ezin da posta-mezua bidali." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17598,7 +17340,7 @@ msgstr "Evolution-en Exukatagarria ez da bere helbidean topatu. " #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17606,7 +17348,7 @@ msgstr "Gehitu helbide-liburuan" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Posta bidali" #. Configuration frame @@ -17664,7 +17406,7 @@ msgstr "Deitura:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "Helbide elektronikoa:" #. *< type
--- a/po/fa.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/fa.po Thu Jun 26 09:07:56 2008 +0000 @@ -3537,7 +3537,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "拆愕惠 悋�擧惠惘���擧�" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3571,16 +3571,6 @@ msgid "Purple Person" msgstr "愆悽惶 悴惆�惆" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "拆愕惠 悋�擧惠惘���擧�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5278,7 +5268,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�愆悋�� 拆愕惠 悋�擧惠惘���擧�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6355,7 +6345,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�愆悋�� 拆愕惠 悋�擧惠惘���擧� �悋�惺惠惡惘" #: ../libpurple/protocols/msn/error.c:49 @@ -6898,7 +6888,7 @@ msgstr "��悋惡惘 悽悋��" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "拆愕惠 悋�擧惠惘���擧� 愆悽惶�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6960,7 +6950,7 @@ msgstr "��悋惡惘 �忰� 擧悋惘" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "拆愕惠 悋�擧惠惘���擧� 擧悋惘�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8625,7 +8615,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8802,12 +8792,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�惠�悴���悋� 惡惘悋� �愆悋�� 拆愕惠 悋�擧惠惘���擧� %s 拆�惆悋 �愆惆" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "愆�悋 惡悋�惆 �擧 �悋��� 悋�擧惠惘���擧� 惡惘悋� 惠悖��惆 %s 惆惘�悋�惠 擧��惆." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8845,7 +8835,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "悽愀悋� 0x%04x: 惠愃��惘 �愆悋�� 拆愕惠 悋�擧惠惘���擧� ��擧� ��愕惠 ��� �擧 惆惘悽�悋愕惠 �惺�� 惆�擯惘 " @@ -8854,7 +8844,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "悽愀悋� 0x%04x: 惠愃��惘 �愆悋�� 拆愕惠 悋�擧惠惘���擧� ��擧� ��愕惠 ��� �愆悋�� 惆悋惆� 愆惆� 惡悋 " @@ -8863,7 +8853,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "悽愀悋� 0x%04x: 惠愃��惘 �愆悋�� 拆愕惠 悋�擧惠惘���擧� ��擧� ��愕惠 ��� �愆悋�� 惆悋惆� 愆惆� �悋�惺惠惡惘 " @@ -8876,7 +8866,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�愆悋�� 拆愕惠 悋�擧惠惘���擧� %s� %s 悋愕惠" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9148,15 +9138,15 @@ "悋惺愀悋� 悋悴悋慍�損 惘悋 悋�惠悽悋惡 擧��惆." #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "拆�惆悋 擧惘惆� 惘��� 悋慍 惘�� 拆愕惠 悋�擧惠惘���擧�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "悴愕惠悴� 惡� 惆�惡悋� 惘��� 悋慍 惘�� �愆悋�� 拆愕惠 悋�擧惠惘���擧�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "�愆悋�� 拆愕惠 悋�擧惠惘���擧� 惘���� 惘悋 擧� 惆�惡悋�愆 ����擯惘惆�惆 �悋惘惆 擧��惆." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9186,11 +9176,11 @@ msgstr "惠悖��惆 忰愕悋惡" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "��悋�愆 �愆悋�� 拆愕惠 悋�擧惠惘���擧 惓惡惠 愆惆�� �惺��" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "惠愃��惘 �愆悋�� 拆愕惠 悋�擧惠惘���擧 惓惡惠 愆惆�� �惺��..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9198,7 +9188,7 @@ msgstr "��悋�愆 惘��悋� 惆惘 悋�惠惴悋惘 悋悴悋慍�" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "悴愕惠悴� 惡� 惆�惡悋� 惘��� 悋慍 惘�� 拆愕惠 悋�擧惠惘���擧�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9289,10 +9279,6 @@ msgid "College" msgstr "�惆惘愕�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "拆愕惠 悋�擧惠惘���擧�" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "擧�惆 拆愕惠�" @@ -12042,7 +12028,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "拆愕惠 悋�擧惠惘���擧�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12384,7 +12370,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "擯愆惠� 惡� 惆�惡悋� �愆悋�� 拆愕惠 悋�擧惠惘���擧� �忰惆�惆 愆惆� 悋愕惠." #: ../libpurple/protocols/toc/toc.c:533 @@ -15262,7 +15248,7 @@ msgstr "惘�擯 拆���惆�悋� 悋��惠惘�惠� ��惠� ��愆� 惘�� 悛��悋 �惘悋惘 ����擯�惘惆." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_�愕悽���惡惘惆悋惘� 悋慍 �愆悋�� 拆愕惠 悋�擧惠惘���擧�" #: ../pidgin/gtkimhtml.c:1610 @@ -15705,8 +15691,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>悴慍悧�悋惠 �惠惶� 愆��惆�</b>" #: ../pidgin/gtknotify.c:989 @@ -16957,7 +16943,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�����惠�悋� �悋��� 悋�擧惠惘���擧� �惘愕惠悋惆" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16965,7 +16951,7 @@ msgstr "悋����愆� �悋惡� 悋悴惘悋 惆惘 PATH 拆�惆悋 �愆惆." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16973,7 +16959,7 @@ msgstr "悋惷悋�� 擧惘惆� 惡� 惆�惠惘��� �愆悋��" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "悋惘愕悋� �悋��� 悋�擧惠惘���擧�" #. Configuration frame @@ -17033,7 +17019,7 @@ msgstr "�悋� 悽悋��悋惆擯�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "拆愕惠 悋�擧惠惘���擧�:" #. *< type
--- a/po/fi.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/fi.po Thu Jun 26 09:07:56 2008 +0000 @@ -3909,7 +3909,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" +msgid "Email" msgstr "S辰hk旦posti" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3941,16 +3941,6 @@ msgid "Purple Person" msgstr "Purple-henkil旦" -#: ../libpurple/protocols/bonjour/bonjour.c:704 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:986 -#: ../libpurple/protocols/silc/silc.c:1227 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "S辰hk旦posti" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5599,7 +5589,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3751 #: ../libpurple/protocols/oscar/oscar.c:3760 -msgid "E-Mail Address" +msgid "Email Address" msgstr "S辰hk旦postiosoite" #: ../libpurple/protocols/jabber/buddy.c:2470 @@ -6650,7 +6640,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ep辰kelpo s辰hk旦postiosoite" #: ../libpurple/protocols/msn/error.c:49 @@ -7310,7 +7300,7 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Oma s辰hk旦posti" #: ../libpurple/protocols/msn/msn.c:1827 @@ -7386,7 +7376,7 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Ty旦s辰hk旦posti" #: ../libpurple/protocols/msn/msn.c:1858 @@ -9217,7 +9207,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2493 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9400,12 +9390,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3985 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Ei hakutuloksia s辰hk旦postiosoitteelle %s" #: ../libpurple/protocols/oscar/oscar.c:4006 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Sinun tulisi saada s辰hk旦postiviesti %s:n varmistusta varten." #: ../libpurple/protocols/oscar/oscar.c:4008 @@ -9440,7 +9430,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4047 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Virhe 0x%04x: S辰hk旦postiosoitetta ei voi muuttaa koska t辰lle k辰ytt辰j辰nimelle " @@ -9449,7 +9439,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4049 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Virhe 0x%04x: S辰hk旦postiosoitetta ei voi muuttaa koska annettu osoite on " @@ -9458,7 +9448,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4051 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Virhe 0x%04x: S辰hk旦postiosoitetta ei voi muuttaa koska annettu osoite on " @@ -9475,7 +9465,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4061 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s:n s辰hk旦postiosoite on %s" #: ../libpurple/protocols/oscar/oscar.c:4063 @@ -9748,15 +9738,15 @@ "nappia heihin ja valitsemalla \"Pyyd辰 valtuutus uudelleen\"." #: ../libpurple/protocols/oscar/oscar.c:6345 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Etsi tuttava s辰hk旦postiosoitteen perusteella" #: ../libpurple/protocols/oscar/oscar.c:6346 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Etsi tuttava s辰hk旦postiosoitteen perusteella" #: ../libpurple/protocols/oscar/oscar.c:6347 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Sy旦t辰 etsim辰si tuttavan s辰hk旦postiosoite." #: ../libpurple/protocols/oscar/oscar.c:6350 @@ -9786,11 +9776,11 @@ msgstr "Vahvista tili" #: ../libpurple/protocols/oscar/oscar.c:6544 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "N辰yt辰 t辰ll辰 hetkell辰 rekister旦ity s辰hk旦postiosoite" #: ../libpurple/protocols/oscar/oscar.c:6548 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Muuta t辰ll辰 hetkell辰 rekister旦ity辰 s辰hk旦postiosoitetta..." #: ../libpurple/protocols/oscar/oscar.c:6555 @@ -9798,7 +9788,7 @@ msgstr "N辰yt辰 tuttavat jotka odottavat valtuutusta" #: ../libpurple/protocols/oscar/oscar.c:6561 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Etsi tuttavaa s辰hk旦postiosoitteen perusteella..." #: ../libpurple/protocols/oscar/oscar.c:6566 @@ -9883,10 +9873,6 @@ msgid "College" msgstr "Yliopisto" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "S辰hk旦posti" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Postinumero" @@ -12619,7 +12605,7 @@ #: ../libpurple/protocols/silc/util.c:367 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "S辰hk旦posti: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:369 @@ -12957,7 +12943,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "S辰hk旦postin katsominen rajoitettu." #: ../libpurple/protocols/toc/toc.c:533 @@ -16026,7 +16012,7 @@ msgstr "Ota kirjoittamishuomautus k辰ytt旦旦n" #: ../pidgin/gtkimhtml.c:1688 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopioi s辰hk旦postiosoite" #: ../pidgin/gtkimhtml.c:1700 @@ -16447,8 +16433,8 @@ #: ../pidgin/gtknotify.c:587 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d uusi s辰hk旦posti.</b>" msgstr[1] "<b>%d uutta s辰hk旦postia.</b>" @@ -17768,7 +17754,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "S辰hk旦postia ei voi l辰hett辰辰." #: ../pidgin/plugins/gevolution/gevolution.c:243 @@ -17776,7 +17762,7 @@ msgstr "Suoritettava evolution-tiedosto ei l旦ytynyt PATH-muuttujasta." #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "T辰lle tuttavalle ei l旦ytynyt s辰hk旦postiosoitetta." #: ../pidgin/plugins/gevolution/gevolution.c:275 @@ -17784,7 +17770,7 @@ msgstr "Lis辰辰 osoitekirjaan" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" +msgid "Send Email" msgstr "L辰het辰 s辰hk旦posti" #. Configuration frame @@ -17842,7 +17828,7 @@ msgstr "Sukunimi:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" +msgid "Email:" msgstr "S辰hk旦posti:" #. *< type @@ -20279,7 +20265,7 @@ #~ msgid "Check Mail" #~ msgstr "Tarkista posti" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "Tarkista posti x sekunnin v辰lein.\n" #~ msgid "Auto-login"
--- a/po/fr.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/fr.po Thu Jun 26 09:07:56 2008 +0000 @@ -2801,7 +2801,7 @@ msgid "Last name" msgstr "Nom�:" -msgid "E-Mail" +msgid "Email" msgstr "Courriel" msgid "AIM Account" @@ -2826,9 +2826,6 @@ msgid "Purple Person" msgstr "Personne Purple" -msgid "E-mail" -msgstr "Adresse 辿lectronique" - msgid "Bonjour" msgstr "Bonjour" @@ -3915,7 +3912,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "Saisissez un ou plusieurs crit竪res de recherche d'utilisateurs XMPP." -msgid "E-Mail Address" +msgid "Email Address" msgstr "Adresse 辿lectronique" msgid "Search for XMPP users" @@ -4659,7 +4656,7 @@ msgstr "Erreur de syntaxe (probablement un bug de l'application)" #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Adresse de courrier 辿lectronique non valide" #, c-format @@ -5067,7 +5064,7 @@ msgid "Home Fax" msgstr "T辿l辿copie personnelle" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Adresse 辿lectronique personnelle" msgid "Personal IM" @@ -5110,7 +5107,7 @@ msgid "Work Fax" msgstr "T辿l辿copie professionnelle" -msgid "Work E-Mail" +msgid "Work Email" msgstr "Adresse 辿lectronique professionnelle" msgid "Work IM" @@ -6473,7 +6470,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6618,11 +6615,11 @@ msgstr[1] "Les noms d'utilisateur suivants sont associ辿s � %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Aucun r辿sultat pour l'adresse 辿lectronique %s" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Vous devriez recevoir un courrier 辿lectronique pour confirmer %s" msgid "Account Confirmation Requested" @@ -6652,7 +6649,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Erreur 0x%04x�: Impossible de changer l'adresse 辿lectronique parce qu'il y a " @@ -6660,7 +6657,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Erreur 0x%04x�: Impossible de changer l'adresse 辿lectronique parce qu'il y a " @@ -6668,7 +6665,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Erreur 0x%04x�: Impossible de changer l'adresse 辿lectronique parce qu'elle " @@ -6682,7 +6679,7 @@ msgstr "Erreur en changeant les informations du compte" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "L'adresse 辿lectronique de %s est %s" msgid "Account Info" @@ -6904,13 +6901,13 @@ "Vous pouvez redemander une autorisation de ces contacts en choisissant " "束�Redemander autorisation�損 sur un clic droit du contact." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Chercher un contact par adresse 辿lectronique" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Rechercher par adresse 辿lectronique" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Saisissez l'adresse 辿lectronique du contact que vous cherchez" msgid "_Search" @@ -6933,16 +6930,16 @@ msgid "Confirm Account" msgstr "Confirmer le compte" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Afficher l'adresse courante enregistr辿e" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Changer l'adresse courante enregistr辿e..." msgid "Show Buddies Awaiting Authorization" msgstr "Afficher les demandes d'autorisation" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Chercher un contact par adresse 辿lectronique..." msgid "Search for Buddy by Information" @@ -7009,9 +7006,6 @@ msgid "College" msgstr "�ducation" -msgid "Email" -msgstr "Courrier 辿lectronique" - msgid "Zipcode" msgstr "Code postal" @@ -8776,7 +8770,7 @@ msgstr "Nom d'utilisateur�: %s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Adresse 辿lectronique�: %s\n" #, c-format @@ -9035,7 +9029,7 @@ msgstr "L'annuaire est temporairement indisponible." #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "La recherche par adresse 辿lectronique est restreinte." #, c-format @@ -11409,7 +11403,7 @@ msgid "Enable typing notification" msgstr "Activer la notification de saise" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Copier l'adresse 辿lectronique" msgid "_Open Link in Browser" @@ -11770,8 +11764,8 @@ msgstr[1] "%s a re巽u %d nouveaux messages." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d nouveau courrier.</b>" msgstr[1] "<b>%d nouveaux courriers.</b>" @@ -12818,7 +12812,7 @@ msgid "_Associate Buddy" msgstr "_Associer un contact" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Impossible d'envoyer un courrier 辿lectronique" msgid "The evolution executable was not found in the PATH." @@ -12826,13 +12820,13 @@ "Le binaire 束�evolution�損 n'a pas 辿t辿 trouv辿 dans les dossiers par d辿faut du " "PATH." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "L'adresse 辿lectronique du contact n'a pas 辿t辿 trouv辿e." msgid "Add to Address Book" msgstr "Ajouter au carnet d'adresses" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Envoyer un courrier" #. Configuration frame @@ -12879,7 +12873,7 @@ msgid "Last name:" msgstr "Nom�:" -msgid "E-mail:" +msgid "Email:" msgstr "Adresse 辿lectronique�:" #. *< type
--- a/po/gl.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/gl.po Thu Jun 26 09:07:56 2008 +0000 @@ -3562,7 +3562,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "Correo electr坦nico" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3594,16 +3594,6 @@ msgid "Purple Person" msgstr "Persoa Purple" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "Correo electr坦nico" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5306,7 +5296,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Enderezo de correo electr坦nico" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6381,7 +6371,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Enderezo de correo electr坦nico non v叩lido" #: ../libpurple/protocols/msn/error.c:49 @@ -6925,7 +6915,7 @@ msgstr "Fax de casa" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Correo electr坦nico persoal" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6987,7 +6977,7 @@ msgstr "Fax do traballo" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Correo electr坦nico do traballo" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8672,7 +8662,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8859,12 +8849,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Non se atoparon resultados para o enderezo de correo electr坦nico %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Deber鱈a recibir un correo electr坦nico. solicitando confirmaci坦n de %s." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8903,7 +8893,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "Erro 0x%04x: Non se pode cambiar o enderezo de correo electr坦nico porque xa " @@ -8912,7 +8902,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "Erro 0x%04x: Non se pode cambiar o enderezo de correo electr坦nico porque o " @@ -8921,7 +8911,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Erro 0x%04x: Non se pode cambiar o enderezo de correo electr坦nico porque o " @@ -8934,7 +8924,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "O enderezo de correo electr坦nico de %s 辿 %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9216,15 +9206,15 @@ "do rato sobre eles e escoller\"Solicitar autorizaci坦n outra vez.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Buscar un contacto polo correo electr坦nico" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Buscar un contacto polo enderezo de correo electr坦nico" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" "Escriba o enderezo de correo electr坦nico do contacto que est叩 a buscar." @@ -9255,11 +9245,11 @@ msgstr "Confirmar conta" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Mostrar o enderezo rexistrado actualmente" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Cambiar o enderezo de correo actualmente rexistrado..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9267,7 +9257,7 @@ msgstr "Mostrar contactos pendentes de autorizaci坦n" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Buscar un contacto polo enderezo de correo electr坦nico..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9356,10 +9346,6 @@ msgid "College" msgstr "Escola" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Correo electr坦nico" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "C坦digo postal" @@ -12098,7 +12084,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Correo electr坦nico: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12441,7 +12427,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Busca de enderezos de correo electr坦nico restrinxida." #: ../libpurple/protocols/toc/toc.c:533 @@ -15350,7 +15336,7 @@ msgstr "Cor para debuxar ligaz坦ns cando o rato estea enriba." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Copiar o enderezo de correo" #: ../pidgin/gtkimhtml.c:1610 @@ -15781,8 +15767,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>Ten %d correo electr坦nico novo.</b>" msgstr[1] "<b>Ten %d correo electr坦nico novo.</b>" @@ -17036,7 +17022,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Imposible enviar o correo electr坦nico" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17044,7 +17030,7 @@ msgstr "O executable de evolution non se atopou no PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Non se atopou un enderezo de correo electr坦nico para este amigo." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17052,7 +17038,7 @@ msgstr "Engadir 叩 axenda de enderezos" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Enviar un correo" #. Configuration frame @@ -17112,7 +17098,7 @@ msgstr "Apelidos:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "Correo electr坦nico:" #. *< type
--- a/po/gu.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/gu.po Thu Jun 26 09:07:56 2008 +0000 @@ -3625,7 +3625,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "爲�-爲��爲�爲�" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3660,17 +3660,6 @@ msgid "Purple Person" msgstr "爲��爻� 爲朽�爲��爻�爲む�" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "爲�-爲��爲�爲�:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "爲��爲��爻�爲�" @@ -5395,7 +5384,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "爲�-爲��爲�爲� 爲伍�爲��爲��爲�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6474,7 +6463,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "爲�爲��爲�爻�爲� 爲�-爲��爲�爲� 爲伍�爲��爲��爲�" #: ../libpurple/protocols/msn/error.c:49 @@ -7038,7 +7027,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "爲�爲鉦�爲�爻� 爲謹�爲萎�爲劇�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7107,7 +7096,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "爲�-爲��爲�爲�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8786,7 +8775,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8975,12 +8964,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "爲�-爲��爲�爲� 爲伍�爲��爲�� %s 爲��爲�爻� 爲�爻�爲� 爲��爲逗�爲鉦�爻� 爲��爻�爲�� 爲��爻�" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "爲む�爲�� %s 爲�� 爲�爲鉦�爲萎� 爲�爲萎�爲� 爲��爲�爻� 爲��爲�爲む� 爲�-爲��爲�爲� 爲��爲朽� 爲�爻�爲�爲�." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -9020,7 +9009,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "爲�爻�爲劇�爲� 0x%04x: 爲�-爲��爲�爲� 爲伍�爲��爲��爲� 爲��爲迦�爲鉦�爲鉦� 爲�爲伍�爲萎�爲� 爲�爲鉦�爲� 爲�爻� 爲� 爲伍�爲�爻�爲萎�爲� 爲��爲� 爲��爲�爻�爲�� 爲�爲萎�爻� 爲��爻�爲迦�爲ム� " @@ -9029,7 +9018,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "爲�爻�爲劇�爲� 0x%04x: 爲�-爲��爲�爲� 爲伍�爲��爲��爲� 爲��爲迦�爲鉦�爲鉦� 爲�爲伍�爲萎�爲� 爲�爲鉦�爲� 爲�爻� 爲�爲��爲� 爲伍�爲��爲��爲�� 爲�爲�� 爲伍�爲�爻�爲萎�爲� 爲��爲�� " @@ -9038,7 +9027,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "爲�爻�爲劇�爲� 0x%04x: 爲�-爲��爲�爲� 爲伍�爲��爲��爲� 爲��爲迦�爲鉦�爲鉦� 爲�爲伍�爲萎�爲� 爲�爲鉦�爲� 爲�爻� 爲�爲��爲� 爲伍�爲��爲��爲� 爲�爲�爻�爲�爻�爲� 爲�爻�." @@ -9049,7 +9038,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 爲��爲�爻�爲��爲� 爲�-爲��爲�爲� 爲伍�爲��爲��爲� %s 爲�爻�" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9326,15 +9315,15 @@ "爲��爲��-爲�爲萎�爻� 爲�爲萎�\" 爲��爲�爲� 爲�爲萎�爲��." #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "爲�-爲��爲�爲� 爲��爲朽�爲萎� 爲朽�爲��爻�爲む� 爲謹�爲о�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "爲�-爲��爲�爲� 爲伍�爲��爲�� 爲��爲朽�爲萎� 爲朽�爲��爻�爲む� 爲��爲�爻� 爲謹�爲�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "爲む�爻� 爲�爻� 爲朽�爲��爻�爲む� 爲��爲�爻� 爲謹�爲� 爲�爲萎� 爲萎�爻�爲�� 爲項�爲� 爲む�爲��爲� 爲�-爲��爲�爲� 爲伍�爲��爲��爲� 爲迦�爻�." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9367,12 +9356,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "爲朽�爻�爲む�爲鉦�爲��爲� 爲萎�爻�爲伍�爲�爲� 爲ム�爻�爲� 爲伍�爲��爲��爲�� 爲��爻�爲謹�爲朽�" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "爲朽�爻�爲む�爲鉦�爲��爲� 爲萎�爻�爲伍�爲�爲� 爲ム�爻�爲� 爲伍�爲��爲��爲�� 爲��爲迦�..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9381,7 +9370,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "爲�-爲��爲�爲� 爲��爲朽�爲萎� 爲朽�爲��爻�爲む� 爲��爲�爻� 爲謹�爲� 爲�爲萎�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9471,10 +9460,6 @@ msgid "College" msgstr "爲〝�爲�爻�爲� 爲�爲萎� (_C)" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "爲�爲��爲�爲�" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12308,7 +12293,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "爲�爲��爲�爲�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12659,7 +12644,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "爲�-爲��爲�爲� 爲�爻�爲朽�爲��爲� 爲��爲萎�爲逗�爲�爲о�爲� 爲�爻�." #: ../libpurple/protocols/toc/toc.c:533 @@ -15623,7 +15608,7 @@ msgstr "爲�爻�爲��爲萎� 爲��爲�爲� 爲む�爲�� 爲�� 爲迦� 爲�爲朽�爲� 爲む�爲��爲萎�爻� 爲項�爲��爲萎�爻�爲�爲�爻� 爲��爲萎�爲� 爲��爲�爻�爲�� 爲萎�爲�." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "爲�-爲��爲�爲� 爲伍�爲��爲��爲�� 爲��爲� 爲�爲萎� (_C)" #: ../pidgin/gtkimhtml.c:1610 @@ -16055,8 +16040,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17358,7 +17343,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "爲�-爲��爲� 爲��爲�爲迦�爲鉦�爲鉦� 爲�爲伍�爲萎�爲�." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17366,7 +17351,7 @@ msgstr "PATH爲��爲� 爲�爲朽�爲迦�爲��爲謹� 爲�爲鉦�爻�爲��爻�爲萎� 爲��爻�爲�� 爲��爻�." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17374,7 +17359,7 @@ msgstr "爲伍�爲��爲�� 爲��爲伍�爲む�爲�爲鉦�爲鉦� 爲�爲��爲萎�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "爲�-爲��爲�爲� 爲��爲�爲迦�" #. Configuration frame @@ -17432,7 +17417,7 @@ msgstr "爲�爻�爲迦�爲迦�爲� 爲��爲�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "爲�-爲��爲�爲�:" #. *< type @@ -19029,7 +19014,7 @@ #~ msgid "Check Mail" #~ msgstr "爲��爲�爲� 爲�爲�爲鉦�爻�" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "爲�� X 爲伍�爲�爲��爲÷� 爲�-爲��爲�爲� 爲�爲�爲鉦�爻�.\n" #~ msgid "Auto-login"
--- a/po/he.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/he.po Thu Jun 26 09:07:56 2008 +0000 @@ -2699,7 +2699,7 @@ msgid "Last name" msgstr "廩� �廩廚��" -msgid "E-Mail" +msgid "Email" msgstr "���廨" msgid "AIM Account" @@ -2724,9 +2724,6 @@ msgid "Purple Person" msgstr "��� 廖���" -msgid "E-mail" -msgstr "���\"�" - msgid "Bonjour" msgstr "Bonjour" @@ -3783,7 +3780,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "�廩 ����� ��� �� ��廬廨 �� �廩��廬 ���廢�廣 ��廚�廩 廩� �廩廬�廩� XMPP �廬�����." -msgid "E-Mail Address" +msgid "Email Address" msgstr "�廬��廬 ���\"�" msgid "Search for XMPP users" @@ -4504,7 +4501,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "廩���廬 廬���廨 (��廨�� ��� �廬����)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�廬��廬 ���\"� �� 廬廡廚�" msgid "User does not exist" @@ -4860,7 +4857,7 @@ msgid "Home Fax" msgstr "廚廡廖 ���廬" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "���\"� ��廩�" msgid "Personal IM" @@ -4903,7 +4900,7 @@ msgid "Work Fax" msgstr "廚廡廖 �廣����" -msgid "Work E-Mail" +msgid "Work Email" msgstr "���\"� �廣����" msgid "Work IM" @@ -6217,7 +6214,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6357,11 +6354,11 @@ msgstr[1] "廩��廬 ��廩廬�廩�� 廩���� �廡�廩廨�� 廣� %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�� ��廢�� 廬�廢��廬 廣��廨 �廬��廬 ����\"� %s" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "�廩�� ���\"� ��廩廨 �廬 %s." msgid "Account Confirmation Requested" @@ -6386,7 +6383,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "廩���� 0x%04x: �� ��廬� �廩��廬 �廬 �廬��廬 ����\"� ����� 廩�廩 ��廨 �廡廩� ���� 廣��廨 " @@ -6394,7 +6391,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "廩���� 0x%04x: �� ��廬� �廩��廬 �廬 �廬��廬 ����\"� ����� 廩��廬��廬 ��廬��� ����廖廬 " @@ -6402,7 +6399,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "廩���� 0x%04x: �� ��廬� �廩��廬 �廬 �廬��廬 ����\"� ����� 廩��廬��廬 廩��廬�� �� ��廡�廬." @@ -6415,7 +6412,7 @@ msgstr "廩���� �廩���� ����廣 廩� ��廩���" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�廬��廬 ����\"� 廩� %s ��� %s" msgid "Account Info" @@ -6615,13 +6612,13 @@ "�廩 ��廚廩廨�廬� ��廡廩 廩�� �廨廩�� ���廩� 廡廩廨 ��� 廣\"� ���廢� ����廬 廣� �廣��廨 廣���� " "�����廨 \"�廡廩 �廨廩�� 廩��\"." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "�廢� ��廩 廡廩廨 �廚� ���\"�" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "�廚廩 ��廩 廡廩廨 �廚� �廬��廬 ����廨 ���廨廡�廨��� 廩��" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "�廡�� �廬 �廬��廬 ����\"� 廩� ��廩 �廡廩廨 ��廬� �廬� ��廚廩." msgid "_Search" @@ -6644,16 +6641,16 @@ msgid "Confirm Account" msgstr "�廩廨 �廩���" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "�廢� �廬 ��廬��廬 �廨廩��� �廨�廣" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "廩�� �廬 ��廬��廬 �廨廩��� �廨�廣..." msgid "Show Buddies Awaiting Authorization" msgstr "�廢� �廬 ��廩� �廡廩廨 廩����� ���廩�廨" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "�廚廩 ��廩-廡廩廨 廣廚\"� �廬��廬 ���\"�..." msgid "Search for Buddy by Information" @@ -6719,9 +6716,6 @@ msgid "College" msgstr "�����" -msgid "Email" -msgstr "���\"�" - msgid "Zipcode" msgstr "��廡��" @@ -8448,7 +8442,7 @@ msgstr "廩� �廩廬�廩: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "���\"�: \t\t%s\n" #, c-format @@ -8684,7 +8678,7 @@ msgid "Dir service temporarily unavailable." msgstr "廩�廨�廬 ���廨�� ���� ���� ����廬." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "��廚�廩 ����\"� �����." msgid "Keyword ignored." @@ -10969,7 +10963,7 @@ msgid "Enable typing notification" msgstr "�廚廣� �廬廨廣廬 �廡���" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "�廣廬廡 _�廬��廬 ����\"�" msgid "_Open Link in Browser" @@ -11310,8 +11304,8 @@ msgstr[1] "�廩 �-%s %d ���廣�廬 ��廩�廬." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>���廣� %d ��廩�.</b>" msgstr[1] "<b>%d ���廣�廬 ��廩�廬.</b>" @@ -12328,19 +12322,19 @@ msgid "_Associate Buddy" msgstr "廩��� ��廩 _廡廩廨" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�� ��廬� �廩��� ���廣廬 ���\"�" msgid "The evolution executable was not found in the PATH." msgstr "廬���廬 ��廨廢� 廩� evolution �� ��廢�� ��廬��� �-PATH." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�廬��廬 ���\"� �� ��廢�� 廣��廨 ��廨 ��." msgid "Add to Address Book" msgstr "��廖廝 �廚�廡廖 ��廬���廬" -msgid "Send E-Mail" +msgid "Send Email" msgstr "廩�� ���\"�" #. Configuration frame @@ -12386,7 +12380,7 @@ msgid "Last name:" msgstr "廩� �廩廚��:" -msgid "E-mail:" +msgid "Email:" msgstr "���\"�:" #. *< type
--- a/po/hi.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/hi.po Thu Jun 26 09:07:56 2008 +0000 @@ -3754,7 +3754,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "爐�爐��爐�" # And now for the buttons @@ -3792,17 +3792,6 @@ msgid "Purple Person" msgstr "爐�く爐沼�爐朽�爐��爛�爐むた" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "爐�-爐��爐�:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5588,7 +5577,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "爐�爐��爐� 爐�い爐�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6691,7 +6680,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "爐�爐朽�爐� 爐�爐��爐� 爐�い爐�" #: ../libpurple/protocols/msn/error.c:49 @@ -7262,7 +7251,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "爐�た爐�爛� 爐�爐�ぞ爐оた" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7331,7 +7320,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "爐�爐��爐�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -9023,7 +9012,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9214,12 +9203,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "%s 爐�爐��爐� 爐�い爛� 爐�爛� 爐迦た爐� 爐�爛�爐� 爐〝� 爐�い爛�爐�爐� 爐�す爛�爐� 爐�た爐迦ぞ" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s 爐�爛� 爐�た爐謹�爐�爐逗い 爐�爐萎え爛� 爐�爛� 爐迦た爐� 爐踱� 爐�爐��爐� 爐�た爐迦�爐�爐鉦イ" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -9259,7 +9248,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "爐む�爐萎�爐�爛� 0x%04x: 爐�爐��爐� 爐�う爐迦え爛� 爐��爐� 爐�爐伍ぎ爐萎�爐� 爐�爛�爐��爐�爐�爐� 爐�ぞ爐�爐�爛� 爐�爐�� 爐�爐��爐� 爐�い爛� 爐�爛� 爐迦た爐� 爐�す爐迦� 爐伍� 爐踱� 爐�爐朽�爐�え 爐項�爛�" @@ -9267,7 +9256,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "爐む�爐萎�爐�爛� 0x%04x: 爐�爐��爐� 爐�う爐迦え爛� 爐��爐� 爐�爐伍ぎ爐萎�爐� 爐�爛�爐��爐�爐�爐� 爐�ぞ爐�爐�爛� 爐�爐�� 爐�爐��爐� 爐�い爛� 爐�爛� 爐迦た爐� 爐�す爐迦� 爐伍� 爐�す爛�爐� 爐伍� 爐伍�爐�爛�爐萎�爐�-" @@ -9276,7 +9265,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "爐む�爐萎�爐�爛� 0x%04x: 爐�爐��爐� 爐�う爐迦え爛� 爐��爐� 爐�爐伍ぎ爐萎�爐� 爐�爛�爐��爐�爐�爐� 爐�た爐�ぞ 爐�爐�ぞ 爐�爐��爐� 爐�い爐� 爐�爐朽�爐� 爐項�爛�" @@ -9287,7 +9276,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 爐�爛� 爐迦た爐� 爐�爐��爐� 爐�い爐� 爐項� %s" # And now for the buttons @@ -9561,15 +9550,15 @@ "爐迦た爐� 爐�爐��爐萎�爐� 爐�爐� 爐伍�爐む�爐� 爐項�爐�爛�" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "爐�爐��爐� 爐�爛� 爐��爐朽ぞ爐萎ぞ 爐�ぁ爛�爐÷� 爐�爛� 爐∇�爐�爐∇�爐�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "爐�ぁ爛�爐÷� 爐�爛� 爐�爛�爐� 爐�爐��爐� 爐�い爐� 爐��爐朽ぞ爐萎ぞ 爐�爐萎�爐�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "爐�爐逗じ 爐�ぁ爛�爐÷� 爐�爛� 爐�爛�爐� 爐�爐� 爐萎す爛�爐� 爐項�爐� 爐�爐伍�爐� 爐�爐��爐� 爐�い爐� 爐÷ぞ爐迦�爐�爛�" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9603,12 +9592,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "爐朽ぐ爛�爐むぎ爐鉦え 爐萎�爐逗じ爛�爐�爐� 爐�爐萎ぞ 爐�い爐� 爐�た爐�爐鉦く爛�爐�" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "爐朽ぐ爛�爐むぎ爐鉦え 爐萎�爐逗じ爛�爐�爐� 爐�爐萎ぞ 爐�い爐� 爐�う爐迦�爐�" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9617,7 +9606,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "爐�ぁ爛�爐÷� 爐�爛� 爐�爛�爐� 爐�爐��爐� 爐��爐朽ぞ爐萎ぞ 爐�爐萎�爐�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9709,10 +9698,6 @@ msgid "College" msgstr "爐伍た爐�爛�爐÷ぜ爐逗く爛�(_C)" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "爐�爐��爐�" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12589,7 +12574,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "爐�爐��爐�爐�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12948,7 +12933,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "爐�爐��爐� 爐�爐� 爐��爐�爐�ぞ 爐伍�爐�ぞ爐�う爛�爐� 爐�爐逗く爐� 爐�爐�ぞ爛�" #: ../libpurple/protocols/toc/toc.c:533 @@ -16073,7 +16058,7 @@ msgstr "爐項ぞ爐�爐�ぐ爐迦た爐�爐� 爐�爛�爐�爐�爐�ぞ 爐�爐� 爐萎�爐�爛�" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "爐�爐��爐� 爐�い爛� 爐�爛� 爐��爐萎い爐逗げ爐逗お爐� 爐�え爐鉦く爛�爐�(_C)" #: ../pidgin/gtkimhtml.c:1610 @@ -16489,8 +16474,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17865,7 +17850,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "爐伍�爐��爐� 爐〝�爐�爐�� 爐��爐� 爐�爐伍ぎ爐萎�爐� 爛�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17873,7 +17858,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17882,7 +17867,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "爐�爐��爐�" #. Configuration frame @@ -17941,7 +17926,7 @@ msgstr "爐�爐�爐むた爐� 爐�ぞ爐�" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "爐�-爐��爐�:" # *< api_version @@ -19620,7 +19605,7 @@ #~ msgid "Check Mail" #~ msgstr "爐÷ぞ爐� 爐��爐�爛�爐�" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "爐項ぐ X 爐伍�爐�爐��爐� 爐�� 爐÷ぞ爐� 爐��爐�爛�爐�.\n" #~ msgid "Auto-login"
--- a/po/hu.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/hu.po Thu Jun 26 09:07:56 2008 +0000 @@ -825,7 +825,7 @@ msgstr "Rendszernapl坦" msgid "Emails" -msgstr "E-mailek" +msgstr "Emailek" msgid "You have mail!" msgstr "Levele 辿rkezett!" @@ -843,7 +843,7 @@ msgstr[1] "%s (%s) %d 炭j 端zenetet kapott." msgid "New Mail" -msgstr "�j e-mail" +msgstr "�j email" #, c-format msgid "Info for %s" @@ -2773,8 +2773,8 @@ msgid "Last name" msgstr "Vezet辿kn辿v" -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" msgid "AIM Account" msgstr "AIM fi坦k" @@ -2798,9 +2798,6 @@ msgid "Purple Person" msgstr "Purple szem辿ly" -msgid "E-mail" -msgstr "E-mail" - msgid "Bonjour" msgstr "Bonjour" @@ -3891,8 +3888,8 @@ msgstr "" "T旦lts旦n ki legal叩bb egy mez�t a megfelel� XMPP felhaszn叩l坦k keres辿s辿hez." -msgid "E-Mail Address" -msgstr "E-mail c鱈m" +msgid "Email Address" +msgstr "Email c鱈m" msgid "Search for XMPP users" msgstr "XMPP felhaszn叩l坦k keres辿se" @@ -4625,8 +4622,8 @@ msgstr "Szintaktikai hiba (val坦sz鱈n撤leg klienshiba)" #, c-format -msgid "Invalid e-mail address" -msgstr "�rv辿nytelen e-mail c鱈m" +msgid "Invalid email address" +msgstr "�rv辿nytelen email c鱈m" #, c-format msgid "User does not exist" @@ -5033,8 +5030,8 @@ msgid "Home Fax" msgstr "Otthoni fax" -msgid "Personal E-Mail" -msgstr "Saj叩t e-mail" +msgid "Personal Email" +msgstr "Saj叩t email" msgid "Personal IM" msgstr "Saj叩t azonnali 端zen�" @@ -5076,8 +5073,8 @@ msgid "Work Fax" msgstr "Munkahelyi fax" -msgid "Work E-Mail" -msgstr "Munkahelyi e-mail" +msgid "Work Email" +msgstr "Munkahelyi email" msgid "Work IM" msgstr "Munkahelyi azonnali 端zen�" @@ -6295,7 +6292,7 @@ "only letters, numbers and spaces, or contain only numbers." msgstr "" "Nem lehet bel辿pni: Sikertelen a bel辿p辿s %s n辿ven, mert a felhaszn叩l坦n辿v " -"辿rv辿nytelen. A felhaszn叩l坦neveknek 辿rv辿nyes e-mail c鱈mnek kell lennie, vagy " +"辿rv辿nytelen. A felhaszn叩l坦neveknek 辿rv辿nyes email c鱈mnek kell lennie, vagy " "bet撤vel kell kezd�dni端k 辿s bet撤ket, sz叩mokat, sz坦k旦z旦ket, vagy csak sz叩mokat " "tartalmazhatnak." @@ -6437,12 +6434,12 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"ICQ e-mail 辿rkezett a k旦vetkez�t�l: %s [%s]\n" +"ICQ email 辿rkezett a k旦vetkez�t�l: %s [%s]\n" "\n" "Az 端zenet:\n" "%s" @@ -6598,11 +6595,11 @@ msgstr[1] "A k旦vetkez� felhaszn叩l坦nevek a k旦vetkez�h旦z vannak rendelve: %s" #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nem tal叩lhat坦 eredm辿ny a(z) %s e-mail c鱈mre" - -#, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "No results found for email address %s" +msgstr "Nem tal叩lhat坦 eredm辿ny a(z) %s email c鱈mre" + +#, c-format +msgid "You should receive an email asking to confirm %s." msgstr "Kapnia kell egy %s j坦v叩hagy叩s叩t k辿r� levelet." msgid "Account Confirmation Requested" @@ -6632,26 +6629,26 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Hiba 0x%04x: Nem siker端lt megv叩ltoztatni az e-mail c鱈met, mert egy k辿r辿s m叩r " +"Hiba 0x%04x: Nem siker端lt megv叩ltoztatni az email c鱈met, mert egy k辿r辿s m叩r " "f端gg�ben van erre a felhaszn叩l坦n辿vre." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Hiba 0x%04x: Nem siker端lt megv叩ltoztatni az e-mail c鱈met, mert a megadott " +"Hiba 0x%04x: Nem siker端lt megv叩ltoztatni az email c鱈met, mert a megadott " "c鱈m t炭l sok felhaszn叩l坦n辿vhez van t叩rs鱈tva." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Hiba 0x%04x: Nem siker端lt megv叩ltoztatni az e-mail c鱈met, mert a megadott " +"Hiba 0x%04x: Nem siker端lt megv叩ltoztatni az email c鱈met, mert a megadott " "c鱈m 辿rv辿nytelen." #, c-format @@ -6662,8 +6659,8 @@ msgstr "Hiba a fi坦kinform叩ci坦k m坦dos鱈t叩sakor" #, c-format -msgid "The e-mail address for %s is %s" -msgstr "%s e-mail c鱈me a k旦vetkez�: %s" +msgid "The email address for %s is %s" +msgstr "%s email c鱈me a k旦vetkez�: %s" msgid "Account Info" msgstr "Fi坦kinform叩ci坦k" @@ -6725,7 +6722,7 @@ "numbers and spaces, or contain only numbers." msgstr "" "Nem siker端lt %s partner hozz叩ad叩sa, mert a felhaszn叩l坦n辿v 辿rv辿nytelen. A " -"felhaszn叩l坦neveknek 辿rv辿nyes e-mail c鱈mnek kell lenni端k, vagy bet撤vel kell " +"felhaszn叩l坦neveknek 辿rv辿nyes email c鱈mnek kell lenni端k, vagy bet撤vel kell " "kezd�dni端k, 辿s bet撤ket, sz叩mokat 辿s sz坦k旦z旦ket, vagy csak sz叩mokb坦l " "叩llhatnak." @@ -6879,14 +6876,14 @@ "�jra k辿rheti enged辿lyez辿st ezekt�l a partnerekt�l a jobb eg辿rgombbal " "kattintva a nev端k旦n, 辿s az ��Enged辿lyez辿s 炭jra k辿r辿se�� v叩laszt叩s叩val" -msgid "Find Buddy by E-Mail" -msgstr "Partnerek keres辿se e-mail c鱈m szerint" - -msgid "Search for a buddy by e-mail address" -msgstr "Partner keres辿se e-mail c鱈m alapj叩n" - -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Adja meg annak a partnernek az e-mail c鱈m辿t, akit keres." +msgid "Find Buddy by Email" +msgstr "Partnerek keres辿se email c鱈m szerint" + +msgid "Search for a buddy by email address" +msgstr "Partner keres辿se email c鱈m alapj叩n" + +msgid "Type the email address of the buddy you are searching for." +msgstr "Adja meg annak a partnernek az email c鱈m辿t, akit keres." msgid "_Search" msgstr "_Keres辿s" @@ -6908,17 +6905,17 @@ msgid "Confirm Account" msgstr "Fi坦k j坦v叩hagy叩sa" -msgid "Display Currently Registered E-Mail Address" -msgstr "A jelenleg regisztr叩lt e-mail c鱈m megjelen鱈t辿se" - -msgid "Change Currently Registered E-Mail Address..." -msgstr "A jelenleg regisztr叩lt e-mail c鱈m m坦dos鱈t叩sa..." +msgid "Display Currently Registered Email Address" +msgstr "A jelenleg regisztr叩lt email c鱈m megjelen鱈t辿se" + +msgid "Change Currently Registered Email Address..." +msgstr "A jelenleg regisztr叩lt email c鱈m m坦dos鱈t叩sa..." msgid "Show Buddies Awaiting Authorization" msgstr "Enged辿lyez辿sre v叩r坦 partnerek megjelen鱈t辿se" -msgid "Search for Buddy by E-Mail Address..." -msgstr "Partner keres辿se e-mail c鱈m szerint..." +msgid "Search for Buddy by Email Address..." +msgstr "Partner keres辿se email c鱈m szerint..." msgid "Search for Buddy by Information" msgstr "Partner keres辿se inform叩ci坦 alapj叩n" @@ -6985,9 +6982,6 @@ msgid "College" msgstr "F�iskola" -msgid "Email" -msgstr "E-mail" - msgid "Zipcode" msgstr "Ir叩ny鱈t坦sz叩m" @@ -8765,8 +8759,8 @@ msgstr "Felhaszn叩l坦n辿v: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #, c-format msgid "Host Name: \t%s\n" @@ -9025,8 +9019,8 @@ msgstr "K旦nyvt叩rszolg叩ltat叩s 叩tmenetileg nem 辿rhet� el." #, c-format -msgid "E-mail lookup restricted." -msgstr "E-mail keres辿s korl叩tozva." +msgid "Email lookup restricted." +msgstr "Email keres辿s korl叩tozva." #, c-format msgid "Keyword ignored." @@ -11384,8 +11378,8 @@ msgid "Enable typing notification" msgstr "G辿pel辿s辿rtes鱈t辿s enged辿lyez辿se" -msgid "_Copy E-Mail Address" -msgstr "E-mail c鱈m _m叩sol叩sa" +msgid "_Copy Email Address" +msgstr "Email c鱈m _m叩sol叩sa" msgid "_Open Link in Browser" msgstr "Hivatk_oz叩s megnyit叩sa b旦ng辿sz�ben" @@ -11736,10 +11730,10 @@ msgstr[1] "%s %d 炭j 端zenetet kapott." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d 炭j e-mail.</b>" -msgstr[1] "<b>%d 炭j e-mail.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d 炭j email.</b>" +msgstr[1] "<b>%d 炭j email.</b>" #, c-format msgid "The browser command \"%s\" is invalid." @@ -12774,22 +12768,22 @@ msgid "_Associate Buddy" msgstr "_Partner 旦sszerendel辿se" -msgid "Unable to send e-mail" -msgstr "Nem k端ldhet� e-mail" +msgid "Unable to send email" +msgstr "Nem k端ldhet� email" msgid "The evolution executable was not found in the PATH." msgstr "" "Az evolution v辿grehajthat坦 叩llom叩ny nem tal叩lhat坦 a PATH v叩ltoz坦ban megadott " "炭tvonalon." -msgid "An e-mail address was not found for this buddy." -msgstr "Nem tal叩lhat坦 e-mail c鱈m ehhez a partnerhez." +msgid "An email address was not found for this buddy." +msgstr "Nem tal叩lhat坦 email c鱈m ehhez a partnerhez." msgid "Add to Address Book" msgstr "Hozz叩ad叩s a c鱈mjegyz辿khez" -msgid "Send E-Mail" -msgstr "E-mail k端ld辿se" +msgid "Send Email" +msgstr "Email k端ld辿se" #. Configuration frame msgid "Evolution Integration Configuration" @@ -12836,8 +12830,8 @@ msgid "Last name:" msgstr "Vezet辿kn辿v:" -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/id.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/id.po Thu Jun 26 09:07:56 2008 +0000 @@ -3776,7 +3776,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3808,16 +3808,6 @@ msgid "Purple Person" msgstr "Orang Ungu" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5429,7 +5419,7 @@ #: ../libpurple/protocols/novell/novell.c:1490 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Alamat Email" #: ../libpurple/protocols/jabber/buddy.c:2413 @@ -6470,7 +6460,7 @@ msgstr "Kesalahan Syntax (kemungkinan bug klien)" #: ../libpurple/protocols/msn/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Alamat email tidak valid" #: ../libpurple/protocols/msn/error.c:49 @@ -6975,8 +6965,8 @@ msgstr "Faksimili Rumah" #: ../libpurple/protocols/msn/msn.c:1766 -msgid "Personal E-Mail" -msgstr "E-mail Pribadi" +msgid "Personal Email" +msgstr "Email Pribadi" #: ../libpurple/protocols/msn/msn.c:1767 msgid "Personal IM" @@ -7037,7 +7027,7 @@ msgstr "Faksimili Kantor" #: ../libpurple/protocols/msn/msn.c:1797 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Email Kantor" #: ../libpurple/protocols/msn/msn.c:1798 @@ -8627,12 +8617,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Anda menerima e-mail ICQ dari %s [%s]\n" +"Anda menerima email ICQ dari %s [%s]\n" "\n" "Pesannya adalah:\n" "%s" @@ -8805,13 +8795,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Tidak ditemukan hasil untuk alamat e-mail %s" +msgid "No results found for email address %s" +msgstr "Tidak ditemukan hasil untuk alamat email %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Anda akan menerima e-mail menanyakan konfirmasi %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Anda akan menerima email menanyakan konfirmasi %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -8838,17 +8828,17 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name." +msgid "Error 0x%04x: Unable to change email address because there is already a request pending for this screen name." msgstr "Kesalahan 0x%04x: Tidak dapat merubah alamat email karena sudah terdapat permohonan tertunda untuk nama layar ini." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it." +msgid "Error 0x%04x: Unable to change email address because the given address has too many screen names associated with it." msgstr "Kesalahan 0x%04x: Tidak dapat merubah alamat email karena alamat yang diberikan memiliki terlalu banyak nama layar yang berasosiasi dengannya." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address is invalid." +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." msgstr "Kesalahan 0x%04x: Tidak dapat merubah alamat email karena alamat yang diberikan tidak valid." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -8858,7 +8848,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Alamat email untuk %s adalah %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9080,15 +9070,15 @@ msgstr "Anda dapat mengajukan ulang otorisasi dari teman-teman ini dengan klik kanan pada mereka dan memilih \"Re-request Authorisation.\"" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Cari Teman berdasarkan Email" #: ../libpurple/protocols/oscar/oscar.c:6234 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Cari teman berdasarkan alamat email" #: ../libpurple/protocols/oscar/oscar.c:6235 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Ketika alamat email dari teman yang sedang anda cari." #: ../libpurple/protocols/oscar/oscar.c:6238 @@ -9118,11 +9108,11 @@ msgstr "Konfirmasi Akun" #: ../libpurple/protocols/oscar/oscar.c:6432 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Tampilkan Alamat Email yang Terdaftar Sekarang" #: ../libpurple/protocols/oscar/oscar.c:6436 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Ganti Alamat Email yang Terdaftar Sekarang" #: ../libpurple/protocols/oscar/oscar.c:6443 @@ -9130,7 +9120,7 @@ msgstr "Tampilkan Teman yang Menunggu Otorisasi" #: ../libpurple/protocols/oscar/oscar.c:6449 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Cari Teman berdasarkan Alamat Email..." #: ../libpurple/protocols/oscar/oscar.c:6454 @@ -9212,10 +9202,6 @@ msgid "College" msgstr "ST/Universitas" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Kode Pos" @@ -11856,7 +11842,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12181,7 +12167,7 @@ msgstr "Layanan dir sementara tidak tersedia." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Pencarian Email dibatasi." #: ../libpurple/protocols/toc/toc.c:533 @@ -15045,8 +15031,8 @@ msgstr "Warna untuk menggambar hyperlink saat mouse berada di atasnya." #: ../pidgin/gtkimhtml.c:1583 -msgid "_Copy E-Mail Address" -msgstr "_Salin Alamat E-Mail" +msgid "_Copy Email Address" +msgstr "_Salin Alamat Email" #: ../pidgin/gtkimhtml.c:1595 msgid "_Open Link in Browser" @@ -15452,10 +15438,10 @@ #: ../pidgin/gtknotify.c:569 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d e-mail baru.</b>" -msgstr[1] "<b>%d beberapa e-mails baru.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d email baru.</b>" +msgstr[1] "<b>%d beberapa emails baru.</b>" #: ../pidgin/gtknotify.c:997 #, c-format @@ -16661,24 +16647,24 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" -msgstr "Tidak dapat mengirim e-mail" +msgid "Unable to send email" +msgstr "Tidak dapat mengirim email" #: ../pidgin/plugins/gevolution/gevolution.c:241 msgid "The evolution executable was not found in the PATH." msgstr "Eksekusi Evolution tidak ditemukan dalam PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." -msgstr "Alamat e-mail tidak ditemukan untuk teman ini." +msgid "An email address was not found for this buddy." +msgstr "Alamat email tidak ditemukan untuk teman ini." #: ../pidgin/plugins/gevolution/gevolution.c:273 msgid "Add to Address Book" msgstr "Tambahkan ke Buku Alamat" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" -msgstr "Kirim E-Mail" +msgid "Send Email" +msgstr "Kirim Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -16735,8 +16721,8 @@ msgstr "Nama belakang" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/it.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/it.po Thu Jun 26 09:07:56 2008 +0000 @@ -3869,7 +3869,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:378 @@ -3901,16 +3901,6 @@ msgid "Purple Person" msgstr "Persona Purple" -#: ../libpurple/protocols/bonjour/bonjour.c:680 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:959 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "Email" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5284,7 +5274,7 @@ #: ../libpurple/protocols/jabber/buddy.c:1025 #, fuzzy msgid "Reachability Address" -msgstr "Indirizzo e-mail" +msgstr "Indirizzo email" #: ../libpurple/protocols/jabber/buddy.c:867 #: ../libpurple/protocols/jabber/buddy.c:1027 @@ -5564,8 +5554,8 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3724 #: ../libpurple/protocols/oscar/oscar.c:3733 -msgid "E-Mail Address" -msgstr "Indirizzo e-mail" +msgid "Email Address" +msgstr "Indirizzo email" #: ../libpurple/protocols/jabber/buddy.c:2423 #: ../libpurple/protocols/jabber/buddy.c:2424 @@ -6595,8 +6585,8 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Indirizzo e-mail non valido" +msgid "Invalid email address" +msgstr "Indirizzo email non valido" #: ../libpurple/protocols/msn/error.c:49 #: ../libpurple/protocols/msnp9/error.c:49 @@ -7272,7 +7262,7 @@ #: ../libpurple/protocols/msn/msn.c:1804 #: ../libpurple/protocols/msnp9/msn.c:1657 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Email personale" #: ../libpurple/protocols/msn/msn.c:1805 @@ -7348,7 +7338,7 @@ #: ../libpurple/protocols/msn/msn.c:1835 #: ../libpurple/protocols/msnp9/msn.c:1688 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Email ufficio" #: ../libpurple/protocols/msn/msn.c:1836 @@ -9073,12 +9063,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2449 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Hai ricevuto un'e-mail ICQ da %s [%s]\n" +"Hai ricevuto un'email ICQ da %s [%s]\n" "\n" "Il messaggio 竪:\n" "%s" @@ -9251,13 +9241,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3958 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nessun risultato trovato per l'indirizzo e-mail %s" +msgid "No results found for email address %s" +msgstr "Nessun risultato trovato per l'indirizzo email %s" #: ../libpurple/protocols/oscar/oscar.c:3979 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Dovresti ricevere un'e-mail con la richiesta di conferma per %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Dovresti ricevere un'email con la richiesta di conferma per %s." #: ../libpurple/protocols/oscar/oscar.c:3981 msgid "Account Confirmation Requested" @@ -9285,18 +9275,18 @@ #: ../libpurple/protocols/oscar/oscar.c:4024 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name." -msgstr "Errore 0x%04x: Impossibile cambiare l'indirizzo e-mail poich辿 c'竪 gi� una richiesta in corso per questo nome utente." +msgid "Error 0x%04x: Unable to change email address because there is already a request pending for this screen name." +msgstr "Errore 0x%04x: Impossibile cambiare l'indirizzo email poich辿 c'竪 gi� una richiesta in corso per questo nome utente." #: ../libpurple/protocols/oscar/oscar.c:4027 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it." -msgstr "Errore 0x%04x: Impossibile cambiare l'indirizzo e-mail poich辿 l'indirizzo fornito ha troppi nomi utente associati." +msgid "Error 0x%04x: Unable to change email address because the given address has too many screen names associated with it." +msgstr "Errore 0x%04x: Impossibile cambiare l'indirizzo email poich辿 l'indirizzo fornito ha troppi nomi utente associati." #: ../libpurple/protocols/oscar/oscar.c:4030 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address is invalid." -msgstr "Errore 0x%04x: Impossibile cambiare l'indirizzo e-mail poich辿 l'indirizzo fornito non 竪 valido." +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." +msgstr "Errore 0x%04x: Impossibile cambiare l'indirizzo email poich辿 l'indirizzo fornito non 竪 valido." #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format @@ -9305,8 +9295,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4043 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "L'indirizzo e-mail di %s 竪 %s" +msgid "The email address for %s is %s" +msgstr "L'indirizzo email di %s 竪 %s" #: ../libpurple/protocols/oscar/oscar.c:4045 msgid "Account Info" @@ -9527,16 +9517,16 @@ msgstr "Puoi richiedere nuovamente autorizzazione da questi contatti cliccando col tasto destro su di essi e scegliendo \"Richiedi nuovamente autorizzazione\"" #: ../libpurple/protocols/oscar/oscar.c:6281 -msgid "Find Buddy by E-Mail" -msgstr "Cerca un contatto per e-mail" +msgid "Find Buddy by Email" +msgstr "Cerca un contatto per email" #: ../libpurple/protocols/oscar/oscar.c:6282 -msgid "Search for a buddy by e-mail address" -msgstr "Cerca un contatto attraverso il suo indirizzo e-mail" +msgid "Search for a buddy by email address" +msgstr "Cerca un contatto attraverso il suo indirizzo email" #: ../libpurple/protocols/oscar/oscar.c:6283 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Inserisci l'indirizzo e-mail del contatto che stai cercando." +msgid "Type the email address of the buddy you are searching for." +msgstr "Inserisci l'indirizzo email del contatto che stai cercando." #: ../libpurple/protocols/oscar/oscar.c:6286 msgid "_Search" @@ -9565,11 +9555,11 @@ msgstr "Conferma account" #: ../libpurple/protocols/oscar/oscar.c:6480 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Mostra gli attuali indirizzi email registrati" #: ../libpurple/protocols/oscar/oscar.c:6484 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Mostra gli attuali indirizzi email registrati..." #: ../libpurple/protocols/oscar/oscar.c:6491 @@ -9577,7 +9567,7 @@ msgstr "Mostra i contatti dai quali attendi autorizzazione" #: ../libpurple/protocols/oscar/oscar.c:6497 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Cerca un contatto per email..." #: ../libpurple/protocols/oscar/oscar.c:6502 @@ -9660,10 +9650,6 @@ msgid "College" msgstr "Scuola superiore" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Codice postale" @@ -12316,7 +12302,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 @@ -12660,8 +12646,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "Ricerca e-mail limitata." +msgid "Email lookup restricted." +msgstr "Ricerca email limitata." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -15572,8 +15558,8 @@ msgstr "Colore per i collegamenti al passaggio del mouse." #: ../pidgin/gtkimhtml.c:1581 -msgid "_Copy E-Mail Address" -msgstr "_Copia l'indirizzo e-mail" +msgid "_Copy Email Address" +msgstr "_Copia l'indirizzo email" #: ../pidgin/gtkimhtml.c:1593 msgid "_Open Link in Browser" @@ -15982,8 +15968,8 @@ #: ../pidgin/gtknotify.c:570 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d nuovo messaggio di posta.</b>" msgstr[1] "<b>%d nuovi messaggi di posta.</b>" @@ -17253,7 +17239,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Impossibile inviare l'email" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17261,7 +17247,7 @@ msgstr "L'eseguibile di evolution non 竪 stato trovato nel PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Non 竪 stato trovato nessun indirizzo email per questo contatto." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17269,7 +17255,7 @@ msgstr "Aggiungi alla rubrica" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Invia email" #. Configuration frame @@ -17327,7 +17313,7 @@ msgstr "Cognome:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "Email:" #. *< type
--- a/po/ja.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ja.po Thu Jun 26 09:07:56 2008 +0000 @@ -3557,7 +3557,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "E-�<�若��" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3589,16 +3589,6 @@ msgid "Purple Person" msgstr "Purple ��査��" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-�<�若��:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5296,7 +5286,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-�<�若���祉�≪������" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6375,7 +6365,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "E-�<�若���祉�≪�����鴻�������c�����障��" #: ../libpurple/protocols/msn/error.c:49 @@ -6919,7 +6909,7 @@ msgstr "����� FAX" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "��篋冴�� E-�<�若��" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6981,7 +6971,7 @@ msgstr "�ゅ������ FAX" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "�ゅ������ E-�<�若��" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8648,7 +8638,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8855,12 +8845,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "E-�<�若���祉�≪������ %s �������腟�����緇������障�����с����" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s ������腆肴����������������������若������篆<���������" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8896,7 +8886,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "������ 0x%04x: �����鴻�����若�喝����������≪���羆��������������� E-�<�若���祉�≪��" @@ -8905,7 +8895,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "������ 0x%04x: ����������鴻�����若�喝�����蚊��綵����������������с������ E-�<��" @@ -8914,7 +8904,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "������ 0x%04x: �����≪�����鴻�������c���������с������ E-�<�若���祉�≪�����鴻�����" @@ -8927,7 +8917,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s ������ E-�<�若���祉�≪�����鴻�� %s �с��" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9195,15 +9185,15 @@ "��筝�綺��羆��с���障����" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "E-�<�若������篁臥��������" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "E-�<�若���祉�≪�����鴻����篁臥����罎�膣≪���障��" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "罎�膣≪����篁臥���� E-�<�若���祉�≪�����鴻���ュ�����������" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9233,11 +9223,11 @@ msgstr "�≪�����潟����∈茯�" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "�上���脂�蚊���������� E-�<�若���祉�≪�����鴻��;腓�" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�上���脂�蚊���������� E-�<�若���祉�≪�����鴻�����..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9245,7 +9235,7 @@ msgstr "�粋���緇��c������篁臥����茵�ず" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "E-�<�若���т参�����膣�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9334,10 +9324,6 @@ msgid "College" msgstr "絖�⑳" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-�<�若��" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "�灸梢���" @@ -12090,7 +12076,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-���若��: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12436,7 +12422,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-�<�若���膣≪�����������障����" #: ../libpurple/protocols/toc/toc.c:533 @@ -15342,7 +15328,7 @@ msgstr "������若���潟������������鴻�������������蚊�с��" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "E-�<�若���祉�≪�����鴻���潟����(_C)" #: ../pidgin/gtkimhtml.c:1610 @@ -15785,8 +15771,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>%d�����違�����<�若���������障��</b>" msgstr[1] "<b>%d�����違�����<�若���������障��</b>" @@ -17033,7 +17019,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "E-�<�若������篆<�с���障����" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17041,7 +17027,7 @@ msgstr "�医�紊��� PATH ��賢���� Evolution ���茵�綵√���荀��ゃ�����障�����с������" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "����参���� E-�<�若���祉�≪�����鴻�������障����" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17049,7 +17035,7 @@ msgstr "�≪�����劫験�梧申������" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "E-�<�若������篆<����" #. Configuration frame @@ -17107,7 +17093,7 @@ msgstr "紮�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "E-�<�若��" #. *< type
--- a/po/ka.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ka.po Thu Jun 26 09:07:56 2008 +0000 @@ -3550,8 +3550,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3585,17 +3585,6 @@ msgid "Purple Person" msgstr "���������� �������=������" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "����-�め���=�≡��" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5255,8 +5244,8 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "E-Mail �����=������������" +msgid "Email Address" +msgstr "Email �����=������������" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6329,8 +6318,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "�������=�������� e-mail �����=������������" +msgid "Invalid email address" +msgstr "�������=�������� email �����=������������" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -6879,8 +6868,8 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" -msgstr "������������������ E-Mail-��" +msgid "Personal Email" +msgstr "������������������ Email-��" #: ../libpurple/protocols/msn/msn.c:1657 #, fuzzy @@ -6947,8 +6936,8 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" -msgstr "E-Mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -8558,7 +8547,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8731,12 +8720,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "����.�め���=�≡���� ������������ ���������������� %s-�������� �������� ��������������" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8771,21 +8760,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8796,7 +8785,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "����.�め���=�≡���� �����=������������ %s-�������� �������� %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9046,15 +9035,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9085,11 +9074,11 @@ msgstr "������������������ ���������=�≡�a��������" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9097,7 +9086,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9184,10 +9173,6 @@ msgid "College" msgstr "" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "����.�め���=�≡��" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -11901,8 +11886,8 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-Mail" +msgid "Email: \t\t%s\n" +msgstr "Email" #: ../libpurple/protocols/silc/util.c:364 #: ../libpurple/protocols/silc10/util.c:361 @@ -12241,7 +12226,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15106,8 +15091,8 @@ msgstr "���������������� �め������ �����a�=���� �������������=����." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_E-Mail �����=�������������� ����������������" +msgid "_Copy Email Address" +msgstr "_Email �����=�������������� ����������������" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -15496,8 +15481,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>���������������� �����≡����������</b>" #: ../pidgin/gtknotify.c:989 @@ -16744,7 +16729,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "������ ���������������� ����-�め���=�≡����" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16752,7 +16737,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16760,8 +16745,8 @@ msgstr "�����=������������������ ������������ ���������≡������" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" -msgstr "������������������ E-Mail-��" +msgid "Send Email" +msgstr "������������������ Email-��" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -16818,7 +16803,7 @@ msgstr "����������" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "����-�め���=�≡��" #. *< type
--- a/po/kn.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/kn.po Thu Jun 26 09:07:56 2008 +0000 @@ -3534,7 +3534,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "牴朽何-牴�牴�牴�牾� 牴朽何牴橿仮牴�" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3568,16 +3568,6 @@ msgid "Purple Person" msgstr "牴項�牴� 牴朽�牴��牾�牴む何" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "牴朽何-牴�牴�牴�牾�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5223,7 +5213,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "牴朽何-牴�牴�牴�牾� 牴朽何牴橿仮牴�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6281,7 +6271,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "牴む鴎牾�牴�� 牴朽何-牴�牴�牴�牾� 牴朽何牴橿仮牴�" #: ../libpurple/protocols/msn/error.c:49 @@ -6823,7 +6813,7 @@ msgstr "牴�襖牾� 牴��牴�仮牴�牾�牴�" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "牴�牴鉦恩牴�牴� 牴朽何-牴�牴�牴�牾�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6886,7 +6876,7 @@ msgstr "牴�牴�牾�牴萎何 牴��牴�仮牴�牾�牴�" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "牴�牴�牾�牴萎何 牴朽何-牴�牴�牴�牾� 牴朽何牴橿仮牴�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8498,7 +8488,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8677,12 +8667,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8716,21 +8706,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8741,7 +8731,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr " %s 牴�牴朽屋 牴朽何-牴�牴�牴�牾�牴朽何牴橿仮牴� - %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -8991,15 +8981,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9030,11 +9020,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9042,7 +9032,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9128,10 +9118,6 @@ msgid "College" msgstr "牴�牴鉦臆牾�牴�牾�:" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "牴朽何-牴�牴�牴�牾�" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "牴�牴逗鴎牾���/牴�何牴�� 牴�牾�牴÷�" @@ -11821,7 +11807,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "牴朽何-牴�牴�牴�牾�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12158,7 +12144,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -15017,7 +15003,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_牴�-牴��牴��牴迦� 牴朽何牴橿仮牴伍乙牴��牴�� 牴��牴迦� 牴�仮牴÷何" #: ../pidgin/gtkimhtml.c:1610 @@ -15411,8 +15397,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>牴��牴迦�牾�牴�牴逗襖牾� 牴朽何牴朽屋牴�牴橿�</b>" msgstr[1] "<b>牴��牴迦�牾�牴�牴逗襖牾� 牴朽何牴朽屋牴�牴橿�</b>" @@ -16637,7 +16623,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "牴朽何_牴�牴�牴�牾�牴�襖牾�牴�� 牴�牴橿何牴伍臆牴鉦�牴迦何牴迦�牴�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16645,7 +16631,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16653,7 +16639,7 @@ msgstr "牴朽何牴橿仮牴伍鴎牾�牴伍�牴む�牴�牾�牴�牾� 牴伍�牴萎何牴伍何" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "牴朽何-牴�牴�牴�牾� 牴�牴橿�牴項何牴伍何" #. Configuration frame @@ -16711,7 +16697,7 @@ msgstr "牴�牾�牴��牴� (牴�牴÷�牴�)牴項�牴伍屋牾�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "牴朽何-牴�牴�牴�牾�:" #. *< type
--- a/po/ko.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ko.po Thu Jun 26 09:07:56 2008 +0000 @@ -3207,7 +3207,7 @@ msgstr "���危�朱��� ���� 貉れ��螳� ������ ���� ����������." #: ../gtk/gtkimhtml.c:1516 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "�企��� 譯殊�� 覲旧��(_C)" #: ../gtk/gtkimhtml.c:1528 @@ -3602,8 +3602,8 @@ #: ../gtk/gtknotify.c:511 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>%d 螳��� ��襦��� 覃���讌�螳� ���給����.</b>" #msgstr[1] "<b>%d 螳��� ��襦��� 覃���讌�螳� ���給����.</b>" @@ -5183,7 +5183,7 @@ #: ../gtk/plugins/gevolution/gevolution.c:239 #: ../gtk/plugins/gevolution/gevolution.c:245 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�企��殊�� 覲企�� �� ����" #: ../gtk/plugins/gevolution/gevolution.c:240 @@ -5191,7 +5191,7 @@ msgstr "��蟆暑��� PATH 襦�覿��� Evolution�� �ろ�� ������ 谿場�� �� ���給����." #: ../gtk/plugins/gevolution/gevolution.c:246 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�� 豺�蟲��� �企��� 譯殊��螳� ���給����." #: ../gtk/plugins/gevolution/gevolution.c:272 @@ -5199,7 +5199,7 @@ msgstr "譯殊��襦��� 豢�螳�" #: ../gtk/plugins/gevolution/gevolution.c:284 -msgid "Send E-Mail" +msgid "Send Email" msgstr "�企��� ����" #. Configuration frame @@ -5257,7 +5257,7 @@ msgstr "��:" #: ../gtk/plugins/gevolution/new_person_dialog.c:382 -msgid "E-mail:" +msgid "Email:" msgstr "�企���:" #. *< type @@ -7249,7 +7249,7 @@ #: ../libgaim/protocols/jabber/jabber.c:797 #: ../libgaim/protocols/silc/silc.c:695 #: ../libgaim/protocols/silc/silc.c:935 -msgid "E-mail" +msgid "Email" msgstr "�企���" #: ../libgaim/protocols/bonjour/bonjour.c:591 @@ -8309,16 +8309,6 @@ msgid "Telephone" msgstr "����" -#: ../libgaim/protocols/jabber/buddy.c:283 -#: ../libgaim/protocols/jabber/buddy.c:898 -#: ../libgaim/protocols/jabber/buddy.c:906 -#: ../libgaim/protocols/jabber/buddy.c:1564 -#: ../libgaim/protocols/silc/ops.c:1075 -#: ../libgaim/protocols/silc/util.c:553 -#: ../libgaim/protocols/yahoo/yahoo_profile.c:1037 -msgid "E-Mail" -msgstr "�企���" - #: ../libgaim/protocols/jabber/buddy.c:284 #: ../libgaim/protocols/jabber/buddy.c:921 msgid "Organization Name" @@ -8493,7 +8483,7 @@ #: ../libgaim/protocols/novell/novell.c:1488 #: ../libgaim/protocols/oscar/oscar.c:3708 #: ../libgaim/protocols/oscar/oscar.c:3717 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�企��� 譯殊��" #: ../libgaim/protocols/jabber/buddy.c:1758 @@ -9181,7 +9171,7 @@ msgstr "覓碁� �る� (��襷� �企�殊�伎�誤�語�� 覯�蠏語�� �� ���給����.)" #: ../libgaim/protocols/msn/error.c:42 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�企��� 譯殊��螳� ��覈視�����給����." #: ../libgaim/protocols/msn/error.c:45 @@ -9659,7 +9649,7 @@ msgstr "���� ����" #: ../libgaim/protocols/msn/msn.c:1607 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "螳��� �企���" #: ../libgaim/protocols/msn/msn.c:1608 @@ -9720,7 +9710,7 @@ msgstr "���� ����" #: ../libgaim/protocols/msn/msn.c:1638 -msgid "Work E-Mail" +msgid "Work Email" msgstr "���� �企���" #: ../libgaim/protocols/msn/msn.c:1639 @@ -10903,7 +10893,7 @@ #: ../libgaim/protocols/oscar/oscar.c:2436 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -11101,12 +11091,12 @@ #: ../libgaim/protocols/oscar/oscar.c:3923 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�企��� 譯殊�� %s �� ���� 蟆郁骸襯� 谿場�� �� ���給����." #: ../libgaim/protocols/oscar/oscar.c:3944 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s ���� ���誤��蠍� ���� 讌��� 覃��殊�� ������ 譯殊�㈹����." #: ../libgaim/protocols/oscar/oscar.c:3946 @@ -11134,17 +11124,17 @@ #: ../libgaim/protocols/oscar/oscar.c:3989 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name." +msgid "Error 0x%04x: Unable to change email address because there is already a request pending for this screen name." msgstr "�る� 0x%04x: �� ���企���� ���� �企� ��蟲�� ����蠍� ��覓語�� �企��� 譯殊��襯� 覲�蟆渚�� �� ���給����." #: ../libgaim/protocols/oscar/oscar.c:3992 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it." +msgid "Error 0x%04x: Unable to change email address because the given address has too many screen names associated with it." msgstr "�る� 0x%04x: 襷��� ���企���� ���豪���� ��蠍� ��覓語��, �� �企��� 譯殊��襦��� 覲�蟆渚�� �� ���給����." #: ../libgaim/protocols/oscar/oscar.c:3995 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address is invalid." +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." msgstr "�る� 0x%04x: �� 譯殊��螳� ���危��蠍� ��覓語��, �� �企��� 譯殊��襦��� 覲�蟆渚�� �� ���給����." #: ../libgaim/protocols/oscar/oscar.c:3998 @@ -11168,7 +11158,7 @@ #: ../libgaim/protocols/oscar/oscar.c:4014 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s ���� �企��� 譯殊���� %s ������." #: ../libgaim/protocols/oscar/oscar.c:4189 @@ -11386,15 +11376,15 @@ msgstr "�るジ讓� �企Ν���� \"�轟�� ����豌�\" �� ������覃�, �企�れ�� 豺�蟲��覿��� �語��� ����豌㍾�� �� ���給����." #: ../libgaim/protocols/oscar/oscar.c:6187 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "�企��朱�覿��� 豺�蟲� 谿剰鍵" #: ../libgaim/protocols/oscar/oscar.c:6188 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "�企��� 譯殊��襦�覿��� 豺�蟲�ゼ 谿場�給����." #: ../libgaim/protocols/oscar/oscar.c:6189 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "蟆����� 豺�蟲��� �企��� 譯殊��襯� ���ロ�� 譯殊�㈹����." #: ../libgaim/protocols/oscar/oscar.c:6192 @@ -11428,11 +11418,11 @@ msgstr "螻��� ����" #: ../libgaim/protocols/oscar/oscar.c:6401 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "���� �焔����� ���� �企��� 譯殊�� ����" #: ../libgaim/protocols/oscar/oscar.c:6405 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "���� �焔����� ���� �企��� 譯殊�� 覲�蟆�..." #: ../libgaim/protocols/oscar/oscar.c:6412 @@ -11440,7 +11430,7 @@ msgstr "�轟�語�� 蠍磯�るΜ�� 豺�蟲� ����" #: ../libgaim/protocols/oscar/oscar.c:6418 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "�企��朱� 豺�蟲� 蟆���..." #: ../libgaim/protocols/oscar/oscar.c:6423 @@ -11518,10 +11508,6 @@ msgid "College" msgstr "����" -#: ../libgaim/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�企���" - #: ../libgaim/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "�壱ク覯���" @@ -13840,7 +13826,7 @@ #: ../libgaim/protocols/silc/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�企���: \t\t%s\n" #: ../libgaim/protocols/silc/util.c:361 @@ -14078,7 +14064,7 @@ msgstr "�殊�����朱� ������襴� ��觜��るゼ �伎���� �� ���給����." #: ../libgaim/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "�企��� 蟆����� 蟇磯������給����." #: ../libgaim/protocols/toc/toc.c:533
--- a/po/lo.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/lo.po Thu Jun 26 09:07:56 2008 +0000 @@ -3407,7 +3407,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3439,16 +3439,6 @@ msgid "Purple Person" msgstr "" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5060,7 +5050,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6094,7 +6084,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "" #: ../libpurple/protocols/msn/error.c:49 @@ -6634,7 +6624,7 @@ msgstr "" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6696,7 +6686,7 @@ msgstr "" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8270,7 +8260,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8449,12 +8439,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8488,21 +8478,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8513,7 +8503,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -8759,15 +8749,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -8797,11 +8787,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -8809,7 +8799,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -8893,10 +8883,6 @@ msgid "College" msgstr "" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "" @@ -11536,7 +11522,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "" #: ../libpurple/protocols/silc/util.c:364 @@ -11871,7 +11857,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -14640,7 +14626,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "" #: ../pidgin/gtkimhtml.c:1610 @@ -15010,8 +14996,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -16209,7 +16195,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16217,7 +16203,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16225,7 +16211,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "" #. Configuration frame @@ -16283,7 +16269,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "" #. *< type
--- a/po/lt.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/lt.po Thu Jun 26 09:07:56 2008 +0000 @@ -721,8 +721,11 @@ msgstr "Pristabdyti" #, c-format -msgid "File Transfers - %d%% of %d files" -msgstr "Fail迭 perdavimai �� %d%% i邸 %d" +msgid "File Transfers - %d%% of %d file" +msgid_plural "File Transfers - %d%% of %d files" +msgstr[0] "Fail迭 perdavimai �� %d%% i邸 %d failo" +msgstr[1] "Fail迭 perdavimai �� %d%% i邸 %d fail迭" +msgstr[2] "Fail迭 perdavimai �� %d%% i邸 %d fail迭" #. Create the window. msgid "File Transfers" @@ -2849,7 +2852,7 @@ msgid "Last name" msgstr "Pavard�" -msgid "E-Mail" +msgid "Email" msgstr "El. pa邸tas" msgid "AIM Account" @@ -2874,9 +2877,6 @@ msgid "Purple Person" msgstr "(ne転inomas vardas)" -msgid "E-mail" -msgstr "El. pa邸tas" - msgid "Bonjour" msgstr "Bonjour" @@ -3261,8 +3261,11 @@ msgstr "Bloga b笛sena" #, c-format -msgid "Ban on %s by %s, set %ld seconds ago" -msgstr "Vartotojui %s u転draud� prisijungti %s prie邸 %ld sekund転i迭" +msgid "Ban on %s by %s, set %ld second ago" +msgid_plural "Ban on %s by %s, set %ld seconds ago" +msgstr[0] "Vartotojui %s u転draud� prisijungti %s prie邸 %ld sekund�" +msgstr[1] "Vartotojui %s u転draud� prisijungti %s prie邸 %ld sekundes" +msgstr[2] "Vartotojui %s u転draud� prisijungti %s prie邸 %ld sekund転i迭" #, c-format msgid "Ban on %s" @@ -3981,7 +3984,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "U転pildykite vien� ar daugiau lauk迭 XMPP vartotoj迭 paie邸kai." -msgid "E-Mail Address" +msgid "Email Address" msgstr "El. pa邸to adresas" msgid "Search for XMPP users" @@ -4718,7 +4721,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "Sintaks�s klaida (grei�iausiai Gaim riktas)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Neteisingas el. pa邸to adresas" msgid "User does not exist" @@ -5079,7 +5082,7 @@ msgstr "Nam迭 faksas" # Ar �ia turima omeny���Mr.��, ��Ms.��, ��Dr.�� ??? -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Asmeninis el. pa邸to adresas" # Ar �ia turima omeny���Mr.��, ��Ms.��, ��Dr.�� ??? @@ -5123,7 +5126,7 @@ msgid "Work Fax" msgstr "Darbo faksas" -msgid "Work E-Mail" +msgid "Work Email" msgstr "Darbo el. pa邸to adresas" msgid "Work IM" @@ -5442,8 +5445,11 @@ msgstr "Prisijungiama" #, c-format -msgid "Connection to server lost (no data received within %d seconds)" -msgstr "Nutr笛ko ry邸ys su serveriu (negauta joki迭 duomen迭 per %d sekund転i迭)" +msgid "Connection to server lost (no data received within %d second)" +msgid_plural "Connection to server lost (no data received within %d seconds)" +msgstr[0] "Nutr笛ko ry邸ys su serveriu (negauta joki迭 duomen迭 per %d sekund�)" +msgstr[1] "Nutr笛ko ry邸ys su serveriu (negauta joki迭 duomen迭 per %d sekundes)" +msgstr[2] "Nutr笛ko ry邸ys su serveriu (negauta joki迭 duomen迭 per %d sekund転i迭)" #. Can't write _()'d strings in array initializers. Workaround. msgid "New mail messages" @@ -5541,9 +5547,18 @@ #, 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 "" +msgstr[0] "" +"%d bi�iulis buvo prid�tas ar atnaujintas i邸 serverio (眺skaitant ir " +"bi�iulius, jau esan�ius serverio s�ra邸e)" +msgstr[1] "" +"%d bi�iuliai buvo prid�ti ar atnaujinti i邸 serverio (眺skaitant ir bi�iulius, " +"jau esan�ius serverio s�ra邸e)" +msgstr[2] "" "%d bi�iuli迭 buvo prid�ta ar atnaujinta i邸 serverio (眺skaitant ir bi�iulius, " "jau esan�ius serverio s�ra邸e)" @@ -6495,7 +6510,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6664,11 +6679,11 @@ msgstr[2] "Tolesni naudotoj迭 vardai yra susieti su %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Pagal el. pa邸to adres� %s joki迭 rezultat迭 nerasta" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "J笛s tur�tum�te gauti el. lai邸k�, pra邸ant眺 patvirtinti %s." msgid "Account Confirmation Requested" @@ -6698,7 +6713,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Klaida 0x%04x: ne眺manoma pakeisti el. pa邸to adreso, kadangi 邸iuo metu laukia " @@ -6706,7 +6721,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Klaida 0x%04x: ne眺manoma pakeisti el. pa邸to adreso, kadangi duotas adresas " @@ -6714,7 +6729,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Klaida 0x%04x: ne眺manoma pakeisti el. pa邸to adreso, kadangi duotas adresas " @@ -6728,7 +6743,7 @@ msgstr "Abonento informacijos keitimo klaida" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Vartotojo %s el. pa邸to adresas yra %s" msgid "Account Info" @@ -6956,13 +6971,13 @@ "spragtel�damas de邸iniuoju klavi邸u ant j迭 ir pasirinkdamas ��I邸 naujo " "papra邸yti prieigos teis�s��." -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Surasti bi�iul眺 pagal el. pa邸to adres�" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Ie邸koti bi�iulio pagal el. pa邸to adres�" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "町veskite bi�iulio, kurio ie邸kote, el. pa邸to adres�." msgid "_Search" @@ -6985,16 +7000,16 @@ msgid "Confirm Account" msgstr "Patvirtinti abonent�" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Parodyti 邸iuo metu registruot� el. pa邸to adres�" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Pakeisti 邸iuo metu registruot� el. pa邸to adres�..." msgid "Show Buddies Awaiting Authorization" msgstr "Parodyti bi�iulius, laukian�ius prieigos suteikimo" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Ie邸koti bi�iulio pagal el. pa邸to adres�..." msgid "Search for Buddy by Information" @@ -7060,9 +7075,6 @@ msgid "College" msgstr "Koled転as" -msgid "Email" -msgstr "El. pa邸tas" - msgid "Zipcode" msgstr "Pa邸to kodas" @@ -8847,7 +8859,7 @@ msgstr "Vartotojo vardas: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "El. pa邸tas: \t\t%s\n" #, c-format @@ -9105,7 +9117,7 @@ msgid "Dir service temporarily unavailable." msgstr "Katalogo tarnyba laikinai neprieinama." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "El. pa邸to adres迭 paie邸ka apribota." msgid "Keyword ignored." @@ -11510,7 +11522,7 @@ msgid "Enable typing notification" msgstr "Rodyti prane邸imus apie pa邸nekov迭 renkamas 転inutes" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "Kopijuoti _el. pa邸to adres�" msgid "_Open Link in Browser" @@ -11863,8 +11875,8 @@ msgstr[2] "%s turi %d nauj迭 prane邸im迭." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d naujas lai邸kas.</b>" msgstr[1] "<b>%d nauji lai邸kai.</b>" msgstr[2] "<b>%d nauj迭 lai邸k迭.</b>" @@ -12942,19 +12954,19 @@ msgid "_Associate Buddy" msgstr "_Susieti bi�iul眺" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Negalima i邸si迭sti el. lai邸ko" msgid "The evolution executable was not found in the PATH." msgstr "Vykdomasis Evolution failas nerastas PATH kintamajame." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Nerastas 邸io bi�iulio el. pa邸to adresas." msgid "Add to Address Book" msgstr "町traukti 眺 adres迭 knyg�" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Nusi迭sti el. lai邸k�" # Configuration frame @@ -13012,7 +13024,7 @@ msgid "Last name:" msgstr "Pavard�:" -msgid "E-mail:" +msgid "Email:" msgstr "El. pa邸to adresas:" # *< api_version
--- a/po/mk.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/mk.po Thu Jun 26 09:07:56 2008 +0000 @@ -2769,7 +2769,7 @@ msgid "Last name" msgstr "��亠亰亳仄亠" -msgid "E-Mail" +msgid "Email" msgstr "�-仗仂��舒" msgid "AIM Account" @@ -2794,9 +2794,6 @@ msgid "Purple Person" msgstr "�亳仍舒从仂于舒 仍亳�仆仂��" -msgid "E-mail" -msgstr "E-仗仂��舒" - msgid "Bonjour" msgstr "Bonjour" @@ -3874,7 +3871,7 @@ "�仂仗仂仍仆亠�亠 亠亟仆仂 亳仍亳 仗仂于亠�亠 仗仂仍亳�舒 亰舒 亟舒 弍舒�舒�亠 从仂�亳�仆亳�亳 仆舒 XMPP 从仂亳 �亠 " "�仂于仗舒�舒舒�." -msgid "E-Mail Address" +msgid "Email Address" msgstr "�亟�亠�舒 亰舒 亠-仗仂��舒" msgid "Search for XMPP users" @@ -4607,7 +4604,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "弌亳仆�舒从�仆舒 亞�亠�从舒 (仆舒�于亠�仂�舒�仆仂 亞�亠�从舒 于仂 从仍亳亠仆�仂�)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�亠于舒仍亳亟仆舒 舒亟�亠�舒 亰舒 亠-仗仂��舒" msgid "User does not exist" @@ -4965,7 +4962,7 @@ msgid "Home Fax" msgstr "�仂仄舒�亠仆 �舒从�" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "�亳�仆舒 亠-仗仂��舒" msgid "Personal IM" @@ -5008,7 +5005,7 @@ msgid "Work Fax" msgstr "个舒从� 仆舒 �舒弍仂�舒" -msgid "Work E-Mail" +msgid "Work Email" msgstr "�-仗仂��舒 仆舒 �舒弍仂�舒" msgid "Work IM" @@ -6351,7 +6348,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6507,12 +6504,12 @@ msgstr[2] "弌仍亠亟仆亳于亠 亳仄亳�舒 仂亟 亠从�舒仆仂� �亠 仗仂于�亰舒仆亳 �仂 %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�亠 �亠 仗�仂仆舒�亟亠仆亳 �亠亰�仍�舒�亳 亰舒 舒亟�亠�舒�舒 亰舒 亠-仗仂��舒 %s" #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "�亠 亟仂弍亳亠�亠 e-mail 亰舒 仗仂�于�亟舒 仆舒 %s" +msgid "You should receive an email asking to confirm %s." +msgstr "�亠 亟仂弍亳亠�亠 email 亰舒 仗仂�于�亟舒 仆舒 %s" msgid "Account Confirmation Requested" msgstr "�仂弍舒�舒仆舒 亠 仗仂�于�亟舒 亰舒 �仄亠�从舒�舒" @@ -6541,7 +6538,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "��亠�从舒 0x%04x: �亠 仄仂亢舒仄 亟舒 �舒 仗�仂仄亠仆舒仄 舒亟�亠�舒�舒 亰舒 亠-仗仂��舒, 弍亳亟亠��亳 亰舒 仂于舒 " @@ -6549,7 +6546,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "��亠�从舒 0x%04x: �亠 仄仂亢舒仄 亟舒 �舒 仗�仂仄亠仆舒仄 舒亟�亠�舒�舒 亰舒 亠-仗仂��舒, 弍亳亟亠��亳 亟舒亟亠仆舒�舒 " @@ -6557,7 +6554,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "��亠�从舒 0x%04x: �亠 仄仂亢舒仄 亟舒 �舒 仗�仂仄亠仆舒仄 舒亟�亠�舒�舒 亰舒 亠-仗仂��舒, 弍亳亟亠��亳 亟舒亟亠仆舒�舒 " @@ -6571,7 +6568,7 @@ msgstr "��亠�从舒 仗�亳 仄亠仆�于舒�亠 仆舒 亳仆�仂�仄舒�亳亳 亰舒 �仄亠�从舒�舒" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�亟�亠�舒�舒 亰舒 亠-仗仂��舒 亰舒 %s 亠 %s" msgid "Account Info" @@ -6799,13 +6796,13 @@ "�仂亢亠�亠 仂亟仆仂于仂 亟舒 仗仂弍舒�舒�亠 舒于�仂�亳亰舒�亳�舒 仂亟 仂于亳亠 仗�亳�舒�亠仍亳 �仂 亟亠�亠仆 从仍亳从 于�亰 " "仆亳于 亳 仂亟弍亳�舒�亠 仆舒 \"�仂于�仂�仆仂 仗仂弍舒�舒� 舒于�仂�亳亰舒�亳�舒\"" -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "�舒�舒� 仗�亳�舒�亠仍 仗仂 亠-仗仂��舒�舒" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "�舒�舒� 仗�亳�舒�亠仍 仗�亠从� 舒亟�亠�舒�舒 亰舒 亠-仗仂��舒" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "�仆亠�亠�亠 �舒 舒亟�亠�舒�舒 亰舒 亠-仗仂��舒 亰舒 仗�亳�舒�亠仍仂� 从仂� 亞仂 弍舒�舒�亠." msgid "_Search" @@ -6828,16 +6825,16 @@ msgid "Confirm Account" msgstr "�仂�于�亟亳 �舒 �仄亠�从舒�舒" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "��亳从舒亢亳 亞亳 �亠从仂于仆仂 �亠亞亳���亳�舒仆亳�亠 舒亟�亠�亳" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "��仂仄亠仆亳 亞亳 �亠从仂于仆仂 �亠亞亳���亳�舒仆亳�亠 舒亟�亠�亳..." msgid "Show Buddies Awaiting Authorization" msgstr "��亳从舒亢亳 亞亳 仗�亳�舒�亠仍亳�亠 从仂亳 �亠从舒舒� 舒于�仂�亳亰舒�亳�舒" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "�舒�舒� 仗�亳�舒�亠仍 仗�亠从� 亠-仗仂��舒..." msgid "Search for Buddy by Information" @@ -6903,9 +6900,6 @@ msgid "College" msgstr "�仂仍亠�" -msgid "Email" -msgstr "�-仗仂��舒" - msgid "Zipcode" msgstr "�仂��亠仆�从亳 从仂亟" @@ -8667,7 +8661,7 @@ msgstr "�仂�亳�仆亳�从仂 亳仄亠: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�-仗仂��舒: \t\t%s\n" #, c-format @@ -8907,7 +8901,7 @@ msgid "Dir service temporarily unavailable." msgstr "弌亠�于亳�仂� 亰舒 亟亳�亠从�仂�亳�仄亳 亠 仗�亳于�亠仄亠仆仂 仆亠亟仂��舒仗亠仆." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "�舒�舒�亠�仂 仆舒 亠-仗仂��舒 亠 仂亞�舒仆亳�亠仆仂." msgid "Keyword ignored." @@ -11253,7 +11247,7 @@ msgid "Enable typing notification" msgstr "�从仍��亳 亳亰于亠���于舒�亠 仗�亳 从��舒�亠" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_�仂仗亳�舒� 亠-仗仂��舒" msgid "_Open Link in Browser" @@ -11607,8 +11601,8 @@ msgstr[2] "%s 亳仄舒 %d 仆仂于亳 仗仂�舒从亳." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d 仆仂于舒 仗仂�舒从舒.</b>" msgstr[1] "<b>%d 仆仂于亳 仗仂�舒从亳.</b>" msgstr[2] "<b>%d 仆仂于亳 仗仂�舒从亳.</b>" @@ -12647,19 +12641,19 @@ msgid "_Associate Buddy" msgstr "_��仂�亳�舒� 仗�亳�舒�亠仍" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�亠 ��仗亠舒于 亟舒 亳�仗�舒�舒仄 亠-仗仂��舒" msgid "The evolution executable was not found in the PATH." msgstr "�亰于��仍亳于舒�舒 亟舒�仂�亠从舒 亰舒 Evolution 仆亠 弍亠�亠 仗�仂仆舒�亟亠仆舒 仆舒 仗舒�亠从舒�舒." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�亠 弍亠�亠 仗�仂仆舒�亟亠仆舒 舒亟�亠�舒 亰舒 亠-仗仂��舒 亰舒 仂于仂� 仗�亳�舒�亠仍." msgid "Add to Address Book" msgstr "�仂亟舒� 于仂 舒亟�亠�舒�" -msgid "Send E-Mail" +msgid "Send Email" msgstr "��仗�舒�亳 亠-仗仂��舒" #. Configuration frame @@ -12705,7 +12699,7 @@ msgid "Last name:" msgstr "��亠亰亳仄亠:" -msgid "E-mail:" +msgid "Email:" msgstr "E-仗仂��舒:" #. *< type
--- a/po/my_MM.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/my_MM.po Thu Jun 26 09:07:56 2008 +0000 @@ -1173,7 +1173,7 @@ #: ../finch/gntnotify.c:225 ../pidgin/gtknotify.c:341 #, fuzzy msgid "New Mail" -msgstr "E-Mail" +msgstr "Email" #: ../finch/gntnotify.c:290 ../pidgin/gtknotify.c:940 #, c-format @@ -3631,8 +3631,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3667,17 +3667,6 @@ msgid "Purple Person" msgstr "���衣�����高��" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "E-mail:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5447,8 +5436,8 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "E-Mail Address" +msgid "Email Address" +msgstr "Email Address" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6529,8 +6518,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Invalid e-mail address" +msgid "Invalid email address" +msgstr "Invalid email address" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -7094,7 +7083,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Personal Title" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7163,8 +7152,8 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" -msgstr "E-Mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -8854,12 +8843,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9047,13 +9036,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "No results found for e-mail address %s" +msgid "No results found for email address %s" +msgstr "No results found for email address %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." +msgstr "You should receive an email asking to confirm %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -9092,28 +9081,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -9123,8 +9112,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "The e-mail address for %s is %s" +msgid "The email address for %s is %s" +msgstr "The email address for %s is %s" #: ../libpurple/protocols/oscar/oscar.c:4035 msgid "Account Info" @@ -9405,16 +9394,16 @@ "them and selecting \"Re-request Authorisation.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Find Buddy by E-Mail" +msgid "Find Buddy by Email" +msgstr "Find Buddy by Email" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" +msgstr "Search for a buddy by email address" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." +msgstr "Type the email address of the buddy you are searching for." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9446,12 +9435,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Display Currently Registered Address" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Change Currently Registered Address" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9460,8 +9449,8 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." -msgstr "Search for Buddy by E-Mail..." +msgid "Search for Buddy by Email Address..." +msgstr "Search for Buddy by Email..." #: ../libpurple/protocols/oscar/oscar.c:6452 msgid "Search for Buddy by Information" @@ -9553,10 +9542,6 @@ msgid "College" msgstr "(_C) ���香�����高���������〟�����高�������高��" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12402,8 +12387,8 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 #: ../libpurple/protocols/silc10/util.c:361 @@ -12757,8 +12742,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "E-mail lookup restricted." +msgid "Email lookup restricted." +msgstr "Email lookup restricted." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -15779,8 +15764,8 @@ msgstr "Colour to draw hyperlinks." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Copy E-Mail Address" +msgid "_Copy Email Address" +msgstr "_Copy Email Address" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -16186,8 +16171,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17507,7 +17492,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Message ���〟���戟���〟���� ����������" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17515,7 +17500,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17524,8 +17509,8 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" -msgstr "E-Mail" +msgid "Send Email" +msgstr "Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -17583,8 +17568,8 @@ msgstr "Last name:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -18852,7 +18837,7 @@ #, fuzzy #~ msgid "Search for Jabber users" -#~ msgstr "Search for a buddy by e-mail address" +#~ msgstr "Search for a buddy by email address" #~ msgid "Invalid Jabber ID" #~ msgstr "Invalid Jabber ID" @@ -19045,7 +19030,7 @@ #~ msgstr "Active" #~ msgid "EMail" -#~ msgstr "E-Mail" +#~ msgstr "Email" #~ msgid "Instant Messages" #~ msgstr "Instant Messages" @@ -19170,8 +19155,8 @@ #~ msgid "Check Mail" #~ msgstr "Mail �����高�������高��" -#~ msgid "Check e-mail every X seconds.\n" -#~ msgstr "X �����香�����香�戟���〟�����香�� e-mail �����高�������高��\n" +#~ msgid "Check email every X seconds.\n" +#~ msgstr "X �����香�����香�戟���〟�����香�� email �����高�������高��\n" #~ msgid "Auto-login" #~ msgstr "Auto-login"
--- a/po/nb.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/nb.po Thu Jun 26 09:07:56 2008 +0000 @@ -3913,7 +3913,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "E-post" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3947,16 +3947,6 @@ msgid "Purple Person" msgstr "Ny Person" -#: ../libpurple/protocols/bonjour/bonjour.c:703 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:982 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-post" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5626,7 +5616,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3695 #: ../libpurple/protocols/oscar/oscar.c:3704 -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-postadresse" # @@ -6688,7 +6678,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ugyldig epostadresse" #: ../libpurple/protocols/msn/error.c:49 @@ -7326,7 +7316,7 @@ #: ../libpurple/protocols/msn/msn.c:1804 #: ../libpurple/protocols/msnp9/msn.c:1657 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "E-post" #: ../libpurple/protocols/msn/msn.c:1805 @@ -7406,7 +7396,7 @@ #: ../libpurple/protocols/msn/msn.c:1835 #: ../libpurple/protocols/msnp9/msn.c:1688 -msgid "Work E-Mail" +msgid "Work Email" msgstr "E-post Arbeid" #: ../libpurple/protocols/msn/msn.c:1836 @@ -9144,7 +9134,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2444 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9322,12 +9312,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3929 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Ingen resultater funnet for e-postadresse %s" #: ../libpurple/protocols/oscar/oscar.c:3950 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Du vil motta en e-post hvor du blir bedt om 奪 bekrefte %s." #: ../libpurple/protocols/oscar/oscar.c:3952 @@ -9355,17 +9345,17 @@ #: ../libpurple/protocols/oscar/oscar.c:3995 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name." +msgid "Error 0x%04x: Unable to change email address because there is already a request pending for this screen name." msgstr "Feil 0x%04x: Kunne ikke endre e-postadressen fordi det finnes en utest奪ende foresp淡rsel for dette skjermnavnet." #: ../libpurple/protocols/oscar/oscar.c:3998 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it." +msgid "Error 0x%04x: Unable to change email address because the given address has too many screen names associated with it." msgstr "Feil 0x%04x: Kunne ikke endre e-postadressen fordi den gitte adressen har for mange skjermnavn assosiert ved seg." #: ../libpurple/protocols/oscar/oscar.c:4001 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address is invalid." +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." msgstr "Feil 0x%04x: Kunne ikke endre e-postadressen fordi den gitte adressen er ugyldig." #: ../libpurple/protocols/oscar/oscar.c:4004 @@ -9375,7 +9365,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "E-postadressen for %s er %s" #: ../libpurple/protocols/oscar/oscar.c:4016 @@ -9596,15 +9586,15 @@ msgstr "Du kan sp淡rre om godkjenning p奪 nytt hos disse kontaktene ved 奪 h淡yreklikke p奪 dem og velge 束Sp淡r p奪 nytt om godkjenning損." #: ../libpurple/protocols/oscar/oscar.c:6256 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Finn kontakt utifra e-post" #: ../libpurple/protocols/oscar/oscar.c:6257 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "S淡k etter en kontakt ved hjelp av e-postadresse" #: ../libpurple/protocols/oscar/oscar.c:6258 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Skriv inn e-postadressen til den du s淡ker etter." #: ../libpurple/protocols/oscar/oscar.c:6261 @@ -9635,11 +9625,11 @@ #: ../libpurple/protocols/oscar/oscar.c:6455 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Vis n奪v脱rende registrert adresse" #: ../libpurple/protocols/oscar/oscar.c:6459 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Endre N奪v脱rende Registrert e-post Adresse..." #: ../libpurple/protocols/oscar/oscar.c:6466 @@ -9647,7 +9637,7 @@ msgstr "Vis kontakter som venter p奪 godkjenning" #: ../libpurple/protocols/oscar/oscar.c:6472 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "S淡k etter kontakter ved hjelp av e-postadresser..." #: ../libpurple/protocols/oscar/oscar.c:6477 @@ -9732,10 +9722,6 @@ msgid "College" msgstr "Universitet" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-post" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Postnummer" @@ -12479,7 +12465,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-post: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 @@ -12816,7 +12802,7 @@ msgstr "Katalogtjenesten er midlertidig utilgjengelig." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-postoppslag er begrenset." #: ../libpurple/protocols/toc/toc.c:533 @@ -15780,7 +15766,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1631 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopier e-postadresse" #: ../pidgin/gtkimhtml.c:1643 @@ -16198,8 +16184,8 @@ #: ../pidgin/gtknotify.c:570 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d ny e-post.</b>" msgstr[1] "<b>%d nye e-poster.</b>" @@ -17486,7 +17472,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Klarte ikke 奪 sende e-post" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17494,7 +17480,7 @@ msgstr "Den kj淡rbare filen til Evolution ble ikke funnet i banen." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "En e-post adresse ble ikke funnet for denne kontakten." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17502,7 +17488,7 @@ msgstr "Legg til i adresseboka" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Send E-post" #. Configuration frame @@ -17561,7 +17547,7 @@ msgstr "Etternavn:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "E-post:" #. *< type
--- a/po/ne.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ne.po Thu Jun 26 09:07:56 2008 +0000 @@ -3614,7 +3614,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "爐�爐��爐�" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3650,17 +3650,6 @@ msgid "Purple Person" msgstr "爐�く爐鉦� 爐朽�爐��爛�爐むた" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "爐�-爐��爐�:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5425,7 +5414,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "爐�爐��爐� 爐�爛�爐�爐鉦え爐�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6510,7 +6499,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, fuzzy, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "爐�爐朽�爐� 爐�爐��爐� 爐�爛�爐�爐鉦え爐�" #: ../libpurple/protocols/msn/error.c:49 @@ -7074,7 +7063,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "爐朽�爐��爛�爐むた爐�爐� 爐謹�爐萎�爐劇�爐項ぐ爛�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7143,7 +7132,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "爐�爐��爐�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8824,7 +8813,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, fuzzy, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9015,12 +9004,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, fuzzy, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "爐�爐��爐� 爐�爛�爐�爐鉦え爐鉦�爐� 爐迦ぞ爐�爐� 爐�ぐ爐逗ぃ爐鉦ぎ 爐��爐迦ぞ 爐�ぐ爛�爐� %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, fuzzy, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "爐むお爐鉦�爐�爐迦� %s 爐��爐逗え 爐�爐萎�爐� 爐伍�爐о�爐� 爐踱�爐�爐� 爐�爐��爐� 爐��爐萎ぞ爐��爐� 爐�爐萎�爐��爐�ぐ爛�爐��爛�" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -9060,7 +9049,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, fuzzy, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "爐む�爐萎�爐�爐� 0x%04x: 爐�爐��爐� 爐�爛�爐�爐鉦え爐� 爐�ぐ爐逗さ爐萎�爐むえ 爐�爐萎�爐� 爐�爐�爛�爐劇ぎ 爐〝く爛� 爐�爐逗え爐〝え爛� 爐む�爐�す爐鉦� 爐�す爐逗げ爛�爐�� 爐�� 爐�ぐ爛�爐�ぞ 爐�ぞ爐��爐� " @@ -9069,7 +9058,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, fuzzy, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "爐む�爐萎�爐�爐� 0x%04x: 爐�爐��爐� 爐�爛�爐�爐鉦え爐� 爐�ぐ爐逗さ爐萎�爐むえ 爐�爐萎�爐� 爐�爐�爛�爐劇ぎ 爐〝く爛� 爐�爐逗え爐〝え爛� 爐�た爐踱�爛� 爐�爛�爐�爐鉦え爐鉦ぎ爐� 爐�� 爐伍�爐� " @@ -9078,7 +9067,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, fuzzy, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "爐む�爐萎�爐�爐� 0x%04x: 爐�爐��爐� 爐�爛�爐�爐鉦え爐� 爐�ぐ爐逗さ爐萎�爐むえ 爐�爐萎�爐� 爐�爐�爛�爐劇ぎ 爐〝く爛� 爐�爐逗え爐〝え爛� 爐�た爐踱�爛� 爐�爛�爐�爐鉦え爐� 爐�爐朽�爐� 爐� 爛�" @@ -9089,7 +9078,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, fuzzy, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 爐�爐� 爐迦ぞ爐�爐� 爐�爐��爐� 爐�爛�爐�爐鉦え爐� %s 爐項�" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9367,15 +9356,15 @@ #: ../libpurple/protocols/oscar/oscar.c:6231 #, fuzzy -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "爐�爐��爐� 爐��爐朽ぞ爐萎ぞ 爐伍ぞ爐ム� 爐��爐迦ぞ 爐�ぞ爐萎�爐��爐項�爐伍�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "爐�爐��爐� 爐�爛�爐�爐鉦え爐� 爐��爐朽ぞ爐萎ぞ 爐踱�爐�爐� 爐伍ぞ爐ム� 爐�爛�爐�爛� 爐�爐萎�爐��爐項�爐伍�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "爐むお爐鉦�爐�爐迦� 爐�爛�爐�爛� 爐萎す爐�� 爐〝�爐�爛� 爐伍ぞ爐ムた爐�爛� 爐�爐��爐� 爐�爛�爐�爐鉦え爐� 爐�爐鉦�爐� 爐�爐萎�爐��爐項�爐伍� 爛�" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9408,12 +9397,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "爐項ぞ爐迦� 爐�ぐ爛�爐むぞ 爐�爐萎�爐�爛� 爐�爛�爐�爐鉦え爐� 爐��爐萎う爐萎�爐謹え 爐�爐萎�爐��爐項�爐伍�" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "爐項ぞ爐迦� 爐�ぐ爛�爐むぞ 爐�爐萎�爐�爛� 爐�爛�爐�爐鉦え爐� 爐�ぐ爐逗さ爐萎�爐むえ 爐�爐萎�爐��爐項�爐伍�..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9422,7 +9411,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "爐�爐��爐� 爐��爐朽ぞ爐萎ぞ 爐伍ぞ爐ム�爐�爛� 爐�爛�爐�爛� 爐�爐萎�爐��爐項�爐伍�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9514,10 +9503,6 @@ msgid "College" msgstr "爐�し爛�爐� 爐�爐萎�爐��爐項�爐伍�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "爐�爐��爐�" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12360,7 +12345,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "爐�爐��爐�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12715,7 +12700,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, fuzzy, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "爐�爐��爐� 爐�爛�爐�爛� 爐��爐萎い爐逗が爐��爐оた爐� 爐〝く爛� 爛�" #: ../libpurple/protocols/toc/toc.c:533 @@ -15727,7 +15712,7 @@ msgstr "爐項ぞ爐�爐�ぐ爐迦た爐�爛�爐�爐項ぐ爛� 爐�爛�爐萎�爐� 爐萎�爛�" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "爐�-爐��爐� 爐�爛�爐�爐鉦え爐� 爐��爐萎い爐逗げ爐逗お爐� 爐�爐萎�爐��爐項�爐伍�" #: ../pidgin/gtkimhtml.c:1610 @@ -16143,8 +16128,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17464,7 +17449,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "爐伍え爛�爐��爐� 爐��爐鉦�爐� 爐�爐�爛�爐劇ぎ 爐〝く爛� 爛�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17472,7 +17457,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17481,7 +17466,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "爐�爐��爐�" #. Configuration frame @@ -17540,7 +17525,7 @@ msgstr "爐�爐��爐むた爐� 爐�ぞ爐�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "爐�-爐��爐�:" #. *< type
--- a/po/nl.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/nl.po Thu Jun 26 09:07:56 2008 +0000 @@ -91,7 +91,7 @@ #: ../finch/gntaccount.c:437 msgid "New mail notifications" -msgstr "Nieuwe e-mail meldingen" +msgstr "Nieuwe email meldingen" #: ../finch/gntaccount.c:447 msgid "Remember password" @@ -1345,11 +1345,11 @@ #: ../finch/gntnotify.c:165 msgid "Emails" -msgstr "E-mails" +msgstr "Emails" #: ../finch/gntnotify.c:171 ../finch/gntnotify.c:226 msgid "You have mail!" -msgstr "Er is e-mail!" +msgstr "Er is email!" #: ../finch/gntnotify.c:174 ../pidgin/gtknotify.c:537 msgid "Sender" @@ -1368,7 +1368,7 @@ #: ../finch/gntnotify.c:226 ../pidgin/gtknotify.c:352 msgid "New Mail" -msgstr "Nieuwe e-mail" +msgstr "Nieuwe email" #: ../finch/gntnotify.c:291 ../pidgin/gtknotify.c:984 #, c-format @@ -3951,8 +3951,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:402 #: ../libpurple/protocols/bonjour/bonjour.c:708 @@ -3983,16 +3983,6 @@ msgid "Purple Person" msgstr "Purple mens" -#: ../libpurple/protocols/bonjour/bonjour.c:705 -#: ../libpurple/protocols/gg/gg.c:487 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:986 -#: ../libpurple/protocols/silc/silc.c:1227 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5657,8 +5647,8 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3753 #: ../libpurple/protocols/oscar/oscar.c:3762 -msgid "E-Mail Address" -msgstr "E-mailadres" +msgid "Email Address" +msgstr "Emailadres" #: ../libpurple/protocols/jabber/buddy.c:2471 #: ../libpurple/protocols/jabber/buddy.c:2472 @@ -6711,8 +6701,8 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" -msgstr "Ongeldig e-mail adres" +msgid "Invalid email address" +msgstr "Ongeldig email adres" #: ../libpurple/protocols/msn/error.c:49 #: ../libpurple/protocols/msnp9/error.c:49 @@ -7321,8 +7311,8 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" -msgstr "Persoonlijke e-mail" +msgid "Personal Email" +msgstr "Persoonlijke email" #: ../libpurple/protocols/msn/msn.c:1827 #: ../libpurple/protocols/msnp9/msn.c:1668 @@ -7397,8 +7387,8 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" -msgstr "E-mail werk" +msgid "Work Email" +msgstr "Email werk" #: ../libpurple/protocols/msn/msn.c:1858 #: ../libpurple/protocols/msnp9/msn.c:1699 @@ -7891,7 +7881,7 @@ #. Can't write _()'d strings in array initializers. Workaround. #: ../libpurple/protocols/myspace/myspace.c:1374 msgid "New mail messages" -msgstr "Nieuwe e-mailberichten" +msgstr "Nieuwe emailberichten" #: ../libpurple/protocols/myspace/myspace.c:1375 msgid "New blog comments" @@ -9061,7 +9051,7 @@ "only letters, numbers and spaces, or contain only numbers." msgstr "" "Kan niet aanmelden: Kan niet aanmelden als %s omdat de gebruikersnaam " -"ongeldig is. Gebruikersnamen moeten een geldig e-mailadres zijn, of beginnen " +"ongeldig is. Gebruikersnamen moeten een geldig emailadres zijn, of beginnen " "met een letter en slechts cijfers, letters en spaties bevatten, of slechts " "nummers bevatten." @@ -9248,12 +9238,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2495 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"U heeft een ICQ e-mail ontvangen van %s [%s]\n" +"U heeft een ICQ email ontvangen van %s [%s]\n" "\n" "Bericht:\n" "%s" @@ -9439,13 +9429,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3987 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Niets gevonden voor e-mailadres %s" +msgid "No results found for email address %s" +msgstr "Niets gevonden voor emailadres %s" #: ../libpurple/protocols/oscar/oscar.c:4008 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "U zou een e-mail moeten ontvangen met de vraag om %s te bevestigen." +msgid "You should receive an email asking to confirm %s." +msgstr "U zou een email moeten ontvangen met de vraag om %s te bevestigen." #: ../libpurple/protocols/oscar/oscar.c:4010 msgid "Account Confirmation Requested" @@ -9478,28 +9468,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4049 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Fout 0x%04x: Kan e-mail adres niet veranderen omdat er al een aanvraag in " +"Fout 0x%04x: Kan email adres niet veranderen omdat er al een aanvraag in " "behandeling is." #: ../libpurple/protocols/oscar/oscar.c:4051 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Fout 0x%04x: Kan e-mail adres niet veranderen omdat het adres reeds te veel " +"Fout 0x%04x: Kan email adres niet veranderen omdat het adres reeds te veel " "gebruikersnamen toegewezen heeft gekregen." #: ../libpurple/protocols/oscar/oscar.c:4053 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Fout 0x%04x: Kan e-mail adres niet veranderen omdat het adres ongeldig is." +"Fout 0x%04x: Kan email adres niet veranderen omdat het adres ongeldig is." #: ../libpurple/protocols/oscar/oscar.c:4055 #, c-format @@ -9512,8 +9502,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4063 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "Het e-mail adres voor %s is %s" +msgid "The email address for %s is %s" +msgstr "Het email adres voor %s is %s" #: ../libpurple/protocols/oscar/oscar.c:4065 msgid "Account Info" @@ -9586,7 +9576,7 @@ "numbers and spaces, or contain only numbers." msgstr "" "Kan het contact %s niet toevoegen omdat de gebruikersnaam ongeldig is. " -"Gebruikersnamen moeten een geldig e-mailadres zijn, of beginnen met een " +"Gebruikersnamen moeten een geldig emailadres zijn, of beginnen met een " "letter en slechts cijfers en letters bevatten, of slechts nummers bevatten." #: ../libpurple/protocols/oscar/oscar.c:4666 @@ -9789,16 +9779,16 @@ "contacten te klikken en de optie \"Opnieuw toestemming vragen.\" te kiezen." #: ../libpurple/protocols/oscar/oscar.c:6347 -msgid "Find Buddy by E-Mail" -msgstr "Contact zoeken op e-mail adres" +msgid "Find Buddy by Email" +msgstr "Contact zoeken op email adres" #: ../libpurple/protocols/oscar/oscar.c:6348 -msgid "Search for a buddy by e-mail address" -msgstr "Contact zoeken op e-mail adres" +msgid "Search for a buddy by email address" +msgstr "Contact zoeken op email adres" #: ../libpurple/protocols/oscar/oscar.c:6349 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Geef het e-mail adres van de persoon waarnaar u zoekt." +msgid "Type the email address of the buddy you are searching for." +msgstr "Geef het email adres van de persoon waarnaar u zoekt." #: ../libpurple/protocols/oscar/oscar.c:6352 msgid "_Search" @@ -9828,20 +9818,20 @@ msgstr "Account bevestigen" #: ../libpurple/protocols/oscar/oscar.c:6546 -msgid "Display Currently Registered E-Mail Address" -msgstr "Huidige geregistreerde e-mailadres weergeven" +msgid "Display Currently Registered Email Address" +msgstr "Huidige geregistreerde emailadres weergeven" #: ../libpurple/protocols/oscar/oscar.c:6550 -msgid "Change Currently Registered E-Mail Address..." -msgstr "Huidige geregistreerde e-mailadres veranderen..." +msgid "Change Currently Registered Email Address..." +msgstr "Huidige geregistreerde emailadres veranderen..." #: ../libpurple/protocols/oscar/oscar.c:6557 msgid "Show Buddies Awaiting Authorization" msgstr "Contacten weergeven die op toestemming wachten" #: ../libpurple/protocols/oscar/oscar.c:6563 -msgid "Search for Buddy by E-Mail Address..." -msgstr "Contact zoeken door middel van e-mail..." +msgid "Search for Buddy by Email Address..." +msgstr "Contact zoeken door middel van email..." #: ../libpurple/protocols/oscar/oscar.c:6568 msgid "Search for Buddy by Information" @@ -9923,10 +9913,6 @@ msgid "College" msgstr "College" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-mail" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Postcode" @@ -12675,8 +12661,8 @@ #: ../libpurple/protocols/silc/util.c:367 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:369 #: ../libpurple/protocols/silc10/util.c:361 @@ -13002,7 +12988,7 @@ msgstr "Profielen service is momenteel niet toegankelijk." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Email zoekfunctie beperkt." #: ../libpurple/protocols/toc/toc.c:533 @@ -16077,8 +16063,8 @@ msgstr "Schakel typmelding in" #: ../pidgin/gtkimhtml.c:1688 -msgid "_Copy E-Mail Address" -msgstr "E-mail adres _kopi谷ren" +msgid "_Copy Email Address" +msgstr "Email adres _kopi谷ren" #: ../pidgin/gtkimhtml.c:1700 msgid "_Open Link in Browser" @@ -16483,7 +16469,7 @@ #: ../pidgin/gtknotify.c:414 msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>" -msgstr "<span weight=\"bold\" size=\"larger\">U heeft e-mail!</span>" +msgstr "<span weight=\"bold\" size=\"larger\">U heeft email!</span>" #: ../pidgin/gtknotify.c:570 #, c-format @@ -16494,10 +16480,10 @@ #: ../pidgin/gtknotify.c:599 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d nieuwe e-mail.</b>" -msgstr[1] "<b>%d nieuwe e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d nieuwe email.</b>" +msgstr[1] "<b>%d nieuwe emails.</b>" #: ../pidgin/gtknotify.c:1033 #, c-format @@ -17485,7 +17471,7 @@ #: ../pidgin/pidginstock.c:94 msgid "_Open Mail" -msgstr "E-mail _openen" +msgstr "Email _openen" #: ../pidgin/pidginstock.c:95 msgid "_Pause" @@ -17834,24 +17820,24 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" -msgstr "Kan geen e-mail verzenden" +msgid "Unable to send email" +msgstr "Kan geen email verzenden" #: ../pidgin/plugins/gevolution/gevolution.c:243 msgid "The evolution executable was not found in the PATH." msgstr "Kan evolution niet vinden." #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." -msgstr "Er is geen e-mailadres gevonden van dit contact" +msgid "An email address was not found for this buddy." +msgstr "Er is geen emailadres gevonden van dit contact" #: ../pidgin/plugins/gevolution/gevolution.c:275 msgid "Add to Address Book" msgstr "Toevoegen aan adresboek" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" -msgstr "E-mail sturen" +msgid "Send Email" +msgstr "Email sturen" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:432 @@ -17911,8 +17897,8 @@ msgstr "Achternaam:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -17967,11 +17953,11 @@ #: ../pidgin/plugins/mailchk.c:160 msgid "Mail Checker" -msgstr "E-mailcontrole" +msgstr "Emailcontrole" #: ../pidgin/plugins/mailchk.c:162 msgid "Checks for new local mail." -msgstr "Controleert op lokale e-mail." +msgstr "Controleert op lokale email." #: ../pidgin/plugins/mailchk.c:163 msgid "Adds a small box to the buddy list that shows if you have new mail." @@ -19065,7 +19051,7 @@ #~ "\n" #~ "%s" #~ msgstr "" -#~ "<span weight=\"bold\" size=\"larger\">U heeft e-mail!</span>\n" +#~ "<span weight=\"bold\" size=\"larger\">U heeft email!</span>\n" #~ "\n" #~ "%s" @@ -19584,16 +19570,16 @@ #~ msgstr "Wanneer je offline wordt geschopt, herstelt dit de verbinding." #~ msgid "Mail Server" -#~ msgstr "E-mailserver" +#~ msgstr "Emailserver" #~ msgid "%s (%d new/%d total)" #~ msgstr "%s (%d nieuw/%d totaal)" #~ msgid "Check Mail" -#~ msgstr "E-mail controleren" +#~ msgstr "Email controleren" #~ msgid "Check email every X seconds.\n" -#~ msgstr "E-mail iedere X seconden controleren.\n" +#~ msgstr "Email iedere X seconden controleren.\n" #~ msgid "Buddy is offline:" #~ msgstr "Contact is off-line:" @@ -20212,7 +20198,7 @@ #~ "\n" #~ "%s%s%s%s" #~ msgstr "" -#~ "<span weight=\"bold\" size=\"larger\">U heeft e-mail!</span>\n" +#~ "<span weight=\"bold\" size=\"larger\">U heeft email!</span>\n" #~ "\n" #~ "%s%s%s%s" @@ -20627,9 +20613,6 @@ #~ msgid "Miscellaneous error" #~ msgstr "Onebeknde fout" -#~ msgid "Invalid email address" -#~ msgstr "Ongeldig e-mail adres" - #~ msgid "Tried to add a contact to a group that doesn't exist" #~ msgstr "Probeerde een contact aan een niet bestaande groep toe te voegen" @@ -20736,17 +20719,6 @@ #~ "%s" #~ msgid "" -#~ "You have received an ICQ email from %s [%s]\n" -#~ "\n" -#~ "Message is:\n" -#~ "%s" -#~ msgstr "" -#~ "U heeft een ICQ e-mail ontvangen van %s [%s]\n" -#~ "\n" -#~ "Bericht:\n" -#~ "%s" - -#~ msgid "" #~ "You have been disconnected because you have signed on with this screen " #~ "name at another location." #~ msgstr "" @@ -20759,12 +20731,6 @@ #~ msgid "The following screen names are associated with %s" #~ msgstr "De volgende gebruikersnamen zijn geassocieerd met %s" -#~ msgid "No results found for email address %s" -#~ msgstr "Niets gevonden voor e-mail adres %s" - -#~ msgid "You should receive an email asking to confirm %s." -#~ msgstr "U zou een e-mail moeten ontvangen met de vraag om %s te bevestigen." - #~ msgid "" #~ "Error 0x%04x: Unable to format screen name because the requested screen " #~ "name ends in a space." @@ -20776,25 +20742,16 @@ #~ "Error 0x%04x: Unable to change email address because there is already a " #~ "request pending for this screen name." #~ msgstr "" -#~ "Fout 0x%04x: Kan e-mail adres niet veranderen omdat het adres al is " +#~ "Fout 0x%04x: Kan email adres niet veranderen omdat het adres al is " #~ "aangevraagd door een ander." #~ msgid "" #~ "Error 0x%04x: Unable to change email address because the given address " #~ "has too many screen names associated with it." #~ msgstr "" -#~ "Fout 0x%04x: Kan e-mail adres niet veranderen omdat het adres reeds te " +#~ "Fout 0x%04x: Kan email adres niet veranderen omdat het adres reeds te " #~ "veel gebruikersnamen toegewezen heeft gekregen." -#~ msgid "" -#~ "Error 0x%04x: Unable to change email address because the given address is " -#~ "invalid." -#~ msgstr "" -#~ "Fout 0x%04x: Kan e-mail adres niet veranderen omdat het adres ongeldig is." - -#~ msgid "The email address for %s is %s" -#~ msgstr "Het e-mail adres vor %s is %s" - #~ msgid "Unable to set AIM away message." #~ msgstr "Kan geen AIM afwezigheidsbericht instellen." @@ -20816,9 +20773,6 @@ #~ "volgende reden:\n" #~ "%s" -#~ msgid "Find Buddy by E-mail" -#~ msgstr "Contact zoeken op e-mail adres" - #~ msgid "Display Currently Registered Address" #~ msgstr "Huidige geregistreerde adres weergeven" @@ -20826,7 +20780,7 @@ #~ msgstr "Huidige geregistreerde adres veranderen..." #~ msgid "Search for Buddy by Email..." -#~ msgstr "Contact zoeken door middel van e-mail..." +#~ msgstr "Contact zoeken door middel van email..." #~ msgid "Auth host" #~ msgstr "Host authoriseren" @@ -20834,9 +20788,6 @@ #~ msgid "Auth port" #~ msgstr "Auth-poort" -#~ msgid "EMail" -#~ msgstr "E-mail" - #~ msgid "More..." #~ msgstr "Meer..." @@ -20873,10 +20824,7 @@ #~ msgstr "SILC Priv辿sleutel" #~ msgid "EMail: \t\t%s\n" -#~ msgstr "E-mail: \t\t%s\n" - -#~ msgid "Email lookup restricted." -#~ msgstr "Email zoekfunctie beperkt." +#~ msgstr "Email: \t\t%s\n" #~ msgid "TOC host" #~ msgstr "TOC host"
--- a/po/nn.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/nn.po Thu Jun 26 09:07:56 2008 +0000 @@ -2746,7 +2746,7 @@ msgid "Last name" msgstr "Etternamn" -msgid "E-Mail" +msgid "Email" msgstr "E-post" msgid "AIM Account" @@ -2771,9 +2771,6 @@ msgid "Purple Person" msgstr "Purple-person" -msgid "E-mail" -msgstr "E-post" - msgid "Bonjour" msgstr "Bonjour" @@ -3849,7 +3846,7 @@ msgstr "" "Fyll ut eitt eller fleire felt for 奪 s淡kja etter samsvarande XMPP-brukarar." -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-postadresse" msgid "Search for XMPP users" @@ -4577,7 +4574,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "Syntaksfeil (truleg feil i klienten)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ugyldig e-postadresse" msgid "User does not exist" @@ -4933,7 +4930,7 @@ msgid "Home Fax" msgstr "Heimefaks" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Personleg e-postadresse" msgid "Personal IM" @@ -4976,7 +4973,7 @@ msgid "Work Fax" msgstr "Telefaks arbeid" -msgid "Work E-Mail" +msgid "Work Email" msgstr "E-postadresse jobb" msgid "Work IM" @@ -6304,7 +6301,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6446,11 +6443,11 @@ msgstr[1] "Desse brukarnamna er knytte til %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Ingen resultat funnen for e-postadressa %s" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Du vil f奪 ei e-postmelding der du blir spurt om 奪 stadfesta %s." msgid "Account Confirmation Requested" @@ -6478,7 +6475,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Feil 0x%04x: kan ikkje endra e-postadressa sia det allereie finst ein " @@ -6486,7 +6483,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Feil 0x%04x: kan ikkje endra e-postadressa sia den oppgjevne adressa har for " @@ -6494,7 +6491,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Feil 0x%04x: kan ikkje endra e-postadressa sia den oppgjevne adressa er " @@ -6508,7 +6505,7 @@ msgstr "Feil ved endring av kontoinformasjon" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "E-postadressa til %s er %s" msgid "Account Info" @@ -6725,13 +6722,13 @@ "Du kan be om godkjenning fr奪 desse vennane igjen ved 奪 h淡greklikka dei og " "velja \"Sp淡r om ny godkjenning.\"" -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Finn venn utfr奪 e-postadessa" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Bruk e-postadressa til 奪 s淡kja etter ein venn" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Skriv inn e-postadressa til vennen du leiter etter." msgid "_Search" @@ -6754,16 +6751,16 @@ msgid "Confirm Account" msgstr "Stadfest konto" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Vis noverande registrerte e-postadresse" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Endra noverande registrerte e-postadresse��" msgid "Show Buddies Awaiting Authorization" msgstr "Vis vennar som ventar p奪 godkjenning" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Bruk e-postadressa til 奪 s淡kja etter ein venn��" msgid "Search for Buddy by Information" @@ -6829,9 +6826,6 @@ msgid "College" msgstr "Universitet" -msgid "Email" -msgstr "E-post" - msgid "Zipcode" msgstr "Postnummer" @@ -8585,7 +8579,7 @@ msgstr "Brukarnamn: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-post: \t\t%s\n" #, c-format @@ -8829,7 +8823,7 @@ msgid "Dir service temporarily unavailable." msgstr "Katalogtenesta er mellombels utilgjengeleg." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-postoppslag er avgrensa." msgid "Keyword ignored." @@ -11154,7 +11148,7 @@ msgid "Enable typing notification" msgstr "Sl奪 p奪 skrivevarsel" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopier e-postadresse" msgid "_Open Link in Browser" @@ -11508,8 +11502,8 @@ msgstr[1] "%s har %d nye meldingar." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d ny e-postmelding.</b>" msgstr[1] "<b>%d nye e-postmeldingar.</b>" @@ -12538,19 +12532,19 @@ msgid "_Associate Buddy" msgstr "_Knyt til venn" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Klarte ikkje 奪 senda e-postmeldinga" msgid "The evolution executable was not found in the PATH." msgstr "Evolution si programfil blei ikkje funnen i filbana (PATH)." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Fann inga e-postadresse for denne vennen." msgid "Add to Address Book" msgstr "Legg til i adresseboka" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Send e-post" #. Configuration frame @@ -12596,7 +12590,7 @@ msgid "Last name:" msgstr "Etternamn:" -msgid "E-mail:" +msgid "Email:" msgstr "E-post:" #. *< type
--- a/po/oc.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/oc.po Thu Jun 26 09:07:56 2008 +0000 @@ -2610,7 +2610,7 @@ msgid "Last name" msgstr "" -msgid "E-Mail" +msgid "Email" msgstr "Corri竪l" msgid "AIM Account" @@ -2635,9 +2635,6 @@ msgid "Purple Person" msgstr "" -msgid "E-mail" -msgstr "Corri竪l" - msgid "Bonjour" msgstr "" @@ -3661,7 +3658,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "" -msgid "E-Mail Address" +msgid "Email Address" msgstr "Adre巽a electronica" msgid "Search for XMPP users" @@ -4372,7 +4369,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "" msgid "User does not exist" @@ -4727,7 +4724,7 @@ msgid "Home Fax" msgstr "Fax personal" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "" msgid "Personal IM" @@ -4770,7 +4767,7 @@ msgid "Work Fax" msgstr "" -msgid "Work E-Mail" +msgid "Work Email" msgstr "" msgid "Work IM" @@ -6029,7 +6026,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6163,11 +6160,11 @@ msgstr[1] "" #, c-format -msgid "No results found for e-mail address %s" -msgstr "" - -#, c-format -msgid "You should receive an e-mail asking to confirm %s." +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" @@ -6191,19 +6188,19 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"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 e-mail address because the given address has " +"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 e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -6215,7 +6212,7 @@ msgstr "" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" msgid "Account Info" @@ -6400,13 +6397,13 @@ "them and selecting \"Re-request Authorization.\"" msgstr "" -msgid "Find Buddy by E-Mail" -msgstr "" - -msgid "Search for a buddy by e-mail address" -msgstr "" - -msgid "Type the e-mail address of the buddy you are searching for." +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" @@ -6429,16 +6426,16 @@ msgid "Confirm Account" msgstr "" -msgid "Display Currently Registered E-Mail Address" -msgstr "" - -msgid "Change Currently Registered E-Mail Address..." +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 E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" msgid "Search for Buddy by Information" @@ -6498,9 +6495,6 @@ msgid "College" msgstr "" -msgid "Email" -msgstr "Adre巽a electronica" - msgid "Zipcode" msgstr "" @@ -8161,7 +8155,7 @@ msgstr "" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "" #, c-format @@ -8392,7 +8386,7 @@ msgid "Dir service temporarily unavailable." msgstr "" -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" msgid "Keyword ignored." @@ -10610,7 +10604,7 @@ msgid "Enable typing notification" msgstr "" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "" msgid "_Open Link in Browser" @@ -10901,8 +10895,8 @@ msgstr[1] "" #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -11891,19 +11885,19 @@ msgid "_Associate Buddy" msgstr "" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "" msgid "The evolution executable was not found in the PATH." msgstr "" -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" msgid "Add to Address Book" msgstr "" -msgid "Send E-Mail" +msgid "Send Email" msgstr "" #. Configuration frame @@ -11949,7 +11943,7 @@ msgid "Last name:" msgstr "Nom :" -msgid "E-mail:" +msgid "Email:" msgstr "" #. *< type
--- a/po/pa.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/pa.po Thu Jun 26 09:07:56 2008 +0000 @@ -3564,7 +3564,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "爬�爬��爬�" #: ../libpurple/protocols/bonjour/bonjour.c:374 @@ -3596,16 +3596,6 @@ msgid "Purple Person" msgstr "爬�┛爬�┣ 爬朽┸爬�爬�爬む�" -#: ../libpurple/protocols/bonjour/bonjour.c:676 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:901 -#: ../libpurple/protocols/silc/silc.c:1142 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "爬�爬��爬�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "爬��爬��爰�爬�爬�" @@ -5258,7 +5248,7 @@ #: ../libpurple/protocols/novell/novell.c:1490 #: ../libpurple/protocols/oscar/oscar.c:3729 #: ../libpurple/protocols/oscar/oscar.c:3738 -msgid "E-Mail Address" +msgid "Email Address" msgstr "爬�爬��爬� 爬�爬÷┛爰�爰園┯" #: ../libpurple/protocols/jabber/buddy.c:2423 @@ -6309,7 +6299,7 @@ msgstr "爬伍�爬�爰�爬�爬� 爬�爬む� (爬�爰園� 爬�爬迦┥爬�爬� 爬��爬� 爬項�)" #: ../libpurple/protocols/msn/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "爬�爬迦┐ 爬�爬��爬� 爬�爬÷┛爰�爰園┯" #: ../libpurple/protocols/msn/error.c:49 @@ -6804,7 +6794,7 @@ msgstr "爬�爬� 爬��爬�爬�" #: ../libpurple/protocols/msn/msn.c:1781 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "爬�┸爰園�爰� 爬�爬��爬�" #: ../libpurple/protocols/msn/msn.c:1782 @@ -6866,7 +6856,7 @@ msgstr "爬�爰萎┏ 爬��爬�爬�" #: ../libpurple/protocols/msn/msn.c:1812 -msgid "Work E-Mail" +msgid "Work Email" msgstr "爬�爰萎┏ 爬�爬��爬�" #: ../libpurple/protocols/msn/msn.c:1813 @@ -8541,7 +8531,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2454 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8724,12 +8714,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3963 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "爬�爬��爬� 爬�爬÷┛爰�爰園┯ %s 爬迦� 爬�爰�爬� 爬�┐爰�爬�爬� 爬�┨爰�爬� 爬�┸爬迦┸爬� 爬項�" #: ../libpurple/protocols/oscar/oscar.c:3984 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "爬む�爬伍�爬� %s 爬�� 爬��爬伍┝爬�爰� 爬�爬萎┬ 爬迦� 爬�爰園� 爬�爬��爬� 爬�爰�爬む� 爬項� 爬��爬萎┥爬�┐ 爬�爬萎�爬�爰�爛�" #: ../libpurple/protocols/oscar/oscar.c:3986 @@ -8762,7 +8752,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4029 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "爬�爬迦┐爰� 0x%04x: 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬む━爬��爬� 爬�爬萎┬ 爬迦� 爬�爬伍┼爬� 爬項�, 爬�爬逗�爬�爬� 爬�┸爰園┐爬� 爬伍┸爬萎┬爬鉦┻爰�爬� 爬迦� 爬�┨爬逗┣爬鉦� " @@ -8771,7 +8761,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4032 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "爬�爬迦┐爰� 0x%04x: 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬む━爬��爬� 爬�爬萎┬ 爬迦� 爬�爬伍┼爬� 爬項�, 爬�爬逗�爬�爬� 爬�┸爰園┐爰� 爬�爬÷┛爰�爰園┯ 爬�┥爬� 爬�┨爰�爬� " @@ -8780,7 +8770,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4035 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "爬�爬迦┐爰� 0x%04x: 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬む━爬��爬� 爬�爬萎┬ 爬迦� 爬�爬伍┼爬� 爬項�, 爬�爬逗�爬�爬� 爬�┸爰園┐爬� 爬�爬÷┛爰�爰園┯ 爬�爬迦┐ 爬項�爛�" @@ -8791,7 +8781,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4048 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 爬�┥ 爬�爬��爬� 爬�爬÷┛爰�爰園┯ %s 爬項�" #: ../libpurple/protocols/oscar/oscar.c:4050 @@ -9052,15 +9042,15 @@ "爬��爬�┐爰� 爬�爬� 爬伍�爬�� 爬項�爛�" #: ../libpurple/protocols/oscar/oscar.c:6286 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "爬�爬��爬� 爬萎┥爬項�爬� 爬��爬÷� 爬�爰�爬�" #: ../libpurple/protocols/oscar/oscar.c:6287 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬萎┥爬項�爬� 爬��爬÷� 爬�爰�爬�" #: ../libpurple/protocols/oscar/oscar.c:6288 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "爬��爬÷� 爬�爰�爬�爬� 爬迦� 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬�┸爬�爛�" #: ../libpurple/protocols/oscar/oscar.c:6291 @@ -9090,11 +9080,11 @@ msgstr "爬�爬�爬鉦�爬�爬� 爬��爬伍┝爬�爰�" #: ../libpurple/protocols/oscar/oscar.c:6485 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "爬��爬�爰�爬�┥ 爬萎�爬逗┯爬�爬� 爬項�爬�爬� 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬朽�爬�爰�" #: ../libpurple/protocols/oscar/oscar.c:6489 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "爬��爬�爰�爬�┥ 爬萎�爬逗┯爬�爬� 爬項�爬�爬� 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬�└爬迦�..." #: ../libpurple/protocols/oscar/oscar.c:6496 @@ -9102,7 +9092,7 @@ msgstr "爬��爬萎┏爬鉦┌爬逗�爬む┥ 爬�� 爬�爬÷�爬� 爬朽┸爰園� 爬��爬÷� 爬朽�爬�爰�" #: ../libpurple/protocols/oscar/oscar.c:6502 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "爬�-爬��爬� 爬萎┥爬項�爬� 爬��爬÷� 爬�爰�爬�..." #: ../libpurple/protocols/oscar/oscar.c:6507 @@ -9189,10 +9179,6 @@ msgid "College" msgstr "爬�爬鉦┣爬�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "爬�爬��爬�" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "爬�爬酌┸爬� 爬�爰�爬�" @@ -11883,7 +11869,7 @@ #: ../libpurple/protocols/silc/util.c:366 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "爬�爬��爬�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:368 @@ -12207,7 +12193,7 @@ msgstr "爬÷┥爬� 爬伍┛爬朽┸爬� 爬�爬萎�爬酌� 爬む�爬� 爬む� 爬�爬�┣爰園━爬� 爬�┨爰�爬� 爬項�爛�" #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "爬�爬��爬� 爬�爰�爬� 爬�┥爬��爬�� 爬項�爛�" #: ../libpurple/protocols/toc/toc.c:533 @@ -15079,7 +15065,7 @@ msgstr "爬項┥爬�爬�┛爬迦┸爰萎� 爬迦� 爬萎�爬�, 爬�爬��爬� 爬�┥爬�爬�爬� 爬�爬��爬項┥爬� 爬�爰園┐爰� 爬項�爬朽�爛�" #: ../pidgin/gtkimhtml.c:1581 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬��爬�(_C)" #: ../pidgin/gtkimhtml.c:1593 @@ -15491,8 +15477,8 @@ #: ../pidgin/gtknotify.c:569 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d 爬�┻爰�爬� 爬��爬� 爬�爬� 爬項�爛�</b>" msgstr[1] "<b>%d 爬�┻爰�爬� 爬��爬迦┥爬� 爬�爬�爬�爬� 爬項┬爛�</b>" @@ -16756,7 +16742,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "爬�-爬��爬� 爬〝�爬�爬� 爬迦� 爬��爬迦�爬�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16764,7 +16750,7 @@ msgstr "爬�┥爬萎� '爬� 爬�爬朽�爬迦�爬伍┝爬� 爬�爰園┣爬�┓爰�爬� 爬�┨爰�爬� 爬�┸爬迦┸爬� 爬項�爛�" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "爬�爬� 爬��爬÷� 爬迦� 爬�爰園� 爬�爬��爬� 爬�爬÷┛爰�爰園┯ 爬�┨爰�爬� 爬迦�爬〝┸爬� 爬項�爛�" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16772,7 +16758,7 @@ msgstr "爬�爬÷┛爰�爰園┯ 爬�爬逗┐爬鉦━ 爬朽┸爰園� 爬謹┥爬�┸爬�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "爬�-爬��爬� 爬〝�爬�爰�" #. Configuration frame @@ -16830,7 +16816,7 @@ msgstr "爬�爬�爬萎� 爬�┥爬�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "爬�爬��爬�:" #. *< type
--- a/po/pl.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/pl.po Thu Jun 26 09:07:56 2008 +0000 @@ -1063,7 +1063,7 @@ #: ../finch/gntnotify.c:1 ../pidgin/gtknotify.c:1 msgid "New Mail" -msgstr "Nowa wiadomo�� e-mail" +msgstr "Nowa wiadomo�� email" #: ../finch/gntnotify.c:1 ../pidgin/gtknotify.c:1 #, c-format @@ -3462,8 +3462,8 @@ #: ../libpurple/protocols/silc/util.c:1 ../libpurple/protocols/silc10/ops.c:1 #: ../libpurple/protocols/silc10/util.c:1 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1 -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:1 msgid "AIM Account" @@ -3492,12 +3492,6 @@ msgid "Purple Person" msgstr "Nowa osoba" -#: ../libpurple/protocols/bonjour/bonjour.c:1 ../libpurple/protocols/gg/gg.c:1 -#: ../libpurple/protocols/jabber/jabber.c:1 -#: ../libpurple/protocols/silc/silc.c:1 ../libpurple/protocols/silc10/silc.c:1 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:1 msgid "Bonjour" msgstr "Bonjour" @@ -4782,7 +4776,7 @@ #: ../libpurple/protocols/jabber/buddy.c:1 #, fuzzy msgid "Reachability Address" -msgstr "Adres e-mail" +msgstr "Adres email" #: ../libpurple/protocols/jabber/buddy.c:1 #, fuzzy @@ -5028,8 +5022,8 @@ #: ../libpurple/protocols/jabber/buddy.c:1 #: ../libpurple/protocols/novell/novell.c:1 #: ../libpurple/protocols/oscar/oscar.c:1 -msgid "E-Mail Address" -msgstr "Adres e-mail" +msgid "Email Address" +msgstr "Adres email" #: ../libpurple/protocols/jabber/buddy.c:1 msgid "Search for XMPP users" @@ -6040,8 +6034,8 @@ #: ../libpurple/protocols/msn/error.c:1 ../libpurple/protocols/msnp9/error.c:1 #, c-format -msgid "Invalid e-mail address" -msgstr "Niepoprawny adres e-mail" +msgid "Invalid email address" +msgstr "Niepoprawny adres email" #: ../libpurple/protocols/msn/error.c:1 ../libpurple/protocols/msnp9/error.c:1 #, c-format @@ -6577,8 +6571,8 @@ msgstr "Strona domowa" #: ../libpurple/protocols/msn/msn.c:1 ../libpurple/protocols/msnp9/msn.c:1 -msgid "Personal E-Mail" -msgstr "E-mail osobisty" +msgid "Personal Email" +msgstr "Email osobisty" #: ../libpurple/protocols/msn/msn.c:1 ../libpurple/protocols/msnp9/msn.c:1 #, fuzzy @@ -6642,8 +6636,8 @@ #: ../libpurple/protocols/msn/msn.c:1 ../libpurple/protocols/msnp9/msn.c:1 #, fuzzy -msgid "Work E-Mail" -msgstr "E-mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1 ../libpurple/protocols/msnp9/msn.c:1 #, fuzzy @@ -8390,12 +8384,12 @@ #: ../libpurple/protocols/oscar/oscar.c:1 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Otrzymano e-mail ICQ od %s [%s]\n" +"Otrzymano email ICQ od %s [%s]\n" "\n" "Tre�� wiadomo�ci:\n" "%s" @@ -8584,13 +8578,13 @@ #: ../libpurple/protocols/oscar/oscar.c:1 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nie znaleziono 甜adnych wynik坦w dla adresu e-mail %s" - -#: ../libpurple/protocols/oscar/oscar.c:1 -#, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Powinna�/powiniene� otrzyma� e-mail prosz�cy o potwierdzenie %s." +msgid "No results found for email address %s" +msgstr "Nie znaleziono 甜adnych wynik坦w dla adresu email %s" + +#: ../libpurple/protocols/oscar/oscar.c:1 +#, c-format +msgid "You should receive an email asking to confirm %s." +msgstr "Powinna�/powiniene� otrzyma� email prosz�cy o potwierdzenie %s." #: ../libpurple/protocols/oscar/oscar.c:1 msgid "Account Confirmation Requested" @@ -8629,28 +8623,28 @@ #: ../libpurple/protocols/oscar/oscar.c:1 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"B��d 0x%04x: Nie mo甜na zmieni� adresu e-mail, poniewa甜 w kolejce czeka inna " +"B��d 0x%04x: Nie mo甜na zmieni� adresu email, poniewa甜 w kolejce czeka inna " "pro�ba dla tego samego identyfikatora." #: ../libpurple/protocols/oscar/oscar.c:1 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"B��d 0x%04x: Nie mo甜na zmieni� adresu e-mail, poniewa甜 podany adres jest " +"B��d 0x%04x: Nie mo甜na zmieni� adresu email, poniewa甜 podany adres jest " "skojarzony ze zbyt wieloma identyfikatorami." #: ../libpurple/protocols/oscar/oscar.c:1 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"B��d 0x%04x: Nie mo甜na zmieni� adresu e-mail, poniewa甜 podany adres jest " +"B��d 0x%04x: Nie mo甜na zmieni� adresu email, poniewa甜 podany adres jest " "nieprawid�owy." #: ../libpurple/protocols/oscar/oscar.c:1 @@ -8660,8 +8654,8 @@ #: ../libpurple/protocols/oscar/oscar.c:1 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "Adres e-mail dla %s to %s" +msgid "The email address for %s is %s" +msgstr "Adres email dla %s to %s" #: ../libpurple/protocols/oscar/oscar.c:1 msgid "Account Info" @@ -8929,16 +8923,16 @@ "przyciskiem i wybieraj�c \"Ponownie popro� o autoryzacj�\"." #: ../libpurple/protocols/oscar/oscar.c:1 -msgid "Find Buddy by E-Mail" -msgstr "Wyszukiwanie u甜ytkownika wg adresu e-mail" - -#: ../libpurple/protocols/oscar/oscar.c:1 -msgid "Search for a buddy by e-mail address" -msgstr "Szukaj znajomych wed�ug adresu e-mail" - -#: ../libpurple/protocols/oscar/oscar.c:1 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Podaj adres e-mail znajomego, kt坦rego chcesz znale添�." +msgid "Find Buddy by Email" +msgstr "Wyszukiwanie u甜ytkownika wg adresu email" + +#: ../libpurple/protocols/oscar/oscar.c:1 +msgid "Search for a buddy by email address" +msgstr "Szukaj znajomych wed�ug adresu email" + +#: ../libpurple/protocols/oscar/oscar.c:1 +msgid "Type the email address of the buddy you are searching for." +msgstr "Podaj adres email znajomego, kt坦rego chcesz znale添�." #: ../libpurple/protocols/oscar/oscar.c:1 msgid "_Search" @@ -8967,20 +8961,20 @@ msgstr "Potwierdzenie konta" #: ../libpurple/protocols/oscar/oscar.c:1 -msgid "Display Currently Registered E-Mail Address" -msgstr "Wy�wietl aktualnie zarejestrowany adres e-mail" - -#: ../libpurple/protocols/oscar/oscar.c:1 -msgid "Change Currently Registered E-Mail Address..." -msgstr "Zmie� aktualnie zarejestrowany adres e-mail..." +msgid "Display Currently Registered Email Address" +msgstr "Wy�wietl aktualnie zarejestrowany adres email" + +#: ../libpurple/protocols/oscar/oscar.c:1 +msgid "Change Currently Registered Email Address..." +msgstr "Zmie� aktualnie zarejestrowany adres email..." #: ../libpurple/protocols/oscar/oscar.c:1 msgid "Show Buddies Awaiting Authorization" msgstr "Pokazuj u甜ytkownik坦w oczekuj�cych na autoryzacj�" #: ../libpurple/protocols/oscar/oscar.c:1 -msgid "Search for Buddy by E-Mail Address..." -msgstr "Szukaj znajomych wed�ug adresu e-mail..." +msgid "Search for Buddy by Email Address..." +msgstr "Szukaj znajomych wed�ug adresu email..." #: ../libpurple/protocols/oscar/oscar.c:1 msgid "Search for Buddy by Information" @@ -9076,10 +9070,6 @@ msgstr "_Zwi�" #: ../libpurple/protocols/qq/buddy_info.c:1 -msgid "Email" -msgstr "E-mail" - -#: ../libpurple/protocols/qq/buddy_info.c:1 msgid "Zipcode" msgstr "Kod pocztowy" @@ -11507,8 +11497,8 @@ #: ../libpurple/protocols/silc/util.c:1 ../libpurple/protocols/silc10/util.c:1 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:1 ../libpurple/protocols/silc10/util.c:1 #, c-format @@ -11835,8 +11825,8 @@ #: ../libpurple/protocols/toc/toc.c:1 #, c-format -msgid "E-mail lookup restricted." -msgstr "Zastrze甜one wyszukiwanie e-mail." +msgid "Email lookup restricted." +msgstr "Zastrze甜one wyszukiwanie email." #: ../libpurple/protocols/toc/toc.c:1 #, c-format @@ -14744,8 +14734,8 @@ msgstr "Kolor odno�nik坦w pod kursorem myszki." #: ../pidgin/gtkimhtml.c:1 -msgid "_Copy E-Mail Address" -msgstr "Skopiuj a_dres e-mail" +msgid "_Copy Email Address" +msgstr "Skopiuj a_dres email" #: ../pidgin/gtkimhtml.c:1 msgid "_Open Link in Browser" @@ -15137,7 +15127,7 @@ #: ../pidgin/gtknotify.c:1 msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>" -msgstr "<span weight=\"bold\" size=\"larger\">Masz wiadomo�� e-mail!</span>" +msgstr "<span weight=\"bold\" size=\"larger\">Masz wiadomo�� email!</span>" #: ../pidgin/gtknotify.c:1 #, c-format @@ -15149,11 +15139,11 @@ #: ../pidgin/gtknotify.c:1 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>Masz %d nowy e-mail.</b>" -msgstr[1] "<b>Masz %d nowe e-maile.</b>" -msgstr[2] "<b>Masz %d nowych e-maili.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>Masz %d nowy email.</b>" +msgstr[1] "<b>Masz %d nowe emaile.</b>" +msgstr[2] "<b>Masz %d nowych emaili.</b>" #: ../pidgin/gtknotify.c:1 #, c-format @@ -16459,24 +16449,24 @@ msgstr "_Skojarzenie kontaktu" #: ../pidgin/plugins/gevolution/gevolution.c:1 -msgid "Unable to send e-mail" -msgstr "Wys�anie wiadomo�ci e-mail nie powiod�o si�." +msgid "Unable to send email" +msgstr "Wys�anie wiadomo�ci email nie powiod�o si�." #: ../pidgin/plugins/gevolution/gevolution.c:1 msgid "The evolution executable was not found in the PATH." msgstr "Plik wykonywalny programu evolution nie znajduje si� w zmiennej PATH." #: ../pidgin/plugins/gevolution/gevolution.c:1 -msgid "An e-mail address was not found for this buddy." -msgstr "Nie znaleziono adresu e-mail dla tego znajomego." +msgid "An email address was not found for this buddy." +msgstr "Nie znaleziono adresu email dla tego znajomego." #: ../pidgin/plugins/gevolution/gevolution.c:1 msgid "Add to Address Book" msgstr "Dodaj do ksi�甜ki adresowej" #: ../pidgin/plugins/gevolution/gevolution.c:1 -msgid "Send E-Mail" -msgstr "Wy�lij E-mail" +msgid "Send Email" +msgstr "Wy�lij Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:1 @@ -16533,8 +16523,8 @@ msgstr "Nazwisko:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:1 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/ps.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ps.po Thu Jun 26 09:07:56 2008 +0000 @@ -3465,7 +3465,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "惡惘���悋��擧" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3499,16 +3499,6 @@ msgid "Purple Person" msgstr "��� 擧悋愕" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "惡惘���悋��擧" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "惡悋�悴��" @@ -5145,7 +5135,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "惡惘���悋��擧 拆惠�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6203,7 +6193,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "" #: ../libpurple/protocols/msn/error.c:49 @@ -6743,7 +6733,7 @@ msgstr "" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "愆悽惶� 惡惘���悋��擧 拆惠�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6805,7 +6795,7 @@ msgstr "" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "惆 擧悋惘�悋� 惡惘���悋��擧 拆惠�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8410,7 +8400,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8589,12 +8579,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8628,21 +8618,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8653,7 +8643,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "惆 %s 惡惘���悋��擧 拆惠� 惆 %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -8899,15 +8889,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -8937,11 +8927,11 @@ msgstr "愆��惘� 惓悋惡惠 擧�" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "悋�愕�� 惓惡惠 愆�� 惆 惡惘���悋��擧 拆惠� �擧悋惘� 擧�" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "悋�愕�� 惓惡惠 愆�� 惆 惡惘���悋��擧 拆惠� 惡惆�� 擧�..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -8949,7 +8939,7 @@ msgstr "�愃� ��擠惘� �擧悋惘� 擧� �� 惆 惠� 悋悴悋慍� 拆� 悋�惠惴悋惘 擧�� 惆�" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "惆 惡惘�愆�悋��擧 拆� 惠�擠� 惆 ��擠惘� �拏��..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9033,10 +9023,6 @@ msgid "College" msgstr "拆�����" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "惡惘���悋��擧 拆惠�" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "慍拆 惘�慍" @@ -11691,7 +11677,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "惡惘���悋��擧 拆惠�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12027,7 +12013,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -14845,7 +14831,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "" #: ../pidgin/gtkimhtml.c:1610 @@ -15230,8 +15216,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>惠悋 惠� %d ��� 惡惘���悋��擧 惘悋愃�� 惆�.</b>" msgstr[1] "<b>惠悋 惠� %d ��� 惡惘���悋��擧 惘悋愃�� 惆�.</b>" @@ -16436,7 +16422,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16444,7 +16430,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16452,7 +16438,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "惡惘���悋��擧 悋愕惠��" #. Configuration frame @@ -16510,7 +16496,7 @@ msgstr "悋悽惘� ���:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "惡惘���悋��擧" #. *< type
--- a/po/pt.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/pt.po Thu Jun 26 09:07:56 2008 +0000 @@ -86,7 +86,7 @@ #: ../finch/gntaccount.c:437 msgid "New mail notifications" -msgstr "Novas notifica巽探es de e-mail" +msgstr "Novas notifica巽探es de email" #: ../finch/gntaccount.c:447 msgid "Remember password" @@ -3635,8 +3635,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3670,17 +3670,6 @@ msgid "Purple Person" msgstr "Nova Pessoa" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "E-mail:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5110,7 +5099,7 @@ #: ../libpurple/protocols/jabber/buddy.c:1025 #, fuzzy msgid "Reachability Address" -msgstr "Endere巽o de e-mail" +msgstr "Endere巽o de email" #: ../libpurple/protocols/jabber/buddy.c:867 #: ../libpurple/protocols/jabber/buddy.c:1027 @@ -5397,8 +5386,8 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "Endere巽o de e-mail" +msgid "Email Address" +msgstr "Endere巽o de email" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6482,8 +6471,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Morada de e-mail inv叩lida" +msgid "Invalid email address" +msgstr "Morada de email inv叩lida" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -7038,7 +7027,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "T鱈tulo Pessoal" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7107,8 +7096,8 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" -msgstr "E-Mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -8802,12 +8791,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Recebeu um e-mail do ICQ de %s [%s]\n" +"Recebeu um email do ICQ de %s [%s]\n" "\n" "A mensagem 辿: \n" "%s" @@ -8992,13 +8981,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nenhum resultado encontrado para o endere巽o de e-mail %s" +msgid "No results found for email address %s" +msgstr "Nenhum resultado encontrado para o endere巽o de email %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Deve receber um e-mail pedindo para confirmar %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Deve receber um email pedindo para confirmar %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -9035,28 +9024,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Erro 0x%04x: Imposs鱈vel mudar endere巽o de e-mail porque j叩 existe um pedido " +"Erro 0x%04x: Imposs鱈vel mudar endere巽o de email porque j叩 existe um pedido " "pendente para esse nome de utilizador." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Erro 0x%04x: Imposs鱈vel mudar o endere巽o de e-mail porque este j叩 possui " +"Erro 0x%04x: Imposs鱈vel mudar o endere巽o de email porque este j叩 possui " "muitos nomes de utilizador associados a ele." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Erro 0x%04x: Imposs鱈vel mudar o endere巽o de e-mail porque este 辿 inv叩lido." +"Erro 0x%04x: Imposs鱈vel mudar o endere巽o de email porque este 辿 inv叩lido." #: ../libpurple/protocols/oscar/oscar.c:4023 #, c-format @@ -9065,8 +9054,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "O endere巽o de e-mail de %s 辿 %s" +msgid "The email address for %s is %s" +msgstr "O endere巽o de email de %s 辿 %s" #: ../libpurple/protocols/oscar/oscar.c:4035 msgid "Account Info" @@ -9351,16 +9340,16 @@ "neles e seleccionando \"Re-requisitar autoriza巽達o.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Encontrar Contacto por E-mail" +msgid "Find Buddy by Email" +msgstr "Encontrar Contacto por Email" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "Pesquisar Contactos por morada de e-mail" +msgid "Search for a buddy by email address" +msgstr "Pesquisar Contactos por morada de email" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Digite a morada de e-mail do contacto que pesquisa." +msgid "Type the email address of the buddy you are searching for." +msgstr "Digite a morada de email do contacto que pesquisa." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9391,12 +9380,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Mostrar o Endere巽o Registado Actualmente" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Mudar o Endere巽o Registado Actualmente..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9405,7 +9394,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Procurar Contacto por Email..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9498,10 +9487,6 @@ msgid "College" msgstr "Co_lapsar" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12317,7 +12302,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "EMail: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12664,8 +12649,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "Pesquisa por e-mail restrita." +msgid "Email lookup restricted." +msgstr "Pesquisa por email restrita." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -13801,7 +13786,7 @@ #: ../pidgin/gtkaccount.c:604 #, fuzzy msgid "New _mail notifications" -msgstr "Novas notifica巽探es de e-mail" +msgstr "Novas notifica巽探es de email" #. Buddy icon #: ../pidgin/gtkaccount.c:609 @@ -15614,8 +15599,8 @@ msgstr "Cor para desenhar elos quando o rato est叩 sobre eles." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Copiar Endere巽o de E-Mail" +msgid "_Copy Email Address" +msgstr "_Copiar Endere巽o de Email" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -16054,8 +16039,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>Detalhes do Plugin</b>" msgstr[1] "<b>Detalhes do Plugin</b>" @@ -16992,7 +16977,7 @@ #: ../pidgin/pidginstock.c:94 msgid "_Open Mail" -msgstr "_Abrir e-mail" +msgstr "_Abrir email" #: ../pidgin/pixmaps/emotes/default/24/default.theme.in.h:2 msgid "Pidgin smileys" @@ -17343,15 +17328,15 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" -msgstr "Imposs鱈vel enviar e-mail" +msgid "Unable to send email" +msgstr "Imposs鱈vel enviar email" #: ../pidgin/plugins/gevolution/gevolution.c:241 msgid "The evolution executable was not found in the PATH." msgstr "O programa evolution n達o foi encontrado no PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17359,8 +17344,8 @@ msgstr "Adicionar ao Livro de Endere巽os" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" -msgstr "Enviar E-Mail" +msgid "Send Email" +msgstr "Enviar Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -17421,8 +17406,8 @@ msgstr "�ltimo nome:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -17477,11 +17462,11 @@ #: ../pidgin/plugins/mailchk.c:160 msgid "Mail Checker" -msgstr "Verificador de e-mail" +msgstr "Verificador de email" #: ../pidgin/plugins/mailchk.c:162 msgid "Checks for new local mail." -msgstr "Verifica novos e-mails locais." +msgstr "Verifica novos emails locais." #: ../pidgin/plugins/mailchk.c:163 msgid "Adds a small box to the buddy list that shows if you have new mail."
--- a/po/pt_BR.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/pt_BR.po Thu Jun 26 09:07:56 2008 +0000 @@ -1369,7 +1369,7 @@ #: ../finch/gntnotify.c:226 ../pidgin/gtknotify.c:352 msgid "New Mail" -msgstr "Novo e-mail" +msgstr "Novo email" #: ../finch/gntnotify.c:291 ../pidgin/gtknotify.c:972 #, c-format @@ -3925,7 +3925,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" +msgid "Email" msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3957,16 +3957,6 @@ msgid "Purple Person" msgstr "Pessoa p炭rpura" -#: ../libpurple/protocols/bonjour/bonjour.c:704 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:986 -#: ../libpurple/protocols/silc/silc.c:1227 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5624,8 +5614,8 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3751 #: ../libpurple/protocols/oscar/oscar.c:3760 -msgid "E-Mail Address" -msgstr "Endere巽o de e-mail" +msgid "Email Address" +msgstr "Endere巽o de email" #: ../libpurple/protocols/jabber/buddy.c:2470 #: ../libpurple/protocols/jabber/buddy.c:2471 @@ -6684,8 +6674,8 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" -msgstr "Endere巽o de e-mail inv叩lido" +msgid "Invalid email address" +msgstr "Endere巽o de email inv叩lido" #: ../libpurple/protocols/msn/error.c:49 #: ../libpurple/protocols/msnp9/error.c:49 @@ -7296,8 +7286,8 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" -msgstr "E-Mail pessoal" +msgid "Personal Email" +msgstr "Email pessoal" #: ../libpurple/protocols/msn/msn.c:1827 #: ../libpurple/protocols/msnp9/msn.c:1668 @@ -7372,8 +7362,8 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" -msgstr "E-Mail de trabalho" +msgid "Work Email" +msgstr "Email de trabalho" #: ../libpurple/protocols/msn/msn.c:1858 #: ../libpurple/protocols/msnp9/msn.c:1699 @@ -9213,12 +9203,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2493 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Voc棚 recebeu um e-mail do ICQ de %s [%s]\n" +"Voc棚 recebeu um email do ICQ de %s [%s]\n" "\n" "A mensagem 辿: \n" "%s" @@ -9398,13 +9388,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3985 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nenhum resultado encontrado para o endere巽o de e-mail %s" +msgid "No results found for email address %s" +msgstr "Nenhum resultado encontrado para o endere巽o de email %s" #: ../libpurple/protocols/oscar/oscar.c:4006 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Voc棚 deve receber um e-mail pedindo para confirmar %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Voc棚 deve receber um email pedindo para confirmar %s." #: ../libpurple/protocols/oscar/oscar.c:4008 msgid "Account Confirmation Requested" @@ -9437,28 +9427,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4047 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Erro 0x%04x: N達o foi poss鱈vel mudar endere巽o de e-mail porque j叩 existe um " +"Erro 0x%04x: N達o foi poss鱈vel mudar endere巽o de email porque j叩 existe um " "pedido pendente para esse nome de usu叩rio." #: ../libpurple/protocols/oscar/oscar.c:4049 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Erro 0x%04x: N達o foi poss鱈vel mudar o endere巽o de e-mail porque este j叩 " +"Erro 0x%04x: N達o foi poss鱈vel mudar o endere巽o de email porque este j叩 " "possui muitos nomes de usu叩rio associados a ele." #: ../libpurple/protocols/oscar/oscar.c:4051 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Erro 0x%04x: N達o foi poss鱈vel mudar o endere巽o de e-mail porque este 辿 " +"Erro 0x%04x: N達o foi poss鱈vel mudar o endere巽o de email porque este 辿 " "inv叩lido." #: ../libpurple/protocols/oscar/oscar.c:4053 @@ -9472,8 +9462,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4061 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "O endere巽o de e-mail de %s 辿 %s" +msgid "The email address for %s is %s" +msgstr "O endere巽o de email de %s 辿 %s" #: ../libpurple/protocols/oscar/oscar.c:4063 msgid "Account Info" @@ -9749,16 +9739,16 @@ "direito neles e selecionando \"Re-requisitar autoriza巽達o.\"" #: ../libpurple/protocols/oscar/oscar.c:6345 -msgid "Find Buddy by E-Mail" -msgstr "Encontrar amigo por e-mail" +msgid "Find Buddy by Email" +msgstr "Encontrar amigo por email" #: ../libpurple/protocols/oscar/oscar.c:6346 -msgid "Search for a buddy by e-mail address" -msgstr "Pesquisar por um amigo pelo endere巽o de e-mail" +msgid "Search for a buddy by email address" +msgstr "Pesquisar por um amigo pelo endere巽o de email" #: ../libpurple/protocols/oscar/oscar.c:6347 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Digite o endere巽o de e-mail do amigo que voc棚 est叩 procurando." +msgid "Type the email address of the buddy you are searching for." +msgstr "Digite o endere巽o de email do amigo que voc棚 est叩 procurando." #: ../libpurple/protocols/oscar/oscar.c:6350 msgid "_Search" @@ -9787,20 +9777,20 @@ msgstr "Confirmar conta" #: ../libpurple/protocols/oscar/oscar.c:6544 -msgid "Display Currently Registered E-Mail Address" -msgstr "Mostrar o endere巽o de E-Mail registrado atualmente" +msgid "Display Currently Registered Email Address" +msgstr "Mostrar o endere巽o de Email registrado atualmente" #: ../libpurple/protocols/oscar/oscar.c:6548 -msgid "Change Currently Registered E-Mail Address..." -msgstr "Mudar o endere巽o de E-Mail registrado atualmente..." +msgid "Change Currently Registered Email Address..." +msgstr "Mudar o endere巽o de Email registrado atualmente..." #: ../libpurple/protocols/oscar/oscar.c:6555 msgid "Show Buddies Awaiting Authorization" msgstr "Mostrar amigos esperando autoriza巽達o" #: ../libpurple/protocols/oscar/oscar.c:6561 -msgid "Search for Buddy by E-Mail Address..." -msgstr "Procurar por amigos pelo endere巽o de E-Mail..." +msgid "Search for Buddy by Email Address..." +msgstr "Procurar por amigos pelo endere巽o de Email..." #: ../libpurple/protocols/oscar/oscar.c:6566 msgid "Search for Buddy by Information" @@ -9881,10 +9871,6 @@ msgid "College" msgstr "Universidade" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "C坦digo Postal (CEP)" @@ -12625,8 +12611,8 @@ #: ../libpurple/protocols/silc/util.c:367 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:369 #: ../libpurple/protocols/silc10/util.c:361 @@ -12951,8 +12937,8 @@ msgstr "Servi巽o de diret坦rio temporariamente indispon鱈vel." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." -msgstr "Pesquisa por e-mail restrita." +msgid "Email lookup restricted." +msgstr "Pesquisa por email restrita." #: ../libpurple/protocols/toc/toc.c:533 msgid "Keyword ignored." @@ -16024,8 +16010,8 @@ msgstr "Habilitar notifica巽達o de digita巽達o" #: ../pidgin/gtkimhtml.c:1688 -msgid "_Copy E-Mail Address" -msgstr "_Copiar endere巽o de e-mail" +msgid "_Copy Email Address" +msgstr "_Copiar endere巽o de email" #: ../pidgin/gtkimhtml.c:1700 msgid "_Open Link in Browser" @@ -16436,7 +16422,7 @@ #: ../pidgin/gtknotify.c:414 msgid "<span weight=\"bold\" size=\"larger\">You have mail!</span>" -msgstr "<span weight=\"bold\" size=\"larger\">Voc棚 tem e-mail!</span>" +msgstr "<span weight=\"bold\" size=\"larger\">Voc棚 tem email!</span>" #: ../pidgin/gtknotify.c:563 #, c-format @@ -16447,10 +16433,10 @@ #: ../pidgin/gtknotify.c:587 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d novo e-mail.</b>" -msgstr[1] "<b>%d novos e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d novo email.</b>" +msgstr[1] "<b>%d novos emails.</b>" #: ../pidgin/gtknotify.c:1021 #, c-format @@ -17436,7 +17422,7 @@ #: ../pidgin/pidginstock.c:94 msgid "_Open Mail" -msgstr "_Abrir e-mail" +msgstr "_Abrir email" #: ../pidgin/pidgintooltip.c:100 msgid "Pidgin Tooltip" @@ -17776,24 +17762,24 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" -msgstr "N達o foi poss鱈vel enviar e-mail." +msgid "Unable to send email" +msgstr "N達o foi poss鱈vel enviar email." #: ../pidgin/plugins/gevolution/gevolution.c:243 msgid "The evolution executable was not found in the PATH." msgstr "O execut叩vel do evolution n達o foi encontrado no PATH." #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." -msgstr "N達o foi encontrado um endere巽o de E-Mail para este amigo." +msgid "An email address was not found for this buddy." +msgstr "N達o foi encontrado um endere巽o de Email para este amigo." #: ../pidgin/plugins/gevolution/gevolution.c:275 msgid "Add to Address Book" msgstr "Adicionar ao cat叩logo de endere巽os" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" -msgstr "Enviar e-mail" +msgid "Send Email" +msgstr "Enviar email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:414 @@ -17851,8 +17837,8 @@ msgstr "Sobrenome:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement @@ -17908,11 +17894,11 @@ #: ../pidgin/plugins/mailchk.c:160 msgid "Mail Checker" -msgstr "Verificador de e-mail" +msgstr "Verificador de email" #: ../pidgin/plugins/mailchk.c:162 msgid "Checks for new local mail." -msgstr "Verifica novos e-mails locais." +msgstr "Verifica novos emails locais." #: ../pidgin/plugins/mailchk.c:163 msgid "Adds a small box to the buddy list that shows if you have new mail."
--- a/po/ro.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ro.po Thu Jun 26 09:07:56 2008 +0000 @@ -3916,7 +3916,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" +msgid "Email" msgstr "Mail" #: ../libpurple/protocols/bonjour/bonjour.c:402 @@ -3948,16 +3948,6 @@ msgid "Purple Person" msgstr "Persoan� Purple" -#: ../libpurple/protocols/bonjour/bonjour.c:705 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:986 -#: ../libpurple/protocols/silc/silc.c:1227 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "Mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5626,7 +5616,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3753 #: ../libpurple/protocols/oscar/oscar.c:3762 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Adres� de mail" #: ../libpurple/protocols/jabber/buddy.c:2471 @@ -6680,7 +6670,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Adres� de mail invalid�" #: ../libpurple/protocols/msn/error.c:49 @@ -7291,7 +7281,7 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Mail privat" #: ../libpurple/protocols/msn/msn.c:1827 @@ -7367,7 +7357,7 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Mail serviciu" #: ../libpurple/protocols/msn/msn.c:1858 @@ -9229,7 +9219,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2495 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9424,12 +9414,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3987 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Nu s-a g�sit nici un rezultat pentru adresa de mail %s" #: ../libpurple/protocols/oscar/oscar.c:4008 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Ar trebui s� primi釘i un mail care s� v� cear� confirmarea %s." #: ../libpurple/protocols/oscar/oscar.c:4010 @@ -9464,7 +9454,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4049 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Eroare 0x%04x: Nu se poate schimba adresa de mail pentru c� exist� deja o " @@ -9473,7 +9463,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4051 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Eroare 0x%04x: Nu se poate schimba adresa de mail pentru c� adresa introdus� " @@ -9482,7 +9472,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4053 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Eroare 0x%04x: Nu se poate schimba adresa de mail pentru c� adresa introdus� " @@ -9499,7 +9489,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4063 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Adresa de mail pentru %s este %s" #: ../libpurple/protocols/oscar/oscar.c:4065 @@ -9781,15 +9771,15 @@ "din nou autorizare�� dup� un click dreapta pe nume 樽n lista contactelor." #: ../libpurple/protocols/oscar/oscar.c:6347 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "C�utare contact dup� adresa de mail" #: ../libpurple/protocols/oscar/oscar.c:6348 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "C�utare contact dup� adresa de mail" #: ../libpurple/protocols/oscar/oscar.c:6349 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Introduce釘i adresa de mail a contactului c�utat:" #: ../libpurple/protocols/oscar/oscar.c:6352 @@ -9819,11 +9809,11 @@ msgstr "Confirmare cont" #: ../libpurple/protocols/oscar/oscar.c:6546 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Afi�are adres� de mail 樽nregistrat� curent" #: ../libpurple/protocols/oscar/oscar.c:6550 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Schimbare adres� de mail 樽nregistrat� curent..." #: ../libpurple/protocols/oscar/oscar.c:6557 @@ -9831,7 +9821,7 @@ msgstr "Afi�are contacte ce a�teapt� autorizarea" #: ../libpurple/protocols/oscar/oscar.c:6563 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "C�utare contact dup� adresa de mail..." #: ../libpurple/protocols/oscar/oscar.c:6568 @@ -9913,10 +9903,6 @@ msgid "College" msgstr "Colegiu" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Mail" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Cod po�tal" @@ -12656,7 +12642,7 @@ #: ../libpurple/protocols/silc/util.c:367 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "Adres� de mail: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:369 @@ -12981,7 +12967,7 @@ msgstr "Serviciul ��Dir�� este temporar indisponibil." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "C�utarea dup� adresa de mail este restric釘ionat�." #: ../libpurple/protocols/toc/toc.c:533 @@ -16069,7 +16055,7 @@ msgstr "Activeaz� mesajele de notificare" #: ../pidgin/gtkimhtml.c:1688 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "C_opiaz� adresa de mail" #: ../pidgin/gtkimhtml.c:1700 @@ -16493,8 +16479,8 @@ #: ../pidgin/gtknotify.c:599 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>un mail nou.</b>" msgstr[1] "<b>%d mailuri noi.</b>" msgstr[2] "<b>%d de mailuri noi.</b>" @@ -17814,7 +17800,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Trimiterea mailului a e�uat." #: ../pidgin/plugins/gevolution/gevolution.c:243 @@ -17822,7 +17808,7 @@ msgstr "Executabilul ��evolution�� nu a fost g�sit 樽n PATH." #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Nu s-a g�sit o adres� de mail pentru acest contact." #: ../pidgin/plugins/gevolution/gevolution.c:275 @@ -17830,7 +17816,7 @@ msgstr "Adaug� 樽n agend�" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Trimite mail" #. Configuration frame @@ -17889,7 +17875,7 @@ msgstr "Nume de familie:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" +msgid "Email:" msgstr "Mail:" #. *< type
--- a/po/ru.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ru.po Thu Jun 26 09:07:56 2008 +0000 @@ -1331,7 +1331,7 @@ #: ../finch/gntnotify.c:165 msgid "Emails" -msgstr "�亟�亠�舒 e-mail" +msgstr "�亟�亠�舒 email" #: ../finch/gntnotify.c:171 ../finch/gntnotify.c:226 msgid "You have mail!" @@ -3852,8 +3852,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:555 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1068 -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:402 #: ../libpurple/protocols/bonjour/bonjour.c:708 @@ -3884,16 +3884,6 @@ msgid "Purple Person" msgstr "" -#: ../libpurple/protocols/bonjour/bonjour.c:705 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:998 -#: ../libpurple/protocols/silc/silc.c:986 -#: ../libpurple/protocols/silc/silc.c:1227 -#: ../libpurple/protocols/silc10/silc.c:687 -#: ../libpurple/protocols/silc10/silc.c:928 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5543,8 +5533,8 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3753 #: ../libpurple/protocols/oscar/oscar.c:3762 -msgid "E-Mail Address" -msgstr "�亟�亠� e-mail" +msgid "Email Address" +msgstr "�亟�亠� email" #: ../libpurple/protocols/jabber/buddy.c:2471 #: ../libpurple/protocols/jabber/buddy.c:2472 @@ -6591,8 +6581,8 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "�亠于亠�仆�亶 舒亟�亠� e-mail" +msgid "Invalid email address" +msgstr "�亠于亠�仆�亶 舒亟�亠� email" #: ../libpurple/protocols/msn/error.c:49 #: ../libpurple/protocols/msnp9/error.c:49 @@ -7250,8 +7240,8 @@ #: ../libpurple/protocols/msn/msn.c:1826 #: ../libpurple/protocols/msnp9/msn.c:1667 -msgid "Personal E-Mail" -msgstr "�亠��仂仆舒仍�仆�亶 e-mail" +msgid "Personal Email" +msgstr "�亠��仂仆舒仍�仆�亶 email" #: ../libpurple/protocols/msn/msn.c:1827 #: ../libpurple/protocols/msnp9/msn.c:1668 @@ -7326,8 +7316,8 @@ #: ../libpurple/protocols/msn/msn.c:1857 #: ../libpurple/protocols/msnp9/msn.c:1698 -msgid "Work E-Mail" -msgstr "�舒弍仂�亳亶 e-mail" +msgid "Work Email" +msgstr "�舒弍仂�亳亶 email" #: ../libpurple/protocols/msn/msn.c:1858 #: ../libpurple/protocols/msnp9/msn.c:1699 @@ -9137,12 +9127,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2495 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"�� 仗仂仍��亳仍亳 ICQ e-mail 仂� %s [%s]\n" +"�� 仗仂仍��亳仍亳 ICQ email 仂� %s [%s]\n" "\n" "弌仂仂弍�亠仆亳亠:\n" "%s" @@ -9339,13 +9329,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3987 #, c-format -msgid "No results found for e-mail address %s" -msgstr "�亳�亠亞仂 仆亠 仆舒亶亟亠仆仂 亟仍� 舒亟�亠�舒 e-mail %s" +msgid "No results found for email address %s" +msgstr "�亳�亠亞仂 仆亠 仆舒亶亟亠仆仂 亟仍� 舒亟�亠�舒 email %s" #: ../libpurple/protocols/oscar/oscar.c:4008 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "�� 亟仂仍亢仆� 仗仂仍��亳�� e-mail � 仗�仂��弍仂亶 仗仂亟�于亠�亟亳�� %s." +msgid "You should receive an email asking to confirm %s." +msgstr "�� 亟仂仍亢仆� 仗仂仍��亳�� email � 仗�仂��弍仂亶 仗仂亟�于亠�亟亳�� %s." #: ../libpurple/protocols/oscar/oscar.c:4010 msgid "Account Confirmation Requested" @@ -9379,28 +9369,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4049 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"��亳弍从舒 0x%04x: �亠 �亟舒���� 亳亰仄亠仆亳�� 舒亟�亠� e-mail, �舒从 从舒从 亟仍� ��仂亞仂 亳仄亠仆亳 " +"��亳弍从舒 0x%04x: �亠 �亟舒���� 亳亰仄亠仆亳�� 舒亟�亠� email, �舒从 从舒从 亟仍� ��仂亞仂 亳仄亠仆亳 " "仗仂仍�亰仂于舒�亠仍� �亢亠 亠��� 仂亢亳亟舒��亳亶 亰舒仗�仂�." #: ../libpurple/protocols/oscar/oscar.c:4051 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"��亳弍从舒 0x%04x: �亠 �亟舒���� 亳亰仄亠仆亳�� 舒亟�亠� e-mail, �舒从 从舒从 � 亰舒亟舒仆仆�仄 舒亟�亠�仂仄 " +"��亳弍从舒 0x%04x: �亠 �亟舒���� 亳亰仄亠仆亳�� 舒亟�亠� email, �舒从 从舒从 � 亰舒亟舒仆仆�仄 舒亟�亠�仂仄 " "�仂仂�仆亠�亠仆仂 �仍亳�从仂仄 仄仆仂亞仂 亳仄�仆 仗仂仍�亰仂于舒�亠仍亠亶." #: ../libpurple/protocols/oscar/oscar.c:4053 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"��亳弍从舒 0x%04x: �亠 �亟舒���� 亳亰仄亠仆亳�� 舒亟�亠� e-mail, �舒从 从舒从 亰舒亟舒仆仆�亶 舒亟�亠� " +"��亳弍从舒 0x%04x: �亠 �亟舒���� 亳亰仄亠仆亳�� 舒亟�亠� email, �舒从 从舒从 亰舒亟舒仆仆�亶 舒亟�亠� " "仆亠于亠�亠仆." #: ../libpurple/protocols/oscar/oscar.c:4055 @@ -9414,8 +9404,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4063 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "�亟�亠� e-mail 亟仍� %s: %s" +msgid "The email address for %s is %s" +msgstr "�亟�亠� email 亟仍� %s: %s" #: ../libpurple/protocols/oscar/oscar.c:4065 msgid "Account Info" @@ -9690,16 +9680,16 @@ "仆亳� 仗�舒于仂亶 从仆仂仗从仂亶 仄��亳 亳 于�弍�舒于 \"�仂于�仂�仆�亶 亰舒仗�仂� 舒于�仂�亳亰舒�亳亳\"." #: ../libpurple/protocols/oscar/oscar.c:6347 -msgid "Find Buddy by E-Mail" -msgstr "�舒亶�亳 �仂弍亠�亠亟仆亳从舒 仗仂 e-mail" +msgid "Find Buddy by Email" +msgstr "�舒亶�亳 �仂弍亠�亠亟仆亳从舒 仗仂 email" #: ../libpurple/protocols/oscar/oscar.c:6348 -msgid "Search for a buddy by e-mail address" -msgstr "��从舒�� �仂弍亠�亠亟仆亳从舒 仗仂 舒亟�亠�� e-mail" +msgid "Search for a buddy by email address" +msgstr "��从舒�� �仂弍亠�亠亟仆亳从舒 仗仂 舒亟�亠�� email" #: ../libpurple/protocols/oscar/oscar.c:6349 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "�于亠亟亳�亠 舒亟�亠� e-mail �仂弍亠�亠亟仆亳从舒, 从仂�仂�仂亞仂 于� 亳�亠�亠." +msgid "Type the email address of the buddy you are searching for." +msgstr "�于亠亟亳�亠 舒亟�亠� email �仂弍亠�亠亟仆亳从舒, 从仂�仂�仂亞仂 于� 亳�亠�亠." #: ../libpurple/protocols/oscar/oscar.c:6352 msgid "_Search" @@ -9728,20 +9718,20 @@ msgstr "�仂亟�于亠�亟亳�� ����仆�� 亰舒仗亳��" #: ../libpurple/protocols/oscar/oscar.c:6546 -msgid "Display Currently Registered E-Mail Address" -msgstr "�仂从舒亰舒�� �亠从��亳亶 亰舒�亠亞亳���亳�仂于舒仆仆�亶 舒亟�亠� e-mail" +msgid "Display Currently Registered Email Address" +msgstr "�仂从舒亰舒�� �亠从��亳亶 亰舒�亠亞亳���亳�仂于舒仆仆�亶 舒亟�亠� email" #: ../libpurple/protocols/oscar/oscar.c:6550 -msgid "Change Currently Registered E-Mail Address..." -msgstr "�亰仄亠仆亳�� �亠从��亳亶 亰舒�亠亞亳���亳�仂于舒仆仆�亶 舒亟�亠� e-mail..." +msgid "Change Currently Registered Email Address..." +msgstr "�亰仄亠仆亳�� �亠从��亳亶 亰舒�亠亞亳���亳�仂于舒仆仆�亶 舒亟�亠� email..." #: ../libpurple/protocols/oscar/oscar.c:6557 msgid "Show Buddies Awaiting Authorization" msgstr "�仂从舒亰舒�� �仂弍亠�亠亟仆亳从仂于 弍亠亰 舒于�仂�亳亰舒�亳亳" #: ../libpurple/protocols/oscar/oscar.c:6563 -msgid "Search for Buddy by E-Mail Address..." -msgstr "��从舒�� �仂弍亠�亠亟仆亳从舒 仗仂 舒亟�亠�� e-mail..." +msgid "Search for Buddy by Email Address..." +msgstr "��从舒�� �仂弍亠�亠亟仆亳从舒 仗仂 舒亟�亠�� email..." #: ../libpurple/protocols/oscar/oscar.c:6568 msgid "Search for Buddy by Information" @@ -9820,10 +9810,6 @@ msgid "College" msgstr "" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-mail" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "�仆亟亠从�" @@ -12516,8 +12502,8 @@ #: ../libpurple/protocols/silc/util.c:367 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:369 #: ../libpurple/protocols/silc10/util.c:361 @@ -12847,8 +12833,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "�仂亳�从 e-mail 亰舒仗�亠��仆." +msgid "Email lookup restricted." +msgstr "�仂亳�从 email 亰舒仗�亠��仆." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -15896,8 +15882,8 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1688 -msgid "_Copy E-Mail Address" -msgstr "_弌从仂仗亳�仂于舒�� 舒亟�亠� e-mail" +msgid "_Copy Email Address" +msgstr "_弌从仂仗亳�仂于舒�� 舒亟�亠� email" #: ../pidgin/gtkimhtml.c:1700 msgid "_Open Link in Browser" @@ -16303,8 +16289,8 @@ #: ../pidgin/gtknotify.c:599 #, fuzzy, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>�仂亟�仂弍仆仂��亳 仂 仄仂亟�仍亠</b>" msgstr[1] "<b>�仂亟�仂弍仆仂��亳 仂 仄仂亟�仍亠</b>" msgstr[2] "<b>�仂亟�仂弍仆仂��亳 仂 仄仂亟�仍亠</b>" @@ -17608,15 +17594,15 @@ #: ../pidgin/plugins/gevolution/gevolution.c:242 #: ../pidgin/plugins/gevolution/gevolution.c:248 -msgid "Unable to send e-mail" -msgstr "�亠 �亟舒���� 仂�仗�舒于亳�� e-mail" +msgid "Unable to send email" +msgstr "�亠 �亟舒���� 仂�仗�舒于亳�� email" #: ../pidgin/plugins/gevolution/gevolution.c:243 msgid "The evolution executable was not found in the PATH." msgstr "��仗仂仍仆�亠仄�亶 �舒亶仍 evolution 仆亠 弍�仍 仆舒亶亟亠仆 于 PATH." #: ../pidgin/plugins/gevolution/gevolution.c:249 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:275 @@ -17624,8 +17610,8 @@ msgstr "�仂弍舒于亳�� 于 舒亟�亠�仆�� 从仆亳亞�" #: ../pidgin/plugins/gevolution/gevolution.c:287 -msgid "Send E-Mail" -msgstr "��仗�舒于亳�� e-mail" +msgid "Send Email" +msgstr "��仗�舒于亳�� email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:414 @@ -17684,8 +17670,8 @@ msgstr "个舒仄亳仍亳�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:380 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/si.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/si.po Thu Jun 26 09:07:56 2008 +0000 @@ -3496,7 +3496,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "犒�犒�犇����犇材�犇〝� 犇〝�犇巌�犇�:" #: ../libpurple/protocols/bonjour/bonjour.c:385 @@ -3528,16 +3528,6 @@ msgid "Purple Person" msgstr "" -#: ../libpurple/protocols/bonjour/bonjour.c:687 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:961 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "犒�犒�犇����犇材�犇〝� 犇〝�犇巌�犇�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5155,7 +5145,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3724 #: ../libpurple/protocols/oscar/oscar.c:3733 -msgid "E-Mail Address" +msgid "Email Address" msgstr "犒�犒�犇����犇材�犇〝� 犇〝�犇巌�犇準� 犇準�犇巌�犇園矯" #: ../libpurple/protocols/jabber/buddy.c:2423 @@ -6176,7 +6166,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "" #: ../libpurple/protocols/msn/error.c:49 @@ -6765,7 +6755,7 @@ #: ../libpurple/protocols/msn/msn.c:1804 #: ../libpurple/protocols/msnp9/msn.c:1657 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "" #: ../libpurple/protocols/msn/msn.c:1805 @@ -6841,7 +6831,7 @@ #: ../libpurple/protocols/msn/msn.c:1835 #: ../libpurple/protocols/msnp9/msn.c:1688 -msgid "Work E-Mail" +msgid "Work Email" msgstr "" #: ../libpurple/protocols/msn/msn.c:1836 @@ -8544,7 +8534,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2449 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8721,12 +8711,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3958 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3979 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3981 @@ -8759,21 +8749,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4024 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4027 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4030 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8784,7 +8774,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4043 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4045 @@ -9029,15 +9019,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6281 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6282 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6283 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6286 @@ -9067,11 +9057,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6480 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6484 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6491 @@ -9079,7 +9069,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6497 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6502 @@ -9162,10 +9152,6 @@ msgid "College" msgstr "" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "犒�犒�犇����犇材�犇〝� 犇〝�犇巌�犇�" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "" @@ -11793,7 +11779,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "" #: ../libpurple/protocols/silc/util.c:370 @@ -12111,7 +12097,7 @@ msgstr "" #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -14935,7 +14921,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1581 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "" #: ../pidgin/gtkimhtml.c:1593 @@ -15304,8 +15290,8 @@ #: ../pidgin/gtknotify.c:570 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -16550,7 +16536,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16558,7 +16544,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16566,7 +16552,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "" #. Configuration frame @@ -16624,7 +16610,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "" #. *< type
--- a/po/sk.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/sk.po Thu Jun 26 09:07:56 2008 +0000 @@ -823,7 +823,7 @@ msgstr "Syst辿mov箪 z叩znam" msgid "Emails" -msgstr "E-maily" +msgstr "Emaily" msgid "You have mail!" msgstr "M叩te po邸tu!" @@ -2750,8 +2750,8 @@ msgid "Last name" msgstr "Priezvisko" -msgid "E-Mail" -msgstr "E-mail" +msgid "Email" +msgstr "Email" msgid "AIM Account" msgstr "AIM 炭�et" @@ -2775,9 +2775,6 @@ msgid "Purple Person" msgstr "Fialov叩 osoba" -msgid "E-mail" -msgstr "E-mail" - msgid "Bonjour" msgstr "Bonjour" @@ -3854,8 +3851,8 @@ msgstr "" "Vypl�te jedno alebo viac pol鱈�ok na h直adanie vyhovuj炭cich XMPP pou転鱈vate直ov." -msgid "E-Mail Address" -msgstr "E-mailov叩 adresa" +msgid "Email Address" +msgstr "Emailov叩 adresa" msgid "Search for XMPP users" msgstr "Vyh直ad叩vanie pou転鱈vate直ov XMPP" @@ -4588,8 +4585,8 @@ msgid "Syntax Error (probably a client bug)" msgstr "Chyba syntaxe (pravdepodobne chyba v klientovi)" -msgid "Invalid e-mail address" -msgstr "Chybn叩 e-mailov叩 adresa" +msgid "Invalid email address" +msgstr "Chybn叩 emailov叩 adresa" msgid "User does not exist" msgstr "Pou転鱈vate直 neexistuje" @@ -4946,8 +4943,8 @@ msgid "Home Fax" msgstr "Fax domov" -msgid "Personal E-Mail" -msgstr "Osobn箪 e-mail" +msgid "Personal Email" +msgstr "Osobn箪 email" msgid "Personal IM" msgstr "Osobn辿 IM" @@ -4989,8 +4986,8 @@ msgid "Work Fax" msgstr "Slu転obn箪 fax" -msgid "Work E-Mail" -msgstr "Pracovn箪 e-mail" +msgid "Work Email" +msgstr "Pracovn箪 email" msgid "Work IM" msgstr "Pracovn辿 IM" @@ -6337,12 +6334,12 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Pri邸iel v叩m e-mail od pou転鱈vate直a %s [%s]\n" +"Pri邸iel v叩m email od pou転鱈vate直a %s [%s]\n" "\n" "Spr叩va je:\n" "%s" @@ -6492,12 +6489,12 @@ msgstr[2] "Nasleduj炭ce pou転鱈vate直sk辿 men叩 s炭 asociovan辿 s %s" #, c-format -msgid "No results found for e-mail address %s" -msgstr "Pre e-mailov炭 %s adresu neboli n叩jden辿 転iadne v箪sledky" - -#, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Mali by ste prija泥 e-mail so 転iados泥ou o potvrdenie %s." +msgid "No results found for email address %s" +msgstr "Pre emailov炭 %s adresu neboli n叩jden辿 転iadne v箪sledky" + +#, c-format +msgid "You should receive an email asking to confirm %s." +msgstr "Mali by ste prija泥 email so 転iados泥ou o potvrdenie %s." msgid "Account Confirmation Requested" msgstr "Bolo vy転iadan辿 podvrdenie 炭�tu" @@ -6525,26 +6522,26 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" -"Chyba 0x%04x: Nepodarilo sa zmeni泥 e-mailov炭 adresu, preto転e o toto " +"Chyba 0x%04x: Nepodarilo sa zmeni泥 emailov炭 adresu, preto転e o toto " "pou転鱈vate直sk辿 meno je dan叩 転iados泥." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" -"Chyba 0x%04x: E-mailov叩 adresa sa ned叩 zmeni泥, preto転e t叩to adresa m叩 so " +"Chyba 0x%04x: Emailov叩 adresa sa ned叩 zmeni泥, preto転e t叩to adresa m叩 so " "sebou asociovan箪ch ve直mi ve直a pou転鱈vate直sk箪ch mien." #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Chyba 0x%04x: Nepodarilo sa zmeni泥 e-mailov炭 adresu, preto転e zadan叩 adresa " +"Chyba 0x%04x: Nepodarilo sa zmeni泥 emailov炭 adresu, preto転e zadan叩 adresa " "je chybn叩." #, c-format @@ -6555,8 +6552,8 @@ msgstr "Chyba pri zmene podrobnost鱈 炭�tu" #, c-format -msgid "The e-mail address for %s is %s" -msgstr "E-mailov叩 adresa pou転鱈vate直a %s je %s" +msgid "The email address for %s is %s" +msgstr "Emailov叩 adresa pou転鱈vate直a %s je %s" msgid "Account Info" msgstr "Podrobnosti o 炭�te" @@ -6626,7 +6623,7 @@ "numbers and spaces, or contain only numbers." msgstr "" "Nepodarilo sa prida泥 priate直a %s, preto転e pou転鱈vate直sk辿 meno je chybn辿. " -"Pou転鱈vate直sk辿 men叩 musia by泥 v tvare e-mailovej adresy, �鱈sla, alebo mus鱈 " +"Pou転鱈vate直sk辿 men叩 musia by泥 v tvare emailovej adresy, �鱈sla, alebo mus鱈 " "by泥 prv箪 znak p鱈smeno a ostatn辿 znaky s炭 p鱈smen叩, �鱈sla a medzery." msgid "Unable To Add" @@ -6778,14 +6775,14 @@ "T箪chto priate直ov m担転ete znovu po転iada泥 o autoriz叩ciu, ke� na nich kliknete " "prav箪m tla�idlom a vyberiete mo転nos泥 ��Znovu po転iada泥 o autoriz叩ciu��." -msgid "Find Buddy by E-Mail" -msgstr "N叩js泥 priate直a pod直a E-mailu" - -msgid "Search for a buddy by e-mail address" -msgstr "Vyh直ad叩va泥 priate直ov pod直a e-mailovej adresy" - -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Zadajte e-mailov炭 adresu priate直a, ktor辿ho h直ad叩te." +msgid "Find Buddy by Email" +msgstr "N叩js泥 priate直a pod直a Emailu" + +msgid "Search for a buddy by email address" +msgstr "Vyh直ad叩va泥 priate直ov pod直a emailovej adresy" + +msgid "Type the email address of the buddy you are searching for." +msgstr "Zadajte emailov炭 adresu priate直a, ktor辿ho h直ad叩te." msgid "_Search" msgstr "_H直ada泥" @@ -6807,16 +6804,16 @@ msgid "Confirm Account" msgstr "Potvrdi泥 炭�et" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Zobrazi泥 moment叩lne registrovan炭 e-maiov炭 adresu" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Zmeni泥 moment叩lne registrovan炭 e-maiov炭 adresu..." msgid "Show Buddies Awaiting Authorization" msgstr "Zobrazi泥 priate直ov, ktor鱈 �akaj炭 na autoriz叩ciu" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "H直ada泥 priate直a pod直a e-maiovej adresy..." msgid "Search for Buddy by Information" @@ -6881,9 +6878,6 @@ msgid "College" msgstr "�kola" -msgid "Email" -msgstr "E-mail" - msgid "Zipcode" msgstr "PS�" @@ -8637,8 +8631,8 @@ msgstr "Prihlasovacie meno: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #, c-format msgid "Host Name: \t%s\n" @@ -8876,8 +8870,8 @@ msgid "Dir service temporarily unavailable." msgstr "Slu転ba dir je do�asne nedostupn叩" -msgid "E-mail lookup restricted." -msgstr "Vyh直ad叩vanie e-mailu obmedzen辿." +msgid "Email lookup restricted." +msgstr "Vyh直ad叩vanie emailu obmedzen辿." msgid "Keyword ignored." msgstr "K直炭�ov辿 slovo bolo ignorovan辿." @@ -11230,8 +11224,8 @@ msgid "Enable typing notification" msgstr "Povoli泥 inform叩ciu o p鱈san鱈" -msgid "_Copy E-Mail Address" -msgstr "_Kop鱈rova泥 e-mailovu adresu" +msgid "_Copy Email Address" +msgstr "_Kop鱈rova泥 emailovu adresu" msgid "_Open Link in Browser" msgstr "_Otvori泥 odkaz v prehliada�i" @@ -11578,11 +11572,11 @@ msgstr[2] "Pou転鱈vate直 %s m叩 %d nov辿 spr叩vy." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" -msgstr[0] "<b>%d nov箪ch e-mailov.</b>" -msgstr[1] "<b>%d nov箪 e-mail.</b>" -msgstr[2] "<b>%d nov辿 e-maily.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" +msgstr[0] "<b>%d nov箪ch emailov.</b>" +msgstr[1] "<b>%d nov箪 email.</b>" +msgstr[2] "<b>%d nov辿 emaily.</b>" #, c-format msgid "The browser command \"%s\" is invalid." @@ -12611,20 +12605,20 @@ msgid "_Associate Buddy" msgstr "_Priradi泥 priate直a" -msgid "Unable to send e-mail" -msgstr "Nepodarilo sa odosla泥 e-mail" +msgid "Unable to send email" +msgstr "Nepodarilo sa odosla泥 email" msgid "The evolution executable was not found in the PATH." msgstr "Sp炭邸泥a� programu evolution nebol n叩jden箪 v premennej PATH." -msgid "An e-mail address was not found for this buddy." -msgstr "Nebola n叩jden叩 e-mailov叩 adresa tohoto priate直a." +msgid "An email address was not found for this buddy." +msgstr "Nebola n叩jden叩 emailov叩 adresa tohoto priate直a." msgid "Add to Address Book" msgstr "Prida泥 do adres叩ra" -msgid "Send E-Mail" -msgstr "Odosla泥 E-mail" +msgid "Send Email" +msgstr "Odosla泥 Email" #. Configuration frame msgid "Evolution Integration Configuration" @@ -12669,8 +12663,8 @@ msgid "Last name:" msgstr "Priezvisko:" -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/sl.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/sl.po Thu Jun 26 09:07:56 2008 +0000 @@ -2787,7 +2787,7 @@ msgid "Last name" msgstr "Priimek" -msgid "E-Mail" +msgid "Email" msgstr "E-po邸ta" msgid "AIM Account" @@ -2812,9 +2812,6 @@ msgid "Purple Person" msgstr "Vijoli�na oseba" -msgid "E-mail" -msgstr "E-po邸ta" - msgid "Bonjour" msgstr "Bonjour" @@ -3889,7 +3886,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "Izpolnite eno ali ve� polj za iskanje uporabnikov XMPP." -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-naslov" msgid "Search for XMPP users" @@ -4621,7 +4618,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "Skladenjska napaka (verjetno hro邸� v odjemalcu)" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Neveljaven naslov e-po邸te" msgid "User does not exist" @@ -4978,7 +4975,7 @@ msgid "Home Fax" msgstr "Doma�i faks" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Osebni e-naslov" msgid "Personal IM" @@ -5021,7 +5018,7 @@ msgid "Work Fax" msgstr "Slu転beni faks" -msgid "Work E-Mail" +msgid "Work Email" msgstr "Slu転beni e-naslov" msgid "Work IM" @@ -6378,7 +6375,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6536,11 +6533,11 @@ msgstr[3] "Naslednja uporabni邸ka imena so povezana z %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Za dani elektronski naslov %s ni zadetkov." #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Prejeti bi morali e-po邸to, da potrdite %s. " msgid "Account Confirmation Requested" @@ -6570,7 +6567,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Napaka 0x%04x: E-naslova ni mogo�e spremeniti, ker je na �akanju za to " @@ -6578,7 +6575,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Napaka 0x%04x: E-naslova ni mogo�e spremeniti, ker ima podani naslov 転e " @@ -6586,7 +6583,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Napaka 0x%04x: E-naslova ni mogo�e spremeniti, ker je podani naslov " @@ -6600,7 +6597,7 @@ msgstr "Napaka pri spreminjanju podatkov o ra�unu" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Elektronski naslov za %s je %s" msgid "Account Info" @@ -6827,13 +6824,13 @@ "�e 転elite, lahko ponovno zahtevate pooblastilo od teh prijateljev, tako da " "desno kliknete na njih in izberete \"Ponovno zahtevaj pooblastilo.\"" -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Najdi prijatelja po e-po邸ti" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "I邸�i prijatelje po naslovu e-po邸te" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Vnesite naslov e-po邸te prijatelja, ki ga 転elite najti" msgid "_Search" @@ -6856,16 +6853,16 @@ msgid "Confirm Account" msgstr "Potrdi ra�un" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Prika転i trenutno registriran e-naslov" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Spremeni trenutno registriran e-naslov ..." msgid "Show Buddies Awaiting Authorization" msgstr "Poka転i prijatelje, ki �akajo na pooblastilo" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "I邸�i prijatelja po e-naslovu ..." msgid "Search for Buddy by Information" @@ -6931,9 +6928,6 @@ msgid "College" msgstr "Srednja 邸ola" -msgid "Email" -msgstr "E-naslov" - msgid "Zipcode" msgstr "Po邸tna 邸tevilka" @@ -8681,7 +8675,7 @@ msgstr "Uporabni邸ko ime: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-po邸ta: \t\t%s\n" #, c-format @@ -8918,7 +8912,7 @@ msgid "Dir service temporarily unavailable." msgstr "Imeni邸ka storitev je trenutno nedosegljiva." -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Poizvedba po e-po邸tnem naslovu je omejena." msgid "Keyword ignored." @@ -11274,7 +11268,7 @@ msgid "Enable typing notification" msgstr "Omogo�i obve邸�anje o tipkanju" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopiraj naslov e-po邸te" msgid "_Open Link in Browser" @@ -11626,8 +11620,8 @@ msgstr[3] "%s ima %d nova sporo�ila." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>Imate %d novih e-sporo�il.</b>" msgstr[1] "<b>Imate %d novo e-sporo�ilo.</b>" msgstr[2] "<b>Imate %d novi e-sporo�ili.</b>" @@ -12662,19 +12656,19 @@ msgid "_Associate Buddy" msgstr "Pridru転i prijatelj_a" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "E-sporo�ila ni mogo�e poslati." msgid "The evolution executable was not found in the PATH." msgstr "Izvr邸ilne datoteke Evolution ni v POTI." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Za tega prijatelja e-naslova ni mogo�e najti." msgid "Add to Address Book" msgstr "Dodaj v adresar" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Po邸lji e-sporo�ilo" #. Configuration frame @@ -12720,7 +12714,7 @@ msgid "Last name:" msgstr "Priimek:" -msgid "E-mail:" +msgid "Email:" msgstr "E-po邸ta:" #. *< type
--- a/po/sq.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/sq.po Thu Jun 26 09:07:56 2008 +0000 @@ -1190,7 +1190,7 @@ #: ../finch/gntnotify.c:225 ../pidgin/gtknotify.c:341 #, fuzzy msgid "New Mail" -msgstr "E-Mail" +msgstr "Email" #: ../finch/gntnotify.c:290 ../pidgin/gtknotify.c:940 #, c-format @@ -3797,8 +3797,8 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" -msgstr "E-Mail" +msgid "Email" +msgstr "Email" #: ../libpurple/protocols/bonjour/bonjour.c:360 #: ../libpurple/protocols/bonjour/bonjour.c:665 @@ -3843,17 +3843,6 @@ msgid "Purple Person" msgstr "Person i Ri" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "E-mail:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5636,13 +5625,13 @@ "Plot谷soni nj谷 ose m谷 tep谷r fusha p谷r k谷rkim t谷 cilitdo p谷rdorues Jabber q谷 " "ka p谷rputhje." -# E-Mail Address +# Email Address #: ../libpurple/protocols/jabber/buddy.c:2401 #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" -msgstr "Vendndodhje E-Mail" +msgid "Email Address" +msgstr "Vendndodhje Email" #: ../libpurple/protocols/jabber/buddy.c:2410 #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6747,8 +6736,8 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" -msgstr "Vendndodhje e-mail e pavlefshme" +msgid "Invalid email address" +msgstr "Vendndodhje email e pavlefshme" #: ../libpurple/protocols/msn/error.c:49 #, c-format @@ -7313,7 +7302,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Titullin Vetjak" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7382,8 +7371,8 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" -msgstr "E-Mail" +msgid "Work Email" +msgstr "Email" #: ../libpurple/protocols/msn/msn.c:1688 msgid "Work IM" @@ -9132,12 +9121,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"Keni marr谷 nj谷 e-mail ICQ prej %s [%s]\n" +"Keni marr谷 nj谷 email ICQ prej %s [%s]\n" "\n" "Mesazhi thot谷:\n" "%s" @@ -9327,13 +9316,13 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" -msgstr "Nuk u gjet谷n p谷rfundime p谷r vendndodhje e-mail %s" +msgid "No results found for email address %s" +msgstr "Nuk u gjet谷n p谷rfundime p谷r vendndodhje email %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." -msgstr "Duht t'ju vij谷 nj谷 e-mail me k谷rkes谷n p谷r ripohim t谷 %s." +msgid "You should receive an email asking to confirm %s." +msgstr "Duht t'ju vij谷 nj谷 email me k谷rkes谷n p谷r ripohim t谷 %s." #: ../libpurple/protocols/oscar/oscar.c:3971 msgid "Account Confirmation Requested" @@ -9371,28 +9360,28 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" -"Gabim 0x%04x: I pazoti t谷 ndryshoj vendndodhje e-mail sepse p谷r k谷t谷 em谷r " +"Gabim 0x%04x: I pazoti t谷 ndryshoj vendndodhje email sepse p谷r k谷t谷 em谷r " "ekrani ka tashm谷 nj谷 k谷rkes谷 n谷 pritje." #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" -"Gabim 0x%04x: I pazoti t谷 ndryshoj vendndodhje e-mail sepse vendndodhja e " +"Gabim 0x%04x: I pazoti t谷 ndryshoj vendndodhje email sepse vendndodhja e " "dh谷n谷 ka shum谷 emra ekrani shoq谷ruar asaj." #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" -"Gabim 0x%04x: I pazoti t谷 ndryshoj vendndodhje e-mail sepse vendndodhja e " +"Gabim 0x%04x: I pazoti t谷 ndryshoj vendndodhje email sepse vendndodhja e " "dh谷n谷 谷sht谷 e pavlefshme." #: ../libpurple/protocols/oscar/oscar.c:4023 @@ -9402,8 +9391,8 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" -msgstr "Vendndodhja e-mail p谷r %s 谷sht谷 %s" +msgid "The email address for %s is %s" +msgstr "Vendndodhja email p谷r %s 谷sht谷 %s" #: ../libpurple/protocols/oscar/oscar.c:4035 msgid "Account Info" @@ -9688,16 +9677,16 @@ "dhe p谷rzgjedhur \"Rik谷rko Autorizim.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" -msgstr "Gjej Shok nga E-mail-i" +msgid "Find Buddy by Email" +msgstr "Gjej Shok nga Email-i" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" -msgstr "K谷rko nj谷 shok me vendndodhje e-mail" +msgid "Search for a buddy by email address" +msgstr "K谷rko nj谷 shok me vendndodhje email" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "Shtypni vendndodhjen e-mail t谷 shokut q谷 po k谷rkoni." +msgid "Type the email address of the buddy you are searching for." +msgstr "Shtypni vendndodhjen email t谷 shokut q谷 po k谷rkoni." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9729,12 +9718,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Shfaq Vendndodhje t谷 Regjistruar p谷r �astin" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Ndrysho Vendndodhje t谷 Regjistruar p谷r �astin..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9743,8 +9732,8 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." -msgstr "K谷rko p谷r Shok谷 sipas E-mail-i..." +msgid "Search for Buddy by Email Address..." +msgstr "K谷rko p谷r Shok谷 sipas Email-i..." #: ../libpurple/protocols/oscar/oscar.c:6452 msgid "Search for Buddy by Information" @@ -9835,10 +9824,6 @@ msgid "College" msgstr "_Tkurr" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "Email" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12716,7 +12701,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "EMail: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -13089,8 +13074,8 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." -msgstr "K谷rkim e-mail-i i ndaluar." +msgid "Email lookup restricted." +msgstr "K谷rkim email-i i ndaluar." #: ../libpurple/protocols/toc/toc.c:533 #, c-format @@ -16129,8 +16114,8 @@ msgstr "Ngjyr谷 p谷r vizatim tejlidhjesh kur mbi to kalon miu." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" -msgstr "_Kopjo Vendndodhje E-Mail" +msgid "_Copy Email Address" +msgstr "_Kopjo Vendndodhje Email" #: ../pidgin/gtkimhtml.c:1610 msgid "_Open Link in Browser" @@ -16569,8 +16554,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17914,15 +17899,15 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" -msgstr "I pazoti t谷 d谷rgoj e-mail." +msgid "Unable to send email" +msgstr "I pazoti t谷 d谷rgoj email." #: ../pidgin/plugins/gevolution/gevolution.c:241 msgid "The evolution executable was not found in the PATH." msgstr "I ekzekutueshmi p谷r Evolution nuk u gjet n谷 PATH." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17930,8 +17915,8 @@ msgstr "Shto te Lib谷r Vendndodhjesh" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" -msgstr "D谷rgo E-Mail" +msgid "Send Email" +msgstr "D谷rgo Email" #. Configuration frame #: ../pidgin/plugins/gevolution/gevolution.c:412 @@ -18000,8 +17985,8 @@ msgstr "Mbiem谷r:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" # *< api_version # *< type
--- a/po/sr.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/sr.po Thu Jun 26 09:07:56 2008 +0000 @@ -3533,7 +3533,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "�-仗仂��舒" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3565,16 +3565,6 @@ msgid "Purple Person" msgstr "��仂弍舒" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "�-仗仂��舒" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "�仂仆亢��" @@ -5244,7 +5234,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3707 #: ../libpurple/protocols/oscar/oscar.c:3716 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�亟�亠�舒 亠-仗仂��亠" #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6294,7 +6284,7 @@ msgstr "弌亳仆�舒从�仆舒 亞�亠�从舒 (于亠�仂于舒�仆仂 亞�亠�从舒 � 仗�仂亞�舒仄�)" #: ../libpurple/protocols/msn/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�亠亳�仗�舒于仆舒 亠仍. 舒亟�亠�舒" #: ../libpurple/protocols/msn/error.c:49 @@ -6789,7 +6779,7 @@ msgstr "个舒从�" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "�-仗仂��舒" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6851,7 +6841,7 @@ msgstr "个舒从� 仆舒 仗仂�仍�" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "�-仗仂��舒 仆舒 仗仂�仍�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8499,7 +8489,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2432 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8692,12 +8682,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3941 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�亳�亠 仗�仂仆舒�亠仆仂 仆亳�亳 �亠亟仆仂 仗仂从仍舒仗舒�亠 亰舒 舒亟�亠�� 亠-仗仂��亠 %s" #: ../libpurple/protocols/oscar/oscar.c:3962 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "丐�亠弍舒�亠 亟舒 仗�亳仄亳�亠 亠-仗仂��� �舒亟亳 仗仂�于��亳于舒�舒 %s." #: ../libpurple/protocols/oscar/oscar.c:3964 @@ -8734,7 +8724,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4007 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "��亠�从舒 0x%04x: �亠 仄仂亞� 仗�仂仄亠仆亳�亳 舒亟�亠�� 亠-仗仂��亠 亰舒�仂 ��仂 �亠 于亠� 仗仂�仍舒� " @@ -8743,7 +8733,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4010 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "��亠�从舒 0x%04x: �亠 仄仂亞� 仗�仂仄亠仆亳�亳 舒亟�亠�� 亠-仗仂��亠 亰舒�仂 ��仂 �亠 仗�亠于亳�亠 " @@ -8752,7 +8742,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4013 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "��亠�从舒 0x%04x: �亠 仄仂亞� 仗�仂仄亠仆亳�亳 舒亟�亠�� 亠-仗仂��亠 亰舒�仂 ��仂 �亠 �仆亠�舒 舒亟�亠�舒 " @@ -8765,7 +8755,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4026 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�亟�亠�舒 亠-仗仂��亠 亰舒 %s �亠 %s" #: ../libpurple/protocols/oscar/oscar.c:4028 @@ -9049,15 +9039,15 @@ "亳亰弍仂�仂仄 ���仂仆仂于亳 亰舒��亠于 亰舒 仂于仍舒��亠�亠��." #: ../libpurple/protocols/oscar/oscar.c:6215 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "��仂仆舒�亳 亟��亞舒�舒 仗仂仄仂�� 舒亟�亠�亠 亠-仗仂��亠" #: ../libpurple/protocols/oscar/oscar.c:6216 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "��仂仆舒�亳 亟��亞舒�舒 仗仂仄仂�� 舒亟�亠�亠 亠-仗仂��亠" #: ../libpurple/protocols/oscar/oscar.c:6217 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "丕从��舒��亠 亠-仗仂��舒仆�从� 舒亟�亠�� 亟��亞舒�舒 从仂亞舒 ��舒亢亳�亠." #: ../libpurple/protocols/oscar/oscar.c:6220 @@ -9087,11 +9077,11 @@ msgstr "�仂�于�亟亳�亠 仆舒仍仂亞" #: ../libpurple/protocols/oscar/oscar.c:6414 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "��亳从舒亢亳 ��亠仆��仆仂 �亠亞亳���仂于舒仆� 舒亟�亠�� 亠-仗仂��亠" #: ../libpurple/protocols/oscar/oscar.c:6418 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�亰仄亠仆亳 ��亠仆��仆仂 �亠亞亳���仂于舒仆� 舒亟�亠�� 亠-仗仂��亠..." #: ../libpurple/protocols/oscar/oscar.c:6425 @@ -9099,7 +9089,7 @@ msgstr "��亳从舒亢亳 亟��亞舒�亠 亰舒 从仂�亠 �亠 �亠从舒 仂于仍舒��亠�亠" #: ../libpurple/protocols/oscar/oscar.c:6431 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "��仂仆舒�亳 亟��亞舒�舒 仗�亠仄舒 舒亟�亠�亳 亠-仗仂��亠..." #: ../libpurple/protocols/oscar/oscar.c:6436 @@ -9187,10 +9177,6 @@ msgid "College" msgstr "个舒从�仍�亠�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�-仗仂��舒" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "�仂��舒仆�从亳 弍�仂�" @@ -11920,7 +11906,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�-仗仂��舒: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12247,7 +12233,7 @@ msgstr "丕�仍�亞亠 亳仄亠仆亳从舒 ��亠仆��仆仂 仆亳�� 亟仂���仗仆亠." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "�亞�舒仆亳�亠仆舒 仗�亠��舒亞舒 仗�亠仄舒 舒亟�亠�亳 亠-仗仂��亠." #: ../libpurple/protocols/toc/toc.c:533 @@ -15149,7 +15135,7 @@ msgstr "�仂�舒 亰舒 亳����舒于舒�亠 仆舒亟-于亠亰舒 从舒亟 �亠 仄亳� 亳亰仆舒亟 �亳�." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_�仂仗亳�舒� 舒亟�亠�� 亠-仗仂��亠" #: ../pidgin/gtkimhtml.c:1610 @@ -15572,8 +15558,8 @@ #: ../pidgin/gtknotify.c:533 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -16817,7 +16803,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�亠 仄仂亞� 亟舒 仗仂�舒�亠仄 亠-仗仂��从�." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16825,7 +16811,7 @@ msgstr "��仂亞�舒仄 �于仂仍��亳�舒 仆亳�亠 仆舒�亠仆 仆舒 ��舒亰亳." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�亟�亠�舒 亠-仗仂��亠 仆亳�亠 仆舒�亠仆舒 亰舒 仂于仂亞 亟��亞舒�舒." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16833,7 +16819,7 @@ msgstr "�仂亟舒� � 舒亟�亠�舒�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "�仂�舒�亳 亠-仗仂��从�" #. Configuration frame @@ -16891,7 +16877,7 @@ msgstr "��亠亰亳仄亠:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "�-仗仂��舒" #. *< type
--- a/po/sr@latin.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/sr@latin.po Thu Jun 26 09:07:56 2008 +0000 @@ -3533,7 +3533,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "E-po邸ta" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3565,16 +3565,6 @@ msgid "Purple Person" msgstr "Osoba" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-po邸ta" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bon転ur" @@ -5244,7 +5234,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3707 #: ../libpurple/protocols/oscar/oscar.c:3716 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Adresa e-po邸te" #: ../libpurple/protocols/jabber/buddy.c:2411 @@ -6294,7 +6284,7 @@ msgstr "Sintaksna gre邸ka (verovatno gre邸ka u programu)" #: ../libpurple/protocols/msn/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Neispravna el. adresa" #: ../libpurple/protocols/msn/error.c:49 @@ -6789,7 +6779,7 @@ msgstr "Faks" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "E-po邸ta" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6851,7 +6841,7 @@ msgstr "Faks na poslu" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "E-po邸ta na poslu" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8499,7 +8489,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2432 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8692,12 +8682,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3941 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Nije prona�eno niti jedno poklapanje za adresu e-po邸te %s" #: ../libpurple/protocols/oscar/oscar.c:3962 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Trebate da primite e-po邸tu radi potvr�ivanja %s." #: ../libpurple/protocols/oscar/oscar.c:3964 @@ -8734,7 +8724,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4007 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "Gre邸ka 0x%04x: Ne mogu promeniti adresu e-po邸te zato 邸to je ve� poslat " @@ -8743,7 +8733,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4010 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "Gre邸ka 0x%04x: Ne mogu promeniti adresu e-po邸te zato 邸to je previ邸e " @@ -8752,7 +8742,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4013 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Gre邸ka 0x%04x: Ne mogu promeniti adresu e-po邸te zato 邸to je uneta adresa " @@ -8765,7 +8755,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4026 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Adresa e-po邸te za %s je %s" #: ../libpurple/protocols/oscar/oscar.c:4028 @@ -9049,15 +9039,15 @@ "izborom ��Ponovi zahtev za ovla邸�enje��." #: ../libpurple/protocols/oscar/oscar.c:6215 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Prona�i drugara pomo�u adrese e-po邸te" #: ../libpurple/protocols/oscar/oscar.c:6216 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Prona�i drugara pomo�u adrese e-po邸te" #: ../libpurple/protocols/oscar/oscar.c:6217 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Ukucajte e-po邸tansku adresu drugara koga tra転ite." #: ../libpurple/protocols/oscar/oscar.c:6220 @@ -9087,11 +9077,11 @@ msgstr "Potvrdite nalog" #: ../libpurple/protocols/oscar/oscar.c:6414 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Prika転i trenutno registrovanu adresu e-po邸te" #: ../libpurple/protocols/oscar/oscar.c:6418 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Izmeni trenutno registrovanu adresu e-po邸te..." #: ../libpurple/protocols/oscar/oscar.c:6425 @@ -9099,7 +9089,7 @@ msgstr "Prika転i drugare za koje se �eka ovla邸�enje" #: ../libpurple/protocols/oscar/oscar.c:6431 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Prona�i drugara prema adresi e-po邸te..." #: ../libpurple/protocols/oscar/oscar.c:6436 @@ -9187,10 +9177,6 @@ msgid "College" msgstr "Fakultet" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-po邸ta" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Po邸tanski broj" @@ -11920,7 +11906,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-po邸ta: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12247,7 +12233,7 @@ msgstr "Usluge imenika trenutno nisu dostupne." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Ograni�ena pretraga prema adresi e-po邸te." #: ../libpurple/protocols/toc/toc.c:533 @@ -15149,7 +15135,7 @@ msgstr "Boja za iscrtavanje nad-veza kad je mi邸 iznad njih." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopiraj adresu e-po邸te" #: ../pidgin/gtkimhtml.c:1610 @@ -15572,8 +15558,8 @@ #: ../pidgin/gtknotify.c:533 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -16817,7 +16803,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Ne mogu da po邸aljem e-poruku." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16825,7 +16811,7 @@ msgstr "Program Evolucija nije na�en na stazi." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Adresa e-po邸te nije na�ena za ovog drugara." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16833,7 +16819,7 @@ msgstr "Dodaj u adresar" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "Po邸alji e-poruku" #. Configuration frame @@ -16891,7 +16877,7 @@ msgstr "Prezime:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "E-po邸ta" #. *< type
--- a/po/sv.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/sv.po Thu Jun 26 09:07:56 2008 +0000 @@ -2754,7 +2754,7 @@ msgid "Last name" msgstr "Efternamn" -msgid "E-Mail" +msgid "Email" msgstr "E-post" msgid "AIM Account" @@ -2779,9 +2779,6 @@ msgid "Purple Person" msgstr "Purple person" -msgid "E-mail" -msgstr "E-post" - msgid "Bonjour" msgstr "Bonjour" @@ -3885,7 +3882,7 @@ msgstr "" "Fyll i ett eller flera f辰lt f旦r att s旦ka efter matchande XMPPanv辰ndare." -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-postadress" msgid "Search for XMPP users" @@ -4619,7 +4616,7 @@ msgstr "Syntaxfel (antagligen ett klient bug)" #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ogiltig e-postadress" #, c-format @@ -5030,7 +5027,7 @@ msgid "Home Fax" msgstr "Hemfax" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Personlig E-Post" msgid "Personal IM" @@ -5073,7 +5070,7 @@ msgid "Work Fax" msgstr "Arbete Fax" -msgid "Work E-Mail" +msgid "Work Email" msgstr "Arbete E-post" msgid "Work IM" @@ -6425,7 +6422,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6571,11 +6568,11 @@ msgstr[1] "F旦ljande anv辰ndarnamn 辰r associerat med %s" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Inget resultat funnet f旦r e-postadress %s" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Du borde f奪 ett e-postmeddelande som ber dig bekr辰fta %s." msgid "Account Confirmation Requested" @@ -6604,7 +6601,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "" "Fel 0x%04x: Kan inte 辰ndra e-postadressen eftersom det redan finns en " @@ -6612,7 +6609,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "Fel 0x%04x: Kan inte 辰ndra e-postadress eftersom den angivna adressen har " @@ -6620,7 +6617,7 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Fel 0x%04x: Kan inte 辰ndra e-postadress eftersom den angivna adressen inte " @@ -6634,7 +6631,7 @@ msgstr "Fel vid 辰ndring av kontoinformation" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "E-postaderssen f旦r %s 辰r %s" msgid "Account Info" @@ -6856,13 +6853,13 @@ "Du kan beg辰ra auktorisering igen fr奪n dessa kompisar genom att h旦gerkilcka " "p奪 dem och v辰lja \"Beg辰r auktorisering igen.\"" -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Hitta kompis p奪 e-postadress" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "S旦k efter en kompis p奪 dess e-postadress" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Skriv in e-postadressen f旦r den kompis du s旦ker efter." msgid "_Search" @@ -6885,16 +6882,16 @@ msgid "Confirm Account" msgstr "Bekr辰fta konto" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Visa f旦r tillf辰llet registrerad epost-adress" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�ndra f旦r tillf辰llet registrerad epost-adress..." msgid "Show Buddies Awaiting Authorization" msgstr "Visa kompisar som v辰ntar p奪 auktorisering" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "S旦k efter kompis p奪 e-postadress..." msgid "Search for Buddy by Information" @@ -6961,9 +6958,6 @@ msgid "College" msgstr "Universitet" -msgid "Email" -msgstr "E-post" - msgid "Zipcode" msgstr "Postnummer" @@ -8722,7 +8716,7 @@ msgstr "Anv辰ndarnamn: \t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-Post: \t\t%s\n" #, c-format @@ -8978,7 +8972,7 @@ msgstr "Katalogtj辰nsten 辰r tillf辰lligt on奪bar." #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-postuppslagning 辰r begr辰nsad." #, c-format @@ -11329,7 +11323,7 @@ msgid "Enable typing notification" msgstr "" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopiera e-postadress" msgid "_Open Link in Browser" @@ -11686,8 +11680,8 @@ msgstr[1] "%s har %d nya meddelanden." #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>Du har %d nytt epost.</b>" msgstr[1] "<b>Du har %d nya epost.</b>" @@ -12718,19 +12712,19 @@ msgid "_Associate Buddy" msgstr "_Associera kompis" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Kunde inte skicka e-post" msgid "The evolution executable was not found in the PATH." msgstr "Evolutions k旦rfil hittades inte i s旦kv辰garna." -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Ingen epostadress hittades f旦r denna kompisen." msgid "Add to Address Book" msgstr "L辰gg till i adressboken" -msgid "Send E-Mail" +msgid "Send Email" msgstr "Skicka e-post" #. Configuration frame @@ -12776,7 +12770,7 @@ msgid "Last name:" msgstr "Efternamn:" -msgid "E-mail:" +msgid "Email:" msgstr "E-postadress:" #. *< type
--- a/po/ta.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ta.po Thu Jun 26 09:07:56 2008 +0000 @@ -3635,7 +3635,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "牀��牀��牀��牆�牀�牀迦�" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3670,16 +3670,6 @@ msgid "Purple Person" msgstr "牀��牀む�牀� 牀��牀萎�" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "牀��牀�� 牀�牀�牆�牀�牀迦�" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "牀��牀��牀�牆�" @@ -5387,7 +5377,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "牀��牀��牀��牆�牀�牀迦�" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6459,7 +6449,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "牀�牆�牀迦�牀迦�牀� 牀��牀��牀��牆�牀�牀迦� 牀��牀�牀朽�牀�" #: ../libpurple/protocols/msn/error.c:49 @@ -7006,7 +6996,7 @@ msgstr "牀朽�牀�牆�牀�牆� 牀む�牀迦�牀��牀迦�" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "牀�牆�牀��牀� 牀��牀��牀��牆�牀�牀迦�" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7069,7 +7059,7 @@ msgstr "牀�牀迦�牀朽�牀� 牀む�牀迦�牀��牀迦�" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "牀�牀迦�牀朽�牀� 牀��牀��牀��牆�牀�牀迦�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8748,7 +8738,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8936,12 +8926,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "牀��牀��牀��牆�牀�牀迦� %s 牀�牆�牀�牆� 牀��牆�牀� 牀��牀�牀逗�牆�牀�� 牀�牀迦�牀迦�" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s 牀� 牀�牀園�牀む� 牀�牆�牀��牀��牆�牀�牆�牀萎� 牀�牀�牆�牀�牀橿�牀�牆�牀�牆� 牀��牀��牀�牀�牆�牀�牀迦� 牀朽�牆�牀��." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8979,7 +8969,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "牀��牀巌� 0x%04x: 牀��牀��牀��牆�牀�牀迦� 牀��牀園�牀� 牀�牀��牀朽�牀迦�牀迦� 牀蹍��牀��牀園�牀迦� 牀�牀��牀� 牀む�牀萎�牀��牀��牀萎�牀�牆�牀�牆� 牀蹍園�牀�牀��牆� 牀�牀萎� " @@ -8988,7 +8978,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "牀��牀巌� 0x%04x: 牀��牀��牀��牆�牀�牀迦� 牀��牀園�牀� 牀�牀��牀朽�牀迦�牀迦� 牀蹍��牀��牀園�牀迦� 牀�牀��牀� 牀��牀��牀��牆�牀�牀迦�牀�牆�牀�牆� 牀��牀園�牀� " @@ -8997,7 +8987,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "牀��牀巌� 0x%04x: 牀��牀��牀��牆�牀�牀迦� 牀��牀園�牀� 牀�牀��牀朽�牀迦�牀迦� 牀蹍��牀��牀園�牀迦� 牀�牀��牀� 牀��牀�牀朽�牀� 牀�牆�牀迦�牀迦�牀む�牆�." @@ -9008,7 +8998,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 牀��牀�� 牀��牀��牀�牀�牆�牀�牀迦� 牀��牀�牀朽�牀� %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9288,15 +9278,15 @@ "牀��牀��牀�牆�牀�� 牀�牆�牀萎�牀�.\" 牀� 牀む�牀萎�牀朽� 牀�牆�牀��牀��牆�牀��." #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "牀む�牀巌�牆� 牀��牀��牀��牆�牀�牀迦� 牀�牆�牀��牀�牆� 牀む�牀�牆�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "牀��牀��牀��牆�牀�牀迦� 牀��牀�牀朽�牀� 牀��牀迦�牆� 牀む�牀巌�牆� 牀む�牀�牆�" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "牀��牀�牆�牀�牀橿� 牀む�牀�牆�牀�� 牀��牆�牀��牀逗�牆� 牀��牀��牀��牆�牀�牀迦� 牀��牀�牀朽�牀逗�牆� 牀�牆�牀�牆�牀�牆�牀�牀朽�牀��.." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9328,12 +9318,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "牀む�牆�牀��牀む�牀� 牀��牀逗�牆�牀�牆�牀��牀� 牀��牀�牀朽�牀逗�牀橿� 牀�牀鉦�牆�牀�牆�" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "牀む�牆�牀��牀む� 牀��牀逗�牀��牀��牆�牀� 牀��牀�牀朽�牀逗�牀橿� 牀��牀園�牀園�..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9342,7 +9332,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "牀む�牀巌�牆� 牀��牀��牀��牆�牀�牀迦� 牀��牀迦�牆� 牀む�牀�牆�牀�..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9435,11 +9425,6 @@ msgid "College" msgstr "_牀� 牀�牆�牀萎�牀�牆�牀�牆�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -#, fuzzy -msgid "Email" -msgstr "牀��牀�� 牀�牀�牆�牀�牀迦�" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12241,7 +12226,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "牀��牀��牀��牆�牀�牀迦�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12585,7 +12570,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "牀��牀��牀��牆�牀�牀迦� 牀��牀萎�牀��牀��牆� 牀む�牆�牀�牆�牀��牀��牆�牀��牆�牀�牀む�." #: ../libpurple/protocols/toc/toc.c:533 @@ -15508,7 +15493,7 @@ msgstr "牀�牆�牀�牆�牀�牀� 牀��牀む�牀む�牀�牀萎�牀��牀�� 牀��牀む� 牀�牀萎�牀�牆�牀�牆�牀��牀��牀巌�牀む� 牀��牀む�牀む�牀�牀萎�牀�� 牀朽�牆�牀朽�牀園�牀�牀鉦� 牀��牀園�牆�" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "牀��牀��牀��牆�牀�牀迦� 牀��牀�牀朽�牀逗�牆� _牀��牀迦�牀�牆�" #: ../pidgin/gtkimhtml.c:1610 @@ -15948,8 +15933,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>牀�牆�牀萎�牀�牆�牀��牀萎�牀橿� 牀朽�牀朽�牀��</b>" msgstr[1] "<b>牀�牆�牀萎�牀�牆�牀��牀萎�牀橿� 牀朽�牀朽�牀��</b>" @@ -17223,7 +17208,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "牀��牀��牀��牆�牀�牀迦� 牀�牀��牀��牀� 牀�牀��牀朽�牀迦�牀迦�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17231,7 +17216,7 @@ msgstr "牀��牀迦�牀��牀劇�牆� 牀�牆�牀��牀� 牀��牀む�牀��牀迦� 牀�牀迦�牀迦�." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17239,7 +17224,7 @@ msgstr "牀��牀�牀朽�牀� 牀��牀む�牀む�牀む�牀む�牀迦� 牀�牆�牀萎�牀�牆�牀�牀朽�牀��" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "牀��牀��牀��牆�牀�牀迦� 牀�牀��牀��牀��牀�" #. Configuration frame @@ -17297,7 +17282,7 @@ msgstr "牀�牀�牆�牀�牀逗�牆�牀��牀��牆�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "牀��牀��牀��牆�牀�牀迦�:" #. *< type
--- a/po/te.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/te.po Thu Jun 26 09:07:56 2008 +0000 @@ -4095,7 +4095,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "牋�-牋��牋�或牋迦� " # And now for the buttons @@ -4130,17 +4130,6 @@ msgid "Purple Person" msgstr "Purple 牋�旭牘�牋伍姶牘�" -#: ../libpurple/protocols/bonjour/bonjour.c:681 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:959 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "牋�-牋��牋�或牋迦�:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5844,7 +5833,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3724 #: ../libpurple/protocols/oscar/oscar.c:3733 -msgid "E-Mail Address" +msgid "Email Address" msgstr "牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘� " #: ../libpurple/protocols/jabber/buddy.c:2423 @@ -6920,7 +6909,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "牋�牘�牋迦�牋迦姶牋� 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘� " #: ../libpurple/protocols/msn/error.c:49 @@ -7559,7 +7548,7 @@ #: ../libpurple/protocols/msn/msn.c:1804 #: ../libpurple/protocols/msnp9/msn.c:1657 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "牋朽�牋��牘�牋む或牋�牋� 牋�-牋��牋�或牋迦�" #: ../libpurple/protocols/msn/msn.c:1805 @@ -7635,7 +7624,7 @@ #: ../libpurple/protocols/msn/msn.c:1835 #: ../libpurple/protocols/msnp9/msn.c:1688 -msgid "Work E-Mail" +msgid "Work Email" msgstr "牋�姶牋逗�牘�牋伍�牋��牘�牋�牋萎或 牋�-牋��牋�或牋迦�" #: ../libpurple/protocols/msn/msn.c:1836 @@ -9460,7 +9449,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2449 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9648,12 +9637,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3958 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "%s 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘���牋�牘� 牋�芦牋逗阿牋鉦芦牘� 牋�牋�或牋�或牋�牋�牋迦�牋��. " #: ../libpurple/protocols/oscar/oscar.c:3979 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s 牋�或牋萎�牋о鮎牋萎或牋�牋�牋�姶牋� 牋�牘�牋萎�牋む� 牋��牋萎� 牋�牋� 牋�-牋��牋�或牋迦���牋�� 牋伍�牋朽�牋�牋萎或牋�牋�牋鉦芦牋�. " #: ../libpurple/protocols/oscar/oscar.c:3981 @@ -9681,17 +9670,17 @@ #: ../libpurple/protocols/oscar/oscar.c:4024 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name." +msgid "Error 0x%04x: Unable to change email address because there is already a request pending for this screen name." msgstr "牋��牋萎葵牋鉦�牘� 0x%04x: 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘���牋�� 牋�鮎牋萎�牋�牋÷� 牋伍鮎牋о�牋�� 牋�牋鉦愛牘�, 牋��牋��牋�牋�牋�牘� 牋�牋�� 牋伍�牋�牘�牋萎�牋����牋��牋萎�牋�� 牋�旭牘�牋�牋萎� 牋��牋�牋�牋�牘� 牋��牋�牋�� 牋�牘�牋萎或牋�鮎牋萎�. 牋�牋�或 牋��牋�牋÷或牋�牋�牘���牋迦� 牋�牋�牋�或. " #: ../libpurple/protocols/oscar/oscar.c:4027 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it." +msgid "Error 0x%04x: Unable to change email address because the given address has too many screen names associated with it." msgstr "牋��牋萎葵牋鉦�牘� 0x%04x: 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘���牋�� 牋�鮎牋萎�牋�牋÷� 牋伍鮎牋о�牋�� 牋�牋鉦愛牘�, 牋��牋��牋�牋�牋�牘� 牋�牋�牘�牋�牋逗姶 牋�牋÷�牋萎宛牘�牋�牘� 牋�牋鉦芦牋� 牋伍�牋�牘�牋萎�牋����牋��牋萎�牋迦� 牋�牋��牋��牋о握牘� 牋�牋��牋�鮎牋�或. " #: ../libpurple/protocols/oscar/oscar.c:4030 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address is invalid." +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." msgstr "牋��牋萎葵牋鉦�牘� 0x%04x: 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘�牋�� 牋�鮎牋萎�牋�牋迦�牋��, 牋��牋��牋�牋�牋�牘� 牋�牋�牘�牋�牋逗姶 牋�牋÷�牋萎宛牘�牋�牘� 牋朽或牋迦�牋� 牋迦�牋��." #: ../libpurple/protocols/oscar/oscar.c:4033 @@ -9701,7 +9690,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4043 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘� %s" # And now for the buttons @@ -9928,15 +9917,15 @@ msgstr "牋� 牋�牘�牋萎或牋�牋�或 牋�或牋む�牋萎�牋迦姶牘�牋�牋÷或 牋�牋ム旭牘�牋�牘�牋劇姶牘� 牋�牘�牋伍� 牋��牋萎� 牋�旭牋� 牋�姶牋朽或 牋�牘�牋�圧牋�牘�牋�牘�牋��. 牋朽鮎牋萎或牋��牋萎�牋�� 牋萎�牋�牘���牋�牘�牋迦或牋�牘� 牋�牘�牋伍或 \"牋�牋ム旭牘�牋�牘�牋劇姶牘� 牋�牘�牋伍� 牋�旭牘�牋伍鮎牋萎或 牋�姶牋朽或.\" 牋�或 牋伍�牋迦�牘�牋�牘� 牋�牘�牋��牋÷或. " #: ../libpurple/protocols/oscar/oscar.c:6281 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "牋�-牋��牋�或牋迦� 牋��牋朽鮎牋萎鮎 牋�或牋む�牋萎�牋�或 牋�牋��牋�牘�牋��牋÷或. " #: ../libpurple/protocols/oscar/oscar.c:6282 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘���牋む� 牋�或牋む�牋萎�牋�或 牋�牋��牋�牘�牋��牋÷或. " #: ../libpurple/protocols/oscar/oscar.c:6283 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "牋��牋萎� 牋�牋��牋朽�牋劇或牋伍�牋む�牋��牋� 牋�或牋む�牋萎�牋�或 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘�牋�� 牋�牘�牋�� 牋�牘�牋��牋÷或." # "Search" @@ -9969,11 +9958,11 @@ msgstr "牋�牋�牘�牋�牋�牘���牋�� 牋�或牋萎�牋о鮎牋萎或牋�牋�牋�牋÷或. " #: ../libpurple/protocols/oscar/oscar.c:6480 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "牋��牋萎宛牘�牋む�牋む� 牋�握牘�牋��牋� 牋� -牋��牋�或牋迦� 牋�牋÷�牋萎宛牘�牋�� 牋�牘�牋��牋÷或" #: ../libpurple/protocols/oscar/oscar.c:6484 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "牋��牋萎宛牘�牋む�牋む� 牋�握牘�牋��牋� 牋� - 牋��牋�或牋迦� 牋�牋÷�牋萎宛牘�牋�� 牋�鮎牋萎�牋�牋�牋÷或..." #: ../libpurple/protocols/oscar/oscar.c:6491 @@ -9981,7 +9970,7 @@ msgstr "牋�牋ム旭牘�牋�牘�牋劇姶牘��� 牋�牘�牋伍� 牋�愛牘�牋萎�牋�牘�牋伍�牋む� 牋�或牋む�牋萎�牋迦姶牘� 牋��牋萎愛牋萎�牋謹或牋�牋�牘�牋��." #: ../libpurple/protocols/oscar/oscar.c:6497 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘� 牋��牋朽鮎牋萎鮎 牋�或牋む�牋萎鮎牋��牋朽�牋劇娃 ..." #: ../libpurple/protocols/oscar/oscar.c:6502 @@ -10064,10 +10053,6 @@ msgid "College" msgstr "牋�牋橿鮎牋謹鮎牋�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "牋�-牋��牋�或牋迦� " - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12792,7 +12777,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "牋�-牋��牋�或牋迦�: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 @@ -13115,7 +13100,7 @@ msgstr "牋÷�牋萎�牋�牘�牋�牋萎� 牋伍�牋� 牋む鮎牋む�牋�牋鉦芦牋逗�牋�牋�牋� 牋�牋�牋��牋�鮎牋�牘�牋迦� 牋迦�牋��." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "牋�-牋��牋�或牋迦���牋�� 牋�牘�牋÷�牋�牋�� 牋�牋�牋�牘�牋劇芦牘�." #: ../libpurple/protocols/toc/toc.c:533 @@ -16250,7 +16235,7 @@ msgstr "牋��牋伍� 牋項�牋�旭牘� 牋迦或牋�牋�牘� 牋迦葵牘� 牋�牋��牋�葵牘�牋��牋÷� 牋朽鮎牋�牋逗姶牋� 牋�牋逗阿牘�牋萎或牋�牋�牋÷鮎牋�或牋�牋� 牋萎�牋�牘�." #: ../pidgin/gtkimhtml.c:1581 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘�牋�� 牋�牋鉦葵牘� 牋�牘�牋��牋÷或. " #: ../pidgin/gtkimhtml.c:1593 @@ -16676,8 +16661,8 @@ #: ../pidgin/gtknotify.c:570 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "" msgstr[1] "" #msgstr[0] "<b>牋��牋迦�牘� 牋�牋�� 牋朽或牋朽旭牋鉦芦牘�</b>" @@ -18051,7 +18036,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "牋�-牋��牋�或牋迦� 牋��牋�芦牘�牋� 牋��牋む�牋�牋�或" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -18059,7 +18044,7 @@ msgstr "PATH 牋迦� 牋�圧牋迦�牋��牋劇姶牘� 牋��牘�牋�牋逗�牘�牋��牋�牘�牋��牋迦� 牋�牋�穐牋÷芦牘�牋��." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "牋� 牋�或牋む�牋萎�牋÷或牋�牋� 牋伍�牋��牋о或牋�牋�牋� 牋�-牋��牋�或牋迦� 牋�牋÷�牋萎宛牘� 牋�牋�穐牋÷芦牘�牋��. " #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -18067,7 +18052,7 @@ msgstr "牋�牋÷�牋萎宛牘� 牋��牋�牘���牋�牘� 牋�牘�牋萎�牋�牋�牋÷或." #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "牋�-牋��牋�或牋迦� 牋��牋�或牋�牋�牘�" # Configuration frame @@ -18134,7 +18119,7 @@ msgstr "牋�牋逗圧牋萎或 牋��牋萎�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "牋�-牋��牋�或牋迦�:" # *< api_version
--- a/po/th.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/th.po Thu Jun 26 09:07:56 2008 +0000 @@ -3538,7 +3538,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "犖〝元犢�犖÷献" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3572,16 +3572,6 @@ msgid "Purple Person" msgstr "" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "犖〝元犢�犖÷献" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5220,7 +5210,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "犖�犖朽�犖〝権犖項�犖〝元犢�犖÷献" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6274,7 +6264,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "犖〝元犢�犖÷献犢�犖÷�犖�犖項�犖�犢�犖〝�" #: ../libpurple/protocols/msn/error.c:49 @@ -6816,7 +6806,7 @@ msgstr "犢�犖�犖�犖�犢�犖�犖朽�犖�犢�犖迦�" #: ../libpurple/protocols/msn/msn.c:1656 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "犖〝元犢�犖÷献犖��犖о�犖�犖園硯" #: ../libpurple/protocols/msn/msn.c:1657 @@ -6879,7 +6869,7 @@ msgstr "犢�犖�犖�犖�犢�犖�犖朽�犖�犖橿�犖迦�" #: ../libpurple/protocols/msn/msn.c:1687 -msgid "Work E-Mail" +msgid "Work Email" msgstr "犖〝元犢�犖÷献犖�犖朽�犖�犖橿�犖迦�" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8477,7 +8467,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8657,12 +8647,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -8696,21 +8686,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" @@ -8721,7 +8711,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -8970,15 +8960,15 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9009,11 +8999,11 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6430 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6434 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9021,7 +9011,7 @@ msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6447 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "" #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9110,11 +9100,6 @@ msgid "College" msgstr "_犖∇�犖�" -#: ../libpurple/protocols/qq/buddy_info.c:55 -#, fuzzy -msgid "Email" -msgstr "犖〝元犢�犖÷献" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "" @@ -11807,7 +11792,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "" #: ../libpurple/protocols/silc/util.c:364 @@ -12146,7 +12131,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "" #: ../libpurple/protocols/toc/toc.c:533 @@ -14991,7 +14976,7 @@ msgstr "" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "犖�犖園�犖ム賢犖�_犖〝元犢�犖÷献" #: ../pidgin/gtkimhtml.c:1610 @@ -15385,8 +15370,8 @@ #: ../pidgin/gtknotify.c:564 #, fuzzy, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "<b>犖�顕犖∇献犖萎�犖〝元犖∇�犖�犖〝�犖�犖ム険犢�犖�犖〝鹸犖�</b>" msgstr[1] "<b>犖�顕犖∇献犖萎�犖〝元犖∇�犖�犖〝�犖�犖ム険犢�犖�犖〝鹸犖�</b>" @@ -16619,7 +16604,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "犢�犖÷�犖�顕犖÷顕犖��犖��犖�犖〝元犢�犖÷献犢�犖�犢�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16627,7 +16612,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16635,7 +16620,7 @@ msgstr "犢�犖�犖巌�犖÷�犖劇�犖〝�犖�犖�検犖伍�犖�犖朽�犖〝権犖項�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "犖��犖�犖〝元犢�犖÷献" #. Configuration frame @@ -16693,7 +16678,7 @@ msgstr "犖�犖迦検犖��犖伍献:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "犖〝元犢�犖÷献:" #. *< type
--- a/po/tr.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/tr.po Thu Jun 26 09:07:56 2008 +0000 @@ -3558,7 +3558,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "E-Posta" #: ../libpurple/protocols/bonjour/bonjour.c:374 @@ -3590,16 +3590,6 @@ msgid "Purple Person" msgstr "Mor Ki�i" -#: ../libpurple/protocols/bonjour/bonjour.c:676 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:901 -#: ../libpurple/protocols/silc/silc.c:1142 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-posta" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5250,7 +5240,7 @@ #: ../libpurple/protocols/novell/novell.c:1490 #: ../libpurple/protocols/oscar/oscar.c:3729 #: ../libpurple/protocols/oscar/oscar.c:3738 -msgid "E-Mail Address" +msgid "Email Address" msgstr "E-Posta Adresi" #: ../libpurple/protocols/jabber/buddy.c:2423 @@ -6305,7 +6295,7 @@ msgstr "S旦zdizimi hatas脹 (muhtemelen bir istemci hatas脹)" #: ../libpurple/protocols/msn/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "Ge巽ersiz e-posta adresi" #: ../libpurple/protocols/msn/error.c:49 @@ -6798,7 +6788,7 @@ msgstr "Ev Faks脹" #: ../libpurple/protocols/msn/msn.c:1781 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Ki�isel E-posta" #: ../libpurple/protocols/msn/msn.c:1782 @@ -6860,7 +6850,7 @@ msgstr "聴� Faks脹" #: ../libpurple/protocols/msn/msn.c:1812 -msgid "Work E-Mail" +msgid "Work Email" msgstr "聴� E-Postas脹" #: ../libpurple/protocols/msn/msn.c:1813 @@ -8528,7 +8518,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2454 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8706,12 +8696,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3963 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "%s e-posta adresi i巽in sonu巽 bulunamad脹" #: ../libpurple/protocols/oscar/oscar.c:3984 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "%s onay脹 soracak bir e-posta almal脹s脹n脹z." #: ../libpurple/protocols/oscar/oscar.c:3986 @@ -8746,7 +8736,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4029 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "Hata 0x%04x: E-posta adresi bi巽imlendirilemiyor 巽端nk端 zaten bir g旦r端nt端 ad脹 " @@ -8755,7 +8745,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4032 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "Hata 0x%04x: E-posta adresi bi巽imlendirilemiyor 巽端nk端 birden fazla g旦r端nt端 " @@ -8764,7 +8754,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4035 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "Hata 0x%04x: E-posta adresi bi巽imlendirilemiyor 巽端nk端 ge巽ersiz." @@ -8775,7 +8765,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4048 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s i巽in e-posta adresi %s" #: ../libpurple/protocols/oscar/oscar.c:4050 @@ -9036,15 +9026,15 @@ "kullan脹c脹dan izin isteyebilirsiniz." #: ../libpurple/protocols/oscar/oscar.c:6286 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "E-Posta ile Arkada� Bul" #: ../libpurple/protocols/oscar/oscar.c:6287 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "E-Posta adresiyle bir arkada� ara" #: ../libpurple/protocols/oscar/oscar.c:6288 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Arad脹�脹n脹z arkada�脹n e-posta adresini yaz脹n." #: ../libpurple/protocols/oscar/oscar.c:6291 @@ -9074,11 +9064,11 @@ msgstr "Hesab脹 Do�rula" #: ../libpurple/protocols/oscar/oscar.c:6485 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Halen Kay脹tl脹 Olan E-posta Adreslerini G旦ster" #: ../libpurple/protocols/oscar/oscar.c:6489 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�imdiki Kat脹tl脹 Olunan E-posta Adresini De�i�tir..." #: ../libpurple/protocols/oscar/oscar.c:6496 @@ -9086,7 +9076,7 @@ msgstr "聴zin Bekleyen Ki�ileri G旦ster" #: ../libpurple/protocols/oscar/oscar.c:6502 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "E-Posta Adresine G旦re Ki�i Ara..." #: ../libpurple/protocols/oscar/oscar.c:6507 @@ -9174,10 +9164,6 @@ msgid "College" msgstr "Kolej" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "E-Posta" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "Posta Kodu" @@ -11854,7 +11840,7 @@ #: ../libpurple/protocols/silc/util.c:366 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "E-posta: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:368 @@ -12178,7 +12164,7 @@ msgstr "Bu servis ge巽ici olarak hizmet d脹�脹d脹r." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "E-posta aramas脹 yasakland脹." #: ../libpurple/protocols/toc/toc.c:533 @@ -15064,7 +15050,7 @@ msgstr "Ba�lant脹lar脹 fare 端zerine geldi�inde renklendir." #: ../pidgin/gtkimhtml.c:1581 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "E-Posta Adresini _Kopyala" #: ../pidgin/gtkimhtml.c:1593 @@ -15467,8 +15453,8 @@ #: ../pidgin/gtknotify.c:569 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d yeni e-posta.</b>" #: ../pidgin/gtknotify.c:997 @@ -16733,7 +16719,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "E-Posta g旦nderilemedi." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16741,7 +16727,7 @@ msgstr "Evolution 巽al脹�t脹r脹labilir dosyas脹 PATH i巽erisinde bulunamad脹." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Bu ki�i i巽in bir e-posta adresi bulunamad脹." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16749,7 +16735,7 @@ msgstr "Adres Defterine Ekle" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "E-Posta Yolla" #. Configuration frame @@ -16807,8 +16793,8 @@ msgstr "Soyad:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" -msgstr "E-mail:" +msgid "Email:" +msgstr "Email:" #. *< type #. *< ui_requirement
--- a/po/uk.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/uk.po Thu Jun 26 09:07:56 2008 +0000 @@ -3635,7 +3635,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "�仍.仗仂��舒" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3671,17 +3671,6 @@ msgid "Purple Person" msgstr "�仂于舒 仂�仂弍舒" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "�仍.仗仂��舒:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5453,7 +5442,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�亟�亠�舒 亠仍.仗仂��亳" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6540,7 +6529,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�亠仗�舒于亳仍�仆舒 亠仍亠从��仂仆仆舒 舒亟�亠�舒" #: ../libpurple/protocols/msn/error.c:49 @@ -7105,7 +7094,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "��仂弍亳��舒 于亠弍-��仂��仆从舒" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7174,7 +7163,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "�仍.仗仂��舒" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8872,7 +8861,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9081,12 +9070,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "���仂亞仂 仆亠 亰仆舒亶亟亠仆仂 亟仍� 亠仍.舒亟�亠�亳 %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "�亳 仗仂于亳仆仆� 仂��亳仄舒�亳 亠仍. 仗仂��� �亰 仗�仂�舒仆仆�仄 仗�亟�于亠�亟亳�亳 %s." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -9126,7 +9115,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "�仂仄亳仍从舒 0x%04x: �亠 于亟舒����� 亰仄�仆亳�亳 舒亟�亠�� 亠仍. 仗仂��亳, �仂仄� �仂 于亢亠 � " @@ -9135,7 +9124,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "�仂仄亳仍从舒 0x%04x: �亠 于亟舒����� 亰仄�仆亳�亳 舒亟�亠�� 亠仍. 仗仂��亳, �仂仄� �仂 仆舒亟舒仆舒 舒亟�亠�舒 " @@ -9144,7 +9133,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "�仂仄亳仍从舒 0x%04x: �亠 于亟舒����� 亰仄�仆亳�亳 舒亟�亠�� 亠仍. 仗仂��亳 仆舒亰于亳 仂弍仍�从仂于仂亞仂 " @@ -9157,7 +9146,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�亟�亠�仂� 亠仍.仗仂��亳 亟仍� %s � %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9440,16 +9429,16 @@ "仆亳� 仗�舒于仂� 从仆仂仗从仂� 仄亳�� �舒 于亳弍�舒于�亳 \"�仂于�仂�仆亳亶 亰舒仗亳� 舒于�仂�亳亰舒���\"." #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "�仆舒亶�亳 从仂�亳���于舒�舒 亰舒 亠仍. 仗仂��仂�" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "丿�从舒�亳 从仂�亳���于舒�舒 亰舒 舒亟�亠�仂� 亠仍.仗仂��亳" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "�于亠亟��� 舒亟�亠�� e-mail 舒亟�亠��, �从仂亞仂 于亳 ��从舒��亠." +msgid "Type the email address of the buddy you are searching for." +msgstr "�于亠亟��� 舒亟�亠�� email 舒亟�亠��, �从仂亞仂 于亳 ��从舒��亠." #: ../libpurple/protocols/oscar/oscar.c:6236 #, fuzzy @@ -9481,12 +9470,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "��亟仂弍�舒亰亳�亳 仗仂�仂�仆� 亰舒�亠����仂于舒仆� 舒亟�亠��" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�仄�仆亳�亳 仗仂�仂�仆� 亰舒�亠����仂于舒仆� 舒亟�亠��..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9495,7 +9484,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "丿�从舒�亳 从仂�亳���于舒�舒 亰舒 舒亟�亠�仂� 亠仍.仗仂��亳..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9588,10 +9577,6 @@ msgid "College" msgstr "_�亞仂�仆��亳" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�仍.仗仂��舒" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12448,7 +12433,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�仍.仗仂��舒: \t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12804,7 +12789,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "�仂��从 亠仍.仗仂��亳 仂弍仄亠亢亠仆亳亶." #: ../libpurple/protocols/toc/toc.c:533 @@ -15841,7 +15826,7 @@ msgstr "�仂仍�� 亟仍� 于�亟仂弍�舒亢亠仆仆� 亞�仗亠�仗仂�亳仍舒仆�" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_�仂仗��于舒�亳 舒亟�亠�� 亠仍.仗仂��亳" #: ../pidgin/gtkimhtml.c:1610 @@ -16257,8 +16242,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -17578,7 +17563,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�亠 于亟舒����� 于�亟仗�舒于亳�亳 仗仂于�亟仂仄仍亠仆仆�." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17586,7 +17571,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17595,7 +17580,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "�仍.仗仂��舒" #. Configuration frame @@ -17655,7 +17640,7 @@ msgstr "���亰于亳�亠:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "�仍.仗仂��舒:" #. *< type @@ -19250,7 +19235,7 @@ #~ msgid "Check Mail" #~ msgstr "�亠�亠于��亳�亳 仗仂���" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "�亠�亠于����亳 仗仂��� 从仂亢仆� 丱 �亠从�仆亟.\n" #~ msgid "Auto-login"
--- a/po/ur.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/ur.po Thu Jun 26 09:07:56 2008 +0000 @@ -3927,7 +3927,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "悋�- ���" #: ../libpurple/protocols/bonjour/bonjour.c:379 @@ -3961,16 +3961,6 @@ msgid "Purple Person" msgstr "��悋 �惘惆" -#: ../libpurple/protocols/bonjour/bonjour.c:681 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:959 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "E-mail" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5629,7 +5619,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3724 #: ../libpurple/protocols/oscar/oscar.c:3733 -msgid "E-Mail Address" +msgid "Email Address" msgstr "悋� ��� 悋��惘�愕" #: ../libpurple/protocols/jabber/buddy.c:2423 @@ -6671,7 +6661,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "愃�惘�惺惠惡惘e-mai拆惠�" #: ../libpurple/protocols/msn/error.c:49 @@ -7302,8 +7292,8 @@ #: ../libpurple/protocols/msn/msn.c:1804 #: ../libpurple/protocols/msnp9/msn.c:1657 -msgid "Personal E-Mail" -msgstr "悵悋惠�E-Mail" +msgid "Personal Email" +msgstr "悵悋惠�Email" #: ../libpurple/protocols/msn/msn.c:1805 #: ../libpurple/protocols/msnp9/msn.c:1658 @@ -7378,8 +7368,8 @@ #: ../libpurple/protocols/msn/msn.c:1835 #: ../libpurple/protocols/msnp9/msn.c:1688 -msgid "Work E-Mail" -msgstr "�惘� E-Mail" +msgid "Work Email" +msgstr "�惘� Email" #: ../libpurple/protocols/msn/msn.c:1836 #: ../libpurple/protocols/msnp9/msn.c:1689 @@ -9117,12 +9107,12 @@ #: ../libpurple/protocols/oscar/oscar.c:2449 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" msgstr "" -"悛拆 �� ICQ e-mail��惶�� ��悋��愕� %s [%s]\n" +"悛拆 �� ICQ email��惶�� ��悋��愕� %s [%s]\n" "\n" "拆�悋� ��:\n" "%s" @@ -9298,12 +9288,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3958 #, c-format -msgid "No results found for e-mail address %s" -msgstr " e-mail address %s�������悧� �惠悋悧悴 ���攤 ���" +msgid "No results found for email address %s" +msgstr " email address %s�������悧� �惠悋悧悴 ���攤 ���" #: ../libpurple/protocols/oscar/oscar.c:3979 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "悛拆 ��%s�� 惠惶惆�� ����� 悋����� 忰悋惶� �惘�悋�悋����" #: ../libpurple/protocols/oscar/oscar.c:3981 @@ -9331,17 +9321,17 @@ #: ../libpurple/protocols/oscar/oscar.c:4024 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because there is already a request pending for this screen name." +msgid "Error 0x%04x: Unable to change email address because there is already a request pending for this screen name." msgstr "Error 0x%04x:悋����� 悋��惘�愕 惠惡惆�� ���攤 �惘愕�惠悋 ������ 悋愕 悋愕�惘�� �悋� �� ��� 拆��� �� 愕�惆惘悽�悋愕惠 拆�� ��悧� ���" #: ../libpurple/protocols/oscar/oscar.c:4027 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address has too many screen names associated with it." +msgid "Error 0x%04x: Unable to change email address because the given address has too many screen names associated with it." msgstr "Error 0x%04x:悋����� 悋��惘�愕 惠惡惆�� ���攤 �惘愕�惠悋 ������ 惆�悧�擯悧� 悋��惘�愕�愕 �� 愕悋惠攵 惡�惠 愕� 悋愕�惘�� �悋� �惠惶� ���" #: ../libpurple/protocols/oscar/oscar.c:4030 #, c-format -msgid "Error 0x%04x: Unable to change e-mail address because the given address is invalid." +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." msgstr "Error 0x%04x:悋����� 悋��惘�愕 惠惡惆�� ���攤 �惘愕�惠悋 ������ 惆�悧�擯悧�悋��惘�愕�愕 愃�惘�惺惠惡惘���" #: ../libpurple/protocols/oscar/oscar.c:4033 @@ -9351,7 +9341,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4043 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr " %s is %s�� ���悋����� 悋��惘�愕�愕" #: ../libpurple/protocols/oscar/oscar.c:4045 @@ -9577,15 +9567,15 @@ msgstr "悛拆 悋� 惡��慍 愕� 悋惠攵�惘悋悧慍�愆� 擧� 惆�惡悋惘� - 惆惘悽�悋愕惠 擧惘 愕擧惠� ��攤 悋� 惘悋悧拗- 擧��擧 擧惘擧�悋�惘 ��惠悽惡 擧惘擧�/\"惆�惡悋惘�- 惆惘悽�悋愕惠 悋惠攵�惘悋悧慍�愆��/\"" #: ../libpurple/protocols/oscar/oscar.c:6281 -msgid "Find Buddy by E-Mail" -msgstr "E-Mail�� 悵惘�惺� 惆�愕惠 �悋 �悋� 惠�悋愆 �惘�攤" +msgid "Find Buddy by Email" +msgstr "Email�� 悵惘�惺� 惆�愕惠 �悋 �悋� 惠�悋愆 �惘�攤" #: ../libpurple/protocols/oscar/oscar.c:6282 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "悋� - ��� 悋��惘�愕 擧� 悵惘�惺� 惡�� 擧� �悧� 惠�悋愆 擧惘�攤" #: ../libpurple/protocols/oscar/oscar.c:6283 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "惡�� 擧悋 悋� - ��� 悋��惘�愕 拗悋悧拆 擧惘�攤 悴愕 擧� �悧� 悛拆 惠�悋愆 擧惘惘�� ��攤�" #: ../libpurple/protocols/oscar/oscar.c:6286 @@ -9616,20 +9606,20 @@ msgstr "悋擧悋悗�拗 擧� 惠惶惆�� 擧惘�攤" #: ../libpurple/protocols/oscar/oscar.c:6480 -msgid "Display Currently Registered E-Mail Address" -msgstr "忰悋� �� ��攤 惆惘悴 ��悋擯�悋E-Mail 悋��惘�愕 �愕拆�� �惘�攤" +msgid "Display Currently Registered Email Address" +msgstr "忰悋� �� ��攤 惆惘悴 ��悋擯�悋Email 悋��惘�愕 �愕拆�� �惘�攤" #: ../libpurple/protocols/oscar/oscar.c:6484 -msgid "Change Currently Registered E-Mail Address..." -msgstr "忰悋� �� ��攤 惆惘悴 ��悋擯�悋E-Mail 悋��惘�愕 惠惡惆�� �惘�攤���" +msgid "Change Currently Registered Email Address..." +msgstr "忰悋� �� ��攤 惆惘悴 ��悋擯�悋Email 悋��惘�愕 惠惡惆�� �惘�攤���" #: ../libpurple/protocols/oscar/oscar.c:6491 msgid "Show Buddies Awaiting Authorization" msgstr "惡��慍 悋�惠惴悋惘 悋惠攵�惘悋悧慍�愆� 惆擧攵悋悗" #: ../libpurple/protocols/oscar/oscar.c:6497 -msgid "Search for Buddy by E-Mail Address..." -msgstr "惆�愕惠 �� ��� E-Mail悋��惘�愕 愕� 惠�悋愆 �惘�攤���" +msgid "Search for Buddy by Email Address..." +msgstr "惆�愕惠 �� ��� Email悋��惘�愕 愕� 惠�悋愆 �惘�攤���" #: ../libpurple/protocols/oscar/oscar.c:6502 msgid "Search for Buddy by Information" @@ -9711,10 +9701,6 @@ msgid "College" msgstr "����擯" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "悋� ���" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "慍拆 ���" @@ -12383,8 +12369,8 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" -msgstr "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" +msgstr "Email: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 #: ../libpurple/protocols/silc10/util.c:361 @@ -12703,8 +12689,8 @@ msgstr "惡惘悋� 惘悋愕惠 愕惘�愕 惺悋惘惷� 愀�惘 拆惘 愃�惘 惆愕惠�悋惡�" #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." -msgstr "E-mail 拆悋惡�惆 惆�攵悋悧� 惆�惠悋���" +msgid "Email lookup restricted." +msgstr "Email 拆悋惡�惆 惆�攵悋悧� 惆�惠悋���" #: ../libpurple/protocols/toc/toc.c:533 msgid "Keyword ignored." @@ -15672,7 +15658,7 @@ msgstr "�悋悧拆惘 ��擧愕 �惘悋悗 擧惘�� 擧� �悧� 惘�擯 悴惡 �悋悗愕 悋愕 拆惘 ���" #: ../pidgin/gtkimhtml.c:1581 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_悋� -��� 悋��惘�愕 ��� 擧惘�攤" #: ../pidgin/gtkimhtml.c:1593 @@ -16091,8 +16077,8 @@ #: ../pidgin/gtknotify.c:570 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17386,7 +17372,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "悋� - ��� 惡攵�悴�� ��攤 �悋�悋惡�" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17394,7 +17380,7 @@ msgstr "悋惘惠�悋悧 擧悋 惺�� 惆惘悛�惆 PATH��攤 ���攤 ��悋�" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "悋�� 悋� ��� 悋��惘�愕 悋愕 惡�� �� ��� 悋愕惠惺�悋� ���攤 ��悋 擯�悋 惠攵悋�" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17402,7 +17388,7 @@ msgstr "悋��惘�愕 惡擧 ��攤 ��悋悗" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "悋� ��� 惡攵�悴�" #. Configuration frame @@ -17460,7 +17446,7 @@ msgstr "悛悽惘� �悋�:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "悋� -���:" #. *< type
--- a/po/vi.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/vi.po Thu Jun 26 09:07:56 2008 +0000 @@ -3952,7 +3952,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "�畛�a ch畛� th動" #: ../libpurple/protocols/bonjour/bonjour.c:401 @@ -3984,16 +3984,6 @@ msgid "Purple Person" msgstr "Ng動畛�i Purple" -#: ../libpurple/protocols/bonjour/bonjour.c:703 -#: ../libpurple/protocols/gg/gg.c:478 -#: ../libpurple/protocols/jabber/jabber.c:982 -#: ../libpurple/protocols/silc/silc.c:913 -#: ../libpurple/protocols/silc/silc.c:1154 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "�畛�a ch畛� th動" - # �但y l� t棚n c畛�a giao th畛�c Apple: �畛�ng d畛�ch. #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" @@ -5690,7 +5680,7 @@ #: ../libpurple/protocols/novell/novell.c:1497 #: ../libpurple/protocols/oscar/oscar.c:3695 #: ../libpurple/protocols/oscar/oscar.c:3704 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�畛�a ch畛� th動" #: ../libpurple/protocols/jabber/buddy.c:2425 @@ -6736,7 +6726,7 @@ #: ../libpurple/protocols/msn/error.c:46 #: ../libpurple/protocols/msnp9/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�畛�a ch畛� th動 �i畛�n t畛� kh担ng h畛�p l畛�" #: ../libpurple/protocols/msn/error.c:49 @@ -7367,7 +7357,7 @@ #: ../libpurple/protocols/msn/msn.c:1804 #: ../libpurple/protocols/msnp9/msn.c:1657 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Th動 �i畛�n t畛� c叩 nh但n" #: ../libpurple/protocols/msn/msn.c:1805 @@ -7443,7 +7433,7 @@ #: ../libpurple/protocols/msn/msn.c:1835 #: ../libpurple/protocols/msnp9/msn.c:1688 -msgid "Work E-Mail" +msgid "Work Email" msgstr "Th動 �i畛�n t畛� vi畛�c l�m" #: ../libpurple/protocols/msn/msn.c:1836 @@ -9202,7 +9192,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2444 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9379,12 +9369,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3929 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Kh担ng t狸m th畉�y ng動畛�i n�o c坦 �i畉� ch畛� th動 %s" #: ../libpurple/protocols/oscar/oscar.c:3950 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "B畉�n s畉� nh畉�n �動畛�c m畛�t th動 y棚u c畉�u x叩c nh畉�n %s." #: ../libpurple/protocols/oscar/oscar.c:3952 @@ -9417,21 +9407,21 @@ #: ../libpurple/protocols/oscar/oscar.c:3995 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "L畛�i 0x%04x: Kh担ng �畛�i �動畛�c �畛�a ch畛� th動 v狸 �達 c坦 m畛�t y棚u c畉�u b畛� ho達n cho t棚n hi畛�n th畛� n�y." #: ../libpurple/protocols/oscar/oscar.c:3998 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "L畛�i 0x%04x: Kh担ng �畛�i �動畛�c �畛�a ch畛� th動 v狸 c坦 qu叩 nhi畛�u t棚n hi畛�n th畛� c坦 li棚n quan v畛�i �畛�a ch畛� n�y." #: ../libpurple/protocols/oscar/oscar.c:4001 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "L畛�i 0x%04x: Kh担ng thay �畛�i �動畛�c �畛�a ch畛� th動 v狸 �畛�a ch畛� �動a ra kh担ng h畛�p l畛�." @@ -9442,7 +9432,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "�畛�a ch畛� th動 c畛�a %s l� %s" #: ../libpurple/protocols/oscar/oscar.c:4016 @@ -9683,16 +9673,16 @@ msgstr "B畉�n c坦 th畛� g畛�i l畉�i y棚u c畉�u s畛� cho ph辿p c畛�a nh畛�ng b畉�n ch叩t n�y b畉�ng c叩ch nh畉�n chu畛�t ph畉�i v�o t棚n ng動畛�i �坦 v� ch畛�n 束 Y棚u c畉�u l畉�i s畛� cho ph辿p 損." #: ../libpurple/protocols/oscar/oscar.c:6256 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "T狸m b畉�n ch叩t d畛�a theo �畛�a ch畛� th動" #: ../libpurple/protocols/oscar/oscar.c:6257 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "T狸m ki畉�m b畉�n ch叩t b畉�ng �畛�a ch畛� th動 �i畛�n t畛�" #: ../libpurple/protocols/oscar/oscar.c:6258 -msgid "Type the e-mail address of the buddy you are searching for." -msgstr "H達y nh畉�p �畛�a ch畛� e-mail c畛�a b畉�n ch叩t m� b畉�n c畉�n t狸m." +msgid "Type the email address of the buddy you are searching for." +msgstr "H達y nh畉�p �畛�a ch畛� email c畛�a b畉�n ch叩t m� b畉�n c畉�n t狸m." #: ../libpurple/protocols/oscar/oscar.c:6261 msgid "_Search" @@ -9721,11 +9711,11 @@ msgstr "X叩c nh畉�n t�i kho畉�n" #: ../libpurple/protocols/oscar/oscar.c:6455 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Hi畛�n th畛� �畛�a ch畛� th動 ��ng k箪 hi畛�n th畛�i" #: ../libpurple/protocols/oscar/oscar.c:6459 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�畛�i �畛�a ch畛� th動 ��ng k箪 hi畛�n th畛�i..." #: ../libpurple/protocols/oscar/oscar.c:6466 @@ -9733,7 +9723,7 @@ msgstr "Hi畛�n th畛� c叩c b畉�n ch叩t ch畛� s畛� cho ph辿p" #: ../libpurple/protocols/oscar/oscar.c:6472 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "T狸m ki畉�m b畉�n ch叩t theo �畛�a ch畛� th動..." #: ../libpurple/protocols/oscar/oscar.c:6477 @@ -9820,10 +9810,6 @@ msgid "College" msgstr "Cao �畉�ng" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�畛�a ch畛� th動" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "M達 b動u �i畛�n" @@ -12529,7 +12515,7 @@ #: ../libpurple/protocols/silc/util.c:368 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�畛�a ch畛� th動 : \t\t%s\n" #: ../libpurple/protocols/silc/util.c:370 @@ -12853,7 +12839,7 @@ msgstr "T畉�m th畛�i kh担ng c坦 d畛�ch v畛� danh b畉�." #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Kh畉� n�ng tra t狸m �畛�a ch畛� th動 �i畛�n t畛� b畛� h畉�n ch畉�." #: ../libpurple/protocols/toc/toc.c:533 @@ -15876,7 +15862,7 @@ msgstr "M�u �畛� v畉� t棚n c畛�a tin nh畉�n h�nh �畛�ng." #: ../pidgin/gtkimhtml.c:1630 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Ch辿p �畛�a ch畛� th動" #: ../pidgin/gtkimhtml.c:1642 @@ -16322,8 +16308,8 @@ #: ../pidgin/gtknotify.c:572 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d th動 m畛�i.</b>" #: ../pidgin/gtknotify.c:1004 @@ -17618,7 +17604,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Kh担ng th畛� g畛�i th動." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17626,7 +17612,7 @@ msgstr "Kh担ng t狸m th畉�y t畉�p tin th畛�c thi Evolution tr棚n �動畛�ng d畉�n h畛� th畛�ng m畉�c �畛�nh (bi畉�n PATH)." #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "Kh担ng t狸m th畉�y �畛�a ch畛� th動 cho b畉�n ch叩t n�y." #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17634,7 +17620,7 @@ msgstr "Th棚m v�o s畛� �畛�a ch畛�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "G畛�i th動" #.Configuration frame @@ -17692,7 +17678,7 @@ msgstr "H畛� :" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "�畛�a ch畛� th動 :" #.*< type
--- a/po/xh.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/xh.po Thu Jun 26 09:07:56 2008 +0000 @@ -3644,7 +3644,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "I-imeyile" #: ../libpurple/protocols/bonjour/bonjour.c:360 @@ -3680,17 +3680,6 @@ msgid "Purple Person" msgstr "Umntu omTsha" -#: ../libpurple/protocols/bonjour/bonjour.c:662 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -#, fuzzy -msgid "E-mail" -msgstr "I-imeyile:" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "" @@ -5470,7 +5459,7 @@ #: ../libpurple/protocols/novell/novell.c:1488 #: ../libpurple/protocols/oscar/oscar.c:3714 #: ../libpurple/protocols/oscar/oscar.c:3723 -msgid "E-Mail Address" +msgid "Email Address" msgstr "Idilesi ye-iMeyili" #: ../libpurple/protocols/jabber/buddy.c:2410 @@ -6560,7 +6549,7 @@ #: ../libpurple/protocols/msn/error.c:46 #, c-format -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "IDilesi ye-imeyile engasebenziyo" #: ../libpurple/protocols/msn/error.c:49 @@ -7127,7 +7116,7 @@ #: ../libpurple/protocols/msn/msn.c:1656 #, fuzzy -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "Isihloko Sobuqu" #: ../libpurple/protocols/msn/msn.c:1657 @@ -7196,7 +7185,7 @@ #: ../libpurple/protocols/msn/msn.c:1687 #, fuzzy -msgid "Work E-Mail" +msgid "Work Email" msgstr "I-imeyile" #: ../libpurple/protocols/msn/msn.c:1688 @@ -8904,7 +8893,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2439 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -9099,12 +9088,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3948 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "Akukho ziphumo zifunyenweyo zedilesi ye-imeyile %s" #: ../libpurple/protocols/oscar/oscar.c:3969 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "Uza kufumana i-imeyile ecela ukuba ungqine %s." #: ../libpurple/protocols/oscar/oscar.c:3971 @@ -9144,7 +9133,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4014 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "" "Impazamo 0x%04x: Akukwazeki ukutshintsha idilesi ye-imeyile ngenxa yokuba " @@ -9153,7 +9142,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4017 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "" "Impazamo 0x%04x: Akukwazeki ukutshintsha idilesi ye-imeyile ngenxa yokuba " @@ -9162,7 +9151,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4020 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "" "Impazamo 0x%04x: Akukwazeki ukutshintsha idilesi ye-imeyile ngenxa yokuba " @@ -9175,7 +9164,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4033 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "Idilesi ye-imeyili ye %s yile %s" #: ../libpurple/protocols/oscar/oscar.c:4035 @@ -9463,15 +9452,15 @@ "nokukhetha \"Isicelo soGunyaziso Kwakhona.\"" #: ../libpurple/protocols/oscar/oscar.c:6231 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "Fumana umHlobo ngeI-meyile" #: ../libpurple/protocols/oscar/oscar.c:6232 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "Zingela umhlobo ngedilesi ye-imeyile" #: ../libpurple/protocols/oscar/oscar.c:6233 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "Chwetheza idilesi ye-imeyile yomhlobo omzingelayo." #: ../libpurple/protocols/oscar/oscar.c:6236 @@ -9504,12 +9493,12 @@ #: ../libpurple/protocols/oscar/oscar.c:6430 #, fuzzy -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "Bonisa iDilesi eBhalisiweyo ngeli thuba" #: ../libpurple/protocols/oscar/oscar.c:6434 #, fuzzy -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "Tshintsha iDilesi eBhaliweyo Ngeli thuba..." #: ../libpurple/protocols/oscar/oscar.c:6441 @@ -9518,7 +9507,7 @@ #: ../libpurple/protocols/oscar/oscar.c:6447 #, fuzzy -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "Zingela umHlobo nge-Imeyile..." #: ../libpurple/protocols/oscar/oscar.c:6452 @@ -9611,10 +9600,6 @@ msgid "College" msgstr "_Ukudilika" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "I-imeyile" - #: ../libpurple/protocols/qq/buddy_info.c:57 #, fuzzy msgid "Zipcode" @@ -12487,7 +12472,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, fuzzy, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "I-iMeyile: \t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12844,7 +12829,7 @@ #: ../libpurple/protocols/toc/toc.c:530 #, c-format -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "Ukukhangela i-imeyile kunezithintelo." #: ../libpurple/protocols/toc/toc.c:533 @@ -15877,7 +15862,7 @@ msgstr "Umbala wokuzoba uqhagamshelwano." #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "_Kopa iDilesi ye-iMeyile" #: ../pidgin/gtkimhtml.c:1610 @@ -16284,8 +16269,8 @@ #: ../pidgin/gtknotify.c:564 #, c-format -msgid "<b>You have %d new e-mail.</b>" -msgid_plural "<b>You have %d new e-mails.</b>" +msgid "<b>You have %d new email.</b>" +msgid_plural "<b>You have %d new emails.</b>" msgstr[0] "" msgstr[1] "" @@ -17609,7 +17594,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 #, fuzzy -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "Akukwazeki ukuthumela umyalezo." #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -17617,7 +17602,7 @@ msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -17626,7 +17611,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:285 #, fuzzy -msgid "Send E-Mail" +msgid "Send Email" msgstr "I-imeyile" #. Configuration frame @@ -17685,7 +17670,7 @@ msgstr "iFani:" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "I-imeyile:" #. *< type @@ -19289,7 +19274,7 @@ #~ msgid "Check Mail" #~ msgstr "Khangela iMeyile" -#~ msgid "Check e-mail every X seconds.\n" +#~ msgid "Check email every X seconds.\n" #~ msgstr "Khangela i-imeyile njalo ngemizuzwana X.\n" #~ msgid "Auto-login"
--- a/po/zh_CN.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/zh_CN.po Thu Jun 26 09:07:56 2008 +0000 @@ -3523,7 +3523,7 @@ #: ../libpurple/protocols/silc10/ops.c:1075 #: ../libpurple/protocols/silc10/util.c:551 #: ../libpurple/protocols/yahoo/yahoo_profile.c:1061 -msgid "E-Mail" +msgid "Email" msgstr "�球���散" #: ../libpurple/protocols/bonjour/bonjour.c:374 @@ -3555,16 +3555,6 @@ msgid "Purple Person" msgstr "Purple ��膤私査" -#: ../libpurple/protocols/bonjour/bonjour.c:676 -#: ../libpurple/protocols/gg/gg.c:477 -#: ../libpurple/protocols/jabber/jabber.c:932 -#: ../libpurple/protocols/silc/silc.c:770 -#: ../libpurple/protocols/silc/silc.c:1011 -#: ../libpurple/protocols/silc10/silc.c:681 -#: ../libpurple/protocols/silc10/silc.c:922 -msgid "E-mail" -msgstr "�球���散" - #: ../libpurple/protocols/bonjour/bonjour.h:33 msgid "Bonjour" msgstr "Bonjour" @@ -5217,7 +5207,7 @@ #: ../libpurple/protocols/novell/novell.c:1490 #: ../libpurple/protocols/oscar/oscar.c:3729 #: ../libpurple/protocols/oscar/oscar.c:3738 -msgid "E-Mail Address" +msgid "Email Address" msgstr "�球���散�医��" #: ../libpurple/protocols/jabber/buddy.c:2413 @@ -6303,7 +6293,7 @@ msgstr "��莚�(���醇����欠��� bug)" #: ../libpurple/protocols/msn/error.c:46 -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�������球���散�医��" #: ../libpurple/protocols/msn/error.c:49 @@ -6798,7 +6788,7 @@ msgstr "絎九梱篌���" #: ../libpurple/protocols/msn/msn.c:1760 -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "筝�査�球���散" #: ../libpurple/protocols/msn/msn.c:1761 @@ -6860,7 +6850,7 @@ msgstr "�������" #: ../libpurple/protocols/msn/msn.c:1791 -msgid "Work E-Mail" +msgid "Work Email" msgstr "�����球���散" #: ../libpurple/protocols/msn/msn.c:1792 @@ -8544,7 +8534,7 @@ #: ../libpurple/protocols/oscar/oscar.c:2454 #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -8722,12 +8712,12 @@ #: ../libpurple/protocols/oscar/oscar.c:3963 #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "���上�遺��球���散�医�� %s �拷����膸���" #: ../libpurple/protocols/oscar/oscar.c:3984 #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "���綵��九�域���`莅� %s ����散��" #: ../libpurple/protocols/oscar/oscar.c:3986 @@ -8760,21 +8750,21 @@ #: ../libpurple/protocols/oscar/oscar.c:4029 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this screen name." msgstr "��莚� 0x%04x鐚���羈��贋�合�球���散�医��鐚�������④���桁��綏牙���茴�ィ����莚傑���" #: ../libpurple/protocols/oscar/oscar.c:4032 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many screen names associated with it." msgstr "��莚� 0x%04x鐚���羈��贋�合�球���散�医��鐚��������絎����医���活�������桁��紊����" #: ../libpurple/protocols/oscar/oscar.c:4035 #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "��莚� 0x%04x鐚���羈��贋�合�球���散�医��鐚��������絎����医��������" @@ -8785,7 +8775,7 @@ #: ../libpurple/protocols/oscar/oscar.c:4048 #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s ���球���散�医��筝� %s" #: ../libpurple/protocols/oscar/oscar.c:4050 @@ -9041,15 +9031,15 @@ "羆�莅よ�����" #: ../libpurple/protocols/oscar/oscar.c:6285 -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "���球���散�ユ�上ソ��" #: ../libpurple/protocols/oscar/oscar.c:6286 -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "���球���散�医����膣√ソ��" #: ../libpurple/protocols/oscar/oscar.c:6287 -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "莨��ユ���活���膣∝��絅遵����球���散�医����" #: ../libpurple/protocols/oscar/oscar.c:6290 @@ -9079,11 +9069,11 @@ msgstr "隋��茣���" #: ../libpurple/protocols/oscar/oscar.c:6484 -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "�丞ず綵���羈������球���散�医��" #: ../libpurple/protocols/oscar/oscar.c:6488 -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "�贋�劫���羈������球���散�医��..." #: ../libpurple/protocols/oscar/oscar.c:6495 @@ -9091,7 +9081,7 @@ msgstr "�丞ず罩e�����莅よ���絅遵�" #: ../libpurple/protocols/oscar/oscar.c:6501 -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "���球���散��膣√ソ��..." #: ../libpurple/protocols/oscar/oscar.c:6506 @@ -9178,10 +9168,6 @@ msgid "College" msgstr "紊у⑥" -#: ../libpurple/protocols/qq/buddy_info.c:55 -msgid "Email" -msgstr "�球���散" - #: ../libpurple/protocols/qq/buddy_info.c:57 msgid "Zipcode" msgstr "���睡���" @@ -11860,7 +11846,7 @@ #: ../libpurple/protocols/silc/util.c:362 #: ../libpurple/protocols/silc10/util.c:359 #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�球���散:\t\t%s\n" #: ../libpurple/protocols/silc/util.c:364 @@ -12184,7 +12170,7 @@ msgstr "������≧���銀�������" #: ../libpurple/protocols/toc/toc.c:530 -msgid "E-mail lookup restricted." +msgid "Email lookup restricted." msgstr "�球���散�ラ��茴����吟��" #: ../libpurple/protocols/toc/toc.c:533 @@ -15036,7 +15022,7 @@ msgstr "膸��区�膾ч�丈・�����句��蘂��蚊��" #: ../pidgin/gtkimhtml.c:1598 -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "紊��句�球���散�医��(_C)" #: ../pidgin/gtkimhtml.c:1610 @@ -15427,8 +15413,8 @@ #: ../pidgin/gtknotify.c:569 #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d 絨��育��散��</b>" #: ../pidgin/gtknotify.c:997 @@ -16646,7 +16632,7 @@ #: ../pidgin/plugins/gevolution/gevolution.c:240 #: ../pidgin/plugins/gevolution/gevolution.c:246 -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "��羈������球���散��" #: ../pidgin/plugins/gevolution/gevolution.c:241 @@ -16654,7 +16640,7 @@ msgstr "Evolution ���ц���篁倶���� PATH 筝㊥�上�違��" #: ../pidgin/plugins/gevolution/gevolution.c:247 -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "罩ゅソ������亥�球���散�医����" #: ../pidgin/plugins/gevolution/gevolution.c:273 @@ -16662,7 +16648,7 @@ msgstr "羞糸���医�医��膂�" #: ../pidgin/plugins/gevolution/gevolution.c:285 -msgid "Send E-Mail" +msgid "Send Email" msgstr "�����球���散" #. Configuration frame @@ -16720,7 +16706,7 @@ msgstr "紮�鐚�" #: ../pidgin/plugins/gevolution/new_person_dialog.c:376 -msgid "E-mail:" +msgid "Email:" msgstr "�球���散鐚�" #. *< type
--- a/po/zh_HK.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/zh_HK.po Thu Jun 26 09:07:56 2008 +0000 @@ -2837,7 +2837,7 @@ msgid "Last name" msgstr "紮�" -msgid "E-Mail" +msgid "Email" msgstr "�糸��灸散" msgid "AIM Account" @@ -2864,9 +2864,6 @@ msgid "Purple Person" msgstr "��機篋�" -msgid "E-mail" -msgstr "�糸��灸散" - # NOTE ������荐���絎���腮縁�筝������顄� msgid "Bonjour" msgstr "Bonjour" @@ -3984,7 +3981,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "紂��ヤ�����紊���罨�篏�鐚�篁ユ��絨�XMPP篏睡������" -msgid "E-Mail Address" +msgid "Email Address" msgstr "�糸��灸散" msgid "Search for XMPP users" @@ -4808,7 +4805,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "茯�羈����鐚����醇�����句��� Bug鐚�" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�糸��灸散篏����≧��" msgid "User does not exist" @@ -5176,7 +5173,7 @@ msgid "Home Fax" msgstr "絎句���括��" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "��篋咲�糸��灸散" msgid "Personal IM" @@ -5219,7 +5216,7 @@ msgid "Work Fax" msgstr "�����括��" -msgid "Work E-Mail" +msgid "Work Email" msgstr "�����糸��灸散" msgid "Work IM" @@ -6592,7 +6589,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6737,11 +6734,11 @@ msgstr[1] "筝����� %s ��絽活��" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�鞘��医���糸��灸散�医�� %s �檎����腟���" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "篏���荅我���九�遺�絨�荀�羆�絨� %s �画�茯�茘����糸��灸散��" msgid "Account Confirmation Requested" @@ -6765,20 +6762,20 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "��� 0x%04x鐚��≧��壕��糸��灸散�医��鐚����咲����絽活��絨���荀�羆�膈�緇�������" #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "��� 0x%04x鐚��≧��壕��糸��灸散�医��鐚����咲�����糸��灸散�医����紊����絽活���∝�����c��" #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "��� 0x%04x鐚��≧��壕��糸��灸散�医��鐚����咲�����糸��灸散�医�����≧������" @@ -6790,7 +6787,7 @@ msgstr "�贋�劫験��莖�荐����" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s ���糸��灸散�医���� %s" msgid "Account Info" @@ -7001,13 +6998,13 @@ "篏���札���域�羆���篋�絅遵���茯�茘�鐚������ソ��羝���賢篁ユ�藜��渇�級���篁���鐚��九��御��" "��荀�羆����域�茘�����" -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "篁ラ�糸��灸散�医��箴��上�絅遵�" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "篏睡���糸��灸散�医����絨�絅遵�" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "茫�莠後�ュ��合���糸��灸散�医����" msgid "_Search" @@ -7031,16 +7028,16 @@ msgid "Confirm Account" msgstr "腆肴�絽活��" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "蕁�ず������荐糸�����糸��灸散篏���" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "篆��合������荐糸�����糸��灸散篏���..." msgid "Show Buddies Awaiting Authorization" msgstr "蕁�ず膈�緇�茯�茘���絅遵�" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "篏睡���糸��灸散�医����絨�絅遵�..." msgid "Search for Buddy by Information" @@ -7106,9 +7103,6 @@ msgid "College" msgstr "紊уⅣ鐚鎀у�" -msgid "Email" -msgstr "�糸��灸散" - msgid "Zipcode" msgstr "�級������" @@ -8889,7 +8883,7 @@ msgstr "篏睡������腮縁�\t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�糸��灸散鐚�\t\t%s\n" #, c-format @@ -9131,8 +9125,8 @@ msgid "Dir service temporarily unavailable." msgstr "�����≧�篏睡������������" -msgid "E-mail lookup restricted." -msgstr "胼�罩� E-Mail 罟∽�ャ��" +msgid "Email lookup restricted." +msgstr "胼�罩� Email 罟∽�ャ��" msgid "Keyword ignored." msgstr "���球�綏画←綽順�ャ��" @@ -11573,7 +11567,7 @@ msgid "Enable typing notification" msgstr "����叱�ラ����" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "茲�茖初�糸��灸散�医��(_C)" msgid "_Open Link in Browser" @@ -11917,8 +11911,8 @@ msgstr[1] "%s �� %d 絨��育�灸散��" #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d 絨��育�灸散��</b>" msgstr[1] "<b>%d 絨��育�灸散��</b>" @@ -12965,20 +12959,20 @@ msgid "_Associate Buddy" msgstr "���絅遵� (_A)" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�≧����咲�糸��灸散" msgid "The evolution executable was not found in the PATH." msgstr "�� PATH 茖�憘��医��決��� Evolution 腮�綣��" -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�憘��域������絅遵��檎�����脂�球�医����" # NOTE 羈����evolution ��昆��茘������������������������荐����� msgid "Add to Address Book" msgstr "紜����育��荐���" -msgid "Send E-Mail" +msgid "Send Email" msgstr "�渇���糸��灸散" #. Configuration frame @@ -13031,7 +13025,7 @@ msgid "Last name:" msgstr "紮�鐚�" -msgid "E-mail:" +msgid "Email:" msgstr "�糸��灸散鐚�" #. *< type
--- a/po/zh_TW.po Thu Jun 26 08:42:49 2008 +0000 +++ b/po/zh_TW.po Thu Jun 26 09:07:56 2008 +0000 @@ -2835,7 +2835,7 @@ msgid "Last name" msgstr "紮�" -msgid "E-Mail" +msgid "Email" msgstr "�糸��灸散" msgid "AIM Account" @@ -2862,9 +2862,6 @@ msgid "Purple Person" msgstr "�g機篋�" -msgid "E-mail" -msgstr "�糸��灸散" - # NOTE ������荐���絎���腮縁�筝������顄� msgid "Bonjour" msgstr "Bonjour" @@ -3982,7 +3979,7 @@ msgid "Fill in one or more fields to search for any matching XMPP users." msgstr "紂��ヤ�����紊���罨�篏�鐚�篁ユ��絨�XMPP篏睡������" -msgid "E-Mail Address" +msgid "Email Address" msgstr "�糸��灸散" msgid "Search for XMPP users" @@ -4806,7 +4803,7 @@ msgid "Syntax Error (probably a client bug)" msgstr "茯�羈����鐚����醇�����句��� Bug鐚�" -msgid "Invalid e-mail address" +msgid "Invalid email address" msgstr "�糸��灸散篏����≧��" msgid "User does not exist" @@ -5174,7 +5171,7 @@ msgid "Home Fax" msgstr "篏鎘九�括��" -msgid "Personal E-Mail" +msgid "Personal Email" msgstr "��篋咲�糸��灸散" msgid "Personal IM" @@ -5217,7 +5214,7 @@ msgid "Work Fax" msgstr "�����括��" -msgid "Work E-Mail" +msgid "Work Email" msgstr "�����糸��灸散" msgid "Work IM" @@ -6590,7 +6587,7 @@ #, c-format msgid "" -"You have received an ICQ e-mail from %s [%s]\n" +"You have received an ICQ email from %s [%s]\n" "\n" "Message is:\n" "%s" @@ -6735,11 +6732,11 @@ msgstr[1] "筝����� %s ��絽活��" #, c-format -msgid "No results found for e-mail address %s" +msgid "No results found for email address %s" msgstr "�鞘��医���糸��灸散�医�� %s �檎����腟���" #, c-format -msgid "You should receive an e-mail asking to confirm %s." +msgid "You should receive an email asking to confirm %s." msgstr "����荅我���九�遺�絨�荀�羆�絨� %s �画�茯�茘����糸��灸散��" msgid "Account Confirmation Requested" @@ -6763,20 +6760,20 @@ #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because there is already a " +"Error 0x%04x: Unable to change email address because there is already a " "request pending for this username." msgstr "��� 0x%04x鐚��≧��壕��糸��灸散�医��鐚����咲����絽活��絨���荀�羆�膈�緇�������" #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address has " +"Error 0x%04x: Unable to change email address because the given address has " "too many usernames associated with it." msgstr "" "��� 0x%04x鐚��≧��壕��糸��灸散�医��鐚����咲�����糸��灸散�医����紊����絽活���∝�����c��" #, c-format msgid "" -"Error 0x%04x: Unable to change e-mail address because the given address is " +"Error 0x%04x: Unable to change email address because the given address is " "invalid." msgstr "��� 0x%04x鐚��≧��壕��糸��灸散�医��鐚����咲�����糸��灸散�医�����≧������" @@ -6788,7 +6785,7 @@ msgstr "�贋�劫験��莖�荐����" #, c-format -msgid "The e-mail address for %s is %s" +msgid "The email address for %s is %s" msgstr "%s ���糸��灸散�医���� %s" msgid "Account Info" @@ -6999,13 +6996,13 @@ "���札���域�羆���篋�絅遵���茯�茘�鐚������ソ��羝���賢篁ユ�藜��渇�級���篁���鐚��九��御��" "��荀�羆����域�茘�����" -msgid "Find Buddy by E-Mail" +msgid "Find Buddy by Email" msgstr "篁ラ�糸��灸散�医��箴��上�絅遵�" -msgid "Search for a buddy by e-mail address" +msgid "Search for a buddy by email address" msgstr "篏睡���糸��灸散�医����絨�絅遵�" -msgid "Type the e-mail address of the buddy you are searching for." +msgid "Type the email address of the buddy you are searching for." msgstr "茫�莠後�ュ��合���糸��灸散�医����" msgid "_Search" @@ -7029,16 +7026,16 @@ msgid "Confirm Account" msgstr "腆肴�絽活��" -msgid "Display Currently Registered E-Mail Address" +msgid "Display Currently Registered Email Address" msgstr "蕁�ず������荐糸�����糸��灸散篏���" -msgid "Change Currently Registered E-Mail Address..." +msgid "Change Currently Registered Email Address..." msgstr "篆��合������荐糸�����糸��灸散篏���..." msgid "Show Buddies Awaiting Authorization" msgstr "蕁�ず膈�緇�茯�茘���絅遵�" -msgid "Search for Buddy by E-Mail Address..." +msgid "Search for Buddy by Email Address..." msgstr "篏睡���糸��灸散�医����絨�絅遵�..." msgid "Search for Buddy by Information" @@ -7104,9 +7101,6 @@ msgid "College" msgstr "紊уⅣ鐚鎀у�" -msgid "Email" -msgstr "�糸��灸散" - msgid "Zipcode" msgstr "�級������" @@ -8883,7 +8877,7 @@ msgstr "篏睡������腮縁�\t%s\n" #, c-format -msgid "E-Mail: \t\t%s\n" +msgid "Email: \t\t%s\n" msgstr "�糸��灸散鐚�\t\t%s\n" #, c-format @@ -9125,8 +9119,8 @@ msgid "Dir service temporarily unavailable." msgstr "�����≧�篏睡������������" -msgid "E-mail lookup restricted." -msgstr "胼�罩� E-Mail 罟∽�ャ��" +msgid "Email lookup restricted." +msgstr "胼�罩� Email 罟∽�ャ��" msgid "Keyword ignored." msgstr "���球�綏画←綽順�ャ��" @@ -11567,7 +11561,7 @@ msgid "Enable typing notification" msgstr "����叱�ラ����" -msgid "_Copy E-Mail Address" +msgid "_Copy Email Address" msgstr "茲�茖初�糸��灸散�医��(_C)" msgid "_Open Link in Browser" @@ -11911,8 +11905,8 @@ msgstr[1] "%s �� %d 絨��育�灸散��" #, c-format -msgid "<b>%d new e-mail.</b>" -msgid_plural "<b>%d new e-mails.</b>" +msgid "<b>%d new email.</b>" +msgid_plural "<b>%d new emails.</b>" msgstr[0] "<b>%d 絨��育�灸散��</b>" msgstr[1] "<b>%d 絨��育�灸散��</b>" @@ -12959,20 +12953,20 @@ msgid "_Associate Buddy" msgstr "���絅遵� (_A)" -msgid "Unable to send e-mail" +msgid "Unable to send email" msgstr "�≧����咲�糸��灸散" msgid "The evolution executable was not found in the PATH." msgstr "�� PATH 茖≧�鞘��医��決��� Evolution 腮�綣��" -msgid "An e-mail address was not found for this buddy." +msgid "An email address was not found for this buddy." msgstr "�憘��域������絅遵��檎�����脂�球�医����" # NOTE 羈����evolution ��昆��茘������������������������荐����� msgid "Add to Address Book" msgstr "紜����育��荐���" -msgid "Send E-Mail" +msgid "Send Email" msgstr "�渇���糸��灸散" #. Configuration frame @@ -13025,7 +13019,7 @@ msgid "Last name:" msgstr "紮�鐚�" -msgid "E-mail:" +msgid "Email:" msgstr "�糸��灸散鐚�" #. *< type
--- a/share/ca-certs/Makefile.am Thu Jun 26 08:42:49 2008 +0000 +++ b/share/ca-certs/Makefile.am Thu Jun 26 09:07:56 2008 +0000 @@ -1,5 +1,4 @@ -cacertsdir = $(datadir)/purple/ca-certs -cacerts_DATA = \ +CERTIFICATES = \ Equifax_Secure_CA.pem \ GTE_CyberTrust_Global_Root.pem \ Microsoft_Secure_Server_Authority.pem \ @@ -7,7 +6,12 @@ Verisign_RSA_Secure_Server_CA.pem \ Verisign_Class3_Primary_CA.pem +if INSTALL_SSL_CERTIFICATES +cacertsdir = $(datadir)/purple/ca-certs +cacerts_DATA = $(CERTIFICATES) +endif + EXTRA_DIST = \ Makefile.mingw \ - $(cacerts_DATA) + $(CERTIFICATES)
--- a/share/ca-certs/Makefile.mingw Thu Jun 26 08:42:49 2008 +0000 +++ b/share/ca-certs/Makefile.mingw Thu Jun 26 09:07:56 2008 +0000 @@ -8,14 +8,17 @@ include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak datadir := $(PIDGIN_INSTALL_DIR) -include ./Makefile.am +-include ./Makefile.am.mingw cacertsdir := $(PIDGIN_INSTALL_DIR)/ca-certs .PHONY: install -install: +install: ./Makefile.am.mingw if test '$(cacerts_DATA)'; then \ mkdir -p $(cacertsdir); \ cp $(cacerts_DATA) $(cacertsdir); \ fi; +./Makefile.am.mingw: ./Makefile.am + sed -e 's/^if\ INSTALL_SSL_CERTIFICATES/ifeq (\$$(INSTALL_SSL_CERTIFICATES), 1)/' ./Makefile.am > $@ +