# HG changeset patch # User Marcus Lundblad # Date 1251141681 0 # Node ID 7763697a85c80d702458f70fb84fabc3dfca6095 # Parent c138390bada867462d704dab417ace123633f953# Parent 30497d814cb9b64576602fdc1f4b1018c1ddc6f8 propagate from branch 'im.pidgin.pidgin' (head 92e101e3698042e7600729bc09dec9e28f81de8f) to branch 'im.pidgin.cpw.malu.ft_thumbnails' (head 29c3ce3e818c0e5b715ace3c2b2566976c4ea861) diff -r c138390bada8 -r 7763697a85c8 COPYRIGHT --- a/COPYRIGHT Thu Aug 13 17:40:00 2009 +0000 +++ b/COPYRIGHT Mon Aug 24 19:21:21 2009 +0000 @@ -88,6 +88,7 @@ Matěj Cepl Cerulean Studios, LLC Jonathan Champ +Matthew Chapman Christophe Chapuis Patrick Cheung Ka-Hing Cheung diff -r c138390bada8 -r 7763697a85c8 ChangeLog --- a/ChangeLog Thu Aug 13 17:40:00 2009 +0000 +++ b/ChangeLog Mon Aug 24 19:21:21 2009 +0000 @@ -1,6 +1,28 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul -version 2.6.0 (??/??/2009): +version 2.6.2 (??/??/2009): + libpurple: + * Fix --disable-avahi to actually disable it in configure, as opposed + to just making the warning non-fatal. + * Sending custom smileys in MSN chats is now supported. + * Fix using GNOME proxy settings properly. + + XMPP: + * Prompt the user before cancelling a presence subscription. + * Escape status messages that have HTML entities in the Get Info dialog. + * Fix connecting to XMPP domains with no SRV records from Pidgin on + Windows. + * Fix typing notifications with Pidgin 2.5.9 or earlier. + + Finch: + * Properly detect libpanel on OpenBSD. (Brad Smith) + +version 2.6.1 (08/18/2009): + * Fix a crash when some users send you a link in a Yahoo IM + * Fix compilation with GTK+ < 2.6.0 + * Fix compilation on Windows + +version 2.6.0 (08/18/2009): libpurple: * Theme support in libpurple thanks to Justin Rodriguez's summer of code project, with some minor additions and cleanups from Paul Aurich. @@ -13,10 +35,32 @@ * Various memory cleanups when unloading libpurple. (Nick Hebner and Stefan Becker) * Report idle time 'From last message sent' should work properly. + * Better handling of corrupt certificates in the TLS Peers cache. + * More efficient buddy list and conversation search functions. + (Jan Kaluza and Aman Gupta) + * Install scalable versions of the main Pidgin icon, the protocol icons, + the dialog icons, and the Buddy List emblems. + * Build properly on Hurd. (Marc Dequènes) + * Various memory leaks fixed as reported by Josh Mueller. + * Properly handle an IRC buddy appearing in multiple groups. + * Escape HTML entities in usernames when written with the HTML logger. + * Do not display MySpace status changes as incoming IMs. (Mark Doliner and + Justin Williams) + + DNS: * DNS servers are re-read when DNS queries fail in case the system has moved to a new network and the old servers are not accessible. * DNS SRV records with equal priority are sorted with respect to their weight as specified in RFC 2782. (Vijay Raghunathan) + * Don't do IPv6 address lookups if the computer does not have an IPv6 + address configured. + * Fix a leak when the UI provides its own DNS resolving UI op. + (Aman Gupta) + * Don't fork a DNS resolver process to resolve IP addresses. (Aman Gupta) + * Internationalized Domain Names are supported when libpurple is compiled + against the GNU IDN library. + + Environment Variables: * GnuTLS logging (disabled by default) can be controlled through the PURPLE_GNUTLS_DEBUG environment variable, which is an integer between 0 and 9 (higher is more verbose). Higher values may reveal sensitive @@ -31,24 +75,6 @@ useful when running libpurple inside of Valgrind or similar programs. Currently, it keeps plugins in memory, allowing Valgrind to perform symbol resolution of leak traces at shutdown. - * Don't do IPv6 address lookups if the computer does not have an IPv6 - address configured. - * Fix a leak when the UI provides its own DNS resolving UI op. - (Aman Gupta) - * Don't fork a DNS resolver process to resolve IP addresses. (Aman Gupta) - * Better handling of corrupt certificates in the TLS Peers cache. - * More efficient buddy list and conversation search functions. - (Jan Kaluza and Aman Gupta) - * Internationalized Domain Names are supported when libpurple is compiled - against the GNU IDN library. - * Install scalable versions of the main Pidgin icon, the protocol icons, - the dialog icons, and the Buddy List emblems. - * Build properly on Hurd. (Marc Dequènes) - * Various memory leaks fixed as reported by Josh Mueller. - * Properly handle an IRC buddy appearing in multiple groups. - * Escape HTML entities in usernames when written with the HTML logger. - * Do not display MySpace status changes as incoming IMs. (Mark Doliner and - Justin Williams) AIM and ICQ: * Preliminary support for a new authentication scheme called @@ -67,6 +93,17 @@ * Support connection progress steps in Gadu-Gadu. (Krzysztof "kkszysiu" Klinikowski) + MSN: + * Add support for receiving handwritten (ink) messages on MSN. (Chris + Stafford, Gal Topper, and Elliott Sales de Andrade) + * Add support for receiving audio clips on MSN. (Chris Stafford, Gal + Topper, and Elliott Sales de Andrade) + * Show the invite message for buddies that requested authorization + from you on MSN. + * Support sending an invite message to buddies when requesting authorization + from them on MSN. + * Timeout switchboard connections aggressively (60 seconds). + XMPP: * Voice & Video support with Jingle (XEP-0166, 0167, 0176, & 0177), voice support with GTalk and voice and video support with the GMail web @@ -136,15 +173,6 @@ * Ability to set personal details for an account and for buddies in the buddylist. - MSN: - * Add support for receiving handwritten (ink) messages on MSN. - * Add support for receiving audio clips on MSN. - * Show the invite message for buddies that requested authorization - from you on MSN. - * Support sending an invite message to buddies when requesting authorization - from them on MSN. - * Timeout switchboard connections aggressively - Pidgin: * Added -f command line option to tell Pidgin to ignore NetworkManager and assume it has a valid network connection. @@ -192,6 +220,8 @@ * The hardware cursor is updated correctly. This will be useful especially for users of braille terminals, screen readers etc. * Added a TinyURL plugin, which aids copying longer URLs. + * Fixed UTF-8 compatibility problems which could cause exits or other + unrequested behaviour. Pidgin GTK+ Theme Control Plugin: * Removed mouse cursor color preferences. @@ -200,6 +230,13 @@ * Preferences have been reorganized into three tabs for Colors, Fonts, and Miscellaneous categories. +version 2.5.9 (08/18/2009): + * Fix a crash via a specially crafted MSN message (CVE-2009-2694, + thanks to Core Security Technologies for discovering this and + notifying us privately before announcing it). + * Fix a crash in Bonjour, MSN, and XMPP when trying to transfer files with + NULL names. + version 2.5.8 (06/27/2009): ICQ: * Fix misparsing a web message as an SMS message. (Yuriy Kaminskiy) diff -r c138390bada8 -r 7763697a85c8 ChangeLog.API --- a/ChangeLog.API Thu Aug 13 17:40:00 2009 +0000 +++ b/ChangeLog.API Mon Aug 24 19:21:21 2009 +0000 @@ -1,6 +1,9 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul -version 2.6.0 (??/??/2009): +version 2.6.1 (08/18/2009): + No changes + +version 2.6.0 (08/18/2009): libpurple: Added: * PurpleMedia and PurpleMediaManager API @@ -154,6 +157,9 @@ * GntProgressBar and functions (Saleem Abdulrasool) perl: + Added: + * Purple::XMLNode::get_name() + Changed: * Made a bunch of functions act more perl-like. Call the new() functions as Class->new(...) instead of Class::new(...): @@ -167,6 +173,14 @@ * Purple::Request::Field::list_new * Purple::Request::Field::string_new * Purple::Request::Field::group_new + * Make the XMLNode API more perl-like. Don't pass len + parameters and call them like: + * $xmlnode->copy() + * $xmlnode->to_str() + * $xmlnode->to_formatted_str() + * Purple::XMLNode::from_str(...) +version 2.5.9 (08/18/2009): + No changes version 2.5.8 (06/27/2009): No changes diff -r c138390bada8 -r 7763697a85c8 ChangeLog.win32 --- a/ChangeLog.win32 Thu Aug 13 17:40:00 2009 +0000 +++ b/ChangeLog.win32 Mon Aug 24 19:21:21 2009 +0000 @@ -1,6 +1,12 @@ -version 2.6.0 (??/??/2009): +version 2.6.1 (08/18/2009): + * No changes + +version 2.6.0 (08/18/2009): * Added XMPP URI support. +version 2.5.9 (08/18/2009): + * No changes and no win32 packages built. + version 2.5.8 (06/27/2009): * No changes diff -r c138390bada8 -r 7763697a85c8 INSTALL --- a/INSTALL Thu Aug 13 17:40:00 2009 +0000 +++ b/INSTALL Mon Aug 24 19:21:21 2009 +0000 @@ -158,7 +158,7 @@ `--with-dynamic-prpls' takes a list of comma separated protocols also. If used only those listed will be built. If no protocols are listed with either `--with-static-prpls' or with `--with-dynamic-prpls' then Pidgin and Finch will be effectively useless. - If configure does not find python, it will build without DBUS support. Thiswill disable scripts such as purple-remote and purple-uri-handler, effectively disabling integration with the browser. You can tell configure where your python binary is located with `--with-python=PATH' + If configure does not find python, it will build without DBUS support. This will disable scripts such as purple-remote and purple-uri-handler, effectively disabling integration with the browser. You can tell configure where your python binary is located with `--with-python=PATH' Specifying the System Type ========================== diff -r c138390bada8 -r 7763697a85c8 NEWS --- a/NEWS Thu Aug 13 17:40:00 2009 +0000 +++ b/NEWS Mon Aug 24 19:21:21 2009 +0000 @@ -2,6 +2,56 @@ Our development blog is available at: http://planet.pidgin.im +2.6.1 (08/18/2009): + Mark: There were a lot of changes in 2.6.0, and so a few major bugs + crept in. This is a very minor release to fix those bugs. Sorry for + the inconvenience! + +2.6.0 (08/18/2009): + John: Wow, four straight releases that I'm the first to NEWS on. This + is getting kinda scary! I'm beginning to wonder who else actually does + anything around here! (Just kidding, of course.) LOTS of new features + and a crapton of bugfixes this release. There should pretty much be + something for everybody. A great example of this is the ton of Yahoo + changes that have happened thanks to our SoC student from 2008, Sulabh + Mahajan. Among his massive improvements are the ability to add MSN + buddies by adding them as "msn/user@domain.tld" and peer-to-peer file + transfers. Of course, history shows we can't please everyine, so I'm + sure I'll see a complaint or five thousand in trac. Enjoy, though! + + Marcus: This is my first news! It's been quite a few microreleases this + time, but now we're finally at 2.6.0. I suppose the most anticipated + new feature in this release is the voice and video support, thanks to + Mike's heroic work. I've managed to slip in a few features too, like + in-band bytestream file transfers as a fallback on XMPP and idle time + reporting on XMPP. Enjoy! + + Paul: This is my first news, too! This release has definitely been a + long time coming; hopefully it won't disappoint since we've closed over + 200 tickets. Among other things, Tobias Markmann's GSoC project from + last year was merged, which means we now support BOSH (XMPP connections + over HTTP), and Andrei Mozzhuhin contributed an XMPP Service Discovery + Browser. Also, thanks to Bernmeister for poking (at least) several + hundred old tickets! + + Mike: Ditto. This is my first news as well. I have a feeling this is + getting repetitive at this point, but voice and video support is + finally here! Thanks to the rest of the Pidgin team, Farsight 2, and + GStreamer developers for making this possible! (I finally finished my + Summer of Code project :D) + + Elliott: Hey, this is my firs... Wait, no it isn't. Now I feel left + out. So have you heard about this voice and video thing? + Unfortunately, not quite ready for all protocols, but it's getting + there. MSN gained support for receiving voice clips at least, and + finally we have Ink receiving capabilities too. Thanks to the guys + who wrote the original patch. And finally, MSN no longer has over a + 100 tickets open! + +2.5.9 (08/18/2009): + John: This release is just a crash fix release to address a security + issue reported to us by CORE and a couple crashes Elliott found. + 2.5.8 (06/27/2009): John: This release is another somewhat rushed bugfix release to fix a number of bugs that have come up since we released Pidgin 2.5.7. @@ -51,10 +101,10 @@ a few patches, and we've dealt with what feels like a TON of tickets about two very common issues. Feels like time for a release to me. - Etan: My first NEWS in quite a while and I don't have much to say. I + Etan: My first NEWS in quite a while and I don't have much to say. I haven't been too active lately and I'm hoping that won't be the case - going forward. I managed to get in a few perl fixes and some UI - language tweaks this release. My plan is to work on some of the + going forward. I managed to get in a few perl fixes and some UI + language tweaks this release. My plan is to work on some of the issues pointed out by mpt (during his expert review of pidgin a little while back) in the near future. @@ -92,14 +142,14 @@ messaging pleasure. Sadrul: Despite our best efforts, this release got delayed by a - couple of weeks. But here it is! It is mostly a bug fix release, with + couple of weeks. But here it is! It is mostly a bug fix release, with a couple of important fixes, e.g. fix for the Yahoo! disconnect - problem. Also, welcome our newest Crazy Patch Writer, Marcus Lundblad, + problem. Also, welcome our newest Crazy Patch Writer, Marcus Lundblad, who, among various other fixes, has implemented custom smileys for the - XMPP protocol, included in this release. Enjoy! + XMPP protocol, included in this release. Enjoy! Stu: I guess this is the time of year for server migrations, and - I've just about had enough of them. Fortunately Pidgin is still fun, + I've just about had enough of them. Fortunately Pidgin is still fun, and this release should be superb. John: Although our services were down for quite some time, we didn't @@ -109,8 +159,8 @@ happy! Elliott: This release took a while, but that was due to an unfortunate - server snafu. I didn't have much to do with it, but hopefully the new - servers will help us out a bit. Anyway, mostly bug-fixes this time. + server snafu. I didn't have much to do with it, but hopefully the new + servers will help us out a bit. Anyway, mostly bug-fixes this time. Nothing spectacular, unless you happen to suffer from one of those bugs. Oh, and don't forget, the "Has you" tooltip is back! @@ -123,9 +173,9 @@ coming months. Elliott: I'm just commenting so Kevin wouldn't be the only one in NEWS - and no-one else seems to want to. Anyway, there's a couple MSN login - fixes, so try it out. The contact list problems might still be around, - but you can probably find a workaround in trac. And there's a tooltip + and no-one else seems to want to. Anyway, there's a couple MSN login + fixes, so try it out. The contact list problems might still be around, + but you can probably find a workaround in trac. And there's a tooltip fix for our AIM friends, not that I had anything to do with it (except closing many many duplicate tickets). @@ -135,16 +185,16 @@ it to the world! There are myriad bugfixes, including some important ones so you should be sure to update. - Hylke: Finally MSNP15 support. To celebrate this I refreshed a lot of + Hylke: Finally MSNP15 support. To celebrate this I refreshed a lot of the smilies used in the protocol and added the long awaited indispensable - bunny icon. I think this is one of those releases that will make a lot + bunny icon. I think this is one of those releases that will make a lot of users happy, especially MSN users. - Elliott: Oh look, my first NEWS! Well anyway, with that new MSNP15 + Elliott: Oh look, my first NEWS! Well anyway, with that new MSNP15 support, this release is set up to be a huge success and a total flop - all at the same time. Here's hoping it's the "huge success" one for you. + all at the same time. Here's hoping it's the "huge success" one for you. Those icon changes that Hylke made, while minor, really make things look - a little cleaner, I think. Oh yea, did I mention that MSNP15 stuff? + a little cleaner, I think. Oh yea, did I mention that MSNP15 stuff? Mark: Speaking of MSNP15, we'd like to welcome Elliott Sales de Andrade as a full fledged developer! He took the last few strides mushing the @@ -152,7 +202,7 @@ doing other great stuff. Ka-Hing: "Reject"ing a certificate after your account is signed off is - not recommended. Deleting the file after you start sending it is also + not recommended. Deleting the file after you start sending it is also discouraged. 2.4.3 (07/01/2008): @@ -162,12 +212,12 @@ 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 + windows, escape to close conversation windows etc. These changes should make pidgin more usable and more fun for Everyone! *wink* Stu: I fixed some memory leaks, but nothing like as many as Daniel did. MSN buddy list synchronization should be significantly less painful now, - and opening MSN inboxes might work better too. SILC passphrase changes + and opening MSN inboxes might work better too. SILC passphrase changes and support for passphrase-less keys has been improved also. 2.4.1 (3/31/2008): @@ -184,27 +234,27 @@ John: While this release took what seems like forever to get out the door, I think it's well worth the wait, especially for Yahoo! users. This release serves up some fixes for long standing bugs and adds - file transfer for transfers with newer Yahoo! clients (finally!). As + file transfer for transfers with newer Yahoo! clients (finally!). As is standard with code I committed, where it works great thank the - patch writer, and where it's broken, feel free to yell at me. Enjoy! - - Sadrul: Finch is more colourful and blinky in this release! There's + patch writer, and where it's broken, feel free to yell at me. Enjoy! + + Sadrul: Finch is more colourful and blinky in this release! There's now a log viewer, which is very useful, and also the ability to - block/unblock buddies. It's now also possible to find chat rooms on - many services, e.g. XMPP, IRC, Yahoo! etc. Happy Leap Day! + block/unblock buddies. It's now also possible to find chat rooms on + many services, e.g. XMPP, IRC, Yahoo! etc. Happy Leap Day! Ka-Hing: I think all I've done for this release is committing some patches written by other people. - Stu: Finally, 2.4.0 lands. I didn't do all that much except complain - about things I didn't like or just revert Sean's changes. I'm quite + Stu: Finally, 2.4.0 lands. I didn't do all that much except complain + about things I didn't like or just revert Sean's changes. I'm quite pleased with how well it's turned out in the end. Happy Birthday Fred, you must be nearly 10 now ;-) 2.3.1 (12/7/2007): Stu: I'm sorry for the MSN problems and the plugin crashes in 2.3.0. - Hopefully this will redeem us. This fixes a number of bugs. I'm a - bit late but I'd like to welcome John to the team. Enjoy! + Hopefully this will redeem us. This fixes a number of bugs. I'm a + bit late but I'd like to welcome John to the team. Enjoy! Luke: I've done absolutely nothing in the last 2 weeks, except watch others commit bug and, more, leak fixes. People should be noticing @@ -246,23 +296,23 @@ last release looking at the tickets that have been submitted and many of them have been closed. - Stu: I haven't NEWS'd in a while. I haven't actually done much for - too long also, maybe I'll find some time soon. This release is + Stu: I haven't NEWS'd in a while. I haven't actually done much for + too long also, maybe I'll find some time soon. This release is basically what 2.2.0 should have been - it actually compiles this time. 2.2.0 (9/13/2007): Sean: 2.2.0 contains the results of several major Google Summer - of Code branches bringing some new, extraordinary features. We + of Code branches bringing some new, extraordinary features. We have a new protocol, MySpaceIM, a bunch of new features for an existing protocol, XMPP, and nifty new certificate management to make sure your IM server is who it says it is. Ka-Hing: A number of you noticed crashes when dragging windows - around when certain options are enabled. Well, that was my fault, - and Sadrul fixed it. So Props to him and poos to me. I haven't + around when certain options are enabled. Well, that was my fault, + and Sadrul fixed it. So Props to him and poos to me. I haven't done much for this release, but the next one should contain - something that I helped work on. Hint: students are cheap slave + something that I helped work on. Hint: students are cheap slave coders! Kevin: I haven't really been coding much in Pidgin, and this @@ -272,9 +322,9 @@ 2.1.1 (8/20/2007): Sean: Continuing our schedule of frequent releases, Pidgin 2.1.1 - is out. In it, we've addressed a lot of UI issues from our + is out. In it, we've addressed a lot of UI issues from our experimental new changes introduced in 2.1.0, and gave a lot of - attention to Yahoo! and Bonjour. Thanks to everyone who + attention to Yahoo! and Bonjour. Thanks to everyone who contributed. Luke: We have reworked some parts of the conversation windows in @@ -285,14 +335,14 @@ various issues, testing fixes, and getting patches in. Tim: Sean finally got me to fix some of the buddy list bugs with - Yahoo! when in version 15 mode. So now we have some Yahoo! to - MSN support, which is kind of nice. Looks like some others have + Yahoo! when in version 15 mode. So now we have some Yahoo! to + MSN support, which is kind of nice. Looks like some others have been contributing to Yahoo! while I've been AWOL, so many thanks to them. 2.1.0 (7/28/2007): Sean: This release took a bit longer than 3 weeks, but boy is it - worth it! We're beginning to experiment with new UI concepts and + worth it! We're beginning to experiment with new UI concepts and this release features a largely re-designed conversation window. We've closed 150 tickets for this release; much thanks go to all the developers, translators, and testers who made this possible. @@ -300,28 +350,28 @@ Ka-Hing: Sean said no one else NEWS'ed, so I figure I should. 2.0.2 (6/14/2007): - Sean: Another big maintenance release. Again, about 100 tickets were - resolved in this release, and they keep coming in. Lots of bug fixes, + Sean: Another big maintenance release. Again, about 100 tickets were + resolved in this release, and they keep coming in. Lots of bug fixes, some minor icon adjustements, hopefully we addressed some ICQ internationalization issues, and support for Bonjour on Windows! Our next release will be 2.1.0, and will come with some great new features. Stu: I think we're gradually getting the hang of this 3 week thing - again. This release includes yet more bug fixes. I'd also like to + again. This release includes yet more bug fixes. I'd also like to specifically thank Pekka Riikonen for the patch to enable using SILC Toolkit 1.1 with Pidgin/libpurple that is included in this release. 2.0.1 (5/24/2007): - Sean: 2.0.1! Three weeks later, as scheduled! It is so nice to have - regular, frequent, releases again! This is a bugfix release; We have + Sean: 2.0.1! Three weeks later, as scheduled! It is so nice to have + regular, frequent, releases again! This is a bugfix release; We have fixed over 100 issues reported to us at http://developer.pidgin.im. Thanks to everyone for their great work, and look for the next release in another three weeks! - Stu: Lots'o'fixes in this. I don't know how you users find so many - things for us to fix. 24 hours in a day (sadly). 24 is divisible by the - sum of its digits and by their product. It is the smallest composite + Stu: Lots'o'fixes in this. I don't know how you users find so many + things for us to fix. 24 hours in a day (sadly). 24 is divisible by the + sum of its digits and by their product. It is the smallest composite number, the product of whose divisors is a cube. Luke: I requested that we have a bug fix release, and so we have! @@ -343,18 +393,18 @@ definition of 'cool' to get it. Etan: Perl plugins now have access to almost all of the savedstatus - API functions. I also removed a couple of the preferences from the + API functions. I also removed a couple of the preferences from the Pidgin GTK+ Theme Control plugin which should help many of the people - for whom the configuration dialog size was a problem. The removed + for whom the configuration dialog size was a problem. The removed preferences no longer had the effects they were added to have anyway. 2.0.0 (5/3/2007): Sean: 2.0.0! It's real exciting to finally release Pidgin 2.0.0! I'm - really proud of all the work we've all done. I'm pumped. And, while + really proud of all the work we've all done. I'm pumped. And, while I could go on about all the amazing thing that have been added since 1.5.0, what I'm really excited about is getting back to a regular, rapid, release cycle of active, open development, unhindered by legal - quandries. Huge thanks to everyone involved. + quandries. Huge thanks to everyone involved. Luke: We have finally managed to get 2.0.0 out the door, after nearly but not quite 2 years of effort and fustration. No one regrets more @@ -371,24 +421,24 @@ attempt to avoid knee-jerk reactions. Evan: One small step for bird, one giant leap for birdkind... except - this is hardly one small step. A lot more has changed from Gaim 1.5.0 + this is hardly one small step. A lot more has changed from Gaim 1.5.0 than just the name. Pidgin has a *very* attractive new look, a whole new member of the family (Finch, formerly gaim-console) has been born, and libpurple has come into its own as a solid, full-featured library - powering the greatest IM clients around. Bugs were fixed and + powering the greatest IM clients around. Bugs were fixed and features were added by the hundreds (thousands?) since the last major release, all while improving performance and resisting feature - creep. As Luke said, a ton of thought and effort has gone into + creep. As Luke said, a ton of thought and effort has gone into Pidgin 2.0.0; I'm proud to have played a part. - Stu: We did it! finally, we have 2.0.0. It's been a long time coming, - but there's a great deal of goodness here. When I say a long time, I'm + Stu: We did it! finally, we have 2.0.0. It's been a long time coming, + but there's a great deal of goodness here. When I say a long time, I'm not kidding - it's been 972 days since we branched off "oldstatus" - (aka 1.x). The early Greeks were uncertain as to whether 2 was a + (aka 1.x). The early Greeks were uncertain as to whether 2 was a number at all (or if we'd ever make this release) - it has a beginning and an end but no middle (much like our unfortunately quiet development - period). 2 is the first prime number and the only even prime. 2 is also - the first deficient number (oh well). There are only 10 types of people + period). 2 is the first prime number and the only even prime. 2 is also + the first deficient number (oh well). There are only 10 types of people in the world - those who like our new names and those who do not. Enjoy! @@ -398,7 +448,7 @@ where they are today. Congratulations everyone! Sadrul: My first NEWS, and on what an occasion! Pidgin 2.0.0 is finally - released!! And it's *really* very good!!! Give your soul a break ... + released!! And it's *really* very good!!! Give your soul a break ... Use Pidgin! Daniel: There has been a fair amount of weeping and gnashing of teeth diff -r c138390bada8 -r 7763697a85c8 PLUGIN_HOWTO --- a/PLUGIN_HOWTO Thu Aug 13 17:40:00 2009 +0000 +++ b/PLUGIN_HOWTO Mon Aug 24 19:21:21 2009 +0000 @@ -1,6 +1,6 @@ For information on writing a plugin for Purple, Pidgin or Finch, go -http://developer.pidgin.im and click on API. From there, see the HOWTOs in the -"Related Pages" section. +http://developer.pidgin.im and click on API. From there, see the +HOWTOs in the "Related Pages" section. You can also generate this documentation locally by installing doxygen and graphviz dot, then running "make docs" in the diff -r c138390bada8 -r 7763697a85c8 configure.ac --- a/configure.ac Thu Aug 13 17:40:00 2009 +0000 +++ b/configure.ac Mon Aug 24 19:21:21 2009 +0000 @@ -46,7 +46,7 @@ m4_define([purple_lt_current], [6]) m4_define([purple_major_version], [2]) m4_define([purple_minor_version], [6]) -m4_define([purple_micro_version], [0]) +m4_define([purple_micro_version], [2]) m4_define([purple_version_suffix], [devel]) m4_define([purple_version], [purple_major_version.purple_minor_version.purple_micro_version]) @@ -55,7 +55,7 @@ m4_define([gnt_lt_current], [6]) m4_define([gnt_major_version], [2]) m4_define([gnt_minor_version], [6]) -m4_define([gnt_micro_version], [0]) +m4_define([gnt_micro_version], [2]) m4_define([gnt_version_suffix], [devel]) m4_define([gnt_version], [gnt_major_version.gnt_minor_version.gnt_micro_version]) @@ -312,11 +312,11 @@ dnl ####################################################################### dnl # Check for GLib 2.0 (required) dnl ####################################################################### -PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.0.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [ +PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.4.0 gobject-2.0 gmodule-2.0 gthread-2.0], , [ AC_MSG_RESULT(no) AC_MSG_ERROR([ -You must have the GLib 2.0 development headers installed to build. +You must have GLib 2.4.0 or newer development headers installed to build. If you have these installed already you may need to install pkg-config so I can find them. @@ -399,12 +399,13 @@ fi if test "x$enable_gtkui" = "xyes" ; then - PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.0.0], , [ + PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.4.0], , [ AC_MSG_RESULT(no) AC_MSG_ERROR([ -You must have the GTK+ 2.0 development headers installed to compile Pidgin. -If you want to build only Finch then specify --disable-gtkui when running configure. +You must have GTK+ 2.4.0 or newer development headers installed to compile +Pidgin. If you want to build only Finch then specify --disable-gtkui when +running configure. ])]) AC_SUBST(GTK_CFLAGS) @@ -631,7 +632,8 @@ [ac_ncurses_includes="$withval"], [ac_ncurses_includes=""]) if test "x$enable_consoleui" = "xyes"; then AC_CHECK_LIB(ncursesw, initscr, [GNT_LIBS="-lncursesw"], [enable_consoleui=no]) - AC_CHECK_LIB(panelw, update_panels, [GNT_LIBS="$GNT_LIBS -lpanelw"], [enable_consoleui=no]) + AC_CHECK_LIB(panelw, update_panels, [GNT_LIBS="$GNT_LIBS -lpanelw"], + [enable_consoleui=no], [$GNT_LIBS]) if test "x$enable_consoleui" = "xyes"; then dnl # Some distros put the headers in ncursesw/, some don't @@ -674,7 +676,8 @@ # ncursesw was not found. Look for plain old ncurses enable_consoleui=yes AC_CHECK_LIB(ncurses, initscr, [GNT_LIBS="-lncurses"], [enable_consoleui=no]) - AC_CHECK_LIB(panel, update_panels, [GNT_LIBS="$GNT_LIBS -lpanel"], [enable_consoleui=no]) + AC_CHECK_LIB(panel, update_panels, [GNT_LIBS="$GNT_LIBS -lpanel"], + [enable_consoleui=no], [$GNT_LIBS]) AC_DEFINE(NO_WIDECHAR, 1, [Define to 1 if you don't have wide-character support.]) if test x"$ac_ncurses_includes" != "x"; then GNT_CFLAGS="-I$ac_ncurses_includes" @@ -792,13 +795,13 @@ dnl ####################################################################### AC_ARG_ENABLE(vv, [AC_HELP_STRING([--disable-vv], [compile without voice and video support])], - [enable_vv="$enableval" force_vv=$enableval], [enable_vv="yes" force_vv=no]) + enable_vv="$enableval", enable_vv="yes") if test "x$enable_vv" != "xno"; then if test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno"; then AC_DEFINE(USE_VV, 1, [Use voice and video]) else enable_vv="no" - if test "x$force_vv" = "xyes"; then + if test "x$force_deps" = "xyes"; then AC_MSG_ERROR([ Dependencies for voice/video were not met. Install the necessary gstreamer and farsight packages first. @@ -807,6 +810,7 @@ fi fi fi +AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno") AC_ARG_ENABLE(idn, [AC_HELP_STRING([--disable-idn], [compile without IDN support])], @@ -856,36 +860,39 @@ [AC_HELP_STRING([--disable-avahi], [compile without avahi (required for Bonjour support)])], enable_avahi="$enableval", enable_avahi="yes") -AC_ARG_WITH(avahi-client-includes, [AC_HELP_STRING([--with-avahi-client-includes=DIR], [compile the Bonjour plugin against the Avahi Client includes in DIR])], [ac_avahi_client_includes="$withval"], [ac_avahi_client_includes="no"]) -AC_ARG_WITH(avahi-client-libs, [AC_HELP_STRING([--with-avahi-client-libs=DIR], [compile the Bonjour plugin against the Avahi Client libs in DIR])], [ac_avahi_client_libs="$withval"], [ac_avahi_client_libs="no"]) -AVAHI_CFLAGS="" -AVAHI_LIBS="" + +if test "x$enable_avahi" = "xyes"; then + AC_ARG_WITH(avahi-client-includes, [AC_HELP_STRING([--with-avahi-client-includes=DIR], [compile the Bonjour plugin against the Avahi Client includes in DIR])], [ac_avahi_client_includes="$withval"], [ac_avahi_client_includes="no"]) + AC_ARG_WITH(avahi-client-libs, [AC_HELP_STRING([--with-avahi-client-libs=DIR], [compile the Bonjour plugin against the Avahi Client libs in DIR])], [ac_avahi_client_libs="$withval"], [ac_avahi_client_libs="no"]) + AVAHI_CFLAGS="" + AVAHI_LIBS="" -dnl Attempt to autodetect Avahi -PKG_CHECK_MODULES(AVAHI, [avahi-client avahi-glib], [ - avahiincludes="yes" - avahilibs="yes" -], [ - avahiincludes="no" - avahilibs="no" -]) + dnl Attempt to autodetect Avahi + PKG_CHECK_MODULES(AVAHI, [avahi-client avahi-glib], [ + avahiincludes="yes" + avahilibs="yes" + ], [ + avahiincludes="no" + avahilibs="no" + ]) -dnl Override AVAHI_CFLAGS if the user specified an include dir -if test "$ac_avahi_client_includes" != "no"; then - AVAHI_CFLAGS="-I$ac_avahi_client_includes" + dnl Override AVAHI_CFLAGS if the user specified an include dir + if test "$ac_avahi_client_includes" != "no"; then + AVAHI_CFLAGS="-I$ac_avahi_client_includes" + fi + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $AVAHI_CFLAGS" + AC_CHECK_HEADER(avahi-client/client.h, [avahiincludes=yes], [avahiincludes=no]) + CPPFLAGS="$CPPFLAGS $AVAHI_CFLAGS $GLIB_CFLAGS" + AC_CHECK_HEADER(avahi-glib/glib-malloc.h, [avahiincludes=yes], [avahiincludes=no]) + CPPFLAGS="$CPPFLAGS_save" + + dnl Override AVAHI_LIBS if the user specified a libs dir + if test "$ac_avahi_client_libs" != "no"; then + AVAHI_LIBS="-L$ac_avahi_client_libs -lavahi-common -lavahi-client -lavahi-glib " + fi + AC_CHECK_LIB(avahi-client, avahi_client_new, [avahilibs=yes], [avahilibs=no], $AVAHI_LIBS) fi -CPPFLAGS_save="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $AVAHI_CFLAGS" -AC_CHECK_HEADER(avahi-client/client.h, [avahiincludes=yes], [avahiincludes=no]) -CPPFLAGS="$CPPFLAGS $AVAHI_CFLAGS $GLIB_CFLAGS" -AC_CHECK_HEADER(avahi-glib/glib-malloc.h, [avahiincludes=yes], [avahiincludes=no]) -CPPFLAGS="$CPPFLAGS_save" - -dnl Override AVAHI_LIBS if the user specified a libs dir -if test "$ac_avahi_client_libs" != "no"; then - AVAHI_LIBS="-L$ac_avahi_client_libs -lavahi-common -lavahi-client -lavahi-glib " -fi -AC_CHECK_LIB(avahi-client, avahi_client_new, [avahilibs=yes], [avahilibs=no], $AVAHI_LIBS) if test "x$enable_avahi" = "xyes" -a "x$force_deps" = "xyes" -a \( "x$avahiincludes" = "xno" -o "x$avahilibs" = "xno" \); then AC_MSG_ERROR([ diff -r c138390bada8 -r 7763697a85c8 doc/core-signals.dox --- a/doc/core-signals.dox Thu Aug 13 17:40:00 2009 +0000 +++ b/doc/core-signals.dox Mon Aug 24 19:21:21 2009 +0000 @@ -2,6 +2,7 @@ @signals @signal quitting + @signal uri-handler @endsignals @see core.h @@ -16,5 +17,16 @@ Emitted when libpurple is quitting. @endsignaldef + @signaldef uri-handler + @signalproto +gboolean (*uri_handler)(const gchar *proto, const gchar *cmd, GHashTable *params); + @endsignalproto + @signaldesc + Emitted when handling a registered URI. + @param proto The protocol of the URI. + @param cmd The 'command' of the URI. + @param params Any key/value parameters from the URI. + @endsignaldef + */ // vim: syntax=c.doxygen tw=75 et diff -r c138390bada8 -r 7763697a85c8 doc/jabber-signals.dox --- a/doc/jabber-signals.dox Thu Aug 13 17:40:00 2009 +0000 +++ b/doc/jabber-signals.dox Mon Aug 24 19:21:21 2009 +0000 @@ -8,6 +8,7 @@ @signal jabber-register-namespace-watcher @signal jabber-unregister-namespace-watcher @signal jabber-sending-xmlnode + @signal jabber-receiving-xmlnode @endsignals
@@ -71,7 +72,7 @@ @signaldef jabber-watched-iq @signalproto -gboolean (*watched_iq)(PurpleConnection *pc, const char *type, const char *id, +gboolean (*watched_iq)(PurpleConnection *gc, const char *type, const char *id, const char *from, xmlnode *child); @endsignalproto @signaldesc @@ -87,18 +88,6 @@ process it. FALSE otherwise. @endsignaldef - @signaldef jabber-sending-xmlnode - @signalproto -void (sending_xmlnode)(PurpleConnection *gc, xmlnode **stanza); - @endsignalproto - @signaldesc - Emit this signal (@c purple_signal_emit) to send a stanza. It is preferred - to use this instead of prpl_info->send_raw. - @param gc The connectoin on which to send the stanza. - @param stanza The stanza to send. If stanza is not NULL after being sent, - the emitter should free it. - @endsignaldef - @signaldef jabber-register-namespace-watcher @signalproto void (register_namespace_watcher)(const char *node, const char *namespace); @@ -121,5 +110,29 @@ @param namespace The IQ child namespace to no longer watch. @endsignaldef + @signaldef jabber-sending-xmlnode + @signalproto +void (sending_xmlnode)(PurpleConnection *gc, xmlnode **stanza); + @endsignalproto + @signaldesc + Emit this signal (@c purple_signal_emit) to send a stanza. It is preferred + to use this instead of prpl_info->send_raw. + @param gc The connection on which to send the stanza. + @param stanza The stanza to send. If stanza is not NULL after being sent, + the emitter should free it. + @endsignaldef + + @signaldef jabber-receiving-xmlnode + @signalproto +void (receiving_xmlnode)(PurpleConnection *gc, xmlnode **stanza); + @endsignalproto + @signaldesc + Emitted when an XMPP stanza is received. Allows a plugin to process any + stanza. + @param gc The connection on which the stanza was received. + @param stanza The received stanza. Set stanza to NULL (and free it) to + stop processing the stanza. + @endsignaldef + */ // vim: syntax=c.doxygen tw=75 et diff -r c138390bada8 -r 7763697a85c8 finch/gntmedia.c --- a/finch/gntmedia.c Thu Aug 13 17:40:00 2009 +0000 +++ b/finch/gntmedia.c Mon Aug 24 19:21:21 2009 +0000 @@ -156,7 +156,7 @@ { media->priv = FINCH_MEDIA_GET_PRIVATE(media); - media->priv->calling = gnt_label_new(_("Calling ... ")); + media->priv->calling = gnt_label_new(_("Calling...")); media->priv->hangup = gnt_button_new(_("Hangup")); media->priv->accept = gnt_button_new(_("Accept")); media->priv->reject = gnt_button_new(_("Reject")); diff -r c138390bada8 -r 7763697a85c8 finch/libgnt/configure.ac --- a/finch/libgnt/configure.ac Thu Aug 13 17:40:00 2009 +0000 +++ b/finch/libgnt/configure.ac Mon Aug 24 19:21:21 2009 +0000 @@ -24,11 +24,11 @@ # Make sure to update ../../configure.ac with libgnt version changes. # -m4_define([gnt_lt_current], [5]) +m4_define([gnt_lt_current], [6]) m4_define([gnt_major_version], [2]) -m4_define([gnt_minor_version], [5]) -m4_define([gnt_micro_version], [0]) -m4_define([gnt_version_suffix], []) +m4_define([gnt_minor_version], [6]) +m4_define([gnt_micro_version], [2]) +m4_define([gnt_version_suffix], [devel]) m4_define([gnt_version], [gnt_major_version.gnt_minor_version.gnt_micro_version]) m4_define([gnt_display_version], gnt_version[]m4_ifdef([gnt_version_suffix],[gnt_version_suffix])) diff -r c138390bada8 -r 7763697a85c8 finch/libgnt/gntkeys.c --- a/finch/libgnt/gntkeys.c Thu Aug 13 17:40:00 2009 +0000 +++ b/finch/libgnt/gntkeys.c Mon Aug 24 19:21:21 2009 +0000 @@ -166,7 +166,7 @@ strstr(term, "xterm") == term || strstr(term, "vt100") == term) *(text + 1) = 'O'; - } else if (*(unsigned char*)text == 195) { + } else if (g_utf8_get_char(text) == 195) { if (*(text + 2) == 0 && strstr(term, "xterm") == term) { *(text) = 27; *(text + 1) -= 64; /* Say wha? */ diff -r c138390bada8 -r 7763697a85c8 finch/plugins/gnttinyurl.c --- a/finch/plugins/gnttinyurl.c Thu Aug 13 17:40:00 2009 +0000 +++ b/finch/plugins/gnttinyurl.c Mon Aug 24 19:21:21 2009 +0000 @@ -354,7 +354,7 @@ frame = purple_plugin_pref_frame_new(); pref = purple_plugin_pref_new_with_name(PREF_LENGTH); - purple_plugin_pref_set_label(pref, _("Only create TinyURL for urls" + purple_plugin_pref_set_label(pref, _("Only create TinyURL for URLs" " of this length or greater")); purple_plugin_pref_frame_add(frame, pref); pref = purple_plugin_pref_new_with_name(PREF_URL); @@ -390,7 +390,7 @@ N_("TinyURL"), DISPLAY_VERSION, N_("TinyURL plugin"), - N_("When receiving a message with URL(s), TinyURL for easier copying"), + N_("When receiving a message with URL(s), use TinyURL for easier copying"), "Richard Nelson ", PURPLE_WEBSITE, plugin_load, diff -r c138390bada8 -r 7763697a85c8 finch/plugins/grouping.c --- a/finch/plugins/grouping.c Thu Aug 13 17:40:00 2009 +0000 +++ b/finch/plugins/grouping.c Mon Aug 24 19:21:21 2009 +0000 @@ -15,7 +15,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #define PURPLE_PLUGIN diff -r c138390bada8 -r 7763697a85c8 libpurple/certificate.c --- a/libpurple/certificate.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/certificate.c Mon Aug 24 19:21:21 2009 +0000 @@ -43,6 +43,91 @@ /** List of registered Pools */ static GList *cert_pools = NULL; +/* + * TODO: Merge this with PurpleCertificateVerificationStatus for 3.0.0 */ +typedef enum { + PURPLE_CERTIFICATE_UNKNOWN_ERROR = -1, + + /* Not an error */ + PURPLE_CERTIFICATE_NO_PROBLEMS = 0, + + /* Non-fatal */ + PURPLE_CERTIFICATE_NON_FATALS_MASK = 0x0000FFFF, + + /* The certificate is self-signed. */ + PURPLE_CERTIFICATE_SELF_SIGNED = 0x01, + + /* The CA is not in libpurple's pool of certificates. */ + PURPLE_CERTIFICATE_CA_UNKNOWN = 0x02, + + /* The current time is before the certificate's specified + * activation time. + */ + PURPLE_CERTIFICATE_NOT_ACTIVATED = 0x04, + + /* The current time is after the certificate's specified expiration time */ + PURPLE_CERTIFICATE_EXPIRED = 0x08, + + /* The certificate's subject name doesn't match the expected */ + PURPLE_CERTIFICATE_NAME_MISMATCH = 0x10, + + /* No CA pool was found. This shouldn't happen... */ + PURPLE_CERTIFICATE_NO_CA_POOL = 0x20, + + /* Fatal */ + PURPLE_CERTIFICATE_FATALS_MASK = 0xFFFF0000, + + /* The signature chain could not be validated. Due to limitations in the + * the current API, this also indicates one of the CA certificates in the + * chain is expired (or not yet activated). FIXME 3.0.0 */ + PURPLE_CERTIFICATE_INVALID_CHAIN = 0x10000, + + /* The signature has been revoked. */ + PURPLE_CERTIFICATE_REVOKED = 0x20000, + + PURPLE_CERTIFICATE_LAST = 0x40000, +} PurpleCertificateInvalidityFlags; + +static const gchar * +invalidity_reason_to_string(PurpleCertificateInvalidityFlags flag) +{ + switch (flag) { + case PURPLE_CERTIFICATE_SELF_SIGNED: + return _("The certificate is self-signed and cannot be " + "automatically checked."); + break; + case PURPLE_CERTIFICATE_CA_UNKNOWN: + return _("The root certificate this one claims to be issued by is " + "unknown to Pidgin."); + break; + case PURPLE_CERTIFICATE_NOT_ACTIVATED: + return _("The certificate is not valid yet."); + break; + case PURPLE_CERTIFICATE_EXPIRED: + return _("The certificate has expired and should not be " + "considered valid."); + break; + case PURPLE_CERTIFICATE_NAME_MISMATCH: + /* Translators: "domain" refers to a DNS domain (e.g. talk.google.com) */ + return _("The certificate presented is not issued to this domain."); + break; + case PURPLE_CERTIFICATE_NO_CA_POOL: + return _("You have no database of root certificates, so " + "this certificate cannot be validated."); + break; + case PURPLE_CERTIFICATE_INVALID_CHAIN: + return _("The certificate chain presented is invalid."); + break; + case PURPLE_CERTIFICATE_REVOKED: + return _("The certificate has been revoked."); + break; + case PURPLE_CERTIFICATE_UNKNOWN_ERROR: + default: + return _("An unknown certificate error occurred."); + break; + } +} + void purple_certificate_verify (PurpleCertificateVerifier *verifier, const gchar *subject_name, GList *cert_chain, @@ -1265,10 +1350,104 @@ } static void -x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq); +x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags); static void -x509_tls_cached_cert_in_cache(PurpleCertificateVerificationRequest *vrq) +x509_tls_cached_complete(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags) +{ + PurpleCertificatePool *tls_peers; + PurpleCertificate *peer_crt = vrq->cert_chain->data; + + if (flags & PURPLE_CERTIFICATE_FATALS_MASK) { + /* TODO: Also print any other warnings? */ + const gchar *error; + gchar *tmp, *secondary; + + if (flags & PURPLE_CERTIFICATE_INVALID_CHAIN) + error = invalidity_reason_to_string(PURPLE_CERTIFICATE_INVALID_CHAIN); + else if (flags & PURPLE_CERTIFICATE_REVOKED) + error = invalidity_reason_to_string(PURPLE_CERTIFICATE_REVOKED); + else + error = invalidity_reason_to_string(PURPLE_CERTIFICATE_UNKNOWN_ERROR); + + tmp = g_strdup_printf(_("The certificate for %s could not be validated."), + vrq->subject_name); + secondary = g_strconcat(tmp, " ", error, NULL); + g_free(tmp); + + purple_notify_error(NULL, /* TODO: Probably wrong. */ + _("SSL Certificate Error"), + _("Unable to validate certificate"), + secondary); + g_free(secondary); + + purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_INVALID); + return; + } else if (flags & PURPLE_CERTIFICATE_NON_FATALS_MASK) { + /* Non-fatal error. Prompt the user. */ + gchar *tmp; + GString *errors; + guint32 i = 1; + + tmp = g_strdup_printf(_("The certificate for %s could not be validated."), + vrq->subject_name); + errors = g_string_new(tmp); + g_free(tmp); + + errors = g_string_append_c(errors, '\n'); + + /* Special case a name mismatch because we want to display the two names... */ + if (flags & PURPLE_CERTIFICATE_NAME_MISMATCH) { + gchar *sn = purple_certificate_get_subject_name(peer_crt); + + g_string_append_printf(errors, _("The certificate claims to be " + "from \"%s\" instead. This could mean that you are " + "not connecting to the service you believe you are."), + sn); + g_free(sn); + + flags &= ~PURPLE_CERTIFICATE_NAME_MISMATCH; + } + + while (i != PURPLE_CERTIFICATE_LAST) { + if (flags & i) { + errors = g_string_append_c(errors, '\n'); + g_string_append(errors, invalidity_reason_to_string(i)); + } + + i <<= 1; + } + + x509_tls_cached_user_auth(vrq, errors->str); + g_string_free(errors, TRUE); + return; + } + + /* If we reach this point, the certificate is good. */ + + /* Look up the local cache and store it there for future use */ + tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name, + "tls_peers"); + if (tls_peers) { + if (!purple_certificate_pool_contains(tls_peers, vrq->subject_name) && + !purple_certificate_pool_store(tls_peers,vrq->subject_name, + peer_crt)) { + purple_debug_error("certificate/x509/tls_cached", + "FAILED to cache peer certificate\n"); + } + } else { + purple_debug_error("certificate/x509/tls_cached", + "Unable to locate tls_peers certificate cache.\n"); + } + + purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_VALID); +} + +static void +x509_tls_cached_cert_in_cache(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags) { /* TODO: Looking this up by name over and over is expensive. Fix, please! */ @@ -1291,7 +1470,7 @@ "Lookup failed on cached certificate!\n" "Falling back to full verification.\n"); /* vrq now becomes the problem of unknown_peer */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); return; } @@ -1302,14 +1481,12 @@ if (!memcmp(peer_fpr->data, cached_fpr->data, peer_fpr->len)) { purple_debug_info("certificate/x509/tls_cached", "Peer cert matched cached\n"); - /* vrq is now finished */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_VALID); + x509_tls_cached_complete(vrq, flags); } else { purple_debug_error("certificate/x509/tls_cached", "Peer cert did NOT match cached\n"); /* vrq now becomes the problem of the user */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); } purple_certificate_destroy(cached_crt); @@ -1324,9 +1501,8 @@ */ static void x509_tls_cached_check_subject_name(PurpleCertificateVerificationRequest *vrq, - gboolean had_ca_pool) + PurpleCertificateInvalidityFlags flags) { - PurpleCertificatePool *tls_peers; PurpleCertificate *peer_crt; GList *chain = vrq->cert_chain; @@ -1337,77 +1513,14 @@ vrq->subject_name) ) { gchar *sn = purple_certificate_get_subject_name(peer_crt); + flags |= PURPLE_CERTIFICATE_NAME_MISMATCH; purple_debug_error("certificate/x509/tls_cached", "Name mismatch: Certificate given for %s " "has a name of %s\n", vrq->subject_name, sn); - - if (had_ca_pool) { - /* Prompt the user to authenticate the certificate */ - /* TODO: Provide the user with more guidance about why he is - being prompted */ - /* vrq will be completed by user_auth */ - gchar *msg; - msg = g_strdup_printf(_("The certificate presented by \"%s\" " - "claims to be from \"%s\" instead. " - "This could mean that you are not " - "connecting to the service you " - "believe you are."), - vrq->subject_name, sn); - - x509_tls_cached_user_auth(vrq, msg); - g_free(msg); - } else { - /* Had no CA pool, so couldn't verify the chain *and* - * the subject name isn't valid. - * I think this is bad enough to warrant a fatal error. It's - * not likely anyway... - */ - purple_notify_error(NULL, /* TODO: Probably wrong. */ - _("SSL Certificate Error"), - _("Invalid certificate chain"), - _("You have no database of root certificates, so " - "this certificate cannot be validated.")); - } - - g_free(sn); - return; - } /* if (name mismatch) */ - - if (!had_ca_pool) { - /* The subject name is correct, but we weren't able to verify the - * chain because there was no pool of root CAs found. Prompt the user - * to validate it. - */ - - /* vrq will be completed by user_auth */ - x509_tls_cached_user_auth(vrq,_("You have no database of root " - "certificates, so this " - "certificate cannot be " - "validated.")); - return; } - /* If we reach this point, the certificate is good. */ - /* Look up the local cache and store it there for future use */ - tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name, - "tls_peers"); - - if (tls_peers) { - if (!purple_certificate_pool_store(tls_peers,vrq->subject_name, - peer_crt) ) { - purple_debug_error("certificate/x509/tls_cached", - "FAILED to cache peer certificate\n"); - } - } else { - purple_debug_error("certificate/x509/tls_cached", - "Unable to locate tls_peers certificate " - "cache.\n"); - } - - /* Whew! Done! */ - purple_certificate_verify_complete(vrq, PURPLE_CERTIFICATE_VALID); - + x509_tls_cached_complete(vrq, flags); } /* For when we've never communicated with this party before */ @@ -1415,7 +1528,8 @@ least reprioritize them. */ static void -x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq) +x509_tls_cached_unknown_peer(PurpleCertificateVerificationRequest *vrq, + PurpleCertificateInvalidityFlags flags) { PurpleCertificatePool *ca; PurpleCertificate *peer_crt; @@ -1430,22 +1544,13 @@ /* TODO: Figure out a way to check for a bad signature, as opposed to "not self-signed" */ if ( purple_certificate_signed_by(peer_crt, peer_crt) ) { - gchar *msg; + flags |= PURPLE_CERTIFICATE_SELF_SIGNED; purple_debug_info("certificate/x509/tls_cached", "Certificate for %s is self-signed.\n", vrq->subject_name); - /* Prompt the user to authenticate the certificate */ - /* vrq will be completed by user_auth */ - msg = g_strdup_printf(_("The certificate presented by \"%s\" " - "is self-signed. It cannot be " - "automatically checked."), - vrq->subject_name); - - x509_tls_cached_user_auth(vrq,msg); - - g_free(msg); + x509_tls_cached_check_subject_name(vrq, flags); return; } /* if (self signed) */ @@ -1491,32 +1596,11 @@ * If we get here, either the cert matched the stuff right above * or it didn't, in which case we give up and complain to the user. */ - if (chain_validated) { - x509_tls_cached_check_subject_name(vrq, TRUE); - } else { + if (!chain_validated) /* TODO: Tell the user where the chain broke? */ - /* TODO: This error will hopelessly confuse any - non-elite user. */ - gchar *secondary; - - secondary = g_strdup_printf(_("The certificate chain presented" - " for %s is not valid."), - vrq->subject_name); + flags |= PURPLE_CERTIFICATE_INVALID_CHAIN; - /* TODO: Make this error either block the ensuing SSL - connection error until the user dismisses this one, or - stifle it. */ - purple_notify_error(NULL, /* TODO: Probably wrong. */ - _("SSL Certificate Error"), - _("Invalid certificate chain"), - secondary ); - g_free(secondary); - - /* Okay, we're done here */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_INVALID); - } - + x509_tls_cached_check_subject_name(vrq, flags); return; } /* if (signature chain not good) */ @@ -1527,7 +1611,9 @@ "No X.509 Certificate Authority pool " "could be found!\n"); - x509_tls_cached_check_subject_name(vrq, FALSE); + flags |= PURPLE_CERTIFICATE_NO_CA_POOL; + + x509_tls_cached_check_subject_name(vrq, flags); return; } @@ -1540,15 +1626,15 @@ ca_id); ca_crt = purple_certificate_pool_retrieve(ca, ca_id); if ( NULL == ca_crt ) { + flags |= PURPLE_CERTIFICATE_CA_UNKNOWN; + purple_debug_warning("certificate/x509/tls_cached", "Certificate Authority with DN='%s' not " "found. I'll prompt the user, I guess.\n", ca_id); g_free(ca_id); - /* vrq will be completed by user_auth */ - x509_tls_cached_user_auth(vrq,_("The root certificate this " - "one claims to be issued by " - "is unknown to Pidgin.")); + + x509_tls_cached_check_subject_name(vrq, flags); return; } @@ -1579,36 +1665,15 @@ /* TODO: Also mention the CA involved. While I could do this now, a full DN is a little much with which to assault the user's poor, leaky eyes. */ - /* TODO: This error message makes my eyes cross, and I wrote it */ - gchar * secondary = - g_strdup_printf(_("The certificate chain presented by " - "%s does not have a valid digital " - "signature from the Certificate " - "Authority from which it claims to " - "have a signature."), - vrq->subject_name); - - purple_notify_error(NULL, /* TODO: Probably wrong */ - _("SSL Certificate Error"), - _("Invalid certificate authority" - " signature"), - secondary); - g_free(secondary); - - /* Signal "bad cert" */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_INVALID); - - purple_certificate_destroy(ca_crt); - g_byte_array_free(ca_fpr, TRUE); - g_byte_array_free(last_fpr, TRUE); - return; - } /* if (CA signature not good) */ + flags |= PURPLE_CERTIFICATE_INVALID_CHAIN; + } g_byte_array_free(ca_fpr, TRUE); g_byte_array_free(last_fpr, TRUE); - x509_tls_cached_check_subject_name(vrq, TRUE); + purple_certificate_destroy(ca_crt); + + x509_tls_cached_check_subject_name(vrq, flags); } static void @@ -1617,6 +1682,7 @@ const gchar *tls_peers_name = "tls_peers"; /* Name of local cache */ PurpleCertificatePool *tls_peers; time_t now, activation, expiration; + PurpleCertificateInvalidityFlags flags = PURPLE_CERTIFICATE_NO_PROBLEMS; gboolean ret; g_return_if_fail(vrq); @@ -1632,37 +1698,21 @@ now = time(NULL); ret = purple_certificate_get_times(vrq->cert_chain->data, &activation, &expiration); - if (!ret || now > expiration || now < activation) { - gchar *secondary; - - if (!ret) - purple_debug_error("certificate/x509/tls_cached", - "Failed to get validity times for certificate %s\n", - vrq->subject_name); - else if (now > expiration) - purple_debug_error("certificate/x509/tls_cached", - "Certificate %s expired at %s\n", - vrq->subject_name, ctime(&expiration)); - else - purple_debug_error("certificate/x509/tls_cached", - "Certificate %s is not yet valid, will be at %s\n", - vrq->subject_name, ctime(&activation)); - - /* FIXME 2.6.1 */ - secondary = g_strdup_printf(_("The certificate chain presented" - " for %s is not valid."), - vrq->subject_name); - - purple_notify_error(NULL, /* TODO: Probably wrong. */ - _("SSL Certificate Error"), - _("Invalid certificate chain"), - secondary ); - g_free(secondary); - - /* Okay, we're done here */ - purple_certificate_verify_complete(vrq, - PURPLE_CERTIFICATE_INVALID); - return; + if (!ret) { + flags |= PURPLE_CERTIFICATE_EXPIRED | PURPLE_CERTIFICATE_NOT_ACTIVATED; + purple_debug_error("certificate/x509/tls_cached", + "Failed to get validity times for certificate %s\n", + vrq->subject_name); + } else if (now > expiration) { + flags |= PURPLE_CERTIFICATE_EXPIRED; + purple_debug_error("certificate/x509/tls_cached", + "Certificate %s expired at %s\n", + vrq->subject_name, ctime(&expiration)); + } else if (now < activation) { + flags |= PURPLE_CERTIFICATE_NOT_ACTIVATED; + purple_debug_error("certificate/x509/tls_cached", + "Certificate %s is not yet valid, will be at %s\n", + vrq->subject_name, ctime(&activation)); } tls_peers = purple_certificate_find_pool(x509_tls_cached.scheme_name,tls_peers_name); @@ -1672,9 +1722,8 @@ "Couldn't find local peers cache %s\n", tls_peers_name); - /* vrq now becomes the problem of unknown_peer */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); return; } @@ -1685,12 +1734,12 @@ purple_debug_info("certificate/x509/tls_cached", "...Found cached cert\n"); /* vrq is now the responsibility of cert_in_cache */ - x509_tls_cached_cert_in_cache(vrq); + x509_tls_cached_cert_in_cache(vrq, flags); } else { purple_debug_warning("certificate/x509/tls_cached", "...Not in cache\n"); /* vrq now becomes the problem of unknown_peer */ - x509_tls_cached_unknown_peer(vrq); + x509_tls_cached_unknown_peer(vrq, flags); } } diff -r c138390bada8 -r 7763697a85c8 libpurple/dbus-analyze-functions.py --- a/libpurple/dbus-analyze-functions.py Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/dbus-analyze-functions.py Mon Aug 24 19:21:21 2009 +0000 @@ -181,15 +181,20 @@ def processoutput(self, type, name): + const = False + unsigned = False # the "void" type is simple ... if type == ["void"]: return self.outputvoid(type, name) - const = False if type[0] == "const": type = type[1:] const = True + if type[0] == "unsigned": + type = type[1:] + unsigned = True + # a string if type == ["char", pointer] or type == ["gchar", pointer]: return self.outputstring(type, name, const) @@ -197,7 +202,7 @@ # simple types (ints, booleans, enums, ...) if (len(type) == 1) and \ ((type[0] in simpletypes) or (type[0].startswith("Purple"))): - return self.outputsimple(type, name) + return self.outputsimple(type, name, unsigned) # pointers ... if (len(type) == 2) and (type[1] == pointer): @@ -303,10 +308,13 @@ # self.returncode.append("NULLIFY(%s);" % name) self.returncode.append("return %s;" % name); - def outputsimple(self, type, name): + def outputsimple(self, type, name, us): self.functiontype = type[0] self.decls.append("%s %s = 0;" % (type[0], name)) - self.outputparams.append(("G_TYPE_INT", name)) + if us: + self.outputparams.append(("G_TYPE_UINT", name)) + else: + self.outputparams.append(("G_TYPE_INT", name)) self.returncode.append("return %s;" % name); # we could add "const" to the return type but this would probably @@ -455,11 +463,16 @@ if not const: self.ccodeout.append("\tg_free(%s);" % name) - def outputsimple(self, type, name): - self.cdecls.append("\tdbus_int32_t %s;" % name) + def outputsimple(self, type, name, us): + if us: + self.cdecls.append("\tdbus_uint32_t %s;" % name) + self.cparamsout.append(("UINT32", name)) + self.addouttype("u", name) + else: + self.cdecls.append("\tdbus_int32_t %s;" % name) + self.cparamsout.append(("INT32", name)) + self.addouttype("i", name) self.ccode.append("\t%s = %s;" % (name, self.call)) - self.cparamsout.append(("INT32", name)) - self.addouttype("i", name) def outputpurplestructure(self, type, name): self.cdecls.append("\tdbus_int32_t %s;" % name) diff -r c138390bada8 -r 7763697a85c8 libpurple/dnssrv.c --- a/libpurple/dnssrv.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/dnssrv.c Mon Aug 24 19:21:21 2009 +0000 @@ -465,9 +465,16 @@ { PurpleSrvResponse *srvres = NULL; PurpleSrvQueryData *query_data = data; - if(query_data->error_message != NULL) + if(query_data->error_message != NULL) { purple_debug_error("dnssrv", query_data->error_message); - else { + if (query_data->type == DNS_TYPE_SRV) { + if (query_data->cb.srv) + query_data->cb.srv(srvres, 0, query_data->extradata); + } else if (query_data->type == DNS_TYPE_TXT) { + if (query_data->cb.txt) + query_data->cb.txt(NULL, query_data->extradata); + } + } else { if (query_data->type == DNS_TYPE_SRV) { PurpleSrvResponse *srvres_tmp = NULL; GList *lst = query_data->results; diff -r c138390bada8 -r 7763697a85c8 libpurple/ft.c --- a/libpurple/ft.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/ft.c Mon Aug 24 19:21:21 2009 +0000 @@ -1321,7 +1321,7 @@ if (purple_xfer_get_filename(xfer) != NULL) { - msg = g_strdup_printf(_("You canceled the transfer of %s"), + msg = g_strdup_printf(_("You cancelled the transfer of %s"), purple_xfer_get_filename(xfer)); } else @@ -1384,12 +1384,12 @@ if (purple_xfer_get_filename(xfer) != NULL) { - msg = g_strdup_printf(_("%s canceled the transfer of %s"), + msg = g_strdup_printf(_("%s cancelled the transfer of %s"), buddy ? purple_buddy_get_alias(buddy) : xfer->who, purple_xfer_get_filename(xfer)); } else { - msg = g_strdup_printf(_("%s canceled the file transfer"), + msg = g_strdup_printf(_("%s cancelled the file transfer"), buddy ? purple_buddy_get_alias(buddy) : xfer->who); } purple_xfer_conversation_write(xfer, msg, TRUE); diff -r c138390bada8 -r 7763697a85c8 libpurple/idle.h --- a/libpurple/idle.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/idle.h Mon Aug 24 19:21:21 2009 +0000 @@ -26,6 +26,8 @@ #ifndef _PURPLE_IDLE_H_ #define _PURPLE_IDLE_H_ +#include + /** * Idle UI operations. */ diff -r c138390bada8 -r 7763697a85c8 libpurple/media-gst.h --- a/libpurple/media-gst.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/media-gst.h Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef _PURPLE_MEDIA_GST_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/media.c --- a/libpurple/media.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/media.c Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include @@ -2129,6 +2129,35 @@ } break; } + case GST_MESSAGE_ERROR: { + GstElement *element = GST_ELEMENT(GST_MESSAGE_SRC(msg)); + GstElement *lastElement = NULL; + while (!GST_IS_PIPELINE(element)) { + if (element == media->priv->confbin) { + purple_media_error("media", _("Conference error.")); + purple_media_end(media, NULL, NULL); + break; + } + lastElement = element; + element = GST_ELEMENT_PARENT(element); + } + if (GST_IS_PIPELINE(element)) { + GList *sessions = g_hash_table_get_values(media->priv->sessions); + for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { + PurpleMediaSession *session = sessions->data; + + if (session->src == lastElement) { + if (session->type & PURPLE_MEDIA_AUDIO) + purple_media_error(media, _("Error with your microphone.")); + else + purple_media_error(media, _("Error with your webcam.")); + purple_media_end(media, NULL, NULL); + break; + } + } + g_list_free(sessions); + } + } default: break; } @@ -2730,10 +2759,13 @@ num_params, params, &err); } - if (err) { - purple_debug_error("media", "Error creating stream: %s\n", - err->message); - g_error_free(err); + if (fsstream == NULL) { + purple_debug_error("media", + "Error creating stream: %s\n", + err && err->message ? + err->message : "NULL"); + if (err) + g_error_free(err); g_object_unref(participant); g_hash_table_remove(media->priv->participants, who); purple_media_remove_session(media, session); diff -r c138390bada8 -r 7763697a85c8 libpurple/media.h --- a/libpurple/media.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/media.h Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef _PURPLE_MEDIA_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/mediamanager.c --- a/libpurple/mediamanager.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/mediamanager.c Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include "internal.h" diff -r c138390bada8 -r 7763697a85c8 libpurple/mediamanager.h --- a/libpurple/mediamanager.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/mediamanager.h Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef _PURPLE_MEDIA_MANAGER_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/plugins/joinpart.c --- a/libpurple/plugins/joinpart.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/plugins/joinpart.c Mon Aug 24 19:21:21 2009 +0000 @@ -229,16 +229,17 @@ frame = purple_plugin_pref_frame_new(); - ppref = purple_plugin_pref_new_with_label(_("Join/Part Hiding Configuration")); + ppref = purple_plugin_pref_new_with_label(_("Hide Joins/Parts")); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label(THRESHOLD_PREF, - _("Minimum Room Size")); + /* Translators: Followed by an input request a number of people */ + _("For rooms with more than this many people")); purple_plugin_pref_set_bounds(ppref, 0, 1000); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label(DELAY_PREF, - _("User Inactivity Timeout (in minutes)")); + _("If user has not spoken in this many minutes")); purple_plugin_pref_set_bounds(ppref, 0, 8 * 60); /* 8 Hours */ purple_plugin_pref_frame_add(frame, ppref); diff -r c138390bada8 -r 7763697a85c8 libpurple/plugins/perl/common/XMLNode.xs --- a/libpurple/plugins/perl/common/XMLNode.xs Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/plugins/perl/common/XMLNode.xs Mon Aug 24 19:21:21 2009 +0000 @@ -4,21 +4,24 @@ PROTOTYPES: ENABLE Purple::XMLNode -xmlnode_copy(class, src) +xmlnode_copy(src) Purple::XMLNode src - C_ARGS: - src void xmlnode_free(node) Purple::XMLNode node Purple::XMLNode -xmlnode_from_str(class, str, size) - const char *str - gssize size - C_ARGS: - str, size +xmlnode_from_str(const char *str, gssize length(str)) + PROTOTYPE: $ + +const char * +xmlnode_get_name(node) + Purple::XMLNode node + CODE: + RETVAL = node->name; + OUTPUT: + RETVAL const char * xmlnode_get_attrib(node, attr) @@ -78,11 +81,17 @@ const char *value gchar_own * -xmlnode_to_formatted_str(node, len) +xmlnode_to_formatted_str(node) Purple::XMLNode node - int *len + CODE: + RETVAL = xmlnode_to_formatted_str(node, NULL); + OUTPUT: + RETVAL gchar_own * -xmlnode_to_str(node, len) +xmlnode_to_str(node) Purple::XMLNode node - int *len + CODE: + RETVAL = xmlnode_to_str(node, NULL); + OUTPUT: + RETVAL diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/bonjour/bonjour_ft.c --- a/libpurple/protocols/bonjour/bonjour_ft.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/bonjour/bonjour_ft.c Mon Aug 24 19:21:21 2009 +0000 @@ -17,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include "internal.h" #include "util.h" @@ -450,9 +450,11 @@ /* TODO: Make sure that it is advertising a bytestreams transfer */ - bonjour_xfer_receive(pc, id, sid, name, filesize, filename, XEP_BYTESTREAMS); + if (filename) { + bonjour_xfer_receive(pc, id, sid, name, filesize, filename, XEP_BYTESTREAMS); - parsed_receive = TRUE; + parsed_receive = TRUE; + } } if (!parsed_receive) { diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/bonjour/bonjour_ft.h --- a/libpurple/protocols/bonjour/bonjour_ft.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/bonjour/bonjour_ft.h Mon Aug 24 19:21:21 2009 +0000 @@ -17,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef _BONJOUR_FT_H_ #define _BONJOUR_FT_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/adhoccommands.c --- a/libpurple/protocols/jabber/adhoccommands.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/adhoccommands.h --- a/libpurple/protocols/jabber/adhoccommands.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/adhoccommands.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/auth.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/auth.h --- a/libpurple/protocols/jabber/auth.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/auth.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/bosh.c --- a/libpurple/protocols/jabber/bosh.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/bosh.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2008, Tobias Markmann + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/bosh.h --- a/libpurple/protocols/jabber/bosh.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/bosh.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2008, Tobias Markmann + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/buddy.c --- a/libpurple/protocols/jabber/buddy.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -749,7 +751,9 @@ const char *status_name = jabber_buddy_state_get_name(jbr->state); if (jbr->status) { - purdy = purple_strdup_withhtml(jbr->status); + tmp = purple_markup_escape_text(jbr->status, -1); + purdy = purple_strdup_withhtml(tmp); + g_free(tmp); if (purple_strequal(status_name, purdy)) status_name = NULL; @@ -908,12 +912,14 @@ (binval = xmlnode_get_child(photo, "BINVAL"))) { gsize size; char *bintext = xmlnode_get_data(binval); - guchar *data = purple_base64_decode(bintext, &size); - g_free(bintext); + if (bintext) { + guchar *data = purple_base64_decode(bintext, &size); + g_free(bintext); - if (data) { - vcard_hash = jabber_calculate_data_sha1sum(data, size); - g_free(data); + if (data) { + vcard_hash = jabber_calculate_data_sha1sum(data, size); + g_free(data); + } } } @@ -1675,21 +1681,42 @@ jabber_buddy_set_invisibility(js, purple_buddy_get_name(buddy), FALSE); } -static void jabber_buddy_cancel_presence_notification(PurpleBlistNode *node, - gpointer data) +static void cancel_presence_notification(gpointer data) { PurpleBuddy *buddy; PurpleConnection *gc; JabberStream *js; + buddy = data; + gc = purple_account_get_connection(purple_buddy_get_account(buddy)); + js = purple_connection_get_protocol_data(gc); + + jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "unsubscribed"); +} + +static void +jabber_buddy_cancel_presence_notification(PurpleBlistNode *node, + gpointer data) +{ + PurpleBuddy *buddy; + PurpleAccount *account; + PurpleConnection *gc; + const gchar *name; + char *msg; + g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); buddy = (PurpleBuddy *) node; - gc = purple_account_get_connection(purple_buddy_get_account(buddy)); - js = purple_connection_get_protocol_data(gc); + name = purple_buddy_get_name(buddy); + account = purple_buddy_get_account(buddy); + gc = purple_account_get_connection(account); - /* I wonder if we should prompt the user before doing this */ - jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "unsubscribed"); + msg = g_strdup_printf(_("%s will no longer be able to see your status " + "updates. Do you want to continue?"), name); + purple_request_yes_no(gc, NULL, _("Cancel Presence Notification"), + msg, 0 /* Yes */, account, name, NULL, buddy, + cancel_presence_notification, NULL /* Do nothing */); + g_free(msg); } static void jabber_buddy_rerequest_auth(PurpleBlistNode *node, gpointer data) diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/buddy.h --- a/libpurple/protocols/jabber/buddy.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/buddy.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/caps.c --- a/libpurple/protocols/jabber/caps.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/caps.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ @@ -456,6 +458,11 @@ /* Only validate if these are v1.5 capabilities */ if (userdata->hash) { gchar *hash = NULL; + /* + * TODO: If you add *any* hash here, make sure the checksum buffer + * size in jabber_caps_calculate_hash is large enough. The cipher API + * doesn't seem to offer a "Get the hash size" function(?). + */ if (!strcmp(userdata->hash, "sha-1")) { hash = jabber_caps_calculate_hash(info, "sha1"); } else if (!strcmp(userdata->hash, "md5")) { @@ -463,8 +470,10 @@ } if (!hash || strcmp(hash, userdata->ver)) { - purple_debug_warning("jabber", "Could not validate caps info from %s\n", - xmlnode_get_attrib(packet, "from")); + purple_debug_warning("jabber", "Could not validate caps info from " + "%s. Expected %s, got %s\n", + xmlnode_get_attrib(packet, "from"), + userdata->ver, hash ? hash : "(null)"); userdata->cb(NULL, NULL, userdata->cb_data); jabber_caps_client_info_destroy(info); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/caps.h --- a/libpurple/protocols/jabber/caps.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/caps.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/chat.c --- a/libpurple/protocols/jabber/chat.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/chat.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/chat.h --- a/libpurple/protocols/jabber/chat.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/chat.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/data.c --- a/libpurple/protocols/jabber/data.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/data.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,4 +1,8 @@ /* + * 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 @@ -11,7 +15,7 @@ * * 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 02110-1301, USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/data.h --- a/libpurple/protocols/jabber/data.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/data.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,4 +1,8 @@ /* + * 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 @@ -11,7 +15,7 @@ * * 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 02110-1301, USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef PURPLE_JABBER_DATA_H diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/disco.c --- a/libpurple/protocols/jabber/disco.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/disco.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Service Discovery * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -302,6 +304,8 @@ } } + js->chat_servers = g_list_reverse(js->chat_servers); + capabilities |= JABBER_CAP_RETRIEVED; if(jbr) diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/disco.h --- a/libpurple/protocols/jabber/disco.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/disco.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/google.c --- a/libpurple/protocols/jabber/google.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/google.c Mon Aug 24 19:21:21 2009 +0000 @@ -91,20 +91,6 @@ } static void -google_session_send_terminate(GoogleSession *session) -{ - xmlnode *sess; - JabberIq *iq = jabber_iq_new(session->js, JABBER_IQ_SET); - - xmlnode_set_attrib(iq->node, "to", session->remote_jid); - sess = google_session_create_xmlnode(session, "terminate"); - xmlnode_insert_child(iq->node, sess); - - jabber_iq_send(iq); - google_session_destroy(session); -} - -static void google_session_send_candidates(PurpleMedia *media, gchar *session_id, gchar *participant, GoogleSession *session) { @@ -398,6 +384,16 @@ purple_media_set_prpl_data(session->media, session); + g_signal_connect_swapped(G_OBJECT(session->media), + "candidates-prepared", + G_CALLBACK(google_session_ready), session); + g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", + G_CALLBACK(google_session_ready), session); + g_signal_connect(G_OBJECT(session->media), "state-changed", + G_CALLBACK(google_session_state_changed_cb), session); + g_signal_connect(G_OBJECT(session->media), "stream-info", + G_CALLBACK(google_session_stream_info_cb), session); + params = jabber_google_session_get_params(js, &num_params); if (purple_media_add_stream(session->media, "google-voice", @@ -408,23 +404,11 @@ session->remote_jid, PURPLE_MEDIA_VIDEO, TRUE, "nice", num_params, params) == FALSE)) { purple_media_error(session->media, "Error adding stream."); - purple_media_stream_info(session->media, - PURPLE_MEDIA_INFO_HANGUP, NULL, NULL, TRUE); - google_session_destroy(session); + purple_media_end(session->media, NULL, NULL); g_free(params); return FALSE; } - g_signal_connect_swapped(G_OBJECT(session->media), - "candidates-prepared", - G_CALLBACK(google_session_ready), session); - g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", - G_CALLBACK(google_session_ready), session); - g_signal_connect(G_OBJECT(session->media), "state-changed", - G_CALLBACK(google_session_state_changed_cb), session); - g_signal_connect(G_OBJECT(session->media), "stream-info", - G_CALLBACK(google_session_stream_info_cb), session); - g_free(params); return (session->media != NULL) ? TRUE : FALSE; @@ -466,6 +450,16 @@ purple_media_set_prpl_data(session->media, session); + g_signal_connect_swapped(G_OBJECT(session->media), + "candidates-prepared", + G_CALLBACK(google_session_ready), session); + g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", + G_CALLBACK(google_session_ready), session); + g_signal_connect(G_OBJECT(session->media), "state-changed", + G_CALLBACK(google_session_state_changed_cb), session); + g_signal_connect(G_OBJECT(session->media), "stream-info", + G_CALLBACK(google_session_stream_info_cb), session); + params = jabber_google_session_get_params(js, &num_params); if (purple_media_add_stream(session->media, "google-voice", @@ -477,8 +471,7 @@ FALSE, "nice", num_params, params) == FALSE)) { purple_media_error(session->media, "Error adding stream."); purple_media_stream_info(session->media, - PURPLE_MEDIA_INFO_HANGUP, NULL, NULL, TRUE); - google_session_send_terminate(session); + PURPLE_MEDIA_INFO_REJECT, NULL, NULL, TRUE); g_free(params); return FALSE; } @@ -535,18 +528,6 @@ purple_media_codec_list_free(codecs); purple_media_codec_list_free(video_codecs); - g_signal_connect_swapped(G_OBJECT(session->media), "accepted", - G_CALLBACK(google_session_ready), session); - g_signal_connect_swapped(G_OBJECT(session->media), - "candidates-prepared", - G_CALLBACK(google_session_ready), session); - g_signal_connect_swapped(G_OBJECT(session->media), "codecs-changed", - G_CALLBACK(google_session_ready), session); - g_signal_connect(G_OBJECT(session->media), "state-changed", - G_CALLBACK(google_session_state_changed_cb), session); - g_signal_connect(G_OBJECT(session->media), "stream-info", - G_CALLBACK(google_session_stream_info_cb), session); - result = jabber_iq_new(js, JABBER_IQ_RESULT); jabber_iq_set_id(result, iq_id); xmlnode_set_attrib(result->node, "to", session->remote_jid); @@ -778,8 +759,7 @@ session->js = js; session->remote_jid = g_strdup(session->id.initiator); - if (!google_session_handle_initiate(js, session, session_node, iq_id)) - google_session_destroy(session); + google_session_handle_initiate(js, session, session_node, iq_id); } #endif /* USE_VV */ @@ -1316,6 +1296,7 @@ purple_debug_error("jabber", "Google STUN lookup failed: %s\n", error_message); g_slist_free(hosts); + js->stun_query = NULL; return; } @@ -1334,18 +1315,16 @@ port = ntohs(((struct sockaddr_in *) addr)->sin_port); } - if (js) { - if (js->stun_ip) { - g_free(js->stun_ip); - } - js->stun_ip = g_strdup(dst); - purple_debug_info("jabber", "set Google STUN IP address: %s\n", dst); - js->stun_port = port; - purple_debug_info("jabber", "set Google STUN port: %d\n", port); - purple_debug_info("jabber", "set Google STUN port: %d\n", port); - /* unmark ongoing query */ - js->stun_query = NULL; - } + if (js->stun_ip) + g_free(js->stun_ip); + js->stun_ip = g_strdup(dst); + js->stun_port = port; + + purple_debug_info("jabber", "set Google STUN IP/port address: " + "%s:%d\n", dst, port); + + /* unmark ongoing query */ + js->stun_query = NULL; } while (hosts != NULL) { diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/ibb.c --- a/libpurple/protocols/jabber/ibb.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/ibb.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,4 +1,8 @@ /* + * 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 @@ -11,7 +15,7 @@ * * 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 02110-1301, USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include "internal.h" diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/ibb.h --- a/libpurple/protocols/jabber/ibb.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/ibb.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,4 +1,8 @@ /* + * 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 @@ -11,7 +15,7 @@ * * 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 02110-1301, USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef PURPLE_JABBER_IBB_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/iq.c --- a/libpurple/protocols/jabber/iq.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/iq.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/iq.h --- a/libpurple/protocols/jabber/iq.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/iq.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -3302,7 +3304,7 @@ PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_PRPL_ONLY | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, "prpl-jabber", jabber_cmd_chat_role, - _("role <moderator|participant|visitor|none> [nick1] [nick2] ...: Get the users with an role or set users' role with the room."), + _("role <moderator|participant|visitor|none> [nick1] [nick2] ...: Get the users with a role or set users' role with the room."), NULL); jabber_cmds = g_slist_prepend(jabber_cmds, GUINT_TO_POINTER(id)); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jabber.h --- a/libpurple/protocols/jabber/jabber.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/content.c --- a/libpurple/protocols/jabber/jingle/content.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/content.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/content.h --- a/libpurple/protocols/jabber/jingle/content.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/content.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/iceudp.c --- a/libpurple/protocols/jabber/jingle/iceudp.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/iceudp.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/iceudp.h --- a/libpurple/protocols/jabber/jingle/iceudp.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/iceudp.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/jingle.c --- a/libpurple/protocols/jabber/jingle/jingle.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/jingle.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * purple - Jabber Protocol Plugin * + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/jingle.h --- a/libpurple/protocols/jabber/jingle/jingle.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/jingle.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,6 +1,10 @@ /* * @file jingle.h * + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/rawudp.c --- a/libpurple/protocols/jabber/jingle/rawudp.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rawudp.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/rawudp.h --- a/libpurple/protocols/jabber/jingle/rawudp.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rawudp.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/rtp.c --- a/libpurple/protocols/jabber/jingle/rtp.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rtp.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 @@ -607,8 +611,11 @@ is_creator = !jingle_session_is_initiator(session); g_free(creator); - purple_media_add_stream(media, name, remote_jid, - type, is_creator, transmitter, num_params, params); + if(!purple_media_add_stream(media, name, remote_jid, + type, is_creator, transmitter, num_params, params)) { + purple_media_end(media, NULL, NULL); + return FALSE; + } g_free(name); g_free(media_type); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/rtp.h --- a/libpurple/protocols/jabber/jingle/rtp.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rtp.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/session.c --- a/libpurple/protocols/jabber/jingle/session.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/session.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/session.h --- a/libpurple/protocols/jabber/jingle/session.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/session.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/transport.c --- a/libpurple/protocols/jabber/jingle/transport.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/transport.c Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jingle/transport.h --- a/libpurple/protocols/jabber/jingle/transport.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/transport.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,6 +3,10 @@ * * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jutil.c --- a/libpurple/protocols/jabber/jutil.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jutil.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -504,8 +506,23 @@ JabberStream *js = gc ? gc->proto_data : NULL; static char buf[3072]; /* maximum legal length of a jabber jid */ JabberID *jid; + char *tmp; + size_t len = strlen(in); - jid = jabber_id_new(in); + /* + * If the JID ends with a '/', jabber_id_new is going to throw it away as + * invalid. However, this is what the UI generates for a JID with no + * resource. Deal with that by dropping away the '/'... + */ + if (in[len - 1] == '/') + tmp = g_strndup(in, len - 1); + else + tmp = (gchar *)in; + + jid = jabber_id_new(tmp); + + if (tmp != in) + g_free(tmp); if(!jid) return NULL; diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/jutil.h --- a/libpurple/protocols/jabber/jutil.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/jutil.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/message.c --- a/libpurple/protocols/jabber/message.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/message.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -87,8 +89,12 @@ } if(!jm->xhtml && !jm->body) { - if (jbr) - jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; + if (jbr) { + if (jm->chat_state != JM_STATE_NONE) + jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; + else + jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; + } if(JM_STATE_COMPOSING == jm->chat_state) { serv_got_typing(jm->js->gc, from, 0, PURPLE_TYPING); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/message.h --- a/libpurple/protocols/jabber/message.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/message.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/oob.c --- a/libpurple/protocols/jabber/oob.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/oob.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -207,7 +209,10 @@ url = xmlnode_get_data(urlnode); jox = g_new0(JabberOOBXfer, 1); - purple_url_parse(url, &jox->address, &jox->port, &jox->page, NULL, NULL); + if (!purple_url_parse(url, &jox->address, &jox->port, &jox->page, NULL, NULL)) { + g_free(url); + return; + } g_free(url); jox->js = js; jox->headers = g_string_new(""); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/oob.h --- a/libpurple/protocols/jabber/oob.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/oob.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/parser.c --- a/libpurple/protocols/jabber/parser.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/parser.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber XML parser stuff * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/parser.h --- a/libpurple/protocols/jabber/parser.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/parser.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/pep.c --- a/libpurple/protocols/jabber/pep.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/pep.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/pep.h --- a/libpurple/protocols/jabber/pep.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/pep.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/ping.c --- a/libpurple/protocols/jabber/ping.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/ping.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -16,7 +18,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/ping.h --- a/libpurple/protocols/jabber/ping.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/ping.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -17,7 +19,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #ifndef PURPLE_JABBER_PING_H_ #define PURPLE_JABBER_PING_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/presence.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 @@ -469,10 +471,17 @@ jbr->commands_fetched = TRUE; } +#if 0 + /* + * Versions of libpurple before 2.6.0 didn't advertise this capability, so + * we can't yet use Entity Capabilities to determine whether or not the + * other client supports Entity Capabilities. + */ if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/chatstates")) jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; else jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; +#endif out: g_free(userdata->from); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/presence.h --- a/libpurple/protocols/jabber/presence.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/presence.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/roster.c --- a/libpurple/protocols/jabber/roster.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/roster.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/roster.h --- a/libpurple/protocols/jabber/roster.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/roster.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/si.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/si.h --- a/libpurple/protocols/jabber/si.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/si.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/useravatar.c --- a/libpurple/protocols/jabber/useravatar.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/useravatar.c Mon Aug 24 19:21:21 2009 +0000 @@ -17,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/useravatar.h --- a/libpurple/protocols/jabber/useravatar.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/useravatar.h Mon Aug 24 19:21:21 2009 +0000 @@ -17,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/usermood.c --- a/libpurple/protocols/jabber/usermood.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/usermood.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/usermood.h --- a/libpurple/protocols/jabber/usermood.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/usermood.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/usernick.c --- a/libpurple/protocols/jabber/usernick.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/usernick.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/usernick.h --- a/libpurple/protocols/jabber/usernick.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/usernick.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/usertune.c --- a/libpurple/protocols/jabber/usertune.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/usertune.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/usertune.h --- a/libpurple/protocols/jabber/usertune.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/usertune.h Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2007, Andreas Monitzer + * 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 @@ -15,7 +17,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA * */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/xdata.c --- a/libpurple/protocols/jabber/xdata.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/xdata.c Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,9 @@ /* * purple - Jabber Protocol Plugin * - * Copyright (C) 2003, Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/jabber/xdata.h --- a/libpurple/protocols/jabber/xdata.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/jabber/xdata.h Mon Aug 24 19:21:21 2009 +0000 @@ -3,7 +3,9 @@ * * purple * - * Copyright (C) 2003 Nathan Walp + * 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 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/Makefile.mingw --- a/libpurple/protocols/msn/Makefile.mingw Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/Makefile.mingw Mon Aug 24 19:21:21 2009 +0000 @@ -41,7 +41,6 @@ command.c \ contact.c\ dialog.c \ - directconn.c \ error.c \ group.c \ history.c \ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/cmdproc.h --- a/libpurple/protocols/msn/cmdproc.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/cmdproc.h Mon Aug 24 19:21:21 2009 +0000 @@ -71,6 +71,4 @@ void msn_cmdproc_process_payload(MsnCmdProc *cmdproc, char *payload, int payload_len); -void msn_cmdproc_disconnect(MsnCmdProc *cmdproc); - #endif /* _MSN_CMDPROC_H_ */ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/contact.c --- a/libpurple/protocols/msn/contact.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/contact.c Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include "msn.h" diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/contact.h --- a/libpurple/protocols/msn/contact.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/contact.h Mon Aug 24 19:21:21 2009 +0000 @@ -20,7 +20,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef _MSN_CONTACT_H_ #define _MSN_CONTACT_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/error.c --- a/libpurple/protocols/msn/error.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/error.c Mon Aug 24 19:21:21 2009 +0000 @@ -198,7 +198,7 @@ break; case 800: - result = _("Friendly name changes too rapidly"); + result = _("Friendly name is changing too rapidly"); break; case 910: diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/msn.c Mon Aug 24 19:21:21 2009 +0000 @@ -89,6 +89,7 @@ typedef struct { char *smile; + PurpleSmiley *ps; MsnObject *obj; } MsnEmoticon; @@ -265,6 +266,7 @@ MsnSession *session; MsnCmdProc *cmdproc; MsnPage *page; + MsnMessage *msg; MsnUser *user; char *payload = NULL; const char *mobile_number = NULL; @@ -295,6 +297,9 @@ msn_transaction_set_payload(trans, payload, payload_len); g_free(payload); + msg = msn_message_new_plain(entry); + msn_transaction_set_data(trans, msg); + msn_page_destroy(page); msn_cmdproc_send_trans(cmdproc, trans); @@ -1078,12 +1083,10 @@ strobj = msn_object_to_string(obj); if (current) - g_string_append_printf(current, "\t%s\t%s", - emoticon->smile, strobj); + 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_string_printf(current, "%s\t%s", emoticon->smile, strobj); } g_free(strobj); @@ -1141,6 +1144,7 @@ emoticon = g_new0(MsnEmoticon, 1); emoticon->smile = g_strdup(purple_smiley_get_shortcut(smiley)); + emoticon->ps = smiley; emoticon->obj = msn_object_new_from_image(img, purple_imgstore_get_filename(img), username, MSN_OBJECT_EMOTICON); @@ -1163,7 +1167,7 @@ smileys = msn_msg_grab_emoticons(msg->body, username); while (smileys) { - smile = (MsnEmoticon*)smileys->data; + smile = (MsnEmoticon *)smileys->data; emoticons = msn_msg_emoticon_add(emoticons, smile); msn_emoticon_destroy(smile); smileys = g_slist_delete_link(smileys, smileys); @@ -1714,13 +1718,19 @@ { PurpleAccount *account; MsnSession *session; + const char *username; MsnSwitchBoard *swboard; MsnMessage *msg; char *msgformat; char *msgtext; + size_t msglen; + MsnEmoticon *smile; + GSList *smileys; + GString *emoticons = NULL; account = purple_connection_get_account(gc); session = gc->proto_data; + username = purple_account_get_username(account); swboard = msn_session_find_swboard_with_id(session, id); if (swboard == NULL) @@ -1732,8 +1742,9 @@ swboard->flag |= MSN_SB_FLAG_IM; msn_import_html(message, &msgformat, &msgtext); - - if (strlen(msgtext) + strlen(msgformat) + strlen(VERSION) > 1564) + msglen = strlen(msgtext); + + if ((msglen == 0) || (msglen + strlen(msgformat) + strlen(VERSION) > 1564)) { g_free(msgformat); g_free(msgtext); @@ -1743,6 +1754,29 @@ msg = msn_message_new_plain(msgtext); msn_message_set_attr(msg, "X-MMS-IM-Format", msgformat); + + smileys = msn_msg_grab_emoticons(msg->body, username); + while (smileys) { + smile = (MsnEmoticon *)smileys->data; + emoticons = msn_msg_emoticon_add(emoticons, smile); + if (purple_conv_custom_smiley_add(swboard->conv, smile->smile, + "sha1", purple_smiley_get_checksum(smile->ps), + FALSE)) { + gconstpointer data; + size_t len; + data = purple_smiley_get_data(smile->ps, &len); + purple_conv_custom_smiley_write(swboard->conv, smile->smile, data, len); + purple_conv_custom_smiley_close(swboard->conv, smile->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, FALSE); msn_message_destroy(msg); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/msn.h --- a/libpurple/protocols/msn/msn.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/msn.h Mon Aug 24 19:21:21 2009 +0000 @@ -127,7 +127,7 @@ } MsnClientVerId; #define MSN_CLIENT_ID_VERSION MSN_CLIENT_VER_7_0 -#define MSN_CLIENT_ID_CAPABILITIES (MSN_CLIENT_CAP_PACKET|MSN_CLIENT_CAP_INK_GIF|MSN_CLIENT_CAP_VOICEIM|MSN_CLIENT_CAP_WINKS) +#define MSN_CLIENT_ID_CAPABILITIES (MSN_CLIENT_CAP_PACKET|MSN_CLIENT_CAP_INK_GIF|MSN_CLIENT_CAP_VOICEIM) #define MSN_CLIENT_ID \ ((MSN_CLIENT_ID_VERSION << 24) | \ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/notification.c Mon Aug 24 19:21:21 2009 +0000 @@ -599,6 +599,8 @@ /* Decrement the count for unknown results so that we'll continue login. Also, need to finish the login process here as well, because ADL OK will not be called. */ + if (purple_debug_is_verbose()) + purple_debug_info("msn", "ADL/FQY count is %d\n", session->adl_fqy); if (--session->adl_fqy == 0) msn_session_finish_login(session); return; @@ -680,6 +682,9 @@ /* ADL's are returned all-together */ session->adl_fqy++; + if (purple_debug_is_verbose()) + purple_debug_info("msn", "Posting ADL, count is %d\n", + session->adl_fqy); msn_notification_post_adl(session->notification->cmdproc, payload, payload_len); @@ -694,6 +699,9 @@ } else { /* FQY's are returned one-at-a-time */ session->adl_fqy++; + if (purple_debug_is_verbose()) + purple_debug_info("msn", "Adding FQY address, count is %d\n", + session->adl_fqy); msn_add_contact_xml(session, fqy_node, user->passport, 0, user->networkid); @@ -718,6 +726,9 @@ /* ADL's are returned all-together */ session->adl_fqy++; + if (purple_debug_is_verbose()) + purple_debug_info("msn", "Posting ADL, count is %d\n", + session->adl_fqy); msn_notification_post_adl(session->notification->cmdproc, payload, payload_len); @@ -809,6 +820,9 @@ if (!strcmp(cmd->params[1], "OK")) { /* ADL ack */ + if (purple_debug_is_verbose()) + purple_debug_info("msn", "ADL ACK, count is %d\n", + session->adl_fqy); if (--session->adl_fqy == 0) msn_session_finish_login(session); } else { @@ -1178,14 +1192,36 @@ id = xmlnode_get_attrib(msg, "id"); if (id && !strcmp(id, "407")) { - /* TODO: Use this to NAK the transaction, maybe print the text, too. - unsigned int trId; - id = xmlnode_get_attrib(payloadNode, "id"); - trId = atol(id); - */ - purple_conv_present_error(who, gc->account, - _("Mobile message was not sent because it was too long.")); + PurpleConversation *conv + = purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY, + who, gc->account); + if (conv != NULL) { + purple_conversation_write(conv, NULL, + _("Mobile message was not sent because it was too long."), + PURPLE_MESSAGE_ERROR, time(NULL)); + + if ((id = xmlnode_get_attrib(payloadNode, "id")) != NULL) { + unsigned int trId = atol(id); + MsnTransaction *trans; + MsnMessage *msg; + trans = msn_history_find(cmdproc->history, trId); + msg = (MsnMessage *)trans->data; + + if (msg) { + char *body_str = msn_message_to_string(msg); + char *body_enc = g_markup_escape_text(body_str, -1); + + purple_conversation_write(conv, NULL, body_enc, + PURPLE_MESSAGE_RAW, time(NULL)); + + g_free(body_str); + g_free(body_enc); + msn_message_destroy(msg); + trans->data = NULL; + } + } + } } else { serv_got_im(gc, who, text, 0, time(NULL)); } diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/oim.c --- a/libpurple/protocols/msn/oim.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/oim.c Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include "msn.h" #include "soap.h" diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/oim.h --- a/libpurple/protocols/msn/oim.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/oim.h Mon Aug 24 19:21:21 2009 +0000 @@ -20,7 +20,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef _MSN_OIM_H_ #define _MSN_OIM_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/slp.c --- a/libpurple/protocols/msn/slp.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/slp.c Mon Aug 24 19:21:21 2009 +0000 @@ -351,7 +351,7 @@ g_free(bin); - purple_xfer_set_filename(xfer, file_name); + purple_xfer_set_filename(xfer, file_name ? file_name : ""); g_free(file_name); purple_xfer_set_size(xfer, file_size); purple_xfer_set_init_fnc(xfer, msn_xfer_init); @@ -403,9 +403,8 @@ if (conv) { char *buf; buf = g_strdup_printf( - _("%s has sent you a webcam " - "invite, which is not yet " - "supported."), from); + _("%s invited you to view his/her webcam, but " + "this is not yet supported."), from); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NOTIFY, diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/slpcall.c --- a/libpurple/protocols/msn/slpcall.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/slpcall.c Mon Aug 24 19:21:21 2009 +0000 @@ -205,7 +205,7 @@ if (slpmsg->session_id == 64) { /* This is for handwritten messages (Ink) */ - GError *error; + GError *error = NULL; gsize bytes_read, bytes_written; body_str = g_convert((const gchar *)body, body_len / 2, @@ -232,7 +232,7 @@ g_free(body_str); body_str = g_convert((const gchar *)body, body_len / 2, - "UTF-8", "UTF16-LE", + "UTF-8", "UTF-16LE", &bytes_read, &bytes_written, &error); if (!body_str) { diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/slplink.c --- a/libpurple/protocols/msn/slplink.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/slplink.c Mon Aug 24 19:21:21 2009 +0000 @@ -441,6 +441,7 @@ slpmsg->info = "SLP ACK"; msn_slplink_send_slpmsg(slplink, slpmsg); + msn_slpmsg_destroy(slpmsg); } static void @@ -504,11 +505,6 @@ data = msn_message_get_bin_data(msg, &len); - /* - OVERHEAD! - if (msg->msnslp_header.length < msg->msnslp_header.total_size) - */ - offset = msg->msnslp_header.offset; if (offset == 0) @@ -578,7 +574,7 @@ /* fseek(slpmsg->fp, offset, SEEK_SET); */ len = fwrite(data, 1, len, slpmsg->fp); } - else if (slpmsg->size) + else if (slpmsg->size && slpmsg->buffer) { if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) { diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/soap.c --- a/libpurple/protocols/msn/soap.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/soap.c Mon Aug 24 19:21:21 2009 +0000 @@ -20,7 +20,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include "internal.h" diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msn/soap.h --- a/libpurple/protocols/msn/soap.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msn/soap.h Mon Aug 24 19:21:21 2009 +0000 @@ -20,7 +20,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef _MSN_SOAP_H diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msnp9/slp.c --- a/libpurple/protocols/msnp9/slp.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msnp9/slp.c Mon Aug 24 19:21:21 2009 +0000 @@ -338,7 +338,7 @@ char *bin; gsize bin_len; guint32 file_size; - char *file_name; + gchar *file_name; gunichar2 *uni_name; account = slpcall->slplink->session->account; @@ -368,7 +368,8 @@ g_free(bin); - purple_xfer_set_filename(xfer, file_name); + purple_xfer_set_filename(xfer, file_name ? file_name : ""); + g_free(file_name); purple_xfer_set_size(xfer, file_size); purple_xfer_set_init_fnc(xfer, msn_xfer_init); purple_xfer_set_request_denied_fnc(xfer, msn_xfer_cancel); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/msnp9/slplink.c --- a/libpurple/protocols/msnp9/slplink.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/msnp9/slplink.c Mon Aug 24 19:21:21 2009 +0000 @@ -477,6 +477,7 @@ #endif msn_slplink_send_slpmsg(slplink, slpmsg); + msn_slpmsg_destroy(slpmsg); } static void @@ -603,7 +604,7 @@ /* fseek(slpmsg->fp, offset, SEEK_SET); */ len = fwrite(data, 1, len, slpmsg->fp); } - else if (slpmsg->size) + else if (slpmsg->size && slpmsg->buffer) { if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) { diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/oscar/clientlogin.c --- a/libpurple/protocols/oscar/clientlogin.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/oscar/clientlogin.c Mon Aug 24 19:21:21 2009 +0000 @@ -156,11 +156,15 @@ response_node = xmlnode_from_str(response, response_len); if (response_node == NULL) { + char *msg; purple_debug_error("oscar", "startOSCARSession could not parse " "response as XML: %s\n", response); + /* Note to translators: %s in this string is a URL */ + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_START_OSCAR_SESSION); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_START_OSCAR_SESSION)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); return FALSE; } @@ -175,11 +179,14 @@ /* Make sure we have a status code */ if (tmp_node == NULL || (tmp = xmlnode_get_data_unescaped(tmp_node)) == NULL) { + char *msg; purple_debug_error("oscar", "startOSCARSession response was " "missing statusCode: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_START_OSCAR_SESSION); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_START_OSCAR_SESSION)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); xmlnode_free(response_node); return FALSE; } @@ -197,10 +204,14 @@ "frequently. Wait ten minutes and try again. If " "you continue to try, you will need to wait even " "longer.")); - else + else { + char *msg; + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_START_OSCAR_SESSION); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_OTHER_ERROR, - _("Received unexpected response from " URL_START_OSCAR_SESSION)); + PURPLE_CONNECTION_ERROR_OTHER_ERROR, msg); + g_free(msg); + } g_free(tmp); xmlnode_free(response_node); @@ -212,11 +223,14 @@ if (data_node == NULL || host_node == NULL || port_node == NULL || cookie_node == NULL) { + char *msg; purple_debug_error("oscar", "startOSCARSession response was missing " "something: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_START_OSCAR_SESSION); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_START_OSCAR_SESSION)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); xmlnode_free(response_node); return FALSE; } @@ -227,11 +241,14 @@ *cookie = xmlnode_get_data_unescaped(cookie_node); if (*host == NULL || **host == '\0' || tmp == NULL || *tmp == '\0' || cookie == NULL || *cookie == '\0') { + char *msg; purple_debug_error("oscar", "startOSCARSession response was missing " "something: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_START_OSCAR_SESSION); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_START_OSCAR_SESSION)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); g_free(*host); g_free(tmp); g_free(*cookie); @@ -261,8 +278,10 @@ if (error_message != NULL || len == 0) { gchar *tmp; - tmp = g_strdup_printf(_("Error requesting " URL_START_OSCAR_SESSION - ": %s"), error_message); + /* Note to translators: The first %s is a URL, the second is an + error message. */ + tmp = g_strdup_printf(_("Error requesting %s: %s"), + URL_START_OSCAR_SESSION, error_message); purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); g_free(tmp); @@ -339,11 +358,14 @@ response_node = xmlnode_from_str(response, response_len); if (response_node == NULL) { + char *msg; purple_debug_error("oscar", "clientLogin could not parse " "response as XML: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_CLIENT_LOGIN); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_CLIENT_LOGIN)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); return FALSE; } @@ -360,11 +382,14 @@ /* Make sure we have a status code */ if (tmp_node == NULL || (tmp = xmlnode_get_data_unescaped(tmp_node)) == NULL) { + char *msg; purple_debug_error("oscar", "clientLogin response was " "missing statusCode: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_CLIENT_LOGIN); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_CLIENT_LOGIN)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); xmlnode_free(response_node); return FALSE; } @@ -393,10 +418,14 @@ purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, _("AOL does not allow your screen name to authenticate here")); - } else + } else { + char *msg; + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_CLIENT_LOGIN); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_OTHER_ERROR, - _("Received unexpected response from " URL_CLIENT_LOGIN)); + PURPLE_CONNECTION_ERROR_OTHER_ERROR, msg); + g_free(msg); + } xmlnode_free(response_node); return FALSE; @@ -407,11 +436,14 @@ if (data_node == NULL || secret_node == NULL || token_node == NULL || tokena_node == NULL) { + char *msg; purple_debug_error("oscar", "clientLogin response was missing " "something: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_CLIENT_LOGIN); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_CLIENT_LOGIN)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); xmlnode_free(response_node); return FALSE; } @@ -422,11 +454,14 @@ tmp = xmlnode_get_data_unescaped(hosttime_node); if (*token == NULL || **token == '\0' || *secret == NULL || **secret == '\0' || tmp == NULL || *tmp == '\0') { + char *msg; purple_debug_error("oscar", "clientLogin response was missing " "something: %s\n", response); + msg = g_strdup_printf(_("Received unexpected response from %s"), + URL_CLIENT_LOGIN); purple_connection_error_reason(gc, - PURPLE_CONNECTION_ERROR_NETWORK_ERROR, - _("Received unexpected response from " URL_CLIENT_LOGIN)); + PURPLE_CONNECTION_ERROR_NETWORK_ERROR, msg); + g_free(msg); g_free(*token); g_free(*secret); g_free(tmp); @@ -458,8 +493,8 @@ if (error_message != NULL || len == 0) { gchar *tmp; - tmp = g_strdup_printf(_("Error requesting " URL_CLIENT_LOGIN - ": %s"), error_message); + tmp = g_strdup_printf(_("Error requesting %s: %s"), + URL_CLIENT_LOGIN, error_message); purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); g_free(tmp); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/oscar/family_buddy.c --- a/libpurple/protocols/oscar/family_buddy.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/oscar/family_buddy.c Mon Aug 24 19:21:21 2009 +0000 @@ -221,9 +221,6 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, &userinfo); - if (snac->subtype == SNAC_SUBTYPE_BUDDY_ONCOMING && userinfo.flags & AIM_FLAG_AWAY) - aim_locate_autofetch_away_message(od, userinfo.bn); - aim_info_free(&userinfo); return ret; diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/oscar/family_locate.c --- a/libpurple/protocols/oscar/family_locate.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/oscar/family_locate.c Mon Aug 24 19:21:21 2009 +0000 @@ -250,8 +250,6 @@ aim_locate_adduserinfo(OscarData *od, aim_userinfo_t *userinfo) { aim_userinfo_t *cur; - FlapConnection *conn; - aim_rxcallback_t userfunc; cur = aim_locate_finduserinfo(od, userinfo->bn); @@ -353,73 +351,6 @@ } cur->away_len = 0; } - - /* - * This callback can be used by a client if they want to know whenever - * info for a buddy is updated. For example, if a client shows away - * messages in its buddy list, then it would need to know if a user's - * away message changes. - */ - conn = flap_connection_findbygroup(od, SNAC_FAMILY_LOCATE); - if ((userfunc = aim_callhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_GOTINFOBLOCK))) - userfunc(od, conn, NULL, cur); -} - -/** - * Remove this buddy name from our queue. If this info was requested - * by our info request queue, then pop the next element off of the queue. - * - * @param od The aim session. - * @param bn Buddy name of the info we just received. - * @return True if the request was explicit (client requested the info), - * false if the request was implicit (libfaim request the info). - */ -static int -aim_locate_gotuserinfo(OscarData *od, FlapConnection *conn, const char *bn) -{ - struct userinfo_node *cur, *del; - int was_explicit = TRUE; - - while ((od->locate.requested != NULL) && (oscar_util_name_compare(bn, od->locate.requested->bn) == 0)) { - del = od->locate.requested; - od->locate.requested = del->next; - was_explicit = FALSE; - g_free(del->bn); - g_free(del); - } - - cur = od->locate.requested; - while ((cur != NULL) && (cur->next != NULL)) { - if (oscar_util_name_compare(bn, cur->next->bn) == 0) { - del = cur->next; - cur->next = del->next; - was_explicit = FALSE; - g_free(del->bn); - g_free(del); - } else - cur = cur->next; - } - - return was_explicit; -} - -void -aim_locate_autofetch_away_message(OscarData *od, const char *bn) -{ - struct userinfo_node *cur; - - /* Make sure we haven't already made an info request for this buddy */ - for (cur = od->locate.requested; cur != NULL; cur = cur->next) - if (oscar_util_name_compare(bn, cur->bn) == 0) - return; - - /* Add a new node to our request queue */ - cur = (struct userinfo_node *)g_malloc(sizeof(struct userinfo_node)); - cur->bn = g_strdup(bn); - cur->next = od->locate.requested; - od->locate.requested = cur; - - aim_locate_getinfoshort(od, cur->bn, 0x00000002); } aim_userinfo_t *aim_locate_finduserinfo(OscarData *od, const char *bn) { @@ -956,7 +887,6 @@ aim_snac_t *snac2; guint16 reason; char *bn; - int was_explicit; if (!(snac2 = aim_remsnac(od, snac->id))) { purple_debug_misc("oscar", "locate error: received response from unknown request!\n"); @@ -978,15 +908,9 @@ reason = byte_stream_get16(bs); - /* - * Remove this buddy name from our queue. If the client requested - * this buddy's info explicitly, then notify them that we do not have - * info for this buddy. - */ - was_explicit = aim_locate_gotuserinfo(od, conn, bn); - if (was_explicit == TRUE) - if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) - ret = userfunc(od, conn, frame, reason, bn); + /* Notify the user that we do not have info for this buddy */ + if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) + ret = userfunc(od, conn, frame, reason, bn); if (snac2) g_free(snac2->data); @@ -1202,7 +1126,6 @@ aim_userinfo_t *userinfo, *userinfo2; GSList *tlvlist; aim_tlv_t *tlv = NULL; - int was_explicit; userinfo = (aim_userinfo_t *)g_malloc(sizeof(aim_userinfo_t)); aim_info_extract(od, bs, userinfo); @@ -1238,18 +1161,9 @@ aim_info_free(userinfo); g_free(userinfo); - /* - * Remove this buddy name from our queue. If the client requested - * this buddy's info explicitly, then notify them that we have info - * for this buddy. - */ - if (userinfo2 != NULL) - { - was_explicit = aim_locate_gotuserinfo(od, conn, userinfo2->bn); - if (was_explicit == TRUE) - if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) - ret = userfunc(od, conn, frame, userinfo2); - } + /* Show the info to the user */ + if (userinfo2 != NULL && ((userfunc = aim_callhandler(od, snac->family, snac->subtype)))) + ret = userfunc(od, conn, frame, userinfo2); return ret; } diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.c Mon Aug 24 19:21:21 2009 +0000 @@ -160,7 +160,6 @@ static int purple_parse_misses (OscarData *, FlapConnection *, FlapFrame *, ...); static int purple_parse_clientauto (OscarData *, FlapConnection *, FlapFrame *, ...); static int purple_parse_userinfo (OscarData *, FlapConnection *, FlapFrame *, ...); -static int purple_got_infoblock (OscarData *, FlapConnection *, FlapFrame *, ...); static int purple_parse_motd (OscarData *, FlapConnection *, FlapFrame *, ...); static int purple_chatnav_info (OscarData *, FlapConnection *, FlapFrame *, ...); static int purple_conv_chat_join (OscarData *, FlapConnection *, FlapFrame *, ...); @@ -812,24 +811,24 @@ od = purple_connection_get_protocol_data(gc); - if (userinfo == NULL) - userinfo = aim_locate_finduserinfo(od, purple_buddy_get_name(b)); - - if ((user_info == NULL) || ((b == NULL) && (userinfo == NULL))) + if (b == NULL && userinfo == NULL) return; if (b == NULL) b = purple_find_buddy(purple_connection_get_account(gc), userinfo->bn); + else + userinfo = aim_locate_finduserinfo(od, purple_buddy_get_name(b)); 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 we have both b and userinfo we favor userinfo, because if we're + viewing someone's profile then we want the HTML away message, and + the "message" attribute of the status contains only the plaintext + message. */ + if (userinfo) { 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)) { @@ -850,6 +849,9 @@ userinfo->itmsurl, userinfo->itmsurl_len); #endif } + } else { + message = g_strdup(purple_status_get_attr_string(status, "message")); + itmsurl = g_strdup(purple_status_get_attr_string(status, "itmsurl")); } is_away = ((status && !purple_status_is_available(status)) || @@ -916,7 +918,6 @@ g_free(message); message = g_strdup(_("Offline")); } - } purple_notify_user_info_add_pair(user_info, _("Status"), message); @@ -1478,7 +1479,6 @@ oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_RIGHTSINFO, purple_parse_locaterights, 0); oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_USERINFO, purple_parse_userinfo, 0); oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_ERROR, purple_parse_locerr, 0); - oscar_data_addhandler(od, SNAC_FAMILY_LOCATE, SNAC_SUBTYPE_LOCATE_GOTINFOBLOCK, purple_got_infoblock, 0); oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x0001, purple_parse_genericerr, 0); oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x000f, purple_selfinfo, 0); oscar_data_addhandler(od, SNAC_FAMILY_OSERVICE, 0x001f, purple_memrequest, 0); @@ -2139,6 +2139,23 @@ g_return_val_if_fail(info != NULL, 1); g_return_val_if_fail(info->bn != NULL, 1); + /* + * If this is an AIM buddy and their name has formatting, set their + * server alias. + */ + if (!oscar_util_valid_name_icq(info->bn)) { + gboolean bn_has_formatting = FALSE; + char *c; + for (c = info->bn; *c != '\0'; c++) { + if (!islower(*c)) { + bn_has_formatting = TRUE; + break; + } + } + serv_got_alias(gc, info->bn, + bn_has_formatting ? info->bn : NULL); + } + if (info->present & AIM_USERINFO_PRESENT_FLAGS) { if (info->flags & AIM_FLAG_AWAY) buddy_is_away = TRUE; @@ -3287,7 +3304,7 @@ oscar_user_info_append_extra_info(gc, user_info, NULL, userinfo); if ((userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) && !oscar_util_valid_name_sms(userinfo->bn)) { - /* An SMS contact is always online; its Online Since valid is not useful */ + /* An SMS contact is always online; its Online Since value is not useful */ time_t t = userinfo->onlinesince; oscar_user_info_add_pair(user_info, _("Online Since"), purple_date_format_full(localtime(&t))); } @@ -3330,55 +3347,6 @@ return 1; } -static int purple_got_infoblock(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) -{ - PurpleConnection *gc = od->gc; - PurpleAccount *account = purple_connection_get_account(gc); - PurpleBuddy *b; - PurplePresence *presence; - PurpleStatus *status; - gchar *message = NULL; - - va_list ap; - aim_userinfo_t *userinfo; - - va_start(ap, fr); - userinfo = va_arg(ap, aim_userinfo_t *); - va_end(ap); - - b = purple_find_buddy(account, userinfo->bn); - if (b == NULL) - return 1; - - if (!oscar_util_valid_name_icq(userinfo->bn)) - { - if (strcmp(purple_buddy_get_name(b), userinfo->bn) != 0) - serv_got_alias(gc, purple_buddy_get_name(b), userinfo->bn); - else - serv_got_alias(gc, purple_buddy_get_name(b), NULL); - } - - presence = purple_buddy_get_presence(b); - status = purple_presence_get_active_status(presence); - - if (purple_status_is_online(status) && !purple_status_is_available(status) && - userinfo->flags & AIM_FLAG_AWAY && userinfo->away_len > 0 && - userinfo->away != NULL && userinfo->away_encoding != NULL) - { - gchar *charset = oscar_encoding_extract(userinfo->away_encoding); - message = oscar_encoding_to_utf8(account, charset, - userinfo->away, - userinfo->away_len); - g_free(charset); - purple_prpl_got_user_status(account, userinfo->bn, - purple_status_get_id(status), - "message", message, NULL); - g_free(message); - } - - return 1; -} - static int purple_parse_motd(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { char *msg; @@ -6335,6 +6303,44 @@ } static void +oscar_close_directim(gpointer object, gpointer ignored) +{ + PurpleBlistNode *node; + PurpleBuddy *buddy; + PurpleAccount *account; + PurpleConnection *gc; + PurpleConversation *conv; + OscarData *od; + PeerConnection *conn; + const char *name; + + node = object; + + g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); + + buddy = (PurpleBuddy*)node; + name = purple_buddy_get_name(buddy); + account = purple_buddy_get_account(buddy); + gc = purple_account_get_connection(account); + od = gc->proto_data; + conn = peer_connection_find_by_type(od, name, OSCAR_CAPABILITY_DIRECTIM); + + if (conn != NULL) + { + if (!conn->ready) + aim_im_sendch2_cancel(conn); + + peer_connection_destroy(conn, OSCAR_DISCONNECT_LOCAL_CLOSED, NULL); + + /* OSCAR_DISCONNECT_LOCAL_CLOSED doesn't write anything to the convo + * window. Let the user know that we canceled the Direct IM. */ + conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name); + purple_conversation_write(conv, NULL, _("You closed the connection."), + PURPLE_MESSAGE_SYSTEM, time(NULL)); + } +} + +static void oscar_get_aim_info_cb(PurpleBlistNode *node, gpointer ignore) { PurpleBuddy *buddy; @@ -6397,11 +6403,23 @@ oscar_util_name_compare(purple_account_get_username(account), bname) && PURPLE_BUDDY_IS_ONLINE(buddy)) { + PeerConnection *conn; + conn = peer_connection_find_by_type(od, bname, OSCAR_CAPABILITY_DIRECTIM); + if (userinfo->capabilities & OSCAR_CAPABILITY_DIRECTIM) { - act = purple_menu_action_new(_("Direct IM"), - PURPLE_CALLBACK(oscar_ask_directim), - NULL, NULL); + if (conn) + { + act = purple_menu_action_new(_("End Direct IM Session"), + PURPLE_CALLBACK(oscar_close_directim), + NULL, NULL); + } + else + { + act = purple_menu_action_new(_("Direct IM"), + PURPLE_CALLBACK(oscar_ask_directim), + NULL, NULL); + } menu = g_list_prepend(menu, act); } #if 0 diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/oscar/oscar.h --- a/libpurple/protocols/oscar/oscar.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.h Mon Aug 24 19:21:21 2009 +0000 @@ -533,7 +533,6 @@ struct { struct aim_userinfo_s *userinfo; - struct userinfo_node *requested; } locate; /* Server-stored information (ssi) */ @@ -1133,7 +1132,6 @@ /* 0x000f */ int aim_locate_setinterests(OscarData *od, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, guint16 privacy); /* 0x0015 */ int aim_locate_getinfoshort(OscarData *od, const char *bn, guint32 flags); -void aim_locate_autofetch_away_message(OscarData *od, const char *bn); guint32 aim_locate_getcaps(OscarData *od, ByteStream *bs, int len); guint32 aim_locate_getcaps_short(OscarData *od, ByteStream *bs, int len); void aim_info_free(aim_userinfo_t *); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/oscar/snactypes.h --- a/libpurple/protocols/oscar/snactypes.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/oscar/snactypes.h Mon Aug 24 19:21:21 2009 +0000 @@ -96,7 +96,6 @@ #define SNAC_SUBTYPE_LOCATE_USERINFO 0x0006 #define SNAC_SUBTYPE_LOCATE_WATCHERSUBREQ 0x0007 #define SNAC_SUBTYPE_LOCATE_WATCHERNOT 0x0008 -#define SNAC_SUBTYPE_LOCATE_GOTINFOBLOCK 0xfffd #define SNAC_SUBTYPE_LOCATE_DEFAULT 0xffff /* diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/qq/qq_crypt.c --- a/libpurple/protocols/qq/qq_crypt.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/qq/qq_crypt.c Mon Aug 24 19:21:21 2009 +0000 @@ -19,7 +19,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * * * QQ encryption algorithm diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/qq/qq_crypt.h --- a/libpurple/protocols/qq/qq_crypt.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/qq/qq_crypt.h Mon Aug 24 19:21:21 2009 +0000 @@ -19,7 +19,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef _QQ_CRYPT_H_ diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/qq/send_file.c --- a/libpurple/protocols/qq/send_file.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/qq/send_file.c Mon Aug 24 19:21:21 2009 +0000 @@ -730,7 +730,7 @@ */ filename = g_path_get_basename(purple_xfer_get_local_filename(qd->xfer)); msg = g_strdup_printf - (_("%d canceled the transfer of %s"), + (_("%d cancelled the transfer of %s"), sender_uid, filename); purple_notify_warning (gc, _("File Send"), msg, NULL); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/yahoo/libyahoo.c --- a/libpurple/protocols/yahoo/libyahoo.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/yahoo/libyahoo.c Mon Aug 24 19:21:21 2009 +0000 @@ -278,7 +278,7 @@ NULL, /**< dependencies */ PURPLE_PRIORITY_DEFAULT, /**< priority */ "prpl-yahoo", /**< id */ - "Yahoo!", /**< name */ + "Yahoo", /**< name */ DISPLAY_VERSION, /**< version */ /** summary */ N_("Yahoo! Protocol Plugin"), @@ -321,13 +321,15 @@ option = purple_account_option_string_new(_("Chat room locale"), "room_list_locale", YAHOO_ROOMLIST_LOCALE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_string_new(_("Encoding"), "local_charset", "UTF-8"); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_bool_new(_("Ignore conference and chatroom invitations"), "ignore_invites", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = purple_account_option_string_new(_("Encoding"), "local_charset", "UTF-8"); + option = purple_account_option_bool_new(_("Use account proxy for SSL connections"), "proxy_ssl", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - #if 0 option = purple_account_option_string_new(_("Chat room list URL"), "room_list", YAHOO_ROOMLIST_URL); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/yahoo/libyahoojp.c --- a/libpurple/protocols/yahoo/libyahoojp.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/yahoo/libyahoojp.c Mon Aug 24 19:21:21 2009 +0000 @@ -174,7 +174,7 @@ NULL, /**< dependencies */ PURPLE_PRIORITY_DEFAULT, /**< priority */ "prpl-yahoojp", /**< id */ - "Yahoo! JAPAN", /**< name */ + "Yahoo JAPAN", /**< name */ DISPLAY_VERSION, /**< version */ /** summary */ N_("Yahoo! JAPAN Protocol Plugin"), @@ -217,13 +217,15 @@ option = purple_account_option_string_new(_("Chat room locale"), "room_list_locale", YAHOOJP_ROOMLIST_LOCALE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_string_new(_("Encoding"), "local_charset", "UTF-8"); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_bool_new(_("Ignore conference and chatroom invitations"), "ignore_invites", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = purple_account_option_string_new(_("Encoding"), "local_charset", "UTF-8"); + option = purple_account_option_bool_new(_("Use account proxy for SSL connections"), "proxy_ssl", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - #if 0 option = purple_account_option_string_new(_("Chat room list URL"), "room_list", YAHOO_ROOMLIST_URL); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/yahoo/libymsg.c --- a/libpurple/protocols/yahoo/libymsg.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Mon Aug 24 19:21:21 2009 +0000 @@ -971,7 +971,7 @@ /* disconnect the peer if connected through p2p and sends wrong value for session id */ if( (pkt_type == YAHOO_PKT_TYPE_P2P) && (val_11 != yd->session_id) ) { - purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im->from); + purple_debug_warning("yahoo","p2p: %s sent us message with wrong session id. Disconnecting p2p connection to peer\n", im ? im->from : "(im was null)"); /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ g_hash_table_remove(yd->peers, im->from); return; @@ -1839,11 +1839,12 @@ PurpleAccount *account = purple_connection_get_account(gc); char *url = NULL; gboolean yahoojp = yahoo_is_japan(account); + gboolean proxy_ssl = purple_account_get_bool(account, "proxy_ssl", FALSE); url = g_strdup_printf(yahoojp ? YAHOOJP_LOGIN_URL : YAHOO_LOGIN_URL, token); - url_data = purple_util_fetch_url_request_len_with_account(account, url, - TRUE, YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1, - yahoo_auth16_stage2, auth_data); + url_data = purple_util_fetch_url_request_len_with_account( + proxy_ssl ? account : NULL, url, TRUE, YAHOO_CLIENT_USERAGENT, + TRUE, NULL, FALSE, -1, yahoo_auth16_stage2, auth_data); g_free(url); g_free(token); } @@ -1852,12 +1853,14 @@ static void yahoo_auth16_stage1(PurpleConnection *gc, const char *seed) { + PurpleAccount *account = purple_connection_get_account(gc); PurpleUtilFetchUrlData *url_data = NULL; struct yahoo_auth_data *auth_data = NULL; char *url = NULL; char *encoded_username; char *encoded_password; - gboolean yahoojp; + gboolean yahoojp = yahoo_is_japan(account); + gboolean proxy_ssl = purple_account_get_bool(account, "proxy_ssl", FALSE); purple_debug_info("yahoo", "Authentication: In yahoo_auth16_stage1\n"); @@ -1866,7 +1869,6 @@ return; } - yahoojp = yahoo_is_japan(purple_connection_get_account(gc)); auth_data = g_new0(struct yahoo_auth_data, 1); auth_data->gc = gc; auth_data->seed = g_strdup(seed); @@ -1879,7 +1881,7 @@ g_free(encoded_username); url_data = purple_util_fetch_url_request_len_with_account( - purple_connection_get_account(gc), url, TRUE, + proxy_ssl ? account : NULL, url, TRUE, YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1, yahoo_auth16_stage1_cb, auth_data); @@ -2077,21 +2079,24 @@ if (!purple_account_get_remember_password(account)) purple_account_set_password(account, NULL); - msg = g_strdup(_("Incorrect password")); + msg = g_strdup(_("Invalid username or password")); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; case 14: - msg = g_strdup(_("Your account is locked, please log in to the Yahoo! website.")); + msg = g_strdup(_("Your account has been locked due to too many failed login attempts." + " Please try logging into the Yahoo! website.")); reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; break; case 52: /* See #9660. As much as we know, reconnecting shouldn't hurt */ purple_debug_info("yahoo", "Got error 52, Set to autoreconnect\n"); - msg = g_strdup_printf(_("Unknown error")); + msg = g_strdup_printf(_("Unknown error 52. Reconnecting should fix this.")); reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; break; case 1013: - msg = g_strdup(_("Invalid username")); + msg = g_strdup(_("Error 1013: The username you have entered is invalid." + " The most common cause of this error is entering your e-mail" + " address instead of your Yahoo! ID.")); reason = PURPLE_CONNECTION_ERROR_INVALID_USERNAME; break; default: @@ -4271,7 +4276,7 @@ } } - msn = !g_strncasecmp(who, "msn/", 4); + msn = !g_ascii_strncasecmp(who, "msn/", 4); if( strncmp(who, "+", 1) == 0 ) { /* we have an sms to be sent */ @@ -4395,7 +4400,7 @@ { YahooData *yd = gc->proto_data; struct yahoo_p2p_data *p2p_data; - gboolean msn = !g_strncasecmp(who, "msn/", 4); + gboolean msn = !g_ascii_strncasecmp(who, "msn/", 4); struct yahoo_packet *pkt = NULL; /* Don't do anything if sms is being typed */ @@ -4495,8 +4500,6 @@ if (purple_presence_is_idle(presence)) yahoo_packet_hash_str(pkt, 47, "2"); - else if (!purple_status_is_available(status)) - yahoo_packet_hash_str(pkt, 47, "1"); yahoo_packet_send_and_free(pkt, yd); @@ -4517,6 +4520,7 @@ struct yahoo_packet *pkt = NULL; char *msg = NULL, *msg2 = NULL; PurpleStatus *status = NULL; + gboolean invisible = FALSE; if (idle && yd->current_status != YAHOO_STATUS_CUSTOM) yd->current_status = YAHOO_STATUS_IDLE; @@ -4525,9 +4529,15 @@ yd->current_status = get_yahoo_status_from_purple_status(status); } + invisible = !( purple_presence_is_available(purple_account_get_presence(purple_connection_get_account(gc))) ); + pkt = yahoo_packet_new(YAHOO_SERVICE_Y6_STATUS_UPDATE, YAHOO_STATUS_AVAILABLE, yd->session_id); - yahoo_packet_hash_int(pkt, 10, yd->current_status); + if (!idle && invisible) + yahoo_packet_hash_int(pkt, 10, YAHOO_STATUS_AVAILABLE); + else + yahoo_packet_hash_int(pkt, 10, yd->current_status); + if (yd->current_status == YAHOO_STATUS_CUSTOM) { const char *tmp; if (status == NULL) @@ -4550,8 +4560,6 @@ if (idle) yahoo_packet_hash_str(pkt, 47, "2"); - else if (!purple_presence_is_available(purple_account_get_presence(purple_connection_get_account(gc)))) - yahoo_packet_hash_str(pkt, 47, "1"); yahoo_packet_send_and_free(pkt, yd); @@ -4668,7 +4676,7 @@ return; f = yahoo_friend_find(gc, bname); - msn = !g_strncasecmp(bname, "msn/", 4); + msn = !g_ascii_strncasecmp(bname, "msn/", 4); g = purple_buddy_get_group(buddy); if (g) diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/yahoo/libymsg.h --- a/libpurple/protocols/yahoo/libymsg.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/yahoo/libymsg.h Mon Aug 24 19:21:21 2009 +0000 @@ -280,6 +280,27 @@ void yahoo_init_colorht(void); void yahoo_dest_colorht(void); char *yahoo_codes_to_html(const char *x); + +/** + * This function takes a normal HTML message and converts it to the message + * format used by Yahoo, which uses a frankensteinish combination of ANSI + * escape codes and broken HTML. + * + * It results in slightly different output than would be sent by official + * Yahoo clients. The two main differences are: + * + * 1. We always close all tags, whereas official Yahoo clients leave tags + * dangling open at the end of each message (and the client treats them + * as closed). + * 2. We always close inner tags first before closing outter tags. + * + * For example, if you want to send this message: + * bold bolditalic italic + * Official Yahoo clients would send: + * ESC[1m bold ESC[2m bolditalic ESC[x1m italic + * But we will send: + * ESC[1m bold ESC[2m bolditalic ESC[x2mESC[x1mESC[2m italic ESC[x2m + */ char *yahoo_html_to_codes(const char *src); gboolean diff -r c138390bada8 -r 7763697a85c8 libpurple/protocols/yahoo/util.c --- a/libpurple/protocols/yahoo/util.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/protocols/yahoo/util.c Mon Aug 24 19:21:21 2009 +0000 @@ -513,7 +513,7 @@ int i, j; gboolean no_more_gt_brackets = FALSE; const char *match; - gchar *xmlstr1, *xmlstr2; + gchar *xmlstr1, *xmlstr2, *esc; x_len = strlen(x); html = xmlnode_new("html"); @@ -553,12 +553,15 @@ #endif /* !USE_CSS_FORMATTING */ } else if ((match = g_hash_table_lookup(esc_codes_ht, code))) { - gboolean is_closing_tag; - gchar *tag_name; - - tag_name = yahoo_markup_get_tag_name(match, &is_closing_tag); - yahoo_codes_to_html_add_tag(&cur, match, is_closing_tag, tag_name, FALSE); - g_free(tag_name); + /* Some tags are in the hash table only because we + * want to ignore them */ + if (match[0] != '\0') { + gboolean is_closing_tag; + gchar *tag_name; + tag_name = yahoo_markup_get_tag_name(match, &is_closing_tag); + yahoo_codes_to_html_add_tag(&cur, match, is_closing_tag, tag_name, FALSE); + g_free(tag_name); + } } else { purple_debug_error("yahoo", @@ -608,7 +611,6 @@ if (match == NULL) { /* Unknown tag. The user probably typed a less-than sign */ g_string_append_c(cdata, x[i]); - no_more_gt_brackets = TRUE; g_free(tag); g_free(tag_name); break; @@ -657,7 +659,10 @@ xmlstr2 = g_strndup(xmlstr1 + 6, strlen(xmlstr1) - 13); g_free(xmlstr1); - purple_debug_misc("yahoo", "yahoo_codes_to_html: Returning string: '%s'.\n", xmlstr2); + esc = g_strescape(x, NULL); + purple_debug_misc("yahoo", "yahoo_codes_to_html(%s)=%s\n", esc, xmlstr2); + g_free(esc); + return xmlstr2; } @@ -666,33 +671,16 @@ #define POINT_SIZE(x) (_point_sizes [MIN ((x > 0 ? x : 1), MAX_FONT_SIZE) - 1]) static const gint _point_sizes [] = { 8, 10, 12, 14, 20, 30, 40 }; -enum fatype -{ - FATYPE_SIZE, - FATYPE_COLOR, - FATYPE_FACE, - FATYPE_JUNK -}; - typedef struct { - enum fatype type; - union { - int size; - char *color; - char *face; - char *junk; - } u; -} fontattr; - -static void fontattr_free(fontattr *f) -{ - if (f->type == FATYPE_COLOR) - g_free(f->u.color); - else if (f->type == FATYPE_FACE) - g_free(f->u.face); - g_free(f); -} + gboolean bold; + gboolean italic; + gboolean underline; + gboolean in_link; + int font_size; + char *font_face; + char *font_color; +} CurrentMsgState; static void yahoo_htc_list_cleanup(GSList *l) { @@ -702,338 +690,203 @@ } } -static void _parse_font_tag(const char *src, GString *dest, int *i, int *j, - int len, GSList **colors, GSList **tags, GQueue *ftattr) +static void parse_font_tag(GString *dest, const char *tag_name, const char *tag, + GSList **colors, GSList **tags) { - int m, n, vstart; - gboolean quote = FALSE, done = FALSE; + const char *start; + const char *end; + GData *attributes; + const char *attribute; + gboolean needendtag; + GString *tmp; - m = *j; + purple_markup_find_tag(tag_name, tag, &start, &end, &attributes); + + needendtag = FALSE; + tmp = g_string_new(NULL); - while (1) { - m++; + attribute = g_datalist_get_data(&attributes, "color"); + if (attribute != NULL) { + g_string_append(tmp, *colors ? (*colors)->data : "\033[#000000m"); + g_string_append_printf(dest, "\033[%sm", attribute); + *colors = g_slist_prepend(*colors, + g_strdup_printf("\033[%sm", attribute)); + } else { + /* We need to add a value to the colors stack even if we're not + * setting a color because we ALWAYS pop exactly 1 element from + * this stack for every tag. If we don't add anything + * then we'll pop something that we shouldn't when we hit this + * corresponding . */ + *colors = g_slist_prepend(*colors, + *colors ? g_strdup((*colors)->data) : g_strdup("\033[#000000m")); + } - if (m >= len) { - g_string_append(dest, &src[*i]); - *i = len; - break; + attribute = g_datalist_get_data(&attributes, "face"); + if (attribute != NULL) { + needendtag = TRUE; + g_string_append(dest, "'))) - done = TRUE; - - if (done) { - if (!g_ascii_strncasecmp(&src[*j+1], "FACE", m - *j - 1)) { - fontattr *f; - - f = g_new(fontattr, 1); - f->type = FATYPE_FACE; - f->u.face = g_strndup(&src[vstart+1], n-vstart-1); - if (!ftattr) - ftattr = g_queue_new(); - g_queue_push_tail(ftattr, f); - m = n; - break; - } else if (!g_ascii_strncasecmp(&src[*j+1], "SIZE", m - *j - 1)) { - fontattr *f; - - f = g_new(fontattr, 1); - f->type = FATYPE_SIZE; - f->u.size = POINT_SIZE(strtol(&src[vstart+1], NULL, 10)); - if (!ftattr) - ftattr = g_queue_new(); - g_queue_push_tail(ftattr, f); - m = n; - break; - } else if (!g_ascii_strncasecmp(&src[*j+1], "COLOR", m - *j - 1)) { - fontattr *f; - - f = g_new(fontattr, 1); - f->type = FATYPE_COLOR; - f->u.color = g_strndup(&src[vstart+1], n-vstart-1); - if (!ftattr) - ftattr = g_queue_new(); - g_queue_push_head(ftattr, f); - m = n; - break; - } else { - fontattr *f; - - f = g_new(fontattr, 1); - f->type = FATYPE_JUNK; - f->u.junk = g_strndup(&src[*j+1], n-*j); - if (!ftattr) - ftattr = g_queue_new(); - g_queue_push_tail(ftattr, f); - m = n; - break; - } + g_string_append_printf(dest, "size=\"%d\" ", + POINT_SIZE(strtol(attribute, NULL, 10))); + } - } - } - } - - if (src[m] == ' ') - *j = m; - - if (src[m] == '>') { - gboolean needendtag = FALSE; - fontattr *f; - GString *tmp = g_string_new(NULL); - - if (!g_queue_is_empty(ftattr)) { - while ((f = g_queue_pop_tail(ftattr))) { - switch (f->type) { - case FATYPE_SIZE: - if (!needendtag) { - needendtag = TRUE; - g_string_append(dest, "u.size); - break; - case FATYPE_FACE: - if (!needendtag) { - needendtag = TRUE; - g_string_append(dest, "u.face); - break; - case FATYPE_JUNK: - if (!needendtag) { - needendtag = TRUE; - g_string_append(dest, "str[dest->len-1] = '>'; + *tags = g_slist_prepend(*tags, g_strdup("")); + g_string_free(tmp, TRUE); + } else { + *tags = g_slist_prepend(*tags, tmp->str); + g_string_free(tmp, FALSE); + } - g_string_append(dest, f->u.junk); - break; - - case FATYPE_COLOR: - if (needendtag) { - g_string_append(tmp, ""); - dest->str[dest->len-1] = '>'; - needendtag = TRUE; - } - - g_string_append(tmp, *colors ? (*colors)->data : "\033[#000000m"); - g_string_append_printf(dest, "\033[%sm", f->u.color); - *colors = g_slist_prepend(*colors, - g_strdup_printf("\033[%sm", f->u.color)); - break; - } - fontattr_free(f); - } - - g_queue_free(ftattr); - ftattr = NULL; - - if (needendtag) { - dest->str[dest->len-1] = '>'; - *tags = g_slist_prepend(*tags, g_strdup("")); - g_string_free(tmp, TRUE); - } else { - *tags = g_slist_prepend(*tags, tmp->str); - g_string_free(tmp, FALSE); - } - } - - *i = *j = m; - break; - } - } + g_datalist_clear(&attributes); } char *yahoo_html_to_codes(const char *src) { GSList *colors = NULL; + + /** + * A stack of char*s where each char* is the string that should be + * appended to dest in order to close all the tags that were opened + * by a tag. + */ GSList *tags = NULL; + size_t src_len; int i, j; GString *dest; char *esc; - GQueue *ftattr = NULL; - gboolean no_more_specials = FALSE; + gboolean no_more_gt_brackets = FALSE; + gchar *tag, *tag_name; + gboolean is_closing_tag; + CurrentMsgState current_state; + + memset(¤t_state, 0, sizeof(current_state)); src_len = strlen(src); dest = g_string_sized_new(src_len); for (i = 0; i < src_len; i++) { - - if (src[i] == '<' && !no_more_specials) { + if (src[i] == '<' && !no_more_gt_brackets) { + /* The start of an HTML tag */ j = i; - while (1) { - j++; - - if (j >= src_len) { /* no '>' */ - g_string_append_c(dest, src[i]); - no_more_specials = TRUE; - break; - } + while (j++ < src_len) { + if (src[j] != '>') { + if (src[j] == '"') { + /* We're inside a quoted attribute value. Skip to the end */ + j++; + while (j != src_len && src[j] != '"') + j++; + } else if (src[j] == '\'') { + /* We're inside a quoted attribute value. Skip to the end */ + j++; + while (j != src_len && src[j] != '\'') + j++; + } + if (j != src_len) + /* Keep looking for the end of this tag */ + continue; - if (src[j] == '<') { - /* FIXME: This doesn't convert outgoing entities. - * However, I suspect this case may never - * happen anymore because of the entities. - */ - g_string_append_len(dest, &src[i], j - i); - i = j - 1; - if (ftattr) { - fontattr *f; - - while ((f = g_queue_pop_head(ftattr))) - fontattr_free(f); - g_queue_free(ftattr); - ftattr = NULL; - } + /* This < has no corresponding > */ + g_string_append_c(dest, src[i]); + no_more_gt_brackets = TRUE; break; } - if (src[j] == ' ') { - if (!g_ascii_strncasecmp(&src[i+1], "BODY", j - i - 1)) { - char *t = strchr(&src[j], '>'); - if (!t) { - g_string_append(dest, &src[i]); - i = src_len; - break; - } else { - i = t - src; - break; + tag = g_strndup(src + i, j - i + 1); + tag_name = yahoo_markup_get_tag_name(tag, &is_closing_tag); + + if (g_str_equal(tag_name, "a")) { + const char *start; + const char *end; + GData *attributes; + const char *attribute; + + /* + * TODO: Ideally we would replace this: + * Pidgin + * with this: + * Pidgin (http://pidgin.im/) + * + * Currently we drop the text within the tag and + * just show the URL. Doing it the fancy way is + * complicated when dealing with HTML tags within the + * tag. + */ + + /* Append the URL */ + purple_markup_find_tag(tag_name, tag, &start, &end, &attributes); + attribute = g_datalist_get_data(&attributes, "href"); + if (attribute != NULL) { + if (purple_str_has_prefix(attribute, "mailto:")) + attribute += 7; + g_string_append(dest, attribute); + } + g_datalist_clear(&attributes); + + /* Skip past the closing tag */ + end = purple_strcasestr(src + j, ""); + if (end != NULL) + j = end - src + 3; + + } else if (g_str_equal(tag_name, "font")) { + parse_font_tag(dest, tag_name, tag, &colors, &tags); + } else if (g_str_equal(tag_name, "b")) { + g_string_append(dest, "\033[1m"); + current_state.bold = TRUE; + } else if (g_str_equal(tag_name, "/b")) { + if (current_state.bold) { + g_string_append(dest, "\033[x1m"); + current_state.bold = FALSE; + } + } else if (g_str_equal(tag_name, "i")) { + current_state.italic = TRUE; + g_string_append(dest, "\033[2m"); + } else if (g_str_equal(tag_name, "/i")) { + if (current_state.italic) { + g_string_append(dest, "\033[x2m"); + current_state.italic = FALSE; + } + } else if (g_str_equal(tag_name, "u")) { + current_state.underline = TRUE; + g_string_append(dest, "\033[4m"); + } else if (g_str_equal(tag_name, "/u")) { + if (current_state.underline) { + g_string_append(dest, "\033[x4m"); + current_state.underline = FALSE; + } + } else if (g_str_equal(tag_name, "/a")) { + /* Do nothing */ + } else if (g_str_equal(tag_name, "br")) { + g_string_append_c(dest, '\n'); + } else if (g_str_equal(tag_name, "/font")) { + if (tags != NULL) { + char *etag = tags->data; + tags = g_slist_delete_link(tags, tags); + g_string_append(dest, etag); + if (colors != NULL) { + g_free(colors->data); + colors = g_slist_delete_link(colors, colors); } - } else if (!g_ascii_strncasecmp(&src[i+1], "A HREF=\"", j - i - 1)) { - j += 7; - g_string_append(dest, "\033[lm"); - if (purple_str_has_prefix(src + j, "mailto:")) - j += sizeof("mailto:") - 1; - while (1) { - g_string_append_c(dest, src[j]); - if (++j >= src_len) { - i = src_len; - break; - } - if (src[j] == '"') { - g_string_append(dest, "\033[xlm"); - while (1) { - if (++j >= src_len) { - i = src_len; - break; - } - if (!g_ascii_strncasecmp(&src[j], "", 4)) { - j += 3; - break; - } - } - i = j; - break; - } - } - } else if (!g_ascii_strncasecmp(&src[i+1], "SPAN", j - i - 1)) { /* drop span tags */ - while (1) { - if (++j >= src_len) { - g_string_append(dest, &src[i]); - i = src_len; - break; - } - if (src[j] == '>') { - i = j; - break; - } - } - } else if (g_ascii_strncasecmp(&src[i+1], "FONT", j - i - 1)) { /* not interested! */ - while (1) { - if (++j >= src_len) { - g_string_append(dest, &src[i]); - i = src_len; - break; - } - if (src[j] == '>') { - g_string_append_len(dest, &src[i], j - i + 1); - i = j; - break; - } - } - } else { /* yay we have a font tag */ - _parse_font_tag(src, dest, &i, &j, src_len, &colors, &tags, ftattr); + g_free(etag); } - - break; } - if (src[j] == '>') { - /* This has some problems like the FIXME for the - * '<' case. and like that case, I suspect the case - * that this has problems is won't happen anymore anyway. - */ - int sublen = j - i - 1; - - if (sublen) { - if (!g_ascii_strncasecmp(&src[i+1], "B", sublen)) { - g_string_append(dest, "\033[1m"); - } else if (!g_ascii_strncasecmp(&src[i+1], "/B", sublen)) { - g_string_append(dest, "\033[x1m"); - } else if (!g_ascii_strncasecmp(&src[i+1], "I", sublen)) { - g_string_append(dest, "\033[2m"); - } else if (!g_ascii_strncasecmp(&src[i+1], "/I", sublen)) { - g_string_append(dest, "\033[x2m"); - } else if (!g_ascii_strncasecmp(&src[i+1], "U", sublen)) { - g_string_append(dest, "\033[4m"); - } else if (!g_ascii_strncasecmp(&src[i+1], "/U", sublen)) { - g_string_append(dest, "\033[x4m"); - } else if (!g_ascii_strncasecmp(&src[i+1], "/A", sublen)) { - g_string_append(dest, "\033[xlm"); - } else if (!g_ascii_strncasecmp(&src[i+1], "BR", sublen)) { - g_string_append_c(dest, '\n'); - } else if (!g_ascii_strncasecmp(&src[i+1], "/BODY", sublen)) { - /* mmm, tags. *BURP* */ - } else if (!g_ascii_strncasecmp(&src[i+1], "/SPAN", sublen)) { - /* tags. dangerously close to */ - } else if (!g_ascii_strncasecmp(&src[i+1], "/FONT", sublen) && tags != NULL) { - char *etag; - - etag = tags->data; - tags = g_slist_delete_link(tags, tags); - if (etag) { - g_string_append(dest, etag); - if (!strcmp(etag, "")) { - if (colors != NULL) { - g_free(colors->data); - colors = g_slist_delete_link(colors, colors); - } - } - g_free(etag); - } - } else { - g_string_append_len(dest, &src[i], j - i + 1); - } - } else { - g_string_append_len(dest, &src[i], j - i + 1); - } - - i = j; - break; - } - + i = j; + g_free(tag); + g_free(tag_name); + break; } } else { @@ -1052,7 +905,7 @@ } esc = g_strescape(dest->str, NULL); - purple_debug_misc("yahoo", "yahoo_html_to_codes: Returning string: '%s'.\n", esc); + purple_debug_misc("yahoo", "yahoo_html_to_codes(%s)=%s\n", src, esc); g_free(esc); yahoo_htc_list_cleanup(colors); diff -r c138390bada8 -r 7763697a85c8 libpurple/proxy.c --- a/libpurple/proxy.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/proxy.c Mon Aug 24 19:21:21 2009 +0000 @@ -245,7 +245,7 @@ return &info; } - if (purple_strequal(tmp, "manual\n")) { + if (!purple_strequal(tmp, "manual\n")) { /* Unknown setting. Fallback to using our global proxy settings. */ g_free(tmp); return purple_global_proxy_get_info(); diff -r c138390bada8 -r 7763697a85c8 libpurple/purple-send --- a/libpurple/purple-send Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/purple-send Mon Aug 24 19:21:21 2009 +0000 @@ -29,4 +29,3 @@ shift dbus-send --dest=im.pidgin.purple.PurpleService --print-reply --type=method_call /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.$METHOD_NAME "$@" -echo diff -r c138390bada8 -r 7763697a85c8 libpurple/purple-send-async --- a/libpurple/purple-send-async Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/purple-send-async Mon Aug 24 19:21:21 2009 +0000 @@ -27,4 +27,3 @@ shift dbus-send --dest=im.pidgin.purple.PurpleService --type=method_call /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.$METHOD_NAME "$@" -echo diff -r c138390bada8 -r 7763697a85c8 libpurple/server.c --- a/libpurple/server.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/server.c Mon Aug 24 19:21:21 2009 +0000 @@ -592,13 +592,10 @@ */ flags |= PURPLE_MESSAGE_RECV; - 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)) { - purple_signal_emit(purple_conversations_get_handle(), "blocked-im-msg", - account, who, msg, flags, (unsigned int)mtime); - return; - } + if (!purple_privacy_check(account, who)) { + purple_signal_emit(purple_conversations_get_handle(), "blocked-im-msg", + account, who, msg, flags, (unsigned int)mtime); + return; } /* diff -r c138390bada8 -r 7763697a85c8 libpurple/smiley.c --- a/libpurple/smiley.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/smiley.c Mon Aug 24 19:21:21 2009 +0000 @@ -80,7 +80,7 @@ * XML descriptor file layout * ****************************************************************************** * - * Althought we are creating the profile XML structure here, now we + * Although 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 @@ -163,14 +163,14 @@ } static xmlnode * -smileys_to_xmlnode() +smileys_to_xmlnode(void) { 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 + /* See the top comments above to understand why initial tag elements * are not being considered by now. */ profile_node = xmlnode_new(XML_PROFILE_TAG); if (profile_node) { @@ -188,7 +188,7 @@ } static void -sync_smileys() +sync_smileys(void) { xmlnode *root_node; char *data; @@ -216,7 +216,7 @@ } static void -purple_smileys_save() +purple_smileys_save(void) { if (save_timer == 0) save_timer = purple_timeout_add_seconds(5, save_smileys_cb, NULL); @@ -248,7 +248,7 @@ } static void -purple_smileys_load() +purple_smileys_load(void) { xmlnode *root_node, *profile_node; xmlnode *smileyset_node = NULL; @@ -262,7 +262,7 @@ if (root_node == NULL) return; - /* See the top comment's above to understand why initial tag elements + /* See the top comments 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) @@ -456,7 +456,7 @@ } /********************************************************************* - * Other Stuff * + * Other Stuff * *********************************************************************/ static char *get_file_full_path(const char *filename) @@ -876,7 +876,7 @@ } void -purple_smileys_init() +purple_smileys_init(void) { 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); @@ -887,7 +887,7 @@ } void -purple_smileys_uninit() +purple_smileys_uninit(void) { if (save_timer != 0) { purple_timeout_remove(save_timer); diff -r c138390bada8 -r 7763697a85c8 libpurple/smiley.h --- a/libpurple/smiley.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/smiley.h Mon Aug 24 19:21:21 2009 +0000 @@ -95,7 +95,7 @@ purple_smiley_new_from_file(const char *shortcut, const char *filepath); /** - * Destroys the custom smiley and release the associated resources. + * Destroys the custom smiley and releases the associated resources. * * @param smiley The custom smiley. */ @@ -183,7 +183,7 @@ * 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 + * In general, it is not appropriate to be poking in the file cache * directly. If you find yourself wanting to use this function, think * very long and hard about it, and then don't. * diff -r c138390bada8 -r 7763697a85c8 libpurple/status.h --- a/libpurple/status.h Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/status.h Mon Aug 24 19:21:21 2009 +0000 @@ -50,25 +50,25 @@ * your accounts are saved so that the next time you start Purple, * your accounts will be set to their last known statuses. There * is also a list of saved statuses that are written to the - * status.xml file. Also, each PurpleStatus has a "savable" boolean. - * If "savable" is set to FALSE then the status is NEVER saved. + * status.xml file. Also, each PurpleStatus has a "saveable" boolean. + * If "saveable" is set to FALSE then the status is NEVER saved. * All PurpleStatuses should be inside a PurplePresence. * * - * A PurpleStatus is either "indepedent" or "exclusive." - * Independent statuses can be active or inactive and it doesn't + * A PurpleStatus is either "independent" or "exclusive." + * Independent statuses can be active or inactive and they don't * affect anything else. However, you can only have one exclusive - * status per PurplePresence. If you activate one exlusive status, + * status per PurplePresence. If you activate one exclusive status, * then the previous exclusive status is automatically deactivated. * * A PurplePresence is like a collection of PurpleStatuses (plus some * other random info). For any buddy, or for any one of your accounts, - * or for any person you're chatting with, you may know various + * or for any person with which you're chatting, you may know various * amounts of information. This information is all contained in * one PurplePresence. If one of your buddies is away and idle, * then the presence contains the PurpleStatus for their awayness, * and it contains their current idle time. PurplePresences are - * never saved to disk. The information they contain is only relevent + * never saved to disk. The information they contain is only relevant * for the current PurpleSession. */ @@ -80,7 +80,7 @@ /** * A context for a presence. * - * The context indicates what the presence applies to. + * The context indicates to what the presence applies. */ typedef enum { @@ -134,7 +134,7 @@ #endif /**************************************************************************/ -/** @name PurpleStatusPrimitive API */ +/** @name PurpleStatusPrimitive API */ /**************************************************************************/ /*@{*/ @@ -172,7 +172,7 @@ /*@}*/ /**************************************************************************/ -/** @name PurpleStatusType API */ +/** @name PurpleStatusType API */ /**************************************************************************/ /*@{*/ diff -r c138390bada8 -r 7763697a85c8 libpurple/tests/test_yahoo_util.c --- a/libpurple/tests/test_yahoo_util.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/tests/test_yahoo_util.c Mon Aug 24 19:21:21 2009 +0000 @@ -25,6 +25,10 @@ yahoo_codes_to_html("plain peanut")); + assert_string_equal_free("test", + yahoo_codes_to_html("test")); + assert_string_equal_free("<font face='inva>lid", + yahoo_codes_to_html("blue", @@ -92,19 +100,105 @@ yahoo_codes_to_html("test")); assert_string_equal_free("test", yahoo_codes_to_html("\x1B[35mtest")); + assert_string_equal_free(":<", + yahoo_codes_to_html(":<")); #endif /* !USE_CSS_FORMATTING */ } END_TEST +START_TEST(test_html_to_codes) +{ + assert_string_equal_free("plain", + yahoo_html_to_codes("plain")); + assert_string_equal_free("plain ", + yahoo_html_to_codes("plain <peanut>")); + assert_string_equal_free("plain peanut", + yahoo_html_to_codes("plain> peanut")); + assert_string_equal_free("plain >", + yahoo_html_to_codes("plain >")); + assert_string_equal_free("plain > ", + yahoo_html_to_codes("plain > ")); + assert_string_equal_free("plain <", + yahoo_html_to_codes("plain <")); + assert_string_equal_free("plain < ", + yahoo_html_to_codes("plain < ")); + assert_string_equal_free("plain <", + yahoo_html_to_codes("plain <")); + assert_string_equal_free("plain &", + yahoo_html_to_codes("plain &")); + + /* bold/italic/underline */ + assert_string_equal_free("\x1B[1mbold\x1B[x1m", + yahoo_html_to_codes("bold")); + assert_string_equal_free("\x1B[2mitalic\x1B[x2m", + yahoo_html_to_codes("italic")); + assert_string_equal_free("\x1B[4munderline\x1B[x4m", + yahoo_html_to_codes("underline")); + assert_string_equal_free("no markup", + yahoo_html_to_codes("no markup")); + assert_string_equal_free("\x1B[1mbold\x1B[x1m \x1B[2mitalic\x1B[x2m \x1B[4munderline\x1B[x4m", + yahoo_html_to_codes("bold italic underline")); + assert_string_equal_free("\x1B[1mbold \x1B[2mbolditalic\x1B[x2m\x1B[x1m\x1B[2m italic\x1B[x2m", + yahoo_html_to_codes("bold bolditalic italic")); + assert_string_equal_free("\x1B[1mbold \x1B[2mbolditalic\x1B[x2m\x1B[x1m\x1B[2m \x1B[4mitalicunderline\x1B[x4m\x1B[x2m", + yahoo_html_to_codes("bold bolditalic italicunderline")); + + /* link */ + assert_string_equal_free("http://pidgin.im/", + yahoo_html_to_codes("http://pidgin.im/")); + assert_string_equal_free("mark@example.com", + yahoo_html_to_codes("mark@example.com")); +#if 0 + assert_string_equal_free("Pidgin (http://pidgin.im/)", + yahoo_html_to_codes("Pidgin")); +#endif + + /* font nothing */ + assert_string_equal_free("nothing", + yahoo_html_to_codes("nothing")); + + /* font color */ + assert_string_equal_free("\x1B[#E71414mred\x1B[#000000m", + yahoo_html_to_codes("red")); + assert_string_equal_free("\x1B[#FF0000mred\x1B[#000000m \x1B[#0000FFmblue\x1B[#000000m black", + yahoo_html_to_codes("red blue black")); + + /* font size */ + assert_string_equal_free("test", + yahoo_html_to_codes("test")); + assert_string_equal_free("test", + yahoo_html_to_codes("test")); + + /* combinations */ + assert_string_equal_free("\x1B[#FF0000mredsmall rednormal\x1B[#000000m", + yahoo_html_to_codes("redsmall rednormal")); + + assert_string_equal_free("\x1B[#FF0000mredsmall \x1B[#00FF00mgreennormal\x1B[#FF0000m rednormal\x1B[#000000m", + yahoo_html_to_codes("redsmall greennormal rednormal")); + + assert_string_equal_free("\x1B[1mbold \x1B[#FF0000mred larger \x1B[#000000mbacktoblack normalsize\x1B[#FF0000m\x1B[#000000m\x1B[x1m", + yahoo_html_to_codes("bold red larger backtoblack normalsize")); +} +END_TEST + Suite * yahoo_util_suite(void) { - Suite *s = suite_create("Yahoo Utility Functions"); + Suite *s; + TCase *tc; - TCase *tc = tcase_create("Convert to Numeric"); + s = suite_create("Yahoo Utility Functions"); + + tc = tcase_create("Convert IM from network format to HTML"); tcase_add_unchecked_fixture(tc, setup_codes_to_html, teardown_codes_to_html); tcase_add_test(tc, test_codes_to_html); suite_add_tcase(s, tc); + tc = tcase_create("Convert IM from HTML to network format"); + tcase_add_test(tc, test_html_to_codes); + suite_add_tcase(s, tc); + return s; } diff -r c138390bada8 -r 7763697a85c8 libpurple/util.c --- a/libpurple/util.c Thu Aug 13 17:40:00 2009 +0000 +++ b/libpurple/util.c Mon Aug 24 19:21:21 2009 +0000 @@ -405,7 +405,7 @@ encoded_word_state_t state = state_start; const char *cur, *mark; const char *charset0 = NULL, *encoding0 = NULL, *encoded_text0 = NULL; - char *n, *new; + GString *new; /* token can be any CHAR (supposedly ISO8859-1/ISO2022), not just ASCII */ #define token_char_p(c) \ @@ -415,16 +415,9 @@ #define encoded_text_char_p(c) \ ((c & 0x80) == 0 && c != '?' && c != ' ' && isgraph(c)) - #define RECOVER_MARKED_TEXT strncpy(n, mark, cur - mark + 1); \ - n += cur - mark + 1 - g_return_val_if_fail(str != NULL, NULL); - /* NOTE: Assuming that we need just strlen(str)+1 *may* be wrong. - * It would be wrong if one byte (in some unknown encoding) could - * expand to >=4 bytes of UTF-8; I don't know if there are such things. - */ - n = new = g_malloc(strlen(str) + 1); + new = g_string_new(NULL); /* Here we will be looking for encoded words and if they seem to be * valid then decode them. @@ -437,7 +430,7 @@ if (*cur == '?') { state = state_question1; } else { - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -446,7 +439,7 @@ charset0 = cur; state = state_charset; } else { /* This should never happen */ - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -454,7 +447,7 @@ if (*cur == '?') { state = state_question2; } else if (!token_char_p(*cur)) { /* This should never happen */ - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -463,7 +456,7 @@ encoding0 = cur; state = state_encoding; } else { /* This should never happen */ - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -471,7 +464,7 @@ if (*cur == '?') { state = state_question3; } else if (!token_char_p(*cur)) { /* This should never happen */ - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -483,7 +476,7 @@ encoded_text0 = cur; state = state_question4; } else { /* This should never happen */ - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -491,7 +484,7 @@ if (*cur == '?') { state = state_question4; } else if (!encoded_text_char_p(*cur)) { - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -513,7 +506,7 @@ char *converted = g_convert((const gchar *)decoded, dec_len, "utf-8", charset, NULL, &len, NULL); if (converted) { - n = strncpy(n, converted, len) + len; + g_string_append_len(new, converted, len); g_free(converted); } g_free(decoded); @@ -523,7 +516,7 @@ g_free(encoded_text); state = state_equal2; /* Restart the FSM */ } else { /* This should never happen */ - RECOVER_MARKED_TEXT; + g_string_append_len(new, mark, cur - mark + 1); state = state_start; } break; @@ -533,19 +526,16 @@ state = state_equal1; } else { /* Some unencoded text. */ - *n = *cur; - n += 1; + g_string_append_c(new, *cur); } break; } /* switch */ } /* for */ - if (state != state_start) { - RECOVER_MARKED_TEXT; - } - *n = '\0'; - - return new; + if (state != state_start) + g_string_append_len(new, mark, cur - mark + 1); + + return g_string_free(new, FALSE);; } @@ -3830,7 +3820,7 @@ /* Note: data is _not_ nul-terminated. */ if (data_len > header_len) { if (header[0] == '\n') - p = (g_strncasecmp(data, header + 1, header_len - 1) == 0) ? data : NULL; + p = (g_ascii_strncasecmp(data, header + 1, header_len - 1) == 0) ? data : NULL; if (!p) p = purple_strcasestr(data, header); if (p) @@ -3867,7 +3857,7 @@ content_is_chunked(const char *data, size_t data_len) { const char *p = find_header_content(data, data_len, "\nTransfer-Encoding: ", sizeof("\nTransfer-Encoding: ") - 1); - if (p && g_strncasecmp(p, "chunked", 7) == 0) + if (p && g_ascii_strncasecmp(p, "chunked", 7) == 0) return TRUE; return FALSE; diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkblist-theme.c --- a/pidgin/gtkblist-theme.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkblist-theme.c Mon Aug 24 19:21:21 2009 +0000 @@ -373,70 +373,94 @@ g_object_class_install_property(obj_class, PROP_BACKGROUND_COLOR, pspec); pspec = g_param_spec_pointer("layout", _("Layout"), - _("The layout of icons, name, and status of the blist"), + _("The layout of icons, name, and status of the buddy list"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_LAYOUT, pspec); /* Group */ + /* Note to translators: These two strings refer to the background color + of a buddy list group when in its expanded state */ pspec = g_param_spec_boxed("expanded-color", _("Expanded Background Color"), _("The background color of an expanded group"), GDK_TYPE_COLOR, G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_EXPANDED_COLOR, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list group when in its expanded state */ pspec = g_param_spec_pointer("expanded-text", _("Expanded Text"), _("The text information for when a group is expanded"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_EXPANDED_TEXT, pspec); + /* Note to translators: These two strings refer to the background color + of a buddy list group when in its collapsed state */ pspec = g_param_spec_boxed("collapsed-color", _("Collapsed Background Color"), _("The background color of a collapsed group"), GDK_TYPE_COLOR, G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_COLLAPSED_COLOR, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list group when in its collapsed state */ pspec = g_param_spec_pointer("collapsed-text", _("Collapsed Text"), _("The text information for when a group is collapsed"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_COLLAPSED_TEXT, pspec); /* Buddy */ + /* Note to translators: These two strings refer to the background color + of a buddy list contact or chat room */ pspec = g_param_spec_boxed("contact-color", _("Contact/Chat Background Color"), _("The background color of a contact or chat"), GDK_TYPE_COLOR, G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_CONTACT_COLOR, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list contact when in its expanded state */ pspec = g_param_spec_pointer("contact", _("Contact Text"), _("The text information for when a contact is expanded"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_CONTACT, pspec); - pspec = g_param_spec_pointer("online", _("On-line Text"), + /* Note to translators: These two strings refer to the font and color + of a buddy list buddy when it is online */ + pspec = g_param_spec_pointer("online", _("Online Text"), _("The text information for when a buddy is online"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_ONLINE, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list buddy when it is away */ pspec = g_param_spec_pointer("away", _("Away Text"), _("The text information for when a buddy is away"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_AWAY, pspec); - pspec = g_param_spec_pointer("offline", _("Off-line Text"), - _("The text information for when a buddy is off-line"), + /* Note to translators: These two strings refer to the font and color + of a buddy list buddy when it is offline */ + pspec = g_param_spec_pointer("offline", _("Offline Text"), + _("The text information for when a buddy is offline"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_OFFLINE, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list buddy when it is idle */ pspec = g_param_spec_pointer("idle", _("Idle Text"), _("The text information for when a buddy is idle"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_IDLE, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list buddy when they have sent you a new message */ pspec = g_param_spec_pointer("message", _("Message Text"), _("The text information for when a buddy has an unread message"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_MESSAGE, pspec); + /* Note to translators: These two strings refer to the font and color + of a buddy list buddy when they have sent you a new message */ pspec = g_param_spec_pointer("message_nick_said", _("Message (Nick Said) Text"), - _("The text information for when a chat has an unread message that mentions your nick"), + _("The text information for when a chat has an unread message that mentions your nickname"), G_PARAM_READWRITE); g_object_class_install_property(obj_class, PROP_MESSAGE_NICK_SAID, pspec); diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkblist.c Mon Aug 24 19:21:21 2009 +0000 @@ -622,7 +622,14 @@ struct _pidgin_blist_node *gtknode = (struct _pidgin_blist_node *)purple_blist_node_get_ui_data(node); - if (purple_contact_get_alias(contact) || gtknode->contact_expanded) { + /* + * XXX Using purple_contact_get_alias here breaks because we + * specifically want to check the contact alias only (i.e. not + * the priority buddy, which purple_contact_get_alias does). + * Adding yet another get_alias is evil, so figure this out + * later :-P + */ + if (contact->alias || gtknode->contact_expanded) { purple_blist_alias_contact(contact, arg2); gtk_blist_auto_personize(purple_blist_node_get_parent(node), arg2); } else { @@ -4090,7 +4097,7 @@ else g_snprintf(buf, sizeof(buf), "%%s "); - statustext = g_strdup_printf(buf, tmp);purple_presence_is_idle(presence) + statustext = g_strdup_printf(buf, tmp); g_free(tmp); } @@ -4141,6 +4148,7 @@ name_color = "dim grey"; } else if (!purple_presence_is_online(presence)) { namefont = pidgin_blist_theme_get_offline_text_info(theme); + name_color = "dim grey"; statusfont = pidgin_blist_theme_get_status_text_info(theme); } else if (purple_presence_is_available(presence)) { namefont = pidgin_blist_theme_get_online_text_info(theme); @@ -4149,6 +4157,13 @@ namefont = pidgin_blist_theme_get_away_text_info(theme); statusfont = pidgin_blist_theme_get_status_text_info(theme); } + } else { + if (!selected + && (purple_presence_is_idle(presence) + || !purple_presence_is_online(presence))) + { + name_color = "dim grey"; + } } name_color = theme_font_get_color_default(namefont, name_color); @@ -6398,10 +6413,13 @@ ihrs = (t - idle_secs) / 3600; imin = ((t - idle_secs) / 60) % 60; - if (!selected && theme != NULL && (pair = pidgin_blist_theme_get_idle_text_info(theme)) != NULL) + if (selected) + textcolor = NULL; + else if (theme != NULL && (pair = pidgin_blist_theme_get_idle_text_info(theme)) != NULL) textcolor = pidgin_theme_font_get_color_describe(pair); else - textcolor = NULL; + /* If no theme them default to making idle buddy names grey */ + textcolor = "dim grey"; if (textcolor) { idle = g_strdup_printf("%d:%02d", @@ -7130,7 +7148,7 @@ data->chat_data.rq_data.sg, data->group_combo, TRUE, NULL); - data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account becomes online.")); + data->autojoin = gtk_check_button_new_with_mnemonic(_("Auto_join when account connects.")); data->persistent = gtk_check_button_new_with_mnemonic(_("_Remain in chat after window is closed.")); gtk_box_pack_start(GTK_BOX(vbox), data->autojoin, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), data->persistent, FALSE, FALSE, 0); diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkcertmgr.c --- a/pidgin/gtkcertmgr.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkcertmgr.c Mon Aug 24 19:21:21 2009 +0000 @@ -144,12 +144,12 @@ tls_peers_mgmt_import_ok2_cb(gpointer data, const char *result) { PurpleCertificate *crt = (PurpleCertificate *) data; - const char *id = result; /* TODO: Perhaps prompt if you're overwriting a cert? */ /* Drop the certificate into the pool */ - purple_certificate_pool_store(tpm_dat->tls_peers, id, crt); + if (result && *result) + purple_certificate_pool_store(tpm_dat->tls_peers, result, crt); /* And this certificate is not needed any more */ purple_certificate_destroy(crt); diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkconv.c Mon Aug 24 19:21:21 2009 +0000 @@ -959,6 +959,12 @@ } static void +menu_join_chat_cb(gpointer data, guint action, GtkWidget *widget) +{ + pidgin_blist_joinchat_show(); +} + +static void savelog_writefile_cb(void *user_data, const char *filename) { PurpleConversation *conv = (PurpleConversation *)user_data; @@ -3133,6 +3139,8 @@ { N_("/Conversation/New Instant _Message..."), "M", menu_new_conv_cb, 0, "", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW }, + { N_("/Conversation/Join a _Chat..."), NULL, menu_join_chat_cb, + 0, "", PIDGIN_STOCK_CHAT }, { "/Conversation/sep0", NULL, NULL, 0, "", NULL }, diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkdialogs.c --- a/pidgin/gtkdialogs.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkdialogs.c Mon Aug 24 19:21:21 2009 +0000 @@ -170,9 +170,7 @@ {N_("Esperanto"), "eo", "Stéphane Fillod", "fillods@users.sourceforge.net"}, {N_("Spanish"), "es", "Javier Fernández-Sanguino Peña", "jfs@debian.org"}, {N_("Estonian"), "et", "Ivar Smolin", "okul@linux.ee"}, - {N_("Euskera(Basque)"), "eu", "Mikel Pascual Aldabaldetreku", "mikel.paskual@gmail.com"}, - {N_("Euskera(Basque)"), "eu", "Iñaki Larrañaga Murgoitio", "dooteo@zundan.com"}, - {N_("Euskera(Basque)"), "eu", "Hizkuntza Politikarako Sailburuordetza", "hizkpol@ej-gv.es"}, + {N_("Basque"), "eu", "Mikel Pascual Aldabaldetreku", "mikel.paskual@gmail.com"}, {N_("Persian"), "fa", "Elnaz Sarbar", "elnaz@farsiweb.info"}, {N_("Persian"), "fa", "Meelad Zakaria", "meelad@farsiweb.info"}, {N_("Persian"), "fa", "Roozbeh Pournader ", "roozbeh@farsiweb.info"}, @@ -257,6 +255,8 @@ {N_("Spanish"), "es", "Nicolás Lichtmaier", NULL}, {N_("Spanish"), "es", "Amaya Rodrigo", NULL}, {N_("Spanish"), "es", "Alejandro G Villar", NULL}, + {N_("Basque"), "eu", "Iñaki Larrañaga Murgoitio", "dooteo@zundan.com"}, + {N_("Basque"), "eu", "Hizkuntza Politikarako Sailburuordetza", "hizkpol@ej-gv.es"}, {N_("Finnish"), "fi", "Arto Alakulju", NULL}, {N_("Finnish"), "fi", "Tero Kuusela", NULL}, {N_("French"), "fr", "Sébastien François", NULL}, @@ -472,7 +472,13 @@ "http://developer.pidgin.im/wiki/FAQ

")); g_string_append_printf(str, _("Help via e-mail:" " support@pidgin.im" - "

")); + " (This is a" + " " + "mailing list, and messages sent here are" + " publicly" + " archived! Furthermore, we do not support" + " MXit, Facebook, Skype, or any other third-party plugins on" + " this list.)

")); g_string_append_printf(str, _("IRC Channel: " "#pidgin on irc.freenode.net

")); g_string_append_printf(str, _("XMPP MUC: " diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkmain.c --- a/pidgin/gtkmain.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkmain.c Mon Aug 24 19:21:21 2009 +0000 @@ -406,34 +406,34 @@ if (terse) { text = g_strdup_printf(_("%s %s. Try `%s -h' for more information.\n"), PIDGIN_NAME, DISPLAY_VERSION, name); } else { + GString *str = g_string_new(NULL); + g_string_append_printf(str, "%s %s\n", PIDGIN_NAME, DISPLAY_VERSION); + g_string_append_printf(str, _("Usage: %s [OPTION]...\n\n"), name); + g_string_append_printf(str, " -c, --config=DIR %s\n", + _("use DIR for config files")); + g_string_append_printf(str, " -d, --debug %s\n", + _("print debugging messages to stdout")); + g_string_append_printf(str, " -f, --force-online %s\n", + _("force online, regardless of network status")); + g_string_append_printf(str, " -h, --help %s\n", + _("display this help and exit")); + g_string_append_printf(str, " -m, --multiple %s\n", + _("allow multiple instances")); + g_string_append_printf(str, " -n, --nologin %s\n", + _("don't automatically login")); + g_string_append_printf(str, " -l, --login[=NAME] %s\n", + _("enable specified account(s) (optional argument NAME\n" + " " + "specifies account(s) to use, separated by commas.")); + g_string_append_printf(str, " %s\n", + _("Without this only the first account will be enabled).")); #ifndef WIN32 - text = g_strdup_printf(_("%s %s\n" - "Usage: %s [OPTION]...\n\n" - " -c, --config=DIR use DIR for config files\n" - " -d, --debug print debugging messages to stdout\n" - " -f, --force-online force online, regardless of network status\n" - " -h, --help display this help and exit\n" - " -m, --multiple do not ensure single instance\n" - " -n, --nologin don't automatically login\n" - " -l, --login[=NAME] enable specified account(s) (optional argument NAME\n" - " specifies account(s) to use, separated by commas.\n" - " Without this only the first account will be enabled).\n" - " --display=DISPLAY X display to use\n" - " -v, --version display the current version and exit\n"), PIDGIN_NAME, DISPLAY_VERSION, name); -#else - text = g_strdup_printf(_("%s %s\n" - "Usage: %s [OPTION]...\n\n" - " -c, --config=DIR use DIR for config files\n" - " -d, --debug print debugging messages to stdout\n" - " -f, --force-online force online, regardless of network status\n" - " -h, --help display this help and exit\n" - " -m, --multiple do not ensure single instance\n" - " -n, --nologin don't automatically login\n" - " -l, --login[=NAME] enable specified account(s) (optional argument NAME\n" - " specifies account(s) to use, separated by commas.\n" - " Without this only the first account will be enabled).\n" - " -v, --version display the current version and exit\n"), PIDGIN_NAME, DISPLAY_VERSION, name); -#endif + g_string_append_printf(str, " --display=DISPLAY %s\n", + _("X display to use")); +#endif /* !WIN32 */ + g_string_append_printf(str, " -v, --version %s\n", + _("display the current version and exit")); + text = g_string_free(str, FALSE); } purple_print_utf8_to_console(stdout, text); diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkmedia.c --- a/pidgin/gtkmedia.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkmedia.c Mon Aug 24 19:21:21 2009 +0000 @@ -20,7 +20,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ #include diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkmedia.h --- a/pidgin/gtkmedia.h Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkmedia.h Mon Aug 24 19:21:21 2009 +0000 @@ -21,7 +21,7 @@ * * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef __GTKMEDIA_H_ diff -r c138390bada8 -r 7763697a85c8 pidgin/gtknotify.c --- a/pidgin/gtknotify.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtknotify.c Mon Aug 24 19:21:21 2009 +0000 @@ -60,6 +60,7 @@ { PurpleAccount *account; PurplePounce *pounce; + char *pouncee; } PidginNotifyPounceData; @@ -155,6 +156,7 @@ -1); gtk_tree_store_remove(dialog->treemodel, &iter); + g_free(pounce_data->pouncee); g_free(pounce_data); } @@ -173,8 +175,29 @@ PIDGIN_POUNCE_DATA, &pounce_data, -1); - if (pounce_data != NULL) + if (pounce_data != NULL) { + g_free(pounce_data->pouncee); g_free(pounce_data); + } +} + +static void +open_im_foreach(GtkTreeModel *model, GtkTreePath *path, + GtkTreeIter *iter, gpointer data) +{ + PidginNotifyPounceData *pounce_data; + + gtk_tree_model_get(model, iter, + PIDGIN_POUNCE_DATA, &pounce_data, + -1); + + if (pounce_data != NULL) { + PurpleConversation *conv; + + conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, + pounce_data->account, pounce_data->pouncee); + purple_conversation_present(conv); + } } static void @@ -184,25 +207,69 @@ GList **list = data; *list = g_list_prepend(*list, gtk_tree_path_copy(path)); } + static void pounce_response_dismiss() { + GtkTreeModel *model = GTK_TREE_MODEL(pounce_dialog->treemodel); GtkTreeSelection *selection; + GtkTreeIter iter; + GtkTreeIter new_selection; GList *list = NULL; + gboolean found_selection = FALSE; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); gtk_tree_selection_selected_foreach(selection, delete_foreach, pounce_dialog); gtk_tree_selection_selected_foreach(selection, append_to_list, &list); + g_return_if_fail(list != NULL); + + if (list->next == NULL) { + gtk_tree_model_get_iter(model, &new_selection, list->data); + if (gtk_tree_model_iter_next(model, &new_selection)) + found_selection = TRUE; + else { + /* This is the last thing in the list */ + GtkTreePath *path; + + /* Because gtk_tree_model_iter_prev doesn't exist... */ + gtk_tree_model_get_iter(model, &new_selection, list->data); + path = gtk_tree_model_get_path(model, &new_selection); + if (gtk_tree_path_prev(path)) { + gtk_tree_model_get_iter(model, &new_selection, path); + found_selection = TRUE; + } + + gtk_tree_path_free(path); + } + } + while (list) { - GtkTreeIter iter; - if (gtk_tree_model_get_iter(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter, - list->data)) { + if (gtk_tree_model_get_iter(model, &iter, list->data)) { gtk_tree_store_remove(GTK_TREE_STORE(pounce_dialog->treemodel), &iter); } gtk_tree_path_free(list->data); list = g_list_delete_link(list, list); } + + if (gtk_tree_model_get_iter_first(model, &iter)) { + if (found_selection) + gtk_tree_selection_select_iter(selection, &new_selection); + else + gtk_tree_selection_select_iter(selection, &iter); + } else + pounce_response_close(pounce_dialog); +} + +static void +pounce_response_open_ims() +{ + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); + gtk_tree_selection_selected_foreach(selection, open_im_foreach, pounce_dialog); + + pounce_response_dismiss(); } static void @@ -241,6 +308,9 @@ case GTK_RESPONSE_DELETE_EVENT: pounce_response_close(dialog); break; + case GTK_RESPONSE_YES: + pounce_response_open_ims(); + break; case GTK_RESPONSE_NO: pounce_response_dismiss(); break; @@ -256,40 +326,47 @@ pounce_row_selected_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) { - GtkTreeIter iter; GtkTreeSelection *selection; - gboolean selected; - GList *list; + int count; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); - selected = gtk_tree_selection_get_selected(selection, - NULL, &iter); + count = gtk_tree_selection_count_selected_rows(selection); - if (selected) { - PurplePounce *pounce; + if (count == 0) { + gtk_widget_set_sensitive(pounce_dialog->open_button, FALSE); + gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE); + gtk_widget_set_sensitive(pounce_dialog->dismiss_button, FALSE); + } else if (count == 1) { + GList *pounces; + GList *list; PidginNotifyPounceData *pounce_data; + GtkTreeIter iter; - list = purple_pounces_get_all(); - + list = gtk_tree_selection_get_selected_rows(selection, NULL); + gtk_tree_model_get_iter(GTK_TREE_MODEL(pounce_dialog->treemodel), + &iter, list->data); gtk_tree_model_get(GTK_TREE_MODEL(pounce_dialog->treemodel), &iter, PIDGIN_POUNCE_DATA, &pounce_data, -1); - - gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE); + g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); + g_list_free(list); - for (; list != NULL; list = list->next) { - pounce = list->data; + pounces = purple_pounces_get_all(); + for (; pounces != NULL; pounces = pounces->next) { + PurplePounce *pounce = pounces->data; if (pounce == pounce_data->pounce) { gtk_widget_set_sensitive(pounce_dialog->edit_button, TRUE); break; } } + gtk_widget_set_sensitive(pounce_dialog->open_button, TRUE); gtk_widget_set_sensitive(pounce_dialog->dismiss_button, TRUE); } else { + gtk_widget_set_sensitive(pounce_dialog->open_button, TRUE); gtk_widget_set_sensitive(pounce_dialog->edit_button, FALSE); - gtk_widget_set_sensitive(pounce_dialog->dismiss_button, FALSE); + gtk_widget_set_sensitive(pounce_dialog->dismiss_button, TRUE); } @@ -1351,6 +1428,7 @@ GdkPixbuf *icon; GtkTreeIter iter; PidginNotifyPounceData *pounce_data; + gboolean first = (pounce_dialog == NULL); if (pounce_dialog == NULL) pounce_dialog = pidgin_create_notification_dialog(PIDGIN_NOTIFY_POUNCE); @@ -1361,6 +1439,7 @@ pounce_data->account = account; pounce_data->pounce = pounce; + pounce_data->pouncee = g_strdup(purple_pounce_get_pouncee(pounce)); gtk_tree_store_append(pounce_dialog->treemodel, &iter, NULL); @@ -1373,6 +1452,12 @@ PIDGIN_POUNCE_DATA, pounce_data, -1); + if (first) { + GtkTreeSelection *selection = + gtk_tree_view_get_selection(GTK_TREE_VIEW(pounce_dialog->treeview)); + gtk_tree_selection_select_iter(selection, &iter); + } + if (icon) g_object_unref(icon); @@ -1411,9 +1496,7 @@ G_TYPE_STRING, G_TYPE_POINTER); } - dialog = gtk_dialog_new_with_buttons(NULL, NULL, 0, - GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, - NULL); + dialog = gtk_dialog_new(); /* Setup the dialog */ gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BOX_SPACE); @@ -1484,15 +1567,20 @@ gtk_window_set_title(GTK_WINDOW(dialog), _("New Pounces")); button = gtk_dialog_add_button(GTK_DIALOG(dialog), + _("IM"), GTK_RESPONSE_YES); + gtk_widget_set_sensitive(button, FALSE); + spec_dialog->open_button = button; + + button = gtk_dialog_add_button(GTK_DIALOG(dialog), + PIDGIN_STOCK_MODIFY, GTK_RESPONSE_APPLY); + gtk_widget_set_sensitive(button, FALSE); + spec_dialog->edit_button = button; + + button = gtk_dialog_add_button(GTK_DIALOG(dialog), _("Dismiss"), GTK_RESPONSE_NO); gtk_widget_set_sensitive(button, FALSE); spec_dialog->dismiss_button = button; - button = gtk_dialog_add_button(GTK_DIALOG(dialog), - PIDGIN_STOCK_EDIT, GTK_RESPONSE_APPLY); - gtk_widget_set_sensitive(button, FALSE); - spec_dialog->edit_button = button; - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(pounce_response_cb), spec_dialog); @@ -1536,11 +1624,16 @@ gtk_label_set_markup(GTK_LABEL(label), _("You have pounced!")); sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(spec_dialog->treeview)); - gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE); + gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(pounce_row_selected_cb), NULL); + g_signal_connect(G_OBJECT(spec_dialog->treeview), "row-activated", + G_CALLBACK(pounce_response_open_ims), NULL); } + button = gtk_dialog_add_button(GTK_DIALOG(dialog), + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); + gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); diff -r c138390bada8 -r 7763697a85c8 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/gtkutils.c Mon Aug 24 19:21:21 2009 +0000 @@ -3699,9 +3699,13 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); /* Open Containing Directory */ +#if GTK_CHECK_VERSION(2,6,0) img = gtk_image_new_from_stock(GTK_STOCK_DIRECTORY, GTK_ICON_SIZE_MENU); item = gtk_image_menu_item_new_with_mnemonic(_("Open _Containing Directory")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img); +#else + item = gtk_menu_item_new_with_mnemonic(_("Open _Containing Directory")); +#endif g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(open_containing_cb), (gpointer)url); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -3767,9 +3771,13 @@ url = gtk_imhtml_link_get_url(link); /* Play Sound */ +#if GTK_CHECK_VERSION(2,6,0) img = gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_MENU); item = gtk_image_menu_item_new_with_mnemonic(_("_Play Sound")); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img); +#else + item = gtk_menu_item_new_with_mnemonic(_("_Play Sound")); +#endif g_signal_connect_swapped(G_OBJECT(item), "activate", G_CALLBACK(gtk_imhtml_link_activate), link); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/Makefile.am --- a/pidgin/pixmaps/Makefile.am Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/pixmaps/Makefile.am Mon Aug 24 19:21:21 2009 +0000 @@ -448,28 +448,28 @@ TOOLBAR_22_SCALABLE = \ toolbar/22/scalable/select-avatar.svg \ toolbar/22/scalable/video-call.svg \ - toolbar/22/scalable/voice-call.svg + toolbar/22/scalable/audio-call.svg TOOLBAR_22 = \ toolbar/22/select-avatar.png \ toolbar/22/video-call.png \ - toolbar/22/voice-call.png + toolbar/22/audio-call.png TOOLBAR_32_SCALABLE = \ toolbar/32/scalable/video-call.svg \ - toolbar/32/scalable/voice-call.svg + toolbar/32/scalable/audio-call.svg TOOLBAR_32 = \ toolbar/32/video-call.png \ - toolbar/32/voice-call.png + toolbar/32/audio-call.png TOOLBAR_48_SCALABLE = \ toolbar/48/scalable/video-call.svg \ - toolbar/48/scalable/voice-call.svg + toolbar/48/scalable/audio-call.svg TOOLBAR_48 = \ toolbar/48/video-call.png \ - toolbar/48/voice-call.png + toolbar/48/audio-call.png TRAY_16_ICO = \ tray/16/available_4bit.ico \ diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/emotes/default/24/default.theme.in --- a/pidgin/pixmaps/emotes/default/24/default.theme.in Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/pixmaps/emotes/default/24/default.theme.in Mon Aug 24 19:21:21 2009 +0000 @@ -364,6 +364,98 @@ female-fighter.png o-+ O-+ yin-yang.png (%) +# Following Yahoo! Messenger 8.1 +[Yahoo JAPAN] +smile.png :) :-) +question.png :-/ :-\\ +shock.png :-O :O :-o :o +devil.png >:) +angel.png O:-) o:-) 0:-) +sick.png :-& +yawn.png (:| +hypnotized.png @-) +on-the-phone.png :)] +sad.png :( :-( +in-love.png :x :-x :X :-X +angry.png X-( x-( X( x( +crying.png :(( +glasses-nerdy.png :-B :-b +quiet.png :-$ +drool.png =P~ =p~ +lying.png :^O :^o +call-me.png :-c +wink.png ;) ;-) +embarrassed.png :"> +mean.png :-> :> +laugh.png :)) :-)) +bye.png =; +arrogant.png [-( +thinking.png :-? +waiting.png :-w :-W +at-wits-end.png ~x( ~X( +smile-big.png :D :-D :d :-d +tongue.png :-P :P :-p :p +glasses-cool.png B-) b-) +neutral.png :| :-| +sleepy.png I-) i-) |-) +clown.png :o) :O) +doh.png #-o #-O +weep.png :-< +go-away.png :-h +lashes.png ;;) +kiss.png :-* :* +confused.png :-S :-s +sarcastic.png /:) +eyeroll.png 8-| +silly.png 8-} +clap.png =D> =d> +mad-tongue.png >:P >:p +time-out.png :-t :-T +hug-left.png >:D< >:d< +love-over.png =(( +sweat.png #:-S #:-s +rotfl.png =)) :-j :-J +loser.png L-) l-) +party.png <:-P <:-p +nailbiting.png :-SS :-Ss :-sS :-ss +cowboy.png <):) +desire.png 8-> +! skywalker.png C:-) c:-) C:) c:) +! monkey.png :-(|) :(|) + +# Hidden Yahoo emotes +alien.png =:) >-) +beat-up.png b-( B-( +chicken.png ~:> +coffee.png ~o) ~O) +cow.png 3:-O 3:-o +dance.png \\:D/ \\:d/ +rose.png @};- +dont-know.png :-L :-l +skeleton.png 8-X 8-x +lamp.png *-:) +monkey.png :(|) +coins.png $-) +peace.png :)>- +pig.png :@) +pray.png [-o< [-O< +pumpkin.png (~~) +shame.png [-X [-x +flag.png **== +clover.png %%- +musical-note.png :-" +giggle.png ;)) +worship.png ^:)^ +star.png (*) +waving.png >:/ +talktohand.png :-@ + +# Only available after activating the Yahoo! Fighter IMVironment +male-fighter1.png o-> O-> +male-fighter2.png o=> O=> +female-fighter.png o-+ O-+ +yin-yang.png (%) + # Following MySpaceIM Beta 1.0.697.0 [MySpaceIM] diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/emotes/small/16/small.theme.in --- a/pidgin/pixmaps/emotes/small/16/small.theme.in Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/pixmaps/emotes/small/16/small.theme.in Mon Aug 24 19:21:21 2009 +0000 @@ -139,7 +139,34 @@ shame.png [-X [-x musical-note.png :-" -# Only available after activating the Yahoo! Fighter IMVironment +# Following Yahoo! Messenger 8.1 +[Yahoo JAPAN] +smile.png :) :-) +question.png :-/ :-\\ +shock.png :-O :O :-o :o +devil.png >:) +angel.png O:-) o:-) 0:-) +sick.png :-& +yawn.png (:| +sad.png :( :-( +angry.png X-( x-( X( x( +crying.png :(( +wink.png ;) ;-) +thinking.png :-? +smile-big.png :D :-D :d :-d +tongue.png :-P :P :-p :p +neutral.png :| :-| +sleepy.png I-) i-) |-) +kiss.png :-* :* +confused.png :-S :-s +hug-left.png >:D< >:d< +party.png <:-P <:-p + +# Hidden Yahoo emotes +coffee.png ~o) ~O) +dont-know.png :-L :-l +shame.png [-X [-x +musical-note.png :-" # Following MySpaceIM Beta 1.0.697.0 diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/status/11/invisible.png Binary file pidgin/pixmaps/status/11/invisible.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/22/audio-call.png Binary file pidgin/pixmaps/toolbar/22/audio-call.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/22/scalable/audio-call.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/22/scalable/audio-call.svg Mon Aug 24 19:21:21 2009 +0000 @@ -0,0 +1,795 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/22/scalable/voice-call.svg --- a/pidgin/pixmaps/toolbar/22/scalable/voice-call.svg Thu Aug 13 17:40:00 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,795 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/22/voice-call.png Binary file pidgin/pixmaps/toolbar/22/voice-call.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/32/audio-call.png Binary file pidgin/pixmaps/toolbar/32/audio-call.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/32/scalable/audio-call.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/32/scalable/audio-call.svg Mon Aug 24 19:21:21 2009 +0000 @@ -0,0 +1,990 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/32/scalable/voice-call.svg --- a/pidgin/pixmaps/toolbar/32/scalable/voice-call.svg Thu Aug 13 17:40:00 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,990 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/32/voice-call.png Binary file pidgin/pixmaps/toolbar/32/voice-call.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/48/audio-call.png Binary file pidgin/pixmaps/toolbar/48/audio-call.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/48/scalable/audio-call.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/toolbar/48/scalable/audio-call.svg Mon Aug 24 19:21:21 2009 +0000 @@ -0,0 +1,756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/48/scalable/voice-call.svg --- a/pidgin/pixmaps/toolbar/48/scalable/voice-call.svg Thu Aug 13 17:40:00 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,756 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r c138390bada8 -r 7763697a85c8 pidgin/pixmaps/toolbar/48/voice-call.png Binary file pidgin/pixmaps/toolbar/48/voice-call.png has changed diff -r c138390bada8 -r 7763697a85c8 pidgin/plugins/Makefile.am --- a/pidgin/plugins/Makefile.am Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/plugins/Makefile.am Mon Aug 24 19:21:21 2009 +0000 @@ -47,6 +47,7 @@ themeedit_la_LDFLAGS = -module -avoid-version timestamp_la_LDFLAGS = -module -avoid-version timestamp_format_la_LDFLAGS = -module -avoid-version +vvconfig_la_LDFLAGS = -module -avoid-version xmppconsole_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -68,6 +69,10 @@ timestamp_format.la \ xmppconsole.la +if USE_VV +plugin_LTLIBRARIES += vvconfig.la +endif + noinst_LTLIBRARIES = \ contact_priority.la \ gtk_signals_test.la @@ -88,6 +93,7 @@ themeedit_la_SOURCES = themeedit.c themeedit-icon.c themeedit-icon.h timestamp_la_SOURCES = timestamp.c timestamp_format_la_SOURCES = timestamp_format.c +vvconfig_SOURCES = vvconfig.c xmppconsole_la_SOURCES = xmppconsole.c convcolors_la_LIBADD = $(GTK_LIBS) @@ -106,6 +112,7 @@ themeedit_la_LIBADD = $(GTK_LIBS) timestamp_la_LIBADD = $(GTK_LIBS) timestamp_format_la_LIBADD = $(GTK_LIBS) +vvconfig_la_LIBADD = $(GTK_LIBS) $(GSTREAMER_LIBS) xmppconsole_la_LIBADD = $(GTK_LIBS) endif # PLUGINS @@ -129,6 +136,7 @@ -I$(top_srcdir)/pidgin \ $(DEBUG_CFLAGS) \ $(GTK_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ $(PLUGIN_CFLAGS) # diff -r c138390bada8 -r 7763697a85c8 pidgin/plugins/disco/Makefile.am --- a/pidgin/plugins/disco/Makefile.am Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/plugins/disco/Makefile.am Mon Aug 24 19:21:21 2009 +0000 @@ -2,6 +2,9 @@ xmppdisco_la_LDFLAGS = -module -avoid-version +EXTRA_DIST = \ + Makefile.mingw + if PLUGINS plugin_LTLIBRARIES = xmppdisco.la diff -r c138390bada8 -r 7763697a85c8 pidgin/plugins/disco/gtkdisco.c --- a/pidgin/plugins/disco/gtkdisco.c Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/plugins/disco/gtkdisco.c Mon Aug 24 19:21:21 2009 +0000 @@ -224,6 +224,8 @@ /* This shouldn't ever happen since the account is connected */ server = g_strdup("jabber.org"); + /* Note to translators: The string "Enter an XMPP Server" is asking the + user to type the name of an XMPP server which will then be queried */ purple_request_input(my_plugin, _("Server name request"), _("Enter an XMPP Server"), _("Select an XMPP server to query"), server, FALSE, FALSE, NULL, diff -r c138390bada8 -r 7763697a85c8 pidgin/plugins/vvconfig.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/plugins/vvconfig.c Mon Aug 24 19:21:21 2009 +0000 @@ -0,0 +1,566 @@ +/* + * Configures microphones and webcams for voice and video + * Copyright (C) 2009 Mike Ruprecht + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA. + */ +#include "internal.h" + +#include "debug.h" +#include "mediamanager.h" +#include "media-gst.h" +#include "version.h" +#include "gtkplugin.h" +#include "gtkutils.h" +#include "gtkprefs.h" + +#include + +static PurpleMediaElementInfo *old_video_src = NULL, *old_video_sink = NULL, + *old_audio_src = NULL, *old_audio_sink = NULL; + +static const gchar *AUDIO_SRC_PLUGINS[] = { + "alsasrc", "ALSA", + /* "esdmon", "ESD", ? */ + "osssrc", "OSS", + "pulsesrc", "PulseAudio", + /* "audiotestsrc wave=silence", "Silence", */ + "audiotestsrc", "Test Sound", + NULL +}; + +static const gchar *AUDIO_SINK_PLUGINS[] = { + "alsasink", "ALSA", + "artsdsink", "aRts", + "esdsink", "ESD", + "osssink", "OSS", + "pulsesink", "PulseAudio", + NULL +}; + +static const gchar *VIDEO_SRC_PLUGINS[] = { + "videotestsrc", "Test Input", + "dshowvideosrc","DirectDraw", + "ksvideosrc", "KS Video", + "qcamsrc", "Quickcam", + "v4lsrc", "Video4Linux", + "v4l2src", "Video4Linux2", + "v4lmjpegsrc", "Video4Linux MJPEG", + NULL +}; + +static const gchar *VIDEO_SINK_PLUGINS[] = { + /* "aasink", "AALib", Didn't work for me */ + "directdrawsink","DirectDraw", + "glimagesink", "OpenGL", + "ximagesink", "X Window System", + "xvimagesink", "X Window System (Xv)", + NULL +}; + +static GList * +get_element_devices(const gchar *element_name) +{ + GList *ret = NULL; + GstElement *element; + GObjectClass *klass; + GstPropertyProbe *probe; + const GParamSpec *pspec; + + if (!strcmp(element_name, "")) { + ret = g_list_prepend(ret, NULL); + ret = g_list_prepend(ret, (gpointer)_("Default")); + ret = g_list_prepend(ret, ""); + return ret; + } + + ret = g_list_prepend(ret, (gpointer)_("Default")); + ret = g_list_prepend(ret, ""); + + if (*element_name == '\0') { + ret = g_list_prepend(ret, NULL); + ret = g_list_reverse(ret); + return ret; + } + + element = gst_element_factory_make(element_name, "test"); + klass = G_OBJECT_GET_CLASS (element); + if (!g_object_class_find_property(klass, "device") || + !GST_IS_PROPERTY_PROBE(element) || + !(probe = GST_PROPERTY_PROBE(element)) || + !(pspec = gst_property_probe_get_property(probe, "device"))) { + purple_debug_info("vvconfig", "'%s' - no device\n", element_name); + } else { + gint n; + GValueArray *array; + + /* Set autoprobe[-fps] to FALSE to avoid delays when probing. */ + if (g_object_class_find_property (klass, "autoprobe")) { + g_object_set (G_OBJECT (element), "autoprobe", FALSE, NULL); + if (g_object_class_find_property (klass, "autoprobe-fps")) { + g_object_set (G_OBJECT (element), "autoprobe-fps", FALSE, NULL); + } + } + + array = gst_property_probe_probe_and_get_values (probe, pspec); + if (array == NULL) { + purple_debug_info("vvconfig", "'%s' has no devices\n", element_name); + ret = g_list_prepend(ret, NULL); + ret = g_list_reverse(ret); + return ret; + } + + for (n=0; n < array->n_values; ++n) { + GValue *device; + const gchar *name; + const gchar *device_name; + + device = g_value_array_get_nth(array, n); + g_object_set_property(G_OBJECT(element), "device", device); + if (gst_element_set_state(element, GST_STATE_READY) + != GST_STATE_CHANGE_SUCCESS) { + purple_debug_warning("vvconfig", + "Error changing state of %s\n", + element_name); + continue; + } + + g_object_get(G_OBJECT(element), "device-name", &name, NULL); + device_name = g_value_get_string(device); + if (name == NULL) + name = _("Unknown"); + purple_debug_info("vvconfig", "Found device %s : %s for %s\n", + device_name, name, element_name); + ret = g_list_prepend(ret, (gpointer)name); + ret = g_list_prepend(ret, (gpointer)device_name); + gst_element_set_state(element, GST_STATE_NULL); + } + } + gst_object_unref(element); + + ret = g_list_prepend(ret, NULL); + ret = g_list_reverse(ret); + + return ret; +} + +static GList * +get_element_plugins(const gchar **plugins) +{ + GList *ret = NULL; + + ret = g_list_prepend(ret, "Default"); + ret = g_list_prepend(ret, ""); + for (; plugins[0] && plugins[1]; plugins += 2) { + if (gst_default_registry_check_feature_version( + plugins[0], 0, 0, 0)) { + ret = g_list_prepend(ret, (gpointer)plugins[1]); + ret = g_list_prepend(ret, (gpointer)plugins[0]); + } + } + ret = g_list_prepend(ret, NULL); + ret = g_list_reverse(ret); + return ret; +} + +static void +device_changed_cb(const gchar *name, PurplePrefType type, + gconstpointer value, gpointer data) +{ + GtkSizeGroup *sg = data; + GtkWidget *parent, *widget; + GSList *widgets; + GList *devices; + GValue gvalue; + gint position; + gchar *label, *pref; + + widgets = gtk_size_group_get_widgets(GTK_SIZE_GROUP(sg)); + for (; widgets; widgets = g_slist_next(widgets)) { + const gchar *widget_name = + gtk_widget_get_name(GTK_WIDGET(widgets->data)); + if (!strcmp(widget_name, name)) { + gchar *temp_str; + gchar delimiters[3] = {0, 0, 0}; + const gchar *text; + gint keyval, pos; + + widget = widgets->data; + /* Get label with _ from the GtkLabel */ + text = gtk_label_get_text(GTK_LABEL(widget)); + keyval = gtk_label_get_mnemonic_keyval(GTK_LABEL(widget)); + delimiters[0] = g_ascii_tolower(keyval); + delimiters[1] = g_ascii_toupper(keyval); + pos = strcspn(text, delimiters); + if (pos != -1) { + temp_str = g_strndup(text, pos); + label = g_strconcat(temp_str, "_", + text + pos, NULL); + g_free(temp_str); + } else { + label = g_strdup(text); + } + break; + } + } + + if (widgets == NULL) + return; + + parent = gtk_widget_get_parent(widget); + widget = parent; + parent = gtk_widget_get_parent(GTK_WIDGET(widget)); + gvalue.g_type = 0; + g_value_init(&gvalue, G_TYPE_INT); + gtk_container_child_get_property(GTK_CONTAINER(parent), + GTK_WIDGET(widget), "position", &gvalue); + position = g_value_get_int(&gvalue); + g_value_unset(&gvalue); + gtk_widget_destroy(widget); + + pref = g_strdup(name); + strcpy(pref + strlen(pref) - strlen("plugin"), "device"); + devices = get_element_devices(value); + if (g_list_find(devices, purple_prefs_get_string(pref)) == NULL) + purple_prefs_set_string(pref, g_list_next(devices)->data); + widget = pidgin_prefs_dropdown_from_list(parent, + label, PURPLE_PREF_STRING, + pref, devices); + g_list_free(devices); + g_signal_connect_swapped(widget, "destroy", + G_CALLBACK(g_free), pref); + g_free(label); + gtk_misc_set_alignment(GTK_MISC(widget), 0, 0.5); + gtk_widget_set_name(widget, name); + gtk_size_group_add_widget(sg, widget); + gtk_box_reorder_child(GTK_BOX(parent), + gtk_widget_get_parent(GTK_WIDGET(widget)), position); +} + +static void +get_plugin_frame(GtkWidget *parent, GtkSizeGroup *sg, + const gchar *name, const gchar *plugin_label, + const gchar **plugin_strs, const gchar *plugin_pref, + const gchar *device_label, const gchar *device_pref) +{ + GtkWidget *vbox, *widget; + GList *plugins, *devices; + + vbox = pidgin_make_frame(parent, name); + + /* Setup plugin preference */ + plugins = get_element_plugins(plugin_strs); + widget = pidgin_prefs_dropdown_from_list(vbox, plugin_label, + PURPLE_PREF_STRING, plugin_pref, plugins); + g_list_free(plugins); + gtk_size_group_add_widget(sg, widget); + gtk_misc_set_alignment(GTK_MISC(widget), 0, 0.5); + + /* Setup device preference */ + devices = get_element_devices(purple_prefs_get_string(plugin_pref)); + if (g_list_find(devices, purple_prefs_get_string(device_pref)) == NULL) + purple_prefs_set_string(device_pref, g_list_next(devices)->data); + widget = pidgin_prefs_dropdown_from_list(vbox, device_label, + PURPLE_PREF_STRING, device_pref, devices); + g_list_free(devices); + gtk_widget_set_name(widget, plugin_pref); + gtk_size_group_add_widget(sg, widget); + gtk_misc_set_alignment(GTK_MISC(widget), 0, 0.5); + + purple_prefs_connect_callback(vbox, plugin_pref, + device_changed_cb, sg); + g_signal_connect_swapped(vbox, "destroy", + G_CALLBACK(purple_prefs_disconnect_by_handle), vbox); +} + +static GtkWidget * +get_plugin_config_frame(PurplePlugin *plugin) { + GtkWidget *notebook, *vbox_audio, *vbox_video; + GtkSizeGroup *sg; + + notebook = gtk_notebook_new(); + gtk_container_set_border_width(GTK_CONTAINER(notebook), + PIDGIN_HIG_BORDER); + gtk_widget_show(notebook); + + vbox_audio = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + vbox_video = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), + vbox_audio, gtk_label_new(_("Audio"))); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), + vbox_video, gtk_label_new(_("Video"))); + gtk_container_set_border_width(GTK_CONTAINER (vbox_audio), + PIDGIN_HIG_BORDER); + gtk_container_set_border_width(GTK_CONTAINER (vbox_video), + PIDGIN_HIG_BORDER); + + gtk_widget_show(vbox_audio); + gtk_widget_show(vbox_video); + + sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + + get_plugin_frame(vbox_audio, sg, _("Output"), _("_Plugin"), AUDIO_SINK_PLUGINS, + "/plugins/core/vvconfig/audio/sink/plugin", _("_Device"), + "/plugins/core/vvconfig/audio/sink/device"); + get_plugin_frame(vbox_audio, sg, _("Input"), _("P_lugin"), AUDIO_SRC_PLUGINS, + "/plugins/core/vvconfig/audio/src/plugin", _("D_evice"), + "/plugins/core/vvconfig/audio/src/device"); + + get_plugin_frame(vbox_video, sg, _("Output"), _("_Plugin"), VIDEO_SINK_PLUGINS, + "/plugins/gtk/vvconfig/video/sink/plugin", _("_Device"), + "/plugins/gtk/vvconfig/video/sink/device"); + get_plugin_frame(vbox_video, sg, _("Input"), _("P_lugin"), VIDEO_SRC_PLUGINS, + "/plugins/core/vvconfig/video/src/plugin", _("D_evice"), + "/plugins/core/vvconfig/video/src/device"); + + return notebook; +} + +static GstElement * +create_video_src(PurpleMedia *media, + const gchar *session_id, const gchar *participant) +{ + const gchar *plugin = purple_prefs_get_string( + "/plugins/core/vvconfig/video/src/plugin"); + const gchar *device = purple_prefs_get_string( + "/plugins/core/vvconfig/video/src/device"); + GstElement *ret; + + if (plugin[0] == '\0') + return purple_media_element_info_call_create(old_video_src, + media, session_id, participant); + + ret = gst_element_factory_make(plugin, "vvconfig-videosrc"); + if (device[0] != '\0') + g_object_set(G_OBJECT(ret), "device", device, NULL); + if (!strcmp(plugin, "videotestsrc")) + g_object_set(G_OBJECT(ret), "is-live", 1, NULL); + return ret; +} + +static GstElement * +create_video_sink(PurpleMedia *media, + const gchar *session_id, const gchar *participant) +{ + const gchar *plugin = purple_prefs_get_string( + "/plugins/gtk/vvconfig/video/sink/plugin"); + const gchar *device = purple_prefs_get_string( + "/plugins/gtk/vvconfig/video/sink/device"); + GstElement *ret; + + if (plugin[0] == '\0') + return purple_media_element_info_call_create(old_video_sink, + media, session_id, participant); + + ret = gst_element_factory_make(plugin, NULL); + if (device[0] != '\0') + g_object_set(G_OBJECT(ret), "device", device, NULL); + return ret; +} + +static GstElement * +create_audio_src(PurpleMedia *media, + const gchar *session_id, const gchar *participant) +{ + const gchar *plugin = purple_prefs_get_string( + "/plugins/core/vvconfig/audio/src/plugin"); + const gchar *device = purple_prefs_get_string( + "/plugins/core/vvconfig/audio/src/device"); + GstElement *ret; + + if (plugin[0] == '\0') + return purple_media_element_info_call_create(old_audio_src, + media, session_id, participant); + + ret = gst_element_factory_make(plugin, NULL); + if (device[0] != '\0') + g_object_set(G_OBJECT(ret), "device", device, NULL); + return ret; +} + +static GstElement * +create_audio_sink(PurpleMedia *media, + const gchar *session_id, const gchar *participant) +{ + const gchar *plugin = purple_prefs_get_string( + "/plugins/core/vvconfig/audio/sink/plugin"); + const gchar *device = purple_prefs_get_string( + "/plugins/core/vvconfig/audio/sink/device"); + GstElement *ret; + + if (plugin[0] == '\0') + return purple_media_element_info_call_create(old_audio_sink, + media, session_id, participant); + + ret = gst_element_factory_make(plugin, NULL); + if (device[0] != '\0') + g_object_set(G_OBJECT(ret), "device", device, NULL); + return ret; +} + +static void +set_element_info_cond(PurpleMediaElementInfo *old_info, + PurpleMediaElementInfo *new_info, const gchar *id) +{ + gchar *element_id = purple_media_element_info_get_id(old_info); + if (!strcmp(element_id, id)) + purple_media_manager_set_active_element( + purple_media_manager_get(), new_info); + g_free(element_id); +} + +static gboolean +plugin_load(PurplePlugin *plugin) +{ + PurpleMediaManager *manager; + PurpleMediaElementInfo *video_src, *video_sink, + *audio_src, *audio_sink; + + /* Disable the plugin if the UI doesn't support VV */ + if (purple_media_manager_get_ui_caps(purple_media_manager_get()) == + PURPLE_MEDIA_CAPS_NONE) + return FALSE; + + purple_prefs_add_none("/plugins/core/vvconfig"); + purple_prefs_add_none("/plugins/core/vvconfig/audio"); + purple_prefs_add_none("/plugins/core/vvconfig/audio/src"); + purple_prefs_add_string("/plugins/core/vvconfig/audio/src/plugin", ""); + purple_prefs_add_string("/plugins/core/vvconfig/audio/src/device", ""); + purple_prefs_add_none("/plugins/core/vvconfig/audio/sink"); + purple_prefs_add_string("/plugins/core/vvconfig/audio/sink/plugin", ""); + purple_prefs_add_string("/plugins/core/vvconfig/audio/sink/device", ""); + purple_prefs_add_none("/plugins/core/vvconfig/video"); + purple_prefs_add_none("/plugins/core/vvconfig/video/src"); + purple_prefs_add_string("/plugins/core/vvconfig/video/src/plugin", ""); + purple_prefs_add_string("/plugins/core/vvconfig/video/src/device", ""); + purple_prefs_add_none("/plugins/gtk/vvconfig"); + purple_prefs_add_none("/plugins/gtk/vvconfig/video"); + purple_prefs_add_none("/plugins/gtk/vvconfig/video/sink"); + purple_prefs_add_string("/plugins/gtk/vvconfig/video/sink/plugin", ""); + purple_prefs_add_string("/plugins/gtk/vvconfig/video/sink/device", ""); + + video_src = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, + "id", "vvconfig-videosrc", + "name", "VV Conf Plugin Video Source", + "type", PURPLE_MEDIA_ELEMENT_VIDEO + | PURPLE_MEDIA_ELEMENT_SRC + | PURPLE_MEDIA_ELEMENT_ONE_SRC + | PURPLE_MEDIA_ELEMENT_UNIQUE, + "create-cb", create_video_src, NULL); + video_sink = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, + "id", "vvconfig-videosink", + "name", "VV Conf Plugin Video Sink", + "type", PURPLE_MEDIA_ELEMENT_VIDEO + | PURPLE_MEDIA_ELEMENT_SINK + | PURPLE_MEDIA_ELEMENT_ONE_SINK, + "create-cb", create_video_sink, NULL); + audio_src = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, + "id", "vvconfig-audiosrc", + "name", "VV Conf Plugin Audio Source", + "type", PURPLE_MEDIA_ELEMENT_AUDIO + | PURPLE_MEDIA_ELEMENT_SRC + | PURPLE_MEDIA_ELEMENT_ONE_SRC + | PURPLE_MEDIA_ELEMENT_UNIQUE, + "create-cb", create_audio_src, NULL); + audio_sink = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO, + "id", "vvconfig-audiosink", + "name", "VV Conf Plugin Audio Sink", + "type", PURPLE_MEDIA_ELEMENT_AUDIO + | PURPLE_MEDIA_ELEMENT_SINK + | PURPLE_MEDIA_ELEMENT_ONE_SINK, + "create-cb", create_audio_sink, NULL); + + purple_debug_info("gtkmedia", "Registering media element types\n"); + manager = purple_media_manager_get(); + + old_video_src = purple_media_manager_get_active_element(manager, + PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC); + old_video_sink = purple_media_manager_get_active_element(manager, + PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SINK); + old_audio_src = purple_media_manager_get_active_element(manager, + PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SRC); + old_audio_sink = purple_media_manager_get_active_element(manager, + PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SINK); + + set_element_info_cond(old_video_src, video_src, "pidgindefaultvideosrc"); + set_element_info_cond(old_video_sink, video_sink, "pidgindefaultvideosink"); + set_element_info_cond(old_audio_src, audio_src, "pidgindefaultaudiosrc"); + set_element_info_cond(old_audio_sink, audio_sink, "pidgindefaultaudiosink"); + + return TRUE; +} + +static gboolean +plugin_unload(PurplePlugin *plugin) +{ + PurpleMediaManager *manager = purple_media_manager_get(); + purple_media_manager_set_active_element(manager, old_video_src); + purple_media_manager_set_active_element(manager, old_video_sink); + purple_media_manager_set_active_element(manager, old_audio_src); + purple_media_manager_set_active_element(manager, old_audio_sink); + return TRUE; +} + +static PidginPluginUiInfo ui_info = { + get_plugin_config_frame, + 0, /* page_num (Reserved) */ + /* Padding */ + NULL, + NULL, + NULL, + NULL +}; + +static PurplePluginInfo info = +{ + PURPLE_PLUGIN_MAGIC, /**< magic */ + PURPLE_MAJOR_VERSION, /**< major version */ + PURPLE_MINOR_VERSION, /**< minor version */ + PURPLE_PLUGIN_STANDARD, /**< type */ + PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ + 0, /**< flags */ + NULL, /**< dependencies */ + PURPLE_PRIORITY_DEFAULT, /**< priority */ + + "gtk-maiku-vvconfig", /**< id */ + N_("Voice/Video Settings"), /**< name */ + DISPLAY_VERSION, /**< version */ + N_("Configure your microphone and webcam."), /**< summary */ + N_("Configure microphone and webcam " + "settings for voice/video calls."), /**< description */ + "Mike Ruprecht ", /**< author */ + PURPLE_WEBSITE, /**< homepage */ + + plugin_load, /**< load */ + plugin_unload, /**< unload */ + NULL, /**< destroy */ + + &ui_info, /**< ui_info */ + NULL, /**< extra_info */ + NULL, /**< prefs_info */ + NULL, /**< actions */ + + /* padding */ + NULL, + NULL, + NULL, + NULL +}; + +static void +init_plugin(PurplePlugin *plugin) { +} + +PURPLE_INIT_PLUGIN(vvconfig, init_plugin, info) diff -r c138390bada8 -r 7763697a85c8 pidgin/win32/nsis/translations/italian.nsh --- a/pidgin/win32/nsis/translations/italian.nsh Thu Aug 13 17:40:00 2009 +0000 +++ b/pidgin/win32/nsis/translations/italian.nsh Mon Aug 24 19:21:21 2009 +0000 @@ -1,7 +1,7 @@ ;; -;; english.nsh +;; italian.nsh ;; -;; Default language strings for the Windows Pidgin NSIS installer. +;; Italian language strings for the Windows Pidgin NSIS installer. ;; Windows Code page: 1252 ;; ;; Author: Claudio Satriano , 2003-2009. @@ -9,13 +9,13 @@ ;; ; Startup Checks -!define INSTALLER_IS_RUNNING "Il programma di installazione è già in esecuzione" -!define PIDGIN_IS_RUNNING "È attualmente in esecuzione un'istanza di Pidgin. Esci da Pidgin e riprova." -!define GTK_INSTALLER_NEEDED "L'ambiente di runtime GTK+ non è presente o deve essere aggiornato.$\rInstallare GTK+ versione ${GTK_MIN_VERSION} o maggiore" +!define INSTALLER_IS_RUNNING "Il programma di installazione gi in esecuzione" +!define PIDGIN_IS_RUNNING " attualmente in esecuzione un'istanza di Pidgin. Esci da Pidgin e riprova." +!define GTK_INSTALLER_NEEDED "L'ambiente di runtime GTK+ non presente o deve essere aggiornato.$\rInstallare GTK+ versione ${GTK_MIN_VERSION} o maggiore" ; License Page !define PIDGIN_LICENSE_BUTTON "Avanti >" -!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) è distribuito sotto la GNU General Public License (GPL). La licenza è mostrata qui solamente a scopo informativo. $_CLICK" +!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) distribuito sotto la GNU General Public License (GPL). La licenza mostrata qui solamente a scopo informativo. $_CLICK" ; Components Page !define PIDGIN_SECTION_TITLE "Pidgin - Client per Messaggi Immediati (richiesto)" @@ -31,31 +31,31 @@ !define PIDGIN_STARTMENU_SHORTCUT_DESC "Crea una voce per Pidgin nel Menu Avvio" ; GTK+ Directory Page -!define GTK_UPGRADE_PROMPT "È stata trovata una versione precedente di GTK+. Vuoi aggiornarla?$\rNota: $(^Name) potrebbe non funzionare senza l'aggiornamento." -!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me non è incompatible con GTK+ 2.8.0 o successivo. GTK+ ${GTK_INSTALL_VERSION} non sarà installato.$\rSe non hai GTK+ ${GTK_MIN_VERSION} o successivo già installato sul tuo computer, questa installazione sarà interrotta." +!define GTK_UPGRADE_PROMPT " stata trovata una versione precedente di GTK+. Vuoi aggiornarla?$\rNota: $(^Name) potrebbe non funzionare senza l'aggiornamento." +!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me non incompatible con GTK+ 2.8.0 o successivo. GTK+ ${GTK_INSTALL_VERSION} non sar installato.$\rSe non hai GTK+ ${GTK_MIN_VERSION} o successivo gi installato sul tuo computer, questa installazione sar interrotta." ; Installer Finish Page !define PIDGIN_FINISH_VISIT_WEB_SITE "Visita la pagina web di Pidgin" ; Pidgin Section Prompts and Texts -!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Impossibile rimuovere la versione di Pidgin attualmente presente sul tuo computer. La nuova versione sarà installata senza rimuovere la versione precedente." +!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Impossibile rimuovere la versione di Pidgin attualmente presente sul tuo computer. La nuova versione sar installata senza rimuovere la versione precedente." ; GTK+ Section Prompts !define GTK_INSTALL_ERROR "Error nell'installazione del runtime GTK+." -!define GTK_BAD_INSTALL_PATH "Il percorso scelto non può essere raggiunto o creato." +!define GTK_BAD_INSTALL_PATH "Il percorso scelto non pu essere raggiunto o creato." ; URL Handler section !define URI_HANDLERS_SECTION_TITLE "Gestori degli URI" ; Uninstall Section Prompts -!define un.PIDGIN_UNINSTALL_ERROR_1 "Il programma di rimozione non è in grado di trovare le voci di registro per Pidgin.$\rProbabilmente questa applicazione è stata installata da un altro utente." +!define un.PIDGIN_UNINSTALL_ERROR_1 "Il programma di rimozione non in grado di trovare le voci di registro per Pidgin.$\rProbabilmente questa applicazione stata installata da un altro utente." !define un.PIDGIN_UNINSTALL_ERROR_2 "Non hai il permesso per rimuovere questa applicazione." ; Spellcheck Section Prompts !define PIDGIN_SPELLCHECK_SECTION_TITLE "Supporto per il correttore ortografico" !define PIDGIN_SPELLCHECK_ERROR "Errore nell'installazione del correttore ortografico" !define PIDGIN_SPELLCHECK_DICT_ERROR "Errore nell'installazione del dizionario per il correttore ortografico" -!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Supporto per il correttore ortografico. (È richiesta una connessione a internet per l'installazione)" +!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Supporto per il correttore ortografico. ( richiesta una connessione a internet per l'installazione)" !define ASPELL_INSTALL_FAILED "Installazione fallita" !define PIDGIN_SPELLCHECK_BRETON "Bretone" !define PIDGIN_SPELLCHECK_CATALAN "Catalano" diff -r c138390bada8 -r 7763697a85c8 po/ChangeLog --- a/po/ChangeLog Thu Aug 13 17:40:00 2009 +0000 +++ b/po/ChangeLog Mon Aug 24 19:21:21 2009 +0000 @@ -1,5 +1,8 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul +version 2.6.1 + * No changes + version 2.6.0 * Afrikaans translation updated (Friedel Wolff) * Armenian translation added (David Avsharyan) @@ -14,6 +17,7 @@ * Czech translation updated (David Vachulka) * Dutch translation updated (Daniël Heres) * English (British) translation updated (Luke Ross) + * Esperanto translation updated (Stéphane Fillod) * Finnish translation updated (Timo Jyrinki) * French translation updated (Éric Boumaour) * Galician translation updated (Frco. Javier Rial Rodríguez) @@ -36,6 +40,9 @@ * Swahili translation added (Paul Msegeya) * Swedish translation updated (Peter Hjalmarsson) +version 2.5.9 + * No changes + version 2.5.8 * No changes diff -r c138390bada8 -r 7763697a85c8 po/POTFILES.in --- a/po/POTFILES.in Thu Aug 13 17:40:00 2009 +0000 +++ b/po/POTFILES.in Mon Aug 24 19:21:21 2009 +0000 @@ -35,9 +35,9 @@ finch/plugins/gntclipboard.c finch/plugins/gntgf.c finch/plugins/gnthistory.c +finch/plugins/gnttinyurl.c finch/plugins/grouping.c finch/plugins/lastlog.c -finch/plugins/gnttinyurl.c libpurple/account.c libpurple/blist.c libpurple/certificate.c @@ -198,8 +198,8 @@ pidgin.desktop.in pidgin/eggtrayicon.c pidgin/gtkaccount.c +pidgin/gtkblist-theme.c pidgin/gtkblist.c -pidgin/gtkblist-theme.c pidgin/gtkcellview.c pidgin/gtkcertmgr.c pidgin/gtkconn.c @@ -235,10 +235,10 @@ pidgin/pixmaps/emotes/none/none.theme.in pidgin/pixmaps/emotes/small/16/small.theme.in pidgin/plugins/cap/cap.c +pidgin/plugins/contact_priority.c +pidgin/plugins/convcolors.c pidgin/plugins/disco/gtkdisco.c pidgin/plugins/disco/xmppdisco.c -pidgin/plugins/contact_priority.c -pidgin/plugins/convcolors.c pidgin/plugins/extplacement.c pidgin/plugins/gestures/gestures.c pidgin/plugins/gevolution/add_buddy_dialog.c diff -r c138390bada8 -r 7763697a85c8 po/de.po --- a/po/de.po Thu Aug 13 17:40:00 2009 +0000 +++ b/po/de.po Mon Aug 24 19:21:21 2009 +0000 @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-29 09:47+0200\n" -"PO-Revision-Date: 2009-07-29 09:51+0200\n" +"POT-Creation-Date: 2009-08-14 16:32+0200\n" +"PO-Revision-Date: 2009-08-14 16:31+0200\n" "Last-Translator: Bjoern Voigt \n" "Language-Team: Deutsch \n" "MIME-Version: 1.0\n" @@ -1690,6 +1690,45 @@ msgid "_View Certificate..." msgstr "Ze_rtifikat ansehen..." +#, c-format +msgid "" +"The certificate presented by \"%s\" claims to be from \"%s\" instead. This " +"could mean that you are not connecting to the service you believe you are." +msgstr "" +"Das Zertifikat, welches von „%s“ präsentiert wurde, behauptet stattdessen " +"von „%s“ zu kommen. Das kann bedeuten, dass Sie tatsächlich nicht mit dem " +"Dienst verbunden sind, mit dem Sie glauben verbunden zu sein." + +#. Had no CA pool, so couldn't verify the chain *and* +#. * the subject name isn't valid. +#. * I think this is bad enough to warrant a fatal error. It's +#. * not likely anyway... +#. +#. TODO: Probably wrong. +#. TODO: Make this error either block the ensuing SSL +#. connection error until the user dismisses this one, or +#. stifle it. +#. TODO: Probably wrong. +#. TODO: Probably wrong +#. TODO: Probably wrong. +msgid "SSL Certificate Error" +msgstr "SSL-Zertifikatfehler" + +msgid "Invalid certificate chain" +msgstr "Ungültige Zertifikationskette" + +#. The subject name is correct, but we weren't able to verify the +#. * chain because there was no pool of root CAs found. Prompt the user +#. * to validate it. +#. +#. vrq will be completed by user_auth +msgid "" +"You have no database of root certificates, so this certificate cannot be " +"validated." +msgstr "" +"Sie haben keine Datenbank für Root-Zertifikate. Zertifikate können nicht " +"überprüft werden." + #. Prompt the user to authenticate the certificate #. vrq will be completed by user_auth #, c-format @@ -1705,26 +1744,6 @@ msgid "The certificate chain presented for %s is not valid." msgstr "Die Zertifizierungskette, die für %s präsentiert wird, ist ungültig." -#. TODO: Make this error either block the ensuing SSL -#. connection error until the user dismisses this one, or -#. stifle it. -#. TODO: Probably wrong. -#. TODO: Probably wrong -#. TODO: Probably wrong. -msgid "SSL Certificate Error" -msgstr "SSL-Zertifikatfehler" - -msgid "Invalid certificate chain" -msgstr "Ungültige Zertifikationskette" - -#. vrq will be completed by user_auth -msgid "" -"You have no database of root certificates, so this certificate cannot be " -"validated." -msgstr "" -"Sie haben keine Datenbank für Root-Zertifikate. Zertifikate können nicht " -"überprüft werden." - #. vrq will be completed by user_auth msgid "" "The root certificate this one claims to be issued by is unknown to Pidgin." @@ -1742,19 +1761,6 @@ msgid "Invalid certificate authority signature" msgstr "Unbekannte Zertifizierungsstellensignatur" -#. Prompt the user to authenticate the certificate -#. TODO: Provide the user with more guidance about why he is -#. being prompted -#. vrq will be completed by user_auth -#, c-format -msgid "" -"The certificate presented by \"%s\" claims to be from \"%s\" instead. This " -"could mean that you are not connecting to the service you believe you are." -msgstr "" -"Das Zertifikat, welches von „%s“ präsentiert wurde, behauptet stattdessen " -"von „%s“ zu kommen. Das kann bedeuten, dass Sie tatsächlich nicht mit dem " -"Dienst verbunden sind, mit dem Sie glauben verbunden zu sein." - #. Make messages #, c-format msgid "" @@ -3836,6 +3842,11 @@ msgid "Street Address" msgstr "Straße" +#. +#. * EXTADD is correct, EXTADR is generated by other +#. * clients. The next time someone reads this, remove +#. * EXTADR. +#. msgid "Extended Address" msgstr "Erweiterte Adresse" @@ -3924,14 +3935,12 @@ msgid "Temporarily Hide From" msgstr "Temporär versteckt von" -#. && NOT ME msgid "Cancel Presence Notification" msgstr "Abbrechen der Anwesenheitsbenachrichtigung" msgid "(Re-)Request authorization" msgstr "(Nochmal) nach Autorisierung fragen" -#. if(NOT ME) #. shouldn't this just happen automatically when the buddy is #. removed? msgid "Unsubscribe" @@ -4538,7 +4547,10 @@ msgid "" "affiliate <owner|admin|member|outcast|none> [nick1] [nick2] ...: Get " "the users with an affiliation or set users' affiliation with the room." -msgstr "affiliate <owner|admin|member|outcast|none> [Benutzer1] [Benutzer2] ...: Benutzer mit einer Mitgliedschaft für den Raum erfragen oder setzen." +msgstr "" +"affiliate <owner|admin|member|outcast|none> [Benutzer1] " +"[Benutzer2] ...: Benutzer mit einer Mitgliedschaft für den Raum erfragen " +"oder setzen." msgid "" "role <moderator|participant|visitor|none> [nick1] [nick2] ...: Get the " @@ -4690,9 +4702,6 @@ msgid "Transfer was closed." msgstr "Übertragung wurde geschlossen." -msgid "Failed to open the file" -msgstr "Öffnen der Datei fehlgeschlagen" - msgid "Failed to open in-band bytestream" msgstr "Öffnen des In-Band-Bytestroms fehlgeschlagen" @@ -12239,6 +12248,12 @@ msgid "%s wishes to start a video session with you." msgstr "%s möchte eine Video-Sitzung mit Ihnen starten." +msgid "Incoming Call" +msgstr "Eingehender Anruf" + +msgid "_Pause" +msgstr "_Pause" + #, c-format msgid "%s has %d new message." msgid_plural "%s has %d new messages." @@ -13168,9 +13183,6 @@ msgid "_Open Mail" msgstr "Mail ö_ffnen" -msgid "_Pause" -msgstr "_Pause" - msgid "_Edit" msgstr "_Bearbeiten" @@ -14028,9 +14040,12 @@ msgid "Founder" msgstr "Gründer" +#. A user in a chat room who has special privileges. msgid "Operator" msgstr "Operator" +#. A half operator is someone who has a subset of the privileges +#. that an operator has. msgid "Half Operator" msgstr "Half-Operator" @@ -14303,3 +14318,6 @@ msgid "This plugin is useful for debbuging XMPP servers or clients." msgstr "" "Dieses Plugin ist nützlich zur Fehlersuche in XMPP-Servern oder -Clients." + +#~ msgid "Failed to open the file" +#~ msgstr "Öffnen der Datei fehlgeschlagen" diff -r c138390bada8 -r 7763697a85c8 po/eo.po --- a/po/eo.po Thu Aug 13 17:40:00 2009 +0000 +++ b/po/eo.po Mon Aug 24 19:21:21 2009 +0000 @@ -2,21 +2,21 @@ # # Copyright (C) 2006, Stéphane Fillod # -# Stéphane Fillod , 2006, 2007, 2008. +# Stéphane Fillod , 2006, 2007, 2008, 2009. # This file is distributed under the same license as the Pidgin package. msgid "" msgstr "" "Project-Id-Version: eo\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-06 15:04-0700\n" -"PO-Revision-Date: 2008-03-02 13:39+0100\n" -"Last-Translator: Stéphane Fillod \n" +"POT-Creation-Date: 2009-08-16 09:57-0400\n" +"PO-Revision-Date: 2009-08-16 20:26+0200\n" +"Last-Translator: Stéphane Fillod \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: gtranslator 1.9.4\n" #. Translators may want to transliterate the name. #. It is not to be translated. @@ -27,7 +27,7 @@ msgid "%s. Try `%s -h' for more information.\n" msgstr "%s. Provu `%s -h' por plia informo.\n" -#, fuzzy, c-format +#, c-format msgid "" "%s\n" "Usage: %s [OPTION]...\n" @@ -42,7 +42,7 @@ "Uzo: %s [OPCIOJ]...\n" "\n" " -c, --config=UJO uzu UJOn por agordo dosieroj\n" -" -d, --debug montru sencimigajn mesaĝojn al stdout\n" +" -d, --debug montru sencimigajn mesaĝojn al stderr\n" " -h, --help vidigu tiun helpon kaj finu\n" " -n, --nologin ne aŭtomate ensalutu\n" " -v, --version vidigu la aktualan version kaj finu\n" @@ -60,9 +60,8 @@ msgid "Account was not added" msgstr "Konto ne estis aldonita" -#, fuzzy msgid "Username of an account must be non-empty." -msgstr "Ekrannomo de konto ne devas esti malplena." +msgstr "Uzantonomo de konto ne devas esti malplena." msgid "New mail notifications" msgstr "Nova retpoŝt-avizoj" @@ -85,9 +84,8 @@ msgid "Protocol:" msgstr "Protokolo:" -#, fuzzy msgid "Username:" -msgstr "_Uzantonomo:" +msgstr "Uzantnomo:" msgid "Password:" msgstr "Pasvorto:" @@ -96,9 +94,8 @@ msgstr "Alinomo:" #. Register checkbox -#, fuzzy msgid "Create this account on the server" -msgstr "Ne konektita al servilo." +msgstr "Krei tiun konton ĉe la servilo" #. Cancel button #. Cancel @@ -178,9 +175,8 @@ msgid "Default" msgstr "Apriora" -#, fuzzy msgid "You must provide a username for the buddy." -msgstr "Vi devas enigi ekrannomon por la kunul." +msgstr "Vi devas enigi uzantnomon por la kunul." msgid "You must provide a group." msgstr "Vi devas enigi grupon." @@ -256,7 +252,7 @@ msgstr "Redaktu" msgid "Edit Settings" -msgstr "Agordu" +msgstr "Agordi" msgid "Information" msgstr "Informo" @@ -352,12 +348,11 @@ msgid "Unblock" msgstr "Malbloku" -#, fuzzy msgid "" "Please enter the username or alias of the person you would like to Block/" "Unblock." msgstr "" -"Bonvolu enigi la ekrannomon aŭ alinomon de persono kiun vi dezrias Bloki/" +"Bonvolu enigi la uzantnomon aŭ alinomon de persono kiun vi deziras Bloki/" "Malbloki." #. Not multiline @@ -369,10 +364,9 @@ msgid "New Instant Message" msgstr "Nova Tujmesaĝo" -#, fuzzy msgid "Please enter the username or alias of the person you would like to IM." msgstr "" -"Bonvolu enigi la ekrannomon aŭ alinomon de persono kiun vi dezrias tujmesaĝi." +"Bonvolu enigi la uzantnomon aŭ alinomon de persono kiun vi deziras tujmesaĝi." msgid "Channel" msgstr "Kanalo" @@ -386,13 +380,12 @@ msgid "Join" msgstr "Aliĝu" -#, fuzzy msgid "" "Please enter the username or alias of the person whose log you would like to " "view." msgstr "" -"Bonvolu enigi la ekrannomon aŭ alinomon de persono kiesn protokolon vi " -"dezrias rigardi." +"Bonvolu enigi la uzantnomon aŭ alinomon de persono kiesn protokolon vi " +"deziras rigardi." #. Create the "Options" frame. msgid "Options" @@ -410,9 +403,8 @@ msgid "View Log..." msgstr "Montru Protokolon..." -#, fuzzy msgid "View All Logs" -msgstr "Montru Protokolon" +msgstr "Montri Ĉiujn Protokolojn" msgid "Show" msgstr "Montru" @@ -605,9 +597,8 @@ msgid "Add Buddy Pounce..." msgstr "Aldonu Kunul Atentigon..." -#, fuzzy msgid "Invite..." -msgstr "Invitu" +msgstr "Invitu..." msgid "Enable Logging" msgstr "Ŝaltu Protokoladon" @@ -618,11 +609,11 @@ msgid " " msgstr " " -#, fuzzy, c-format +#, c-format msgid "List of %d user:\n" msgid_plural "List of %d users:\n" -msgstr[0] "Uzantoj Listo:\n" -msgstr[1] "Uzantoj Listo:\n" +msgstr[0] "Listo de %d uzanto:\n" +msgstr[1] "Listo de %d uzantoj:\n" msgid "Supported debug options are: version" msgstr "Subtenitaj sencimigopcioj estas: versio" @@ -714,10 +705,10 @@ msgid "Pause" msgstr "Paŭzu" -#, fuzzy, c-format +#, c-format msgid "File Transfers - %d%% of %d file" msgid_plural "File Transfers - %d%% of %d files" -msgstr[0] "Dosiero alŝuto - %d%% je %d dosieroj" +msgstr[0] "Dosiero alŝuto - %d%% je %d dosiero" msgstr[1] "Dosiero alŝuto - %d%% je %d dosieroj" #. Create the window. @@ -765,13 +756,11 @@ msgid "%.2f KiB/s" msgstr "%.2f KiB/s" -#, fuzzy msgid "Sent" -msgstr "Difinu" - -#, fuzzy +msgstr "Sendita" + msgid "Received" -msgstr "Ricevitaj Mesaĝoj" +msgstr "Ricevita" msgid "Finished" msgstr "Finita" @@ -780,13 +769,11 @@ msgid "The file was saved as %s." msgstr "La dosiero estas konservita kial %s." -#, fuzzy msgid "Sending" -msgstr "Sendu" - -#, fuzzy +msgstr "Sendante" + msgid "Receiving" -msgstr "Restanta" +msgstr "Ricevante" #, c-format msgid "Conversation in %s on %s" @@ -833,16 +820,14 @@ msgid "Conversations with %s" msgstr "Konversacioj kun %s" -#, fuzzy msgid "All Conversations" -msgstr "Konversacioj" +msgstr "Ĉiuj Konversacioj" msgid "System Log" msgstr "Sistemo Protokolo" -#, fuzzy msgid "Calling ... " -msgstr "Kalkulante..." +msgstr "Alvokante..." msgid "Hangup" msgstr "" @@ -868,9 +853,8 @@ msgid "%s is trying to start an unsupported media session type with you." msgstr "" -#, fuzzy msgid "You have rejected the call." -msgstr "Vi forlasis tiun babilejon." +msgstr "Vi rifuzis la alvokon." msgid "call: Make an audio call." msgstr "" @@ -915,9 +899,8 @@ msgid "(none)" msgstr "(neniu)" -#, fuzzy msgid "URI" -msgstr "UIN" +msgstr "URI" msgid "ERROR" msgstr "ERARO" @@ -1220,9 +1203,8 @@ msgid "Others talk in chat" msgstr "Aliaj parolas en babilejo" -#, fuzzy msgid "Someone says your username in chat" -msgstr "Iun diras vian nomon en babilejo" +msgstr "Iun diras vian uzantnomon en babilejo" msgid "GStreamer Failure" msgstr "GStreamer Malsukceso" @@ -1529,9 +1511,8 @@ msgid "TinyURL (or other) address prefix" msgstr "" -#, fuzzy msgid "TinyURL" -msgstr "URL" +msgstr "TinyURL" msgid "TinyURL plugin" msgstr "" @@ -1640,6 +1621,40 @@ msgid "_View Certificate..." msgstr "_Montru Atestilon..." +#, c-format +msgid "" +"The certificate presented by \"%s\" claims to be from \"%s\" instead. This " +"could mean that you are not connecting to the service you believe you are." +msgstr "" + +#. Had no CA pool, so couldn't verify the chain *and* +#. * the subject name isn't valid. +#. * I think this is bad enough to warrant a fatal error. It's +#. * not likely anyway... +#. +#. TODO: Probably wrong. +#. TODO: Make this error either block the ensuing SSL +#. connection error until the user dismisses this one, or +#. stifle it. +#. TODO: Probably wrong. +#. TODO: Probably wrong +#. TODO: Probably wrong. +msgid "SSL Certificate Error" +msgstr "" + +msgid "Invalid certificate chain" +msgstr "" + +#. The subject name is correct, but we weren't able to verify the +#. * chain because there was no pool of root CAs found. Prompt the user +#. * to validate it. +#. +#. vrq will be completed by user_auth +msgid "" +"You have no database of root certificates, so this certificate cannot be " +"validated." +msgstr "" + #. Prompt the user to authenticate the certificate #. vrq will be completed by user_auth #, c-format @@ -1648,27 +1663,11 @@ "automatically checked." msgstr "" +#. FIXME 2.6.1 #, c-format msgid "The certificate chain presented for %s is not valid." msgstr "" -#. TODO: Make this error either block the ensuing SSL -#. connection error until the user dismisses this one, or -#. stifle it. -#. TODO: Probably wrong. -#. TODO: Probably wrong -msgid "SSL Certificate Error" -msgstr "" - -msgid "Invalid certificate chain" -msgstr "" - -#. vrq will be completed by user_auth -msgid "" -"You have no database of root certificates, so this certificate cannot be " -"validated." -msgstr "" - #. vrq will be completed by user_auth msgid "" "The root certificate this one claims to be issued by is unknown to Pidgin." @@ -1684,16 +1683,6 @@ msgid "Invalid certificate authority signature" msgstr "" -#. Prompt the user to authenticate the certificate -#. TODO: Provide the user with more guidance about why he is -#. being prompted -#. vrq will be completed by user_auth -#, c-format -msgid "" -"The certificate presented by \"%s\" claims to be from \"%s\" instead. This " -"could mean that you are not connecting to the service you believe you are." -msgstr "" - #. Make messages #, c-format msgid "" @@ -1724,7 +1713,7 @@ msgstr "+++ %s malsalutis" #. Unknown error -#. Unknown error! +#, c-format msgid "Unknown error" msgstr "Nekonata eraro" @@ -1771,9 +1760,8 @@ msgid "%s left the room (%s)." msgstr "%s forlasis la ĉambron (%s)." -#, fuzzy msgid "Invite to chat" -msgstr "Iniciatu _Babilon" +msgstr "Inviti por babili" #. Put our happy label in it. msgid "" @@ -1901,6 +1889,10 @@ msgstr "" #, c-format +msgid "Transfer of file %s complete" +msgstr "" + +#, c-format msgid "Transfer of file %s complete" msgstr "" @@ -2113,9 +2105,8 @@ msgid "(%s) %s : %s\n" msgstr "(%s) %s : %s\n" -#, fuzzy msgid "Error creating conference." -msgstr "Eraro kreante konekto" +msgstr "Eraro kreante konferencon." #, c-format msgid "You are using %s, but this plugin requires %s." @@ -2208,9 +2199,8 @@ "(only when there's no conversation with the sender)" msgstr "" -#, fuzzy msgid "Create a new directory for each user" -msgstr "Elektu uzantan adreslibron serĉendan" +msgstr "" msgid "Notes" msgstr "Notoj" @@ -2578,9 +2568,8 @@ msgid "Do not ask. Always save in pounce." msgstr "" -#, fuzzy msgid "One Time Password" -msgstr "Enigu Pasvorton" +msgstr "" #. *< type #. *< ui_requirement @@ -2799,9 +2788,8 @@ "im/BonjourWindows for more information." msgstr "" -#, fuzzy msgid "Unable to listen for incoming IM connections" -msgstr "Ne povas eki konekton" +msgstr "" msgid "" "Unable to establish connection with the local mDNS server. Is it running?" @@ -2839,9 +2827,8 @@ msgstr "Purpura Persono" #. Creating the options for the protocol -#, fuzzy msgid "Local Port" -msgstr "Loko" +msgstr "" msgid "Bonjour" msgstr "Bonjour" @@ -2853,17 +2840,17 @@ msgid "Unable to send the message, the conversation couldn't be started." msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to create socket: %s" -msgstr "Ne konekteblas al %s" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "Unable to bind socket to port: %s" -msgstr "Ne konekteblas al %s: %s" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "Unable to listen on socket: %s" -msgstr "Ne eblas sendi mesaĝon: %s" +msgstr "" msgid "Error communicating with local mDNSResponder." msgstr "" @@ -2913,9 +2900,8 @@ msgid "You must fill in all registration fields" msgstr "" -#, fuzzy msgid "Passwords do not match" -msgstr "Pasvortoj ne kongruas." +msgstr "Pasvortoj ne akordas" msgid "Unable to register new account. An unknown error occurred." msgstr "" @@ -2935,9 +2921,8 @@ msgid "Enter captcha text" msgstr "" -#, fuzzy msgid "Captcha" -msgstr "Konservu Bildon" +msgstr "" msgid "Register New Gadu-Gadu Account" msgstr "Registru Novan Gadu-Gadu-an Konton" @@ -3076,9 +3061,9 @@ msgid "Chat _name:" msgstr "Babilejo _nomo:" -#, fuzzy, c-format +#, c-format msgid "Unable to resolve hostname '%s': %s" -msgstr "Ne eblas alinomigi grupon" +msgstr "" #. 1. connect to server #. connect to the server @@ -3091,9 +3076,8 @@ msgid "This chat name is already in use" msgstr "Tiu babil nomo jam estas uzata" -#, fuzzy msgid "Not connected to the server" -msgstr "Ne konektita al servilo." +msgstr "Ne konektita al servilo" msgid "Find buddies..." msgstr "Trovu kunulojn..." @@ -3134,9 +3118,8 @@ msgid "Gadu-Gadu User" msgstr "Gadu-Gadu Uzanto" -#, fuzzy msgid "GG server" -msgstr "Difinu Uzanto-Informon..." +msgstr "GG servilo" #, c-format msgid "Unknown command: %s" @@ -3152,9 +3135,8 @@ msgid "File Transfer Failed" msgstr "Dosiero Transmeto Malsukcesis" -#, fuzzy msgid "Unable to open a listening port." -msgstr "Dosiero malfermeblas." +msgstr "" msgid "Error displaying MOTD" msgstr "Eraro montrante MOTD-n" @@ -3176,11 +3158,9 @@ #. #. TODO: what to do here - do we really have to disconnect? #. TODO: do we really want to disconnect on a failure to write? -#, fuzzy, c-format +#, c-format msgid "Lost connection with server: %s" -msgstr "" -"Perdis konekton kun servilo:\n" -"%s" +msgstr "Perdis konekton kun servilo: %s" msgid "View MOTD" msgstr "Rigardu MOTD-n" @@ -3191,9 +3171,8 @@ msgid "_Password:" msgstr "_Pasvorto:" -#, fuzzy msgid "IRC nick and server may not contain whitespace" -msgstr "IRC karesnomoj ne enhaveblas blankan spacon" +msgstr "IRC karesnomo kaj servilo ne enhaveblas blankan spacon" msgid "SSL support unavailable" msgstr "SSL subteno ne disponeblas" @@ -3202,13 +3181,13 @@ msgstr "Malkonekteblas" #. this is a regular connect, error out -#, fuzzy, c-format +#, c-format msgid "Unable to connect: %s" -msgstr "Ne konekteblas al %s" - -#, fuzzy, c-format +msgstr "Ne konekteblas: %s" + +#, c-format msgid "Server closed the connection" -msgstr "Servilo fermis la konekton." +msgstr "Servilo fermis la konekton" msgid "Users" msgstr "Uzantoj" @@ -3262,13 +3241,12 @@ msgid "Ban on %s by %s, set %s ago" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Ban on %s" -msgstr "Kialo: %s" - -#, fuzzy +msgstr "" + msgid "End of ban list" -msgstr "Ne en listo" +msgstr "" #, c-format msgid "You are banned from %s." @@ -3393,13 +3371,12 @@ #. We only want to do the following dance if the connection #. has not been successfully completed. If it has, just #. notify the user that their /nick command didn't go. -#, fuzzy, c-format +#, c-format msgid "The nickname \"%s\" is already being used." -msgstr "Tiu babil nomo jam estas uzata" - -#, fuzzy +msgstr "Tiu karesnomo \"%s\" jam estas uzata." + msgid "Nickname in use" -msgstr "Karesnomo" +msgstr "Karesnomo uzata" msgid "Cannot change nick" msgstr "Ne povas ŝanĝi karesnomon" @@ -3619,13 +3596,11 @@ msgid "Plaintext Authentication" msgstr "Platteksta Aŭtentokontrolo" -#, fuzzy msgid "SASL authentication failed" -msgstr "Aŭtentokontrolo malsukcesis" - -#, fuzzy +msgstr "SASL aŭtentokontrolo malsukcesis" + msgid "Invalid response from server" -msgstr "Malvalida respondo el servilo." +msgstr "Malvalida respondo el servilo" msgid "Server does not use any supported authentication method" msgstr "" @@ -3636,35 +3611,28 @@ msgid "Invalid challenge from server" msgstr "" -#, fuzzy, c-format +#, c-format msgid "SASL error: %s" -msgstr "SASL eraro" +msgstr "SASL eraro: %s" msgid "The BOSH connection manager terminated your session." msgstr "" -#, fuzzy msgid "No session ID given" -msgstr "Nenia kialo donita." +msgstr "" msgid "Unsupported version of BOSH protocol" msgstr "" -#, fuzzy msgid "Unable to establish a connection with the server" msgstr "" -"Perdis konekto kun prokura servilo\n" -"%s" - -#, fuzzy, c-format + +#, c-format msgid "Unable to establish a connection with the server: %s" msgstr "" -"Perdis konekto kun prokura servilo\n" -"%s" - -#, fuzzy + msgid "Unable to establish SSL connection" -msgstr "Ne povas eki konekton" +msgstr "" msgid "Full Name" msgstr "Plena Nomo" @@ -3681,6 +3649,11 @@ msgid "Street Address" msgstr "Strato Adreso" +#. +#. * EXTADD is correct, EXTADR is generated by other +#. * clients. The next time someone reads this, remove +#. * EXTADR. +#. msgid "Extended Address" msgstr "Plia Adreso" @@ -3730,9 +3703,8 @@ msgid "Operating System" msgstr "" -#, fuzzy msgid "Local Time" -msgstr "Loka Doerisero:" +msgstr "Loka Tempo" msgid "Priority" msgstr "Prioriteco" @@ -3744,9 +3716,8 @@ msgid "%s ago" msgstr "" -#, fuzzy msgid "Logged Off" -msgstr "Ensalutita" +msgstr "Elsalutinta" msgid "Middle Name" msgstr "Meza Nomo" @@ -3769,14 +3740,12 @@ msgid "Temporarily Hide From" msgstr "Provizore Kaŝu De" -#. && NOT ME msgid "Cancel Presence Notification" msgstr "Ĉesigu Prezentavizon" msgid "(Re-)Request authorization" msgstr "(Re-)demandu permeson" -#. if(NOT ME) #. shouldn't this just happen automatically when the buddy is #. removed? msgid "Unsubscribe" @@ -3912,17 +3881,14 @@ msgid "Find Rooms" msgstr "Trovu Babilejojn" -#, fuzzy msgid "Affiliations:" -msgstr "Alinomo:" - -#, fuzzy +msgstr "" + msgid "No users found" -msgstr "Neniu protokolo trovita" - -#, fuzzy +msgstr "Neniu uzanto trovita" + msgid "Roles:" -msgstr "Rolo" +msgstr "Roloj:" msgid "Ping timed out" msgstr "" @@ -3938,9 +3904,8 @@ msgid "Invalid XMPP ID. Domain must be set." msgstr "" -#, fuzzy msgid "Malformed BOSH URL" -msgstr "Malsukcesis konekti servilon." +msgstr "" #, c-format msgid "Registration of %s@%s successful" @@ -4009,10 +3974,6 @@ msgid "Change Registration" msgstr "Ŝanĝu Registradon" -#, fuzzy -msgid "Malformed BOSH Connect Server" -msgstr "Malsukcesis konekti servilon." - msgid "Error unregistering account" msgstr "Eraro forregistrante konton" @@ -4325,21 +4286,20 @@ msgid "%s has buzzed you!" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to initiate media with %s: invalid JID" -msgstr "Ne eblas sendi dosieron al %s, malvalida JID" - -#, fuzzy, c-format +msgstr "Ne eblas eki medion kun %s, malvalida JID" + +#, c-format msgid "Unable to initiate media with %s: user is not online" -msgstr "Ne eblis sendi dosieron al %s, uzanto ne estas konektita" +msgstr "Ne eblas eki medion kun %s, uzanto ne estas konektita" #, c-format msgid "Unable to initiate media with %s: not subscribed to user presence" msgstr "" -#, fuzzy msgid "Media Initiation Failed" -msgstr "Registrado Malsukcesis" +msgstr "" #, c-format msgid "" @@ -4350,9 +4310,8 @@ msgid "Select a Resource" msgstr "" -#, fuzzy msgid "Initiate Media" -msgstr "Iniciatu _Babilon" +msgstr "" msgid "config: Configure a chat room." msgstr "" @@ -4444,9 +4403,8 @@ #. this should probably be part of global smiley theme settings later on, #. shared with MSN -#, fuzzy msgid "Show Custom Smileys" -msgstr "Montru personajn ridmienojn" +msgstr "Montru Proprajn Sidmienojn" #, c-format msgid "%s has left the conversation." @@ -4471,9 +4429,9 @@ msgid "XMPP Message Error" msgstr "XMPP Mesaĝo Eraro" -#, fuzzy, c-format +#, c-format msgid "(Code %s)" -msgstr " (Kodo %s)" +msgstr "(Kodo %s)" msgid "XML Parse error" msgstr "" @@ -4505,29 +4463,22 @@ msgid "_Accept Defaults" msgstr "_Akceptu Apriorajn" -#, fuzzy msgid "No reason" -msgstr "Nenia kialo donita." - -#, fuzzy, c-format +msgstr "Sen kialo" + +#, c-format msgid "You have been kicked: (%s)" -msgstr "Vi estas forigita de %s: (%s)" - -#, fuzzy, c-format +msgstr "Vi estas forigita: (%s)" + +#, c-format msgid "Kicked (%s)" -msgstr "Forigita de %s (%s)" - -#, fuzzy +msgstr "Forigita (%s)" + msgid "An error occurred on the in-band bytestream transfer\n" -msgstr "Eraro okazis malfermante la dosiero." - -#, fuzzy +msgstr "" + msgid "Transfer was closed." -msgstr "Dosiero Transmeto Malsukcesis" - -#, fuzzy -msgid "Failed to open the file" -msgstr "Malsukcesis malfermi dosieron '%s': %s" +msgstr "Transmeto estis fermita." msgid "Failed to open in-band bytestream" msgstr "" @@ -4597,9 +4548,8 @@ msgid "Buddy Add error" msgstr "" -#, fuzzy msgid "The username specified does not exist." -msgstr "La nova formatumo malvalidas." +msgstr "" #, c-format msgid "Buddy list synchronization issue in %s (%s)" @@ -4641,9 +4591,9 @@ msgid "Already logged in" msgstr "Jam ensalutita" -#, fuzzy, c-format +#, c-format msgid "Invalid username" -msgstr "Malvalida Uzantonomo" +msgstr "Malvalida uzantnomo" #, c-format msgid "Invalid friendly name" @@ -4825,9 +4775,8 @@ msgid "Passport account not yet verified" msgstr "Pasporta konto ne jam kontrolita" -#, fuzzy msgid "Passport account suspended" -msgstr "Pasporta konto ne jam kontrolita" +msgstr "Pasporta konto suspendita" #, c-format msgid "Bad ticket" @@ -4841,13 +4790,27 @@ msgid "MSN Error: %s\n" msgstr "MSN Eraro: %s\n" -#, fuzzy msgid "Other Contacts" -msgstr "Preferata Kontakto" - -#, fuzzy +msgstr "Aliaj Kontaktoj" + msgid "Non-IM Contacts" -msgstr "Forigu Kontakton" +msgstr "Ne-TM Kontaktoj" + +#, c-format +msgid "%s sent a wink. Click here to play it" +msgstr "" + +#, c-format +msgid "%s sent a wink, but it could not be saved" +msgstr "" + +#, c-format +msgid "%s sent a voice clip. Click here to play it" +msgstr "" + +#, c-format +msgid "%s sent a voice clip, but it could not be saved" +msgstr "" #, c-format msgid "%s sent you a voice chat invite, which is not yet supported." @@ -4864,9 +4827,8 @@ msgid "Nudging %s..." msgstr "" -#, fuzzy msgid "Email Address..." -msgstr "Retadreso" +msgstr "Retadreso..." msgid "Your new MSN friendly name is too long." msgstr "Via nova MSN amika nomo estas tro longa." @@ -4900,22 +4862,20 @@ msgid "Disallow" msgstr "Malpermesu" -#, fuzzy, c-format +#, c-format msgid "Blocked Text for %s" -msgstr "Kunul Komento por %s" - -#, fuzzy +msgstr "" + msgid "No text is blocked for this account." -msgstr "Uzu tiun kunul p_iktogramon por tiu konto:" +msgstr "" #, c-format msgid "" "MSN servers are currently blocking the following regular expressions:
%s" msgstr "" -#, fuzzy msgid "This account does not have email enabled." -msgstr "Tiu Hotmail konto eble ne estas aktiva." +msgstr "" msgid "Send a mobile message." msgstr "" @@ -4926,9 +4886,8 @@ msgid "Playing a game" msgstr "" -#, fuzzy msgid "Working" -msgstr "Laboro" +msgstr "Laborante" msgid "Has you" msgstr "Havas vin" @@ -4966,9 +4925,8 @@ msgid "Album" msgstr "Albumo" -#, fuzzy msgid "Game Title" -msgstr "Titolon" +msgstr "Ludo Titolo" msgid "Office Title" msgstr "" @@ -5006,6 +4964,27 @@ msgid "SSL support is needed for MSN. Please install a supported SSL library." msgstr "" +#, c-format +msgid "" +"Unable to add the buddy %s because the username is invalid. Usernames must " +"be a valid email address." +msgstr "" + +msgid "Unable to Add" +msgstr "Ne eblas Aldoni" + +msgid "Authorization Request Message:" +msgstr "Permeso Demando Mesaĝo:" + +msgid "Please authorize me!" +msgstr "Bonvolu permesu min!" + +#. * +#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons. +#. +msgid "_OK" +msgstr "_Daŭrigu" + msgid "Error retrieving profile" msgstr "Eraro ricevante profilon" @@ -5156,9 +5135,8 @@ "does not exist." msgstr "" -#, fuzzy msgid "View web profile" -msgstr "Kaŝu kiam senkonekta" +msgstr "Rigardi ttt profilon" #. *< type #. *< ui_requirement @@ -5194,20 +5172,20 @@ msgid "%s just sent you a Nudge!" msgstr "%s ĵus sendis al vi Zumon!" -#, fuzzy, c-format +#, c-format msgid "Unknown error (%d): %s" -msgstr "Nekonata eraro (%d)" +msgstr "Nekonata eraro (%d): %s" msgid "Unable to add user" -msgstr "" - +msgstr "Ne eblas aldoni uzanton" + +#. Unknown error! #, c-format msgid "Unknown error (%d)" msgstr "Nekonata eraro (%d)" -#, fuzzy msgid "The following users are missing from your addressbook" -msgstr "La jenaj estas la rezultoj de via serĉo" +msgstr "" msgid "Mobile message was not sent because it was too long." msgstr "" @@ -5259,13 +5237,11 @@ msgid "Our protocol is not supported by the server" msgstr "" -#, fuzzy msgid "Error parsing HTTP" -msgstr "Eraro lanĉante %s" - -#, fuzzy +msgstr "" + msgid "You have signed on from another location" -msgstr "Vi ensalutis el alia loko." +msgstr "Vi ensalutis el alia loko" msgid "The MSN servers are temporarily unavailable. Please wait and try again." msgstr "" @@ -5343,17 +5319,14 @@ msgid "Message may have not been sent because an unknown error occurred:" msgstr "" -#, fuzzy msgid "Delete Buddy from Address Book?" -msgstr "Aldonu al adresaro" - -#, fuzzy +msgstr "" + msgid "Do you want to delete this buddy from your address book as well?" -msgstr "Ĉu vi volas aldoni tiun kunul en via kunullisto?" - -#, fuzzy +msgstr "Ĉu vi volas forigi tiun kunul el via adresaro ankaŭ?" + msgid "The username specified is invalid." -msgstr "La nova formatumo malvalidas." +msgstr "La enigita uzantnomo malvalidas." msgid "This Hotmail account may not be active." msgstr "Tiu Hotmail konto eble ne estas aktiva." @@ -5447,11 +5420,8 @@ msgid "Would you like to set one now? (Note: THIS CANNOT BE CHANGED!)" msgstr "" -#, fuzzy msgid "Lost connection with server" -msgstr "" -"Perdis konekto kun prokura servilo\n" -"%s" +msgstr "Perdis konekton kun servilo" #. Can't write _()'d strings in array initializers. Workaround. #. khc: then use N_() in the array initializer and use _() when they are @@ -5501,9 +5471,8 @@ "cfm?fuseaction=accountSettings.changePassword and try again." msgstr "" -#, fuzzy msgid "Incorrect username or password" -msgstr "Misa ekrannomo aŭ pasvorto" +msgstr "Misa uzantnomo aŭ pasvorto" msgid "MySpaceIM Error" msgstr "" @@ -5828,9 +5797,8 @@ msgid "You have reached your limit for the number of contacts allowed" msgstr "" -#, fuzzy msgid "You have entered an incorrect username" -msgstr "Vi trenis bildon" +msgstr "" msgid "An error occurred while updating the directory" msgstr "" @@ -5853,9 +5821,9 @@ msgid "Unknown error: 0x%X" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Unable to login: %s" -msgstr "Ne konekteblas al %s" +msgstr "Ne eblas ensaluti: %s" #, c-format msgid "Unable to send message. Could not get details for user (%s)." @@ -5981,11 +5949,10 @@ "%s appears to be offline and did not receive the message that you just sent." msgstr "" -#, fuzzy msgid "" "Unable to connect to server. Please enter the address of the server to which " "you wish to connect." -msgstr "Bonvolu enmetu la nomon de uzanto kiun vi deziras bloki." +msgstr "" msgid "This conference has been closed. No more messages can be sent." msgstr "Tiu konferenco fermiĝis. Ne pliaj mesaĝoj sendiĝeblas." @@ -6009,9 +5976,8 @@ msgid "Server port" msgstr "Servilo pordo" -#, fuzzy msgid "Received unexpected response from " -msgstr "Ricevis neatendita HTTP respondo de servilo." +msgstr "Ricevis neatenditan respondon de" #. username connecting too frequently msgid "" @@ -6019,9 +5985,9 @@ "and try again. If you continue to try, you will need to wait even longer." msgstr "" -#, fuzzy, c-format +#, c-format msgid "Error requesting " -msgstr "Eraro lanĉante %s" +msgstr "" msgid "AOL does not allow your screen name to authenticate here" msgstr "" @@ -6032,11 +5998,8 @@ msgid "Invalid chat room name" msgstr "Malvalida babilejo nomo" -#, fuzzy msgid "Received invalid data on connection with server" msgstr "" -"Perdis konekto kun prokura servilo\n" -"%s" #. *< type #. *< ui_requirement @@ -6083,11 +6046,8 @@ msgid "Received invalid data on connection with remote user." msgstr "" -#, fuzzy msgid "Unable to establish a connection with the remote user." msgstr "" -"Perdis konekto kun prokura servilo\n" -"%s" msgid "Direct IM established" msgstr "Rekta TM establiĝis" @@ -6251,9 +6211,8 @@ msgid "Camera" msgstr "Kamerao" -#, fuzzy msgid "Screen Sharing" -msgstr "Ekrannomo" +msgstr "" msgid "Free For Chat" msgstr "" @@ -6279,19 +6238,15 @@ msgid "Buddy Comment" msgstr "Kunul Komento" -#, fuzzy, c-format msgid "Unable to connect to authentication server: %s" -msgstr "" -"Ne povis konekti al aŭtentokontrolo servilo:\n" -"%s" - -#, fuzzy, c-format +msgstr "Ne povis konekti al aŭtentokontrolo servilo: %s" + +#, c-format msgid "Unable to connect to BOS server: %s" -msgstr "Ne konekteblas al %s: %s" - -#, fuzzy +msgstr "Ne konekteblas al BOS servilo: %s" + msgid "Username sent" -msgstr "Neniu uzantonomo difinita" +msgstr "Uzantonomo sendita" msgid "Connection established, cookie sent" msgstr "Konekto estabilta, kuketo sendita" @@ -6323,19 +6278,18 @@ #. Unregistered username #. uid is not exist #. the username does not exist -#, fuzzy msgid "Username does not exist" -msgstr "Uzanto ne ekzistas" +msgstr "Uzantonomo ne ekzistas" #. Suspended account -#, fuzzy msgid "Your account is currently suspended" -msgstr "Pasporta konto ne jam kontrolita" +msgstr "Via konto estas nun tempe suspendita" #. service temporarily unavailable msgid "The AOL Instant Messenger service is temporarily unavailable." msgstr "La AOL Tujmesaĝilo servo estas provizore nedisponebla." +#. client too old #, c-format msgid "The client version you are using is too old. Please upgrade at %s" msgstr "" @@ -6346,9 +6300,8 @@ "try again. If you continue to try, you will need to wait even longer." msgstr "" -#, fuzzy msgid "The SecurID key entered is invalid" -msgstr "La nova formatumo malvalidas." +msgstr "La enigita SecurID malvalidas." msgid "Enter SecurID" msgstr "" @@ -6356,12 +6309,6 @@ msgid "Enter the 6 digit number from the digital display." msgstr "" -#. * -#. * A wrapper for purple_request_action() that uses @c OK and @c Cancel buttons. -#. -msgid "_OK" -msgstr "_Daŭrigu" - msgid "Password sent" msgstr "Pasvorto sendita" @@ -6371,12 +6318,6 @@ msgid "Please authorize me so I can add you to my buddy list." msgstr "Bonvolu permesi min do mi povas aldoni vin al mia kunullisto." -msgid "Authorization Request Message:" -msgstr "Permeso Demando Mesaĝo:" - -msgid "Please authorize me!" -msgstr "Bonvolu permesu min!" - msgid "No reason given." msgstr "Nenia kialo donita." @@ -6551,11 +6492,11 @@ msgid "Pop-Up Message" msgstr "Ŝpruca Mesaĝo" -#, fuzzy, c-format +#, c-format msgid "The following username is associated with %s" msgid_plural "The following usernames are associated with %s" -msgstr[0] "La jena ekrannomo estas kunligita kun %s" -msgstr[1] "La jenaj ekrannomoj estas kunligitaj kun %s" +msgstr[0] "La jena uzantnomo estas kunligita kun %s" +msgstr[1] "La jenaj uzantnomoj estas kunligitaj kun %s" #, c-format msgid "No results found for email address %s" @@ -6662,11 +6603,6 @@ "numbers and spaces, or contain only numbers." msgstr "" -#, fuzzy -msgid "Unable to Add" -msgstr "Ne eblas Aldoni" - -#, fuzzy msgid "Unable to Retrieve Buddy List" msgstr "Ne eblas Ricevi Kunulliston" @@ -6687,18 +6623,17 @@ msgid "(no name)" msgstr "(sen nomo)" -#, fuzzy, c-format +#, c-format msgid "Unable to add the buddy %s for an unknown reason." -msgstr "Ne povis aldoni kunulon %s pro nekonata kialo." - -#, fuzzy, c-format +msgstr "Ne povis aldoni la kunulon %s pro nekonata kialo." + +#, c-format msgid "" "The user %s has given you permission to add him or her to your buddy list. " "Do you want to add this user?" msgstr "" -"La uzanto %s ne koncedis vian demandon aldoni sin al via kunullisto pro la " -"jena kialo:\n" -"%s" +"La uzanto %s koncedis al vi permeson aldoni ŝlin al via kunullisto. Ĉu vi " +"volas aldoni tiun uzanton?" msgid "Authorization Given" msgstr "Permeso Donita" @@ -6726,7 +6661,7 @@ msgstr "Permeso Rifuzita" msgid "_Exchange:" -msgstr "_Interŝanĝo" +msgstr "_Interŝanĝo:" msgid "Your IM Image was not sent. You cannot send IM Images in AIM chats." msgstr "" @@ -6814,18 +6749,15 @@ msgid "_Search" msgstr "_Serĉu" -#, fuzzy msgid "Set User Info (web)..." -msgstr "Difinu Uzanto-Informon (URL)..." +msgstr "Difinu Uzanto-Informon (ttt)..." #. This only happens when connecting with the old-style BUCP login -#, fuzzy msgid "Change Password (web)" -msgstr "Ŝanĝu Pasvorton (URL)" - -#, fuzzy +msgstr "Ŝanĝu Pasvorton (ttt)" + msgid "Configure IM Forwarding (web)" -msgstr "Agordu TM Plusendado (URL)" +msgstr "Agordi TM Plusendado (ttt)" #. ICQ actions msgid "Set Privacy Options..." @@ -6850,9 +6782,8 @@ msgid "Search for Buddy by Information" msgstr "Serĉu Kunulon laŭ Informo..." -#, fuzzy msgid "Use clientLogin" -msgstr "Uzanto ne estas ensalutita" +msgstr "" msgid "" "Always use AIM/ICQ proxy server for\n" @@ -6962,16 +6893,14 @@ msgid "Other" msgstr "Alia" -#, fuzzy msgid "Visible" -msgstr "Nevidebla" +msgstr "Videbla" msgid "Friend Only" msgstr "" -#, fuzzy msgid "Private" -msgstr "Privataj aferoj" +msgstr "Privata" msgid "QQ Number" msgstr "QQ Nombro" @@ -6988,9 +6917,8 @@ msgid "Phone Number" msgstr "Telefonnumero" -#, fuzzy msgid "Authorize adding" -msgstr "Permesi kunulon?" +msgstr "Permesi aldoni" msgid "Cellphone Number" msgstr "Poŝtelefona Numero" @@ -6998,64 +6926,50 @@ msgid "Personal Introduction" msgstr "Persono Enkonduko" -#, fuzzy msgid "City/Area" -msgstr "Urbo" - -#, fuzzy +msgstr "Urbo/Loko" + msgid "Publish Mobile" -msgstr "Persona Poŝtelefono" - -#, fuzzy +msgstr "Montri Poŝtelefonon" + msgid "Publish Contact" -msgstr "Alinomo Kontakto" +msgstr "Alinomo Kontakton" msgid "College" msgstr "Kolegio" -#, fuzzy msgid "Horoscope" -msgstr "Horoskopa Simbolo" - -#, fuzzy +msgstr "Horoskopo" + msgid "Zodiac" -msgstr "Zodiaka Signo" - -#, fuzzy +msgstr "Zodiako" + msgid "Blood" -msgstr "Blokita" - -#, fuzzy +msgstr "Sango" + msgid "True" -msgstr "Bovo" - -#, fuzzy +msgstr "Prave" + msgid "False" -msgstr "Malsukcesita" - -#, fuzzy +msgstr "Malprave" + msgid "Modify Contact" -msgstr "Ŝanĝu Konton" - -#, fuzzy +msgstr "Ŝanĝi Kontakton" + msgid "Modify Address" -msgstr "Hejmo Adreso" - -#, fuzzy +msgstr "Ŝanĝi Adreson" + msgid "Modify Extended Information" -msgstr "Ŝanĝu mian informon" - -#, fuzzy +msgstr "Ŝanĝi Detalan Informon" + msgid "Modify Information" -msgstr "Ŝanĝu mian informon" - -#, fuzzy +msgstr "Ŝanĝu Informon" + msgid "Update" -msgstr "Lasta Aktualigo" - -#, fuzzy +msgstr "Aktualigi" + msgid "Could not change buddy information." -msgstr "Bonvolu enigi kunul informon." +msgstr "" msgid "Mobile" msgstr "Movante" @@ -7064,24 +6978,20 @@ msgstr "" #. callback -#, fuzzy msgid "Buddy Memo" -msgstr "Kunul Piktogramo" +msgstr "" msgid "Change his/her memo as you like" msgstr "" -#, fuzzy msgid "_Modify" -msgstr "Ŝanĝu" - -#, fuzzy +msgstr "Ŝ_anĝu" + msgid "Memo Modify" -msgstr "Ŝanĝu" - -#, fuzzy +msgstr "" + msgid "Server says:" -msgstr "Servilo okupita" +msgstr "Servilo diras:" msgid "Your request was accepted." msgstr "" @@ -7089,24 +6999,21 @@ msgid "Your request was rejected." msgstr "" -#, fuzzy, c-format +#, c-format msgid "%u requires verification" -msgstr "Petu aŭtentigon" - -#, fuzzy +msgstr "" + msgid "Add buddy question" msgstr "Aldonu kunulon al via listo?" -#, fuzzy msgid "Enter answer here" -msgstr "Enigu Uzanto Adreslibro" +msgstr "Enigu respondon ĉi-tie" msgid "Send" msgstr "Sendu" -#, fuzzy msgid "Invalid answer." -msgstr "Malvalida Uzantonomo" +msgstr "Malvalida respondo." msgid "Authorization denied message:" msgstr "Rifuzita permeso mesaĝo:" @@ -7114,48 +7021,41 @@ msgid "Sorry, you're not my style." msgstr "" -#, fuzzy, c-format +#, c-format msgid "%u needs authorization" -msgstr "Uzanto %d bezonas aŭtentokontrolon" - -#, fuzzy +msgstr "%u bezonas aŭtentokontrolon" + msgid "Add buddy authorize" -msgstr "Aldonu kunulon al via listo?" - -#, fuzzy +msgstr "" + msgid "Enter request here" -msgstr "Enigu Konferencan Servilon" +msgstr "" msgid "Would you be my friend?" msgstr "Ĉu vi estus mia amiko?" -#, fuzzy msgid "QQ Buddy" -msgstr "Kunul" - -#, fuzzy +msgstr "QQ Kunul" + msgid "Add buddy" -msgstr "Aldonu Kunulon" - -#, fuzzy +msgstr "Aldoni kunulon" + msgid "Invalid QQ Number" -msgstr "Malvalida QQ Aspekto" - -#, fuzzy +msgstr "Malvalida QQ Numero" + msgid "Failed sending authorize" -msgstr "Bonvolu permesu min!" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "Failed removing buddy %u" -msgstr "Malsukcesis forigi kunulon" - -#, fuzzy, c-format +msgstr "Malsukcesis forigi kunulon %u" + +#, c-format msgid "Failed removing me from %d's buddy list" -msgstr "%s forigis vin el sia kunul listo." - -#, fuzzy +msgstr "" + msgid "No reason given" -msgstr "Nenia kialo donita." +msgstr "Nenia kialo donita" #. only need to get value #, c-format @@ -7165,9 +7065,9 @@ msgid "Would you like to add him?" msgstr "Ĉu vi deziras aldoni ŝlin?" -#, fuzzy, c-format +#, c-format msgid "Rejected by %s" -msgstr "Malakceptu" +msgstr "" #, c-format msgid "Message: %s" @@ -7182,9 +7082,8 @@ msgid "QQ Qun" msgstr "QQ Qun" -#, fuzzy msgid "Please enter Qun number" -msgstr "Bonvolu enigi la novan nomon por %s" +msgstr "Bonvolu enigi Qun numeron" msgid "You can only search for permanent Qun\n" msgstr "" @@ -7192,58 +7091,48 @@ msgid "(Invalid UTF-8 string)" msgstr "" -#, fuzzy msgid "Not member" -msgstr "Mi ne estas membro" - -#, fuzzy +msgstr "Ne membro" + msgid "Member" -msgstr "Membro Ek De" - -#, fuzzy +msgstr "Membro" + msgid "Requesting" -msgstr "Peto Dialogujo" - -#, fuzzy +msgstr "" + msgid "Admin" -msgstr "Adium" - -#, fuzzy +msgstr "" + msgid "Notice" -msgstr "Notoj" - -#, fuzzy +msgstr "" + msgid "Detail" -msgstr "Apriora" +msgstr "Detalo" msgid "Creator" msgstr "Kreanto" -#, fuzzy msgid "About me" -msgstr "Pri %s" - -#, fuzzy +msgstr "Pri mi" + msgid "Category" -msgstr "Babileraro" +msgstr "Kategorio" msgid "The Qun does not allow others to join" msgstr "" -#, fuzzy msgid "Join QQ Qun" -msgstr "QQ Qun" +msgstr "Aliĝu QQ Qun" msgid "Input request here" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Successfully joined Qun %s (%u)" -msgstr "Vi sukcese ŝanĝis Qun numeron" - -#, fuzzy +msgstr "Sukcese aliĝis Qun %s (%u)" + msgid "Successfully joined Qun" -msgstr "Vi sukcese ŝanĝis Qun numeron" +msgstr "Sukcese aliĝis Qun" #, c-format msgid "Qun %u denied from joining" @@ -7252,16 +7141,14 @@ msgid "QQ Qun Operation" msgstr "QQ Qun Operacio" -#, fuzzy msgid "Failed:" -msgstr "Malsukcesita" +msgstr "Malsukcesita:" msgid "Join Qun, Unknown Reply" msgstr "" -#, fuzzy msgid "Quit Qun" -msgstr "QQ Qun" +msgstr "" msgid "" "Note, if you are the creator, \n" @@ -7271,47 +7158,44 @@ msgid "Sorry, you are not our style" msgstr "" -#, fuzzy msgid "Successfully changed Qun members" -msgstr "Vi sukcese ŝanĝis Qun numeron" - -#, fuzzy +msgstr "Sukcese ŝanĝis Qun membrojn" + msgid "Successfully changed Qun information" -msgstr "Vi sukcese ŝanĝis Qun informon" +msgstr "Sukcese ŝanĝis Qun informon" msgid "You have successfully created a Qun" msgstr "" -#, fuzzy msgid "Would you like to set up detailed information now?" -msgstr "Ĉu vi deziras meti ĝin kiel la kunul piktogramo por tiu uzanto?" +msgstr "" msgid "Setup" msgstr "Agordo" -#, fuzzy, c-format +#, c-format msgid "%u requested to join Qun %u for %s" -msgstr "Uzanto %d petis aliĝon al grupo %d" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "%u request to join Qun %u" -msgstr "Uzanto %d petis aliĝon al grupo %d" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "Failed to join Qun %u, operated by admin %u" -msgstr "Malsukcesis kuniĝi kunulon en babilejo" +msgstr "" #, c-format msgid "Joining Qun %u is approved by admin %u for %s" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Removed buddy %u." -msgstr "Forigu Kunulon" - -#, fuzzy, c-format +msgstr "Forigu Kunulon %u." + +#, c-format msgid "New buddy %u joined." -msgstr "Forigu Kunulon" +msgstr "" #, c-format msgid "Unknown-%d" @@ -7321,26 +7205,22 @@ msgstr "Nivelo" msgid " VIP" -msgstr "" +msgstr " VIP" msgid " TCP" -msgstr "" - -#, fuzzy +msgstr " TCP" + msgid " FromMobile" -msgstr "Movante" - -#, fuzzy +msgstr "" + msgid " BindMobile" -msgstr "Movante" - -#, fuzzy +msgstr "" + msgid " Video" -msgstr "Viva Video" - -#, fuzzy +msgstr "" + msgid " Zone" -msgstr "Nenio" +msgstr "" msgid "Flag" msgstr "" @@ -7351,9 +7231,8 @@ msgid "Invalid name" msgstr "Malvalida Uzantonomo" -#, fuzzy msgid "Select icon..." -msgstr "Elektu Dosierujon..." +msgstr "Elektu piktogramon..." #, c-format msgid "Login time: %d-%d-%d, %d:%d:%d
\n" @@ -7367,21 +7246,21 @@ msgid "Last Refresh: %d-%d-%d, %d:%d:%d
\n" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Server: %s
\n" -msgstr "Grupo Titolo: %s
" - -#, fuzzy, c-format +msgstr "Servilo: %s
\n" + +#, c-format msgid "Client Tag: %s
\n" -msgstr "Grupo Titolo: %s
" +msgstr "" #, c-format msgid "Connection Mode: %s
\n" msgstr "" -#, fuzzy, c-format +#, c-format msgid "My Internet IP: %s:%d
\n" -msgstr "Grupo Titolo: %s
" +msgstr "" #, c-format msgid "Sent: %lu
\n" @@ -7391,9 +7270,9 @@ msgid "Resend: %lu
\n" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Lost: %lu
\n" -msgstr "Grupo Titolo: %s
" +msgstr "" #, c-format msgid "Received: %lu
\n" @@ -7407,9 +7286,9 @@ msgid "Time: %d-%d-%d, %d:%d:%d
\n" msgstr "" -#, fuzzy, c-format +#, c-format msgid "IP: %s
\n" -msgstr "Grupo Titolo: %s
" +msgstr "" msgid "Login Information" msgstr "Ensaluta Informo" @@ -7426,9 +7305,8 @@ msgid "

Acknowledgement:
\n" msgstr "" -#, fuzzy msgid "

Scrupulous Testers:
\n" -msgstr "Grupo Titolo: %s
" +msgstr "" msgid "and more, please let me know... thank you!))" msgstr "" @@ -7439,31 +7317,27 @@ msgid "Feel free to join us! :)" msgstr "" -#, fuzzy, c-format +#, c-format msgid "About OpenQ %s" -msgstr "Pri %s" - -#, fuzzy +msgstr "Pri OpenQ %s" + msgid "Change Icon" -msgstr "Konservu Piktogramon" +msgstr "Ŝanĝi Piktogramon" msgid "Change Password" msgstr "" -#, fuzzy msgid "Account Information" -msgstr "Ensaluta Informo" +msgstr "Konto Informo" msgid "Update all QQ Quns" msgstr "" -#, fuzzy msgid "About OpenQ" -msgstr "Pri %s" - -#, fuzzy +msgstr "Pri OpenQ" + msgid "Modify Buddy Memo" -msgstr "Hejmo Adreso" +msgstr "" #. *< type #. *< ui_requirement @@ -7475,38 +7349,32 @@ #. *< version #. * summary #. * description -#, fuzzy msgid "QQ Protocol Plugin" -msgstr "QQ Protokolo\tKromaĵo" - -#, fuzzy +msgstr "QQ Protokolo tKromaĵo" + msgid "Auto" -msgstr "Permesi" - -#, fuzzy +msgstr "Aŭtomate" + msgid "Select Server" -msgstr "Konekto servilo" +msgstr "Elekti Servilon" msgid "QQ2005" -msgstr "" +msgstr "QQ2005" msgid "QQ2007" -msgstr "" +msgstr "QQ2007" msgid "QQ2008" -msgstr "" - -#, fuzzy +msgstr "QQ2008" + msgid "Connect by TCP" -msgstr "Konektu per TCP" - -#, fuzzy +msgstr "Konekti per TCP" + msgid "Show server notice" -msgstr "Servilo pordo" - -#, fuzzy +msgstr "" + msgid "Show server news" -msgstr "Servilo adreso" +msgstr "" msgid "Show chat room when msg comes" msgstr "" @@ -7514,21 +7382,19 @@ msgid "Keep alive interval (seconds)" msgstr "" -#, fuzzy msgid "Update interval (seconds)" -msgstr "Aktualigi mian informon" - -#, fuzzy +msgstr "" + msgid "Unable to decrypt server reply" -msgstr "Konekto servilo" +msgstr "" #, c-format msgid "Failed requesting token, 0x%02X" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Invalid token len, %d" -msgstr "Malvalida titolo" +msgstr "" #. extend redirect used in QQ2006 msgid "Redirect_EX is not currently supported" @@ -7537,39 +7403,33 @@ #. need activation #. need activation #. need activation -#, fuzzy msgid "Activation required" -msgstr "Registrado Postulita" +msgstr "Registrado postulita" #, c-format msgid "Unknown reply code when logging in (0x%02X)" msgstr "" -#, fuzzy msgid "Requesting captcha" -msgstr "Peto Dialogujo" +msgstr "" msgid "Checking captcha" msgstr "" -#, fuzzy msgid "Failed captcha verification" -msgstr "Malsukcesis Yahoo! Aŭtentokontrolo" - -#, fuzzy +msgstr "" + msgid "Captcha Image" -msgstr "Konservu Bildon" - -#, fuzzy +msgstr "" + msgid "Enter code" -msgstr "Enigu Pasvorton" +msgstr "Enigu kodon" msgid "QQ Captcha Verification" msgstr "" -#, fuzzy msgid "Enter the text from the image" -msgstr "Bonvolu enigi la nomon de la grupo" +msgstr "" #, c-format msgid "Unknown reply when checking password (0x%02X)" @@ -7584,55 +7444,48 @@ msgid "Socket error" msgstr "" -#, fuzzy msgid "Getting server" -msgstr "Difinu Uzanto-Informon..." - -#, fuzzy +msgstr "" + msgid "Requesting token" -msgstr "Peto Dialogujo" - -#, fuzzy +msgstr "" + msgid "Unable to resolve hostname" -msgstr "Ne eblas alinomigi grupon" - -#, fuzzy +msgstr "" + msgid "Invalid server or port" -msgstr "Malvalida eraro" - -#, fuzzy +msgstr "" + msgid "Connecting to server" -msgstr "Konekto servilo" - -#, fuzzy +msgstr "Konekto al servilo" + msgid "QQ Error" -msgstr "QQid Eraro" - -#, fuzzy, c-format +msgstr "QQ Eraro" + +#, c-format msgid "" "Server News:\n" "%s\n" "%s\n" "%s" -msgstr "ICQ Servilo Reludo" - -#, fuzzy, c-format +msgstr "" + +#, c-format msgid "%s:%s" -msgstr "%s (%s)" - -#, fuzzy, c-format +msgstr "%s:%s" + +#, c-format msgid "From %s:" -msgstr "De" - -#, fuzzy, c-format +msgstr "De %s:" + +#, c-format msgid "" "Server notice From %s: \n" "%s" -msgstr "Servilo instrukcioj: %s" - -#, fuzzy +msgstr "" + msgid "Unknown SERVER CMD" -msgstr "Nekonata kialo" +msgstr "Nekonata SERVILO CMD" #, c-format msgid "" @@ -7640,21 +7493,17 @@ "Room %u, reply 0x%02X" msgstr "" -#, fuzzy msgid "QQ Qun Command" -msgstr "Komando" - -#, fuzzy +msgstr "QQ Qun Komando" + msgid "Unable to decrypt login reply" -msgstr "Konekto servilo" - -#, fuzzy +msgstr "" + msgid "Unknown LOGIN CMD" -msgstr "Nekonata kialo" - -#, fuzzy +msgstr "" + msgid "Unknown CLIENT CMD" -msgstr "Nekonata kialo" +msgstr "Nekonata KLIENTO CMD" #, c-format msgid "%d has declined the file %s" @@ -7838,7 +7687,7 @@ msgstr "" msgid "Unable to add user: user not found" -msgstr "" +msgstr "Ne eblas aldoni uzanton: uzanto ne trovita" #, c-format msgid "" @@ -8440,7 +8289,7 @@ msgstr "" msgid "_More..." -msgstr "" +msgstr "_Plia..." msgid "Detach From Server" msgstr "" @@ -8560,9 +8409,8 @@ msgid "Disconnected by server" msgstr "" -#, fuzzy msgid "Error connecting to SILC Server" -msgstr "Konekto servilo" +msgstr "" msgid "Key Exchange failed" msgstr "" @@ -8574,31 +8422,25 @@ msgid "Performing key exchange" msgstr "" -#, fuzzy msgid "Unable to load SILC key pair" -msgstr "Ne eblas ŝargi kromaĵon" +msgstr "" #. Progress msgid "Connecting to SILC Server" msgstr "" -#, fuzzy -msgid "Unable to not load SILC key pair" -msgstr "Ne eblas ŝargi kromaĵon" - msgid "Out of memory" msgstr "" -#, fuzzy msgid "Unable to initialize SILC protocol" -msgstr "Ne povas eki konekton" +msgstr "" msgid "Error loading SILC key pair" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Download %s: %s" -msgstr "Uzantoj ĉe %s: %s" +msgstr "" msgid "Your Current Mood" msgstr "" @@ -8867,9 +8709,8 @@ msgid "Creating SILC key pair..." msgstr "" -#, fuzzy msgid "Unable to create SILC key pair" -msgstr "Ne eblas alinomigi grupon" +msgstr "" #. Hint for translators: Please check the tabulator width here and in #. the next strings (short strings: 2 tabs, longer strings 1 tab, @@ -9000,35 +8841,30 @@ msgid "Failure: Authentication failed" msgstr "" -#, fuzzy msgid "Unable to initialize SILC Client connection" -msgstr "Ne povas eki konekton" +msgstr "" msgid "John Noname" msgstr "Sennomulo" -#, fuzzy, c-format +#, c-format msgid "Unable to load SILC key pair: %s" -msgstr "Ne eblas ŝargi kromaĵon" +msgstr "" msgid "Unable to create connection" msgstr "" -#, fuzzy msgid "Unknown server response" -msgstr "Nekonata kialo" - -#, fuzzy +msgstr "" + msgid "Unable to create listen socket" -msgstr "Malsukcesis skribi reten" - -#, fuzzy +msgstr "" + msgid "SIP usernames may not contain whitespaces or @ symbols" -msgstr "SIP ekrannomoj ne enhaveblas blankan spacon aŭ @ simbolon" - -#, fuzzy +msgstr "SIP uzantnomoj ne enhaveblas blankan spacon aŭ @ simbolojn" + msgid "SIP connect server not specified" -msgstr "Servilo pordo" +msgstr "" #. *< type #. *< ui_requirement @@ -9072,9 +8908,8 @@ msgid "doodle: Request user to start a Doodle session" msgstr "" -#, fuzzy msgid "Yahoo ID..." -msgstr "Yahoo! ID" +msgstr "Yahoo ID..." #. *< type #. *< ui_requirement @@ -9086,9 +8921,8 @@ #. *< version #. * summary #. * description -#, fuzzy msgid "Yahoo! Protocol Plugin" -msgstr "Yahoo Protokol-Kromaĵo" +msgstr "Yahoo! Protokol-Kromaĵo" msgid "Pager server" msgstr "Paĝila servilo" @@ -9117,9 +8951,8 @@ msgid "Yahoo Chat port" msgstr "Yahoo Babilo pordo" -#, fuzzy msgid "Yahoo JAPAN ID..." -msgstr "Yahoo! ID" +msgstr "Yahoo JAPANA ID..." #. *< type #. *< ui_requirement @@ -9131,9 +8964,8 @@ #. *< version #. * summary #. * description -#, fuzzy msgid "Yahoo! JAPAN Protocol Plugin" -msgstr "Yahoo Protokol-Kromaĵo" +msgstr "Yahoo! JAPANA Protokol-Kromaĵo" msgid "Your SMS was not delivered" msgstr "" @@ -9175,9 +9007,8 @@ msgstr "" #. username or password missing -#, fuzzy msgid "Username or password missing" -msgstr "Misa ekrannomo aŭ pasvorto" +msgstr "Misa uzantnomo aŭ pasvorto" #, c-format msgid "" @@ -9209,29 +9040,22 @@ msgid "Unable to add buddy %s to group %s to the server list on account %s." msgstr "" -#, fuzzy msgid "Unable to add buddy to server list" -msgstr "Alŝutu kunulliston al Servilo" +msgstr "Ne eblas aldoni kunulon al servilolisto" #, c-format msgid "[ Audible %s/%s/%s.swf ] %s" msgstr "[ Aŭdebla %s/%s/%s.swf ] %s" -#, fuzzy msgid "Received unexpected HTTP response from server" -msgstr "Ricevis neatendita HTTP respondo de servilo." - -#, fuzzy, c-format +msgstr "Ricevis neatenditan HTTP respondon de servilo" + msgid "Lost connection with %s: %s" -msgstr "" -"Perdis konekton kun %s:\n" -"%s" - -#, fuzzy, c-format +msgstr "Perdis konekton kun %s: %s" + +#, c-format msgid "Unable to establish a connection with %s: %s" -msgstr "" -"Perdis konekto kun prokura servilo\n" -"%s" +msgstr "Ne eblas konekti kun %s: %s" msgid "Not at Home" msgstr "Malhejme" @@ -9371,11 +9195,8 @@ msgstr "La uzanto profilo malplenas." #, c-format -msgid "%s declined your conference invitation to room \"%s\" because \"%s\"." -msgstr "" - -msgid "Invitation Rejected" -msgstr "Invito malakceptita" +msgid "%s has declined to join." +msgstr "" msgid "Failed to join chat" msgstr "Malsukcesis aliĝi babilejon" @@ -9425,9 +9246,8 @@ msgid "User Rooms" msgstr "Uzanto Babilejoj" -#, fuzzy msgid "Connection problem with the YCHT server" -msgstr "Konektproblemo kun la YCHT servilo." +msgstr "Konektproblemo kun la YCHT servilo" msgid "" "(There was an error converting this message.\t Check the 'Encoding' option " @@ -9544,18 +9364,18 @@ msgid "Exposure" msgstr "Montreco" -#, fuzzy, c-format +#, c-format msgid "Unable to parse response from HTTP proxy: %s" -msgstr "Ne eblas sendi mesaĝon al %s:" +msgstr "" #, c-format msgid "HTTP proxy connection error %d" msgstr "HTTP prokura konekteraro %d" -#, fuzzy, c-format +#, c-format msgid "Access denied: HTTP proxy server forbids port %d tunneling" msgstr "" -"Aliro nepermesita: HTTP prokura servilo malpermesas pordon %d tunelumadon." +"Aliro nepermesita: HTTP prokura servilo malpermesas pordon %d tunelumadon" #, c-format msgid "Error resolving %s" @@ -9613,17 +9433,15 @@ msgstr "Ĉu akceptu babilinviton ?" #. Shortcut -#, fuzzy msgid "Shortcut" -msgstr "Ordigi" +msgstr "Ligilo" msgid "The text-shortcut for the smiley" msgstr "" #. Stored Image -#, fuzzy msgid "Stored Image" -msgstr "Konservu Bildon" +msgstr "Konservita Bildo" msgid "Stored Image. (that'll have to do for now)" msgstr "" @@ -9740,9 +9558,9 @@ msgid "Unable to connect to %s" msgstr "Ne konekteblas al %s" -#, fuzzy, c-format +#, c-format msgid "Error reading from %s: response too long (%d bytes limit)" -msgstr "Eraro legante de %s: %s" +msgstr "" #, c-format msgid "" @@ -9791,9 +9609,9 @@ msgstr "Konekto malakceptita." #. 10048 -#, fuzzy, c-format +#, c-format msgid "Address already in use." -msgstr "Tiu babil nomo jam estas uzata" +msgstr "Adreso jam uzata." #, c-format msgid "Error Reading %s" @@ -9847,8 +9665,8 @@ msgid "Use this buddy _icon for this account:" msgstr "Uzu tiun kunul p_iktogramon por tiu konto:" -msgid "_Advanced" -msgstr "_Kroma" +msgid "Ad_vanced" +msgstr "Pro_gresinta" msgid "Use GNOME Proxy Settings" msgstr "Uzu GNOME-ajn Prokurilo-Agordojn" @@ -9910,9 +9728,8 @@ msgid "Create _this new account on the server" msgstr "" -#, fuzzy -msgid "_Proxy" -msgstr "Prokurilo" +msgid "P_roxy" +msgstr "P_rokurilo" msgid "Enabled" msgstr "Enŝaltita" @@ -9946,13 +9763,11 @@ "choosing 'Expand' from the contact's context menu" msgstr "" -#, fuzzy msgid "Please update the necessary fields." -msgstr "Bonvolu Aktualigi la necesajn kampojn." - -#, fuzzy +msgstr "Bonvolu aktualigi la necesajn kampojn." + msgid "A_ccount" -msgstr "_Konto:" +msgstr "_Konto" msgid "" "Please enter the appropriate information about the chat you would like to " @@ -9978,16 +9793,14 @@ msgid "I_M" msgstr "T_M" -#, fuzzy msgid "_Audio Call" -msgstr "_Aldonu Babilejon" +msgstr "_Sona Alvoko" msgid "Audio/_Video Call" msgstr "" -#, fuzzy msgid "_Video Call" -msgstr "Video Babilado" +msgstr "" msgid "_Send File..." msgstr "_Sendu Dosieron..." @@ -9998,13 +9811,11 @@ msgid "View _Log" msgstr "Montru Protoko_lon" -#, fuzzy msgid "Hide When Offline" -msgstr "Kaŝu kiam senkonekta" - -#, fuzzy +msgstr "Kaŝi Kiam Senkonekta" + msgid "Show When Offline" -msgstr "Montru kiam senkonekta" +msgstr "Montri Kiam Senkonekta" msgid "_Alias..." msgstr "_Alinomo..." @@ -10012,9 +9823,8 @@ msgid "_Remove" msgstr "Fo_rigu" -#, fuzzy msgid "Set Custom Icon" -msgstr "Difinu Propran Piktogramon..." +msgstr "Difinu Propran Piktogramon" msgid "Remove Custom Icon" msgstr "Forigu Propran Piktogramon" @@ -10041,9 +9851,8 @@ msgid "Persistent" msgstr "Daŭra" -#, fuzzy msgid "_Edit Settings..." -msgstr "Agordu" +msgstr "_Redakti Agordojn..." msgid "_Collapse" msgstr "_Maletendu" @@ -10117,9 +9926,8 @@ msgid "/_Accounts" msgstr "/_Kontoj" -#, fuzzy msgid "/Accounts/Manage Accounts" -msgstr "/Kontoj/Mastrumu" +msgstr "/Kontoj/Mastrumi Kontoj" #. Tools msgid "/_Tools" @@ -10131,9 +9939,8 @@ msgid "/Tools/_Certificates" msgstr "/Iloj/_Atestiloj" -#, fuzzy msgid "/Tools/Custom Smile_ys" -msgstr "/Iloj/Privateco" +msgstr "/Iloj/Propaj Pi_ktogramoj" msgid "/Tools/Plu_gins" msgstr "/Iloj/Kromaĵo_j" @@ -10173,11 +9980,13 @@ msgid "Account: %s" msgstr "Konto: %s" -#, fuzzy, c-format +#, c-format msgid "" "\n" "Occupants: %d" -msgstr "Konto: %s" +msgstr "" +"\n" +"Okupantoj: %d" #, c-format msgid "" @@ -10302,7 +10111,7 @@ msgstr "/Kontoj" #. Translators: Please maintain the use of -> and <- to refer to menu heirarchy -#, fuzzy, c-format +#, c-format msgid "" "Welcome to %s!\n" "\n" @@ -10313,8 +10122,8 @@ "Bonvenon en %s!\n" "\n" "Vi havas neniun konton ŝaltitan. Ŝaltu viajn TM kontojn per la Kontoj " -"fenestro ĉe Kontoj->Mastrumi. Post la ŝalto de kontoj, vi povos " -"ensaluti, difini vian staton, kaj babiladi kun viaj amikoj." +"fenestro ĉe Kontoj->Mastrumi Kontojn. Post la ŝalto de kontoj, vi " +"povos ensaluti, difini vian staton, kaj babiladi kun viaj amikoj." #. set the Show Offline Buddies option. must be done #. * after the treeview or faceprint gets mad. -Robot101 @@ -10334,21 +10143,17 @@ msgid "/Buddies/Show/Protocol Icons" msgstr "/Kunuloj/Montru/Malplenajn Grupojn" -#, fuzzy msgid "Add a buddy.\n" -msgstr "Aldonu Kunulon" - -#, fuzzy +msgstr "Aldoni Kunulon.\n" + msgid "Buddy's _username:" -msgstr "Kunul nomo:" - -#, fuzzy +msgstr "Kunul _uzantnomo:" + msgid "(Optional) A_lias:" -msgstr "Opcia informo:" - -#, fuzzy +msgstr "(Opcia) A_linomo:" + msgid "Add buddy to _group:" -msgstr "Aldonu kunulon al via listo?" +msgstr "Aldoni kunulon al _grupo:" msgid "This protocol does not support chat rooms." msgstr "" @@ -10390,7 +10195,7 @@ msgstr "/Kontoj/" msgid "_Edit Account" -msgstr "_Redaktu Konton" +msgstr "_Redakti Konton" msgid "No actions available" msgstr "Neniu ago disponebla" @@ -10411,88 +10216,76 @@ msgid "The background color for the buddy list" msgstr "" -#, fuzzy msgid "Layout" -msgstr "Laŭa" +msgstr "" msgid "The layout of icons, name, and status of the blist" msgstr "" #. Group -#, fuzzy msgid "Expanded Background Color" -msgstr "Malantaŭa Koloro" +msgstr "" msgid "The background color of an expanded group" msgstr "" -#, fuzzy msgid "Expanded Text" -msgstr "_Etendu" +msgstr "" msgid "The text information for when a group is expanded" msgstr "" -#, fuzzy msgid "Collapsed Background Color" -msgstr "Elektu Malantaŭan Koloron" +msgstr "" msgid "The background color of a collapsed group" msgstr "" -#, fuzzy msgid "Collapsed Text" -msgstr "_Maletendu" +msgstr "" msgid "The text information for when a group is collapsed" msgstr "" #. Buddy -#, fuzzy msgid "Contact/Chat Background Color" -msgstr "Elektu Malantaŭan Koloron" +msgstr "Kontakt/Babilan Malantaŭan Koloron" msgid "The background color of a contact or chat" msgstr "" -#, fuzzy msgid "Contact Text" -msgstr "Ordigi" +msgstr "Kontakt-Teksto" msgid "The text information for when a contact is expanded" msgstr "" -#, fuzzy msgid "On-line Text" -msgstr "Enrete" +msgstr "Konektita Teksto" msgid "The text information for when a buddy is online" msgstr "" -#, fuzzy msgid "Away Text" -msgstr "Fora" +msgstr "Fora Teksto" msgid "The text information for when a buddy is away" msgstr "" -#, fuzzy msgid "Off-line Text" -msgstr "Senkonekta" +msgstr "Senkonekta Teksto" msgid "The text information for when a buddy is off-line" msgstr "" -#, fuzzy msgid "Idle Text" -msgstr "Agorda Teksto" +msgstr "Senfara Teksto" msgid "The text information for when a buddy is idle" msgstr "" -#, fuzzy msgid "Message Text" -msgstr "Mesaĝo sendita" +msgstr "Mesaĝo Teksto" msgid "The text information for when a buddy has an unread message" msgstr "" @@ -10505,9 +10298,8 @@ "your nick" msgstr "" -#, fuzzy msgid "The text information for a buddy's status" -msgstr "Ŝanĝu uzanto-informon de %s" +msgstr "" msgid "Type the host name for this certificate." msgstr "" @@ -10557,9 +10349,8 @@ msgid "Get Away Message" msgstr "Montru Formesaĝon" -#, fuzzy msgid "Last Said" -msgstr "Laste diris" +msgstr "Laste Diris" msgid "Unable to save icon file to disk." msgstr "Ne eblas konservi piktogramodosieron al disko." @@ -10579,9 +10370,8 @@ msgid "Set Custom Icon..." msgstr "Difinu Propran Piktogramon..." -#, fuzzy msgid "Change Size" -msgstr "Ŝanĝu staton" +msgstr "Ŝanĝu Grandecon" msgid "Show All" msgstr "Montru Ĉiujn" @@ -10605,21 +10395,17 @@ msgid "/Conversation/Clea_r Scrollback" msgstr "/Konversacio/Fo_rviŝu Dialogon" -#, fuzzy msgid "/Conversation/M_edia" -msgstr "/Konversacio/_Pli" - -#, fuzzy +msgstr "/Konversacio/M_edio" + msgid "/Conversation/Media/_Audio Call" -msgstr "/Konversacio/_Pli" - -#, fuzzy +msgstr "/Konversacio/Medio/_Aŭda Alvoko" + msgid "/Conversation/Media/_Video Call" -msgstr "/Konversacio/_Pli" - -#, fuzzy +msgstr "/Konversacio/Medio/_Vida Alvoko" + msgid "/Conversation/Media/Audio\\/Video _Call" -msgstr "/Konversacio/Montru _Protokolon" +msgstr "/Konversacio/Medio/Aŭda\\/Vida Alvo_ko" msgid "/Conversation/Se_nd File..." msgstr "/Konversacio/Se_ndu Dosieron..." @@ -10693,17 +10479,14 @@ msgid "/Conversation/View Log" msgstr "/Konversacio/Montru Protokoladon" -#, fuzzy msgid "/Conversation/Media/Audio Call" -msgstr "/Konversacio/Pli" - -#, fuzzy +msgstr "/Konversacio/Medio/Aŭda Alvoko" + msgid "/Conversation/Media/Video Call" -msgstr "/Konversacio/Montru Protokoladon" - -#, fuzzy +msgstr "/Konversacio/Medio/Vida Alvoko" + msgid "/Conversation/Media/Audio\\/Video Call" -msgstr "/Konversacio/Pli" +msgstr "/Konversacio/Medio/Aŭda\\/Vida Alvoko" msgid "/Conversation/Send File..." msgstr "/Konversacio/Sendu Dosieron..." @@ -10881,9 +10664,8 @@ msgid "bug master" msgstr "" -#, fuzzy msgid "artist" -msgstr "Artisto" +msgstr "artisto" #. feel free to not translate this msgid "Ka-Hing Cheung" @@ -10895,9 +10677,8 @@ msgid "support" msgstr "subteno" -#, fuzzy msgid "webmaster" -msgstr "programisto kaj retestro" +msgstr "retestro" msgid "Senior Contributor/QA" msgstr "" @@ -10919,7 +10700,7 @@ msgstr "subteno/Kvalitkontrolo" msgid "XMPP" -msgstr "" +msgstr "XMPP" msgid "original author" msgstr "originala aŭtoro" @@ -10996,9 +10777,8 @@ msgid "French" msgstr "Franca" -#, fuzzy msgid "Irish" -msgstr "Kurda" +msgstr "Irlanda" msgid "Galician" msgstr "Galega" @@ -11018,9 +10798,8 @@ msgid "Hungarian" msgstr "Hungara" -#, fuzzy msgid "Armenian" -msgstr "Rumana" +msgstr "Armena" msgid "Indonesian" msgstr "Indonezia" @@ -11037,9 +10816,8 @@ msgid "Ubuntu Georgian Translators" msgstr "Ubuntaj Kartvelaj Tradukantoj" -#, fuzzy msgid "Khmer" -msgstr "Alia" +msgstr "Ĥmera" msgid "Kannada" msgstr "Kanara" @@ -11062,9 +10840,8 @@ msgid "Macedonian" msgstr "Makedona" -#, fuzzy msgid "Mongolian" -msgstr "Makedona" +msgstr "Mongola" msgid "Bokmål Norwegian" msgstr "Bokmål Norvega" @@ -11079,7 +10856,7 @@ msgstr "Norvega Ninorska" msgid "Occitan" -msgstr "" +msgstr "Okcitana" msgid "Punjabi" msgstr "Panĝaba" @@ -11115,13 +10892,13 @@ msgstr "Serba" msgid "Sinhala" -msgstr "" +msgstr "Sinhala" msgid "Swedish" msgstr "Sveda" msgid "Swahili" -msgstr "" +msgstr "Svahila" msgid "Tamil" msgstr "Tamila" @@ -11136,7 +10913,7 @@ msgstr "Turka" msgid "Urdu" -msgstr "" +msgstr "Urdua" msgid "Vietnamese" msgstr "Vjetnama" @@ -11194,14 +10971,15 @@ "\">support@pidgin.im

" msgstr "" -#, fuzzy, c-format +#, c-format msgid "" "IRC Channel: #pidgin on irc.freenode.net

" -msgstr "IRC: #pidgin ĉe irc.freenode.net

" - -#, fuzzy, c-format +msgstr "" +"IRC kanalo: #pidgin ĉe irc.freenode.net

" + +#, c-format msgid "XMPP MUC: devel@conference.pidgin.im

" -msgstr "IRC: #pidgin ĉe irc.freenode.net

" +msgstr "XMPP MUC: devel@conference.pidgin.im

" msgid "Current Developers" msgstr "Aktualaj Programistoj" @@ -11233,13 +11011,12 @@ msgid "Get User Info" msgstr "Ricevu Uzanto-Informon" -#, fuzzy msgid "" "Please enter the username or alias of the person whose info you would like " "to view." msgstr "" -"Bonvolu enigi la ekrannomon aŭ alinomon de persono kiesn informon vi dezrias " -"rigardi." +"Bonvolu enigi la uzantnomon aŭ alinomon de persono kiesan informon vi " +"deziras rigardi." msgid "View User Log" msgstr "Rigardu Uzanto-Protokolon" @@ -11337,45 +11114,35 @@ msgid "Right-click for more unread messages...\n" msgstr "Dektre-klaku por pliaj nelegitaj mesaĝoj...\n" -#, fuzzy msgid "_Change Status" -msgstr "Ŝanĝu staton" - -#, fuzzy +msgstr "Ŝ_anĝu staton" + msgid "Show Buddy _List" -msgstr "Montru kunulliston" - -#, fuzzy +msgstr "Montru Kunul_liston" + msgid "_Unread Messages" -msgstr "Nelegitaj mesaĝoj" - -#, fuzzy +msgstr "_Nelegitaj Mesaĝoj" + msgid "New _Message..." -msgstr "Nova mesaĝo..." - -#, fuzzy +msgstr "Nova _Mesaĝo..." + msgid "_Accounts" -msgstr "/_Kontoj" - -#, fuzzy +msgstr "_Kontoj" + msgid "Plu_gins" -msgstr "Kromaĵoj" - -#, fuzzy +msgstr "K_romaĵoj" + msgid "Pr_eferences" -msgstr "Agordo" - -#, fuzzy +msgstr "Ag_ordoj" + msgid "Mute _Sounds" -msgstr "Malsonorigu" - -#, fuzzy +msgstr "Mal_sonorigu" + msgid "_Blink on New Message" -msgstr "Flagri je Nova Mesaĝo" - -#, fuzzy +msgstr "_Flagri je Nova Mesaĝo" + msgid "_Quit" -msgstr "Finu" +msgstr "_Finu" msgid "Not started" msgstr "Malkomencita" @@ -11435,14 +11202,6 @@ msgid "File transfer _details" msgstr "Dosiero-transmeto _detaloj" -#. Pause button -msgid "_Pause" -msgstr "_Paŭzo" - -#. Resume button -msgid "_Resume" -msgstr "_Rekomenci" - msgid "Paste as Plain _Text" msgstr "Enmetu keil Plena _Teksto" @@ -11458,9 +11217,8 @@ msgid "Color to draw hyperlinks." msgstr "Koloro ligila." -#, fuzzy msgid "Hyperlink visited color" -msgstr "Ligila koloro" +msgstr "Vizitita ligilo koloro" msgid "Color to draw hyperlink after it has been visited (or activated)." msgstr "" @@ -11501,31 +11259,26 @@ msgid "Color to draw the name of a whispered action message." msgstr "" -#, fuzzy msgid "Whisper Message Name Color" -msgstr "Senditaj Mesaĝoj Nomoj Koloro" +msgstr "" msgid "Color to draw the name of a whispered message." msgstr "" -#, fuzzy msgid "Typing notification color" -msgstr "Avizo Forigo" - -#, fuzzy +msgstr "" + msgid "The color to use for the typing notification" -msgstr "Nova retpoŝt-avizoj" - -#, fuzzy +msgstr "" + msgid "Typing notification font" -msgstr "Ŝprucigu avizon" +msgstr "" msgid "The font to use for the typing notification" msgstr "" -#, fuzzy msgid "Enable typing notification" -msgstr "Nova retpoŝt-avizoj" +msgstr "" msgid "" "Unrecognized file type\n" @@ -11571,9 +11324,8 @@ msgid "_Save Image..." msgstr "_Konservi Bildon..." -#, fuzzy msgid "_Add Custom Smiley..." -msgstr "Montru personajn ridmienojn" +msgstr "_Aldoni Propajn Ridmienojn..." msgid "Select Font" msgstr "Elektu Tiparon" @@ -11622,9 +11374,8 @@ msgid "Smile!" msgstr "Ridetu!" -#, fuzzy msgid "_Manage custom smileys" -msgstr "Montru personajn ridmienojn" +msgstr "_Mastumi proprajn ridmienojn" msgid "This theme has no available smileys." msgstr "Tiu temo havas neniujn disponeblajn ridmienojn" @@ -11758,13 +11509,13 @@ #. Steal the "HELP" response and use it to trigger browsing to the logs folder msgid "_Browse logs folder" -msgstr "" +msgstr "_Foliumi protokolujon" #, c-format msgid "%s %s. Try `%s -h' for more information.\n" msgstr "%s %s. Provu `%s -h' por pli da informo.\n" -#, fuzzy, c-format +#, c-format msgid "" "%s %s\n" "Usage: %s [OPTION]...\n" @@ -11786,15 +11537,18 @@ "\n" " -c, --config=UJO uzu UJOn por agordo dosieroj\n" " -d, --debug montru sencimigajn mesaĝojn al stdout\n" +" -f, --force-online devigu konektita, sendistinge je reta stato\n" " -h, --help vidigu tiun helpon kaj finu\n" -" -m, --multiple ne devigu unuopa ruliĝo\n" +" -m, --multiple ne devigu unuopa ruliĝo\n" " -n, --nologin ne aŭtomate ensalutu\n" " -l, --login[=NOMO] aŭtomate ensalutu (fakultativa argumento NOMO " "specifas\n" -" konto(j)n uzendajn, disigitajn per komoj)\n" +" konto(j)n uzendajn, disigitajn per komoj.\n" +" Sen tio, nur la unua konto estos ensalutita).\n" +" --display=DISPLAY X vidilo uzenda\n" " -v, --version vidigu la aktualan version kaj finu\n" -#, fuzzy, c-format +#, c-format msgid "" "%s %s\n" "Usage: %s [OPTION]...\n" @@ -11815,12 +11569,15 @@ "\n" " -c, --config=UJO uzu UJOn por agordo dosieroj\n" " -d, --debug montru sencimigajn mesaĝojn al stdout\n" +" -f, --force-online devigu konektita, sendistinge je reta stato\n" " -h, --help vidigu tiun helpon kaj finu\n" " -m, --multiple ne devigu unuopa ruliĝo\n" " -n, --nologin ne aŭtomate ensalutu\n" " -l, --login[=NOMO] aŭtomate ensalutu (fakultativa argumento NOMO " "specifas\n" -" konto(j)n uzendajn, disigitajn per komoj)\n" +" konto(j)n uzendajn, disigitajn per komoj.\n" +" Sen tio, nur la unua konto estos ensalutita).\n" +" --display=DISPLAY X vidilo uzenda\n" " -v, --version vidigu la aktualan version kaj finu\n" #, c-format @@ -11849,14 +11606,13 @@ msgstr "" msgid "/_Media" -msgstr "" +msgstr "/_Medio" msgid "/Media/_Hangup" -msgstr "" - -#, fuzzy +msgstr "/Medio/_Rekroĉi" + msgid "Calling..." -msgstr "Kalkulante..." +msgstr "Alvokante..." #, c-format msgid "%s wishes to start an audio/video session with you." @@ -11866,6 +11622,12 @@ msgid "%s wishes to start a video session with you." msgstr "" +msgid "Incoming Call" +msgstr "" + +msgid "_Pause" +msgstr "_Paŭzo" + #, c-format msgid "%s has %d new message." msgid_plural "%s has %d new messages." @@ -11894,9 +11656,8 @@ msgstr "" "La 'Mana' foliumilo komando estis elektita, sed nenia komando estis difinita." -#, fuzzy msgid "No message" -msgstr "Nekonata mesaĝo" +msgstr "Neniu mesaĝo" msgid "Open All Messages" msgstr "Malfermu Ĉiujn Mesaĝojn" @@ -11904,16 +11665,14 @@ msgid "You have mail!" msgstr "Vi ricevis retmesaĝon!" -#, fuzzy msgid "New Pounces" -msgstr "Nova Kunul Atentigo" +msgstr "" msgid "Dismiss" msgstr "" -#, fuzzy msgid "You have pounced!" -msgstr "Vi ricevis retmesaĝon!" +msgstr "" msgid "The following plugins will be unloaded." msgstr "La jenajn kromaĵoj estos malŝarĝitaj." @@ -11932,30 +11691,25 @@ "startup." msgstr "" -#, fuzzy, c-format +#, c-format msgid "" "Error: %s\n" "Check the plugin website for an update." msgstr "" -"%s\n" -"Eraro: %s\n" -"Kontrolu kromaĵan retsituon por ĝisdatigo ." - -#, fuzzy +"Eraro: %s\n" +"Kontrolu kromaĵan retsituon por ĝisdatigo." + msgid "Author" -msgstr "Permesu" - -#, fuzzy +msgstr "Aŭtoro" + msgid "Written by:" -msgstr "Sendante Al:" - -#, fuzzy +msgstr "Verkita de::" + msgid "Web site:" -msgstr "Sendante Kiel:" - -#, fuzzy +msgstr "Retejo:" + msgid "Filename:" -msgstr "Uzantonomo:" +msgstr "Dosiernomo:" msgid "Configure Pl_ugin" msgstr "Agrod_u Kromaĵon" @@ -11966,9 +11720,8 @@ msgid "Select a file" msgstr "Elektu dosieron" -#, fuzzy msgid "Modify Buddy Pounce" -msgstr "Redaktu Kunul Atentigo" +msgstr "" #. Create the "Pounce on Whom" frame. msgid "Pounce on Whom" @@ -12043,57 +11796,55 @@ msgid "Pounce Target" msgstr "" -#, fuzzy, c-format +#, c-format msgid "Started typing" msgstr "Ektajpas" -#, fuzzy, c-format +#, c-format msgid "Paused while typing" msgstr "Paŭzas tajpante" -#, fuzzy, c-format +#, c-format msgid "Signed on" msgstr "Ensalutas" -#, fuzzy, c-format +#, c-format msgid "Returned from being idle" -msgstr "%s revenis el senfarado (%s)" - -#, fuzzy, c-format +msgstr "Revenis el senfarado" + +#, c-format msgid "Returned from being away" msgstr "Ekmalforiĝas" -#, fuzzy, c-format +#, c-format msgid "Stopped typing" msgstr "Ekmaltajpas" -#, fuzzy, c-format +#, c-format msgid "Signed off" msgstr "Audiaŭas" -#, fuzzy, c-format +#, c-format msgid "Became idle" msgstr "Eksenfaras" -#, fuzzy, c-format +#, c-format msgid "Went away" msgstr "Kiam fora" -#, fuzzy, c-format +#, c-format msgid "Sent a message" -msgstr "Sendu mesaĝon" +msgstr "Sendis mesaĝon" #, c-format msgid "Unknown.... Please report this!" msgstr "" -#, fuzzy msgid "Theme failed to unpack." -msgstr "GStreamer malsukcesis ekon." - -#, fuzzy +msgstr "" + msgid "Theme failed to load." -msgstr "Malsukcesis ŝargi bildon" +msgstr "" msgid "Theme failed to copy." msgstr "" @@ -12114,14 +11865,12 @@ msgid "Keyboard Shortcuts" msgstr "" -#, fuzzy msgid "Cl_ose conversations with the Escape key" -msgstr "Konversacioj kun %s" +msgstr "" #. Buddy List Themes -#, fuzzy msgid "Buddy List Theme" -msgstr "Kunullisto" +msgstr "" #. System Tray msgid "System Tray Icon" @@ -12133,9 +11882,8 @@ msgid "On unread messages" msgstr "Je nelegitaj mesaĝoj" -#, fuzzy msgid "Conversation Window" -msgstr "TM Konversacio Fenestroj" +msgstr "Konversacio Fenestroj" msgid "_Hide new IM conversations:" msgstr "_Kaŝu novajn TM-ajn konversaciojn:" @@ -12238,9 +11986,9 @@ msgid "Example: stunserver.org" msgstr "Ekzemplo: stunserver.org" -#, fuzzy, c-format +#, c-format msgid "Use _automatically detected IP address: %s" -msgstr "_Aŭtodetekti IP adreson" +msgstr "Uzi _aŭtodetektitan IP adreson: %s" msgid "Public _IP:" msgstr "Publika _IP:" @@ -12279,10 +12027,10 @@ msgstr "" msgid "Configure _Proxy" -msgstr "Agordu _Prokurilon" +msgstr "Agordi _Prokurilon" msgid "Configure _Browser" -msgstr "Agordu _Retumilon" +msgstr "Agordi _Retumilon" msgid "Proxy Server" msgstr "Prokura Servilo" @@ -12415,31 +12163,26 @@ "Sono k_omando:\n" "(%s por dosiernomo)" -#, fuzzy msgid "M_ute sounds" -msgstr "Malsonorigu" +msgstr "_Malsonorigu" msgid "Sounds when conversation has _focus" msgstr "Sonu kiam konversacio _fokusas" -#, fuzzy msgid "_Enable sounds:" -msgstr "Ŝaltu Sonojn:" - -#, fuzzy +msgstr "Ŝ_altu sonojn:" + msgid "V_olume:" -msgstr "Laŭteco:" +msgstr "Laŭtec_o:" msgid "Play" msgstr "Ludu" -#, fuzzy msgid "_Browse..." msgstr "Fol_iumi..." -#, fuzzy msgid "_Reset" -msgstr "Restarigu" +msgstr "_Restarigu" msgid "_Report idle time:" msgstr "_Raportu senfaran tempon:" @@ -12615,53 +12358,42 @@ "A custom smiley for '%s' already exists. Please use a different shortcut." msgstr "" -#, fuzzy msgid "Custom Smiley" -msgstr "Enmetu Ridmienon" - -#, fuzzy +msgstr "Propra Ridmieno" + msgid "Duplicate Shortcut" -msgstr "Duobligo Korekto" - -#, fuzzy +msgstr "Duobliga Ligilo" + msgid "Edit Smiley" -msgstr "Enmetu Ridmienon" - -#, fuzzy +msgstr "Redakti Ridmienon" + msgid "Add Smiley" -msgstr "Ridetu!" - -#, fuzzy +msgstr "Aldoni Ridmienon" + msgid "_Image:" -msgstr "B_ildon" +msgstr "B_ildon:" #. Shortcut text -#, fuzzy msgid "S_hortcut text:" -msgstr "Ordigi" - -#, fuzzy +msgstr "L_igilo teksto:" + msgid "Smiley" -msgstr "Ridetu!" - -#, fuzzy +msgstr "Ridmieno" + msgid "Shortcut Text" -msgstr "Ordigi" +msgstr "Ligilo teksto" msgid "Custom Smiley Manager" msgstr "" -#, fuzzy msgid "Select Buddy Icon" -msgstr "Elektu Kunulon" - -#, fuzzy +msgstr "Elektu Kunulan Piktogramon" + msgid "Click to change your buddyicon for this account." -msgstr "Uzu tiun kunul p_iktogramon por tiu konto:" - -#, fuzzy +msgstr "Klaku por ŝanĝi vian kunul-piktogramon por tiu konto." + msgid "Click to change your buddyicon for all accounts." -msgstr "Uzu tiun kunul p_iktogramon por tiu konto:" +msgstr "Klaku por ŝanĝi vian kunul-piktogramon por ĉiuj kontoj." msgid "Waiting for network connection" msgstr "Atendante retkonekto" @@ -12672,9 +12404,8 @@ msgid "Saved statuses..." msgstr "Konservitaj statoj..." -#, fuzzy msgid "Status Selector" -msgstr "Sono Elekto" +msgstr "Stato Elektilo" msgid "Google Talk" msgstr "Gogla Babilado" @@ -12770,9 +12501,8 @@ "Failed to load image '%s': reason not known, probably a corrupt image file" msgstr "" -#, fuzzy msgid "_Open Link" -msgstr "_Malfermu ligilon per:" +msgstr "_Malfermu ligilon" msgid "_Copy Link Location" msgstr "_Kopiu Ligilo-Lokon" @@ -12780,9 +12510,21 @@ msgid "_Copy Email Address" msgstr "_Kopiu Retadreson" +msgid "_Open File" +msgstr "Malfermu _Dosieron" + +msgid "Open _Containing Directory" +msgstr "" + msgid "Save File" msgstr "Konservu Dosieron" +msgid "_Play Sound" +msgstr "_Ludu sonon" + +msgid "_Save File" +msgstr "_Konservu Dosieron" + msgid "Select color" msgstr "Elektu koloron" @@ -12798,20 +12540,17 @@ msgid "_Invite" msgstr "_Ivitu" -#, fuzzy msgid "_Modify..." msgstr "Ŝ_anĝu..." -#, fuzzy msgid "_Add..." -msgstr "_Aldonu" +msgstr "_Aldonu.." msgid "_Open Mail" msgstr "_Malfermu retmesaĝon" -#, fuzzy msgid "_Edit" -msgstr "Redaktu" +msgstr "_Redaktu" msgid "Pidgin Tooltip" msgstr "" @@ -12828,9 +12567,8 @@ msgid "none" msgstr "neniu" -#, fuzzy msgid "Small" -msgstr "Retadreso" +msgstr "Malgranda" msgid "Smaller versions of the default smilies" msgstr "" @@ -12874,66 +12612,55 @@ msgid "Displays statistical information about your buddies' availability" msgstr "" -#, fuzzy msgid "Server name request" -msgstr "Servilo adreso" - -#, fuzzy +msgstr "" + msgid "Enter an XMPP Server" -msgstr "Enigu Konferencan Servilon" - -#, fuzzy +msgstr "Enigu XMPP Servilon" + msgid "Select an XMPP server to query" -msgstr "Elektu konferencan servilon petendan" - -#, fuzzy +msgstr "Elektu XMPP servilon petendan" + msgid "Find Services" -msgstr "Trovu kunulojn" - -#, fuzzy +msgstr "Trovu Servojn" + msgid "Add to Buddy List" -msgstr "Sendu Kunulliston" - -#, fuzzy +msgstr "Aldoni al Kunulliston" + msgid "Gateway" -msgstr "Foriĝas" - -#, fuzzy +msgstr "" + msgid "Directory" -msgstr "Protokolo Dosierujo" - -#, fuzzy +msgstr "Dosierujo" + msgid "PubSub Collection" -msgstr "Sono Elekto" +msgstr "" msgid "PubSub Leaf" msgstr "" -#, fuzzy msgid "" "\n" "Description: " -msgstr "Priskibo" +msgstr "" +"\n" +"Priskibo: " #. Create the window. -#, fuzzy msgid "Service Discovery" -msgstr "Servico Malkovrado Informo" - -#, fuzzy +msgstr "Servo Malkovrado" + msgid "_Browse" -msgstr "_Retumilo:" - -#, fuzzy +msgstr "_Retumilo" + msgid "Server does not exist" -msgstr "Uzanto ne ekzistas" +msgstr "Servilo ne ekzistas" msgid "Server does not support service discovery" msgstr "" -#, fuzzy msgid "XMPP Service Discovery" -msgstr "Servico Malkovrado Informo" +msgstr "XMPP Servo Malkovrado" msgid "Allows browsing and registering services." msgstr "" @@ -13184,9 +12911,8 @@ msgid "Please enter the person's information below." msgstr "" -#, fuzzy msgid "Please enter the buddy's username and account type below." -msgstr "Bonvolu enigi la kunul ekrannomo kaj kontotipo sube." +msgstr "Bonvolu enigi la kunul uzantnomon kaj kontotipon sube." msgid "Account type:" msgstr "Konto tipo:" @@ -13316,7 +13042,6 @@ msgstr "Muzika Mesaĝilo Kromaĵo por kunlaboranta verkado." #. * summary -#, fuzzy msgid "" "The Music Messaging Plugin allows a number of users to simultaneously work " "on a piece of music by editing a common score in real-time." @@ -13328,9 +13053,8 @@ msgid "Notify For" msgstr "Avizu Por" -#, fuzzy msgid "\t_Only when someone says your username" -msgstr "\t_Nur kiam iun diras vian ekran nomon" +msgstr "\t_Nur kiam iun diras vian uzantnomon" msgid "_Focused windows" msgstr "_Fokusitaj fenestoj" @@ -13354,18 +13078,16 @@ msgid "Set window manager \"_URGENT\" hint" msgstr "Dinifu fenestrtraktilan \"_URĜANTA\" indikon" -#, fuzzy msgid "_Flash window" -msgstr "B_abilfenestroj" +msgstr "" #. Raise window method button msgid "R_aise conversation window" msgstr "Startigu konversacio-fenestron" #. Present conversation method button -#, fuzzy msgid "_Present conversation window" -msgstr "Startigu konversacio-fenestron" +msgstr "_Nuna konversacio-fenestro" #. ---------- "Notification Removals" ---------- msgid "Notification Removal" @@ -13437,16 +13159,14 @@ msgid "Hyperlink Color" msgstr "Ligilo Koloro" -#, fuzzy msgid "Visited Hyperlink Color" -msgstr "Ligilo Koloro" +msgstr "Vizitita Ligilo Koloro" msgid "Highlighted Message Name Color" msgstr "Emfazitaj Mesaĝoj Nomo Koloro" -#, fuzzy msgid "Typing Notification Color" -msgstr "Avizo Forigo" +msgstr "" msgid "GtkTreeView Horizontal Separation" msgstr "" @@ -13477,17 +13197,14 @@ msgid "GTK+ Text Shortcut Theme" msgstr "" -#, fuzzy msgid "Disable Typing Notification Text" -msgstr "Nova retpoŝt-avizoj" - -#, fuzzy +msgstr "" + msgid "GTK+ Theme Control Settings" -msgstr "Piĝin GTK+ Etoso Kontrolo" - -#, fuzzy +msgstr "GTK+ Etoso Kontrolo Agordoj" + msgid "Colors" -msgstr "Fermu" +msgstr "Koloroj" msgid "Fonts" msgstr "Tiparoj" @@ -13529,13 +13246,11 @@ msgid "New Version Available" msgstr "Nova Versio Disponebla" -#, fuzzy msgid "Later" -msgstr "Dato" - -#, fuzzy +msgstr "Poste" + msgid "Download Now" -msgstr "Uzantoj ĉe %s: %s" +msgstr "Elŝuti Nun" #. *< type #. *< ui_requirement @@ -13567,15 +13282,13 @@ #. *< dependencies #. *< priority #. *< id -#, fuzzy msgid "Send Button" -msgstr "Sendu Al" +msgstr "Send-Butono" #. *< name #. *< version -#, fuzzy msgid "Conversation Window Send Button." -msgstr "Konversacio Fenestroj Kaŝeco" +msgstr "Konversacio Fenestro Sendo Butono." #. *< summary msgid "" @@ -13632,91 +13345,76 @@ msgid "Replaces text in outgoing messages according to user-defined rules." msgstr "Anstataŭigu tekston en elirantaj mesaĝoj laŭ uzantodfinitaj reguloj." -#, fuzzy msgid "Just logged in" -msgstr "Ne ensalutita" - -#, fuzzy +msgstr "Ĵus ensalutita" + msgid "Just logged out" -msgstr "Ne ensalutita" +msgstr "Ĵus elsalutita" msgid "" "Icon for Contact/\n" "Icon for Unknown person" msgstr "" -#, fuzzy msgid "Icon for Chat" -msgstr "Aliĝu Babilejon" - -#, fuzzy +msgstr "Piktogramo por Babilejo" + msgid "Ignored" -msgstr "Ignoru" - -#, fuzzy +msgstr "Ignorita" + msgid "Founder" -msgstr "Pli Laŭte" - -#, fuzzy +msgstr "" + +#. A user in a chat room who has special privileges. msgid "Operator" -msgstr "Opero" - +msgstr "" + +#. A half operator is someone who has a subset of the privileges +#. that an operator has. msgid "Half Operator" msgstr "" -#, fuzzy msgid "Authorization dialog" -msgstr "Permeso Donita" - -#, fuzzy +msgstr "" + msgid "Error dialog" -msgstr "Eraro " - -#, fuzzy +msgstr "" + msgid "Information dialog" -msgstr "Informo" +msgstr "" msgid "Mail dialog" msgstr "" -#, fuzzy msgid "Question dialog" -msgstr "Peto Dialogujo" - -#, fuzzy +msgstr "" + msgid "Warning dialog" -msgstr "Averto" +msgstr "" msgid "What kind of dialog is this?" msgstr "" -#, fuzzy msgid "Status Icons" -msgstr "Stato por %s" - -#, fuzzy +msgstr "" + msgid "Chatroom Emblems" -msgstr "Babilejo lokaĵaro" - -#, fuzzy +msgstr "" + msgid "Dialog Icons" -msgstr "Konservu Piktogramon" - -#, fuzzy +msgstr "" + msgid "Pidgin Icon Theme Editor" -msgstr "Piĝin GTK+ Etoso Kontrolo" - -#, fuzzy +msgstr "Piĝin Piktogramo Etoso Redaktilo" + msgid "Contact" -msgstr "Kontakto Informo" - -#, fuzzy +msgstr "Kontakto" + msgid "Pidgin Buddylist Theme Editor" -msgstr "Kunullisto" - -#, fuzzy +msgstr "" + msgid "Edit Buddylist Theme" -msgstr "Kunullisto" +msgstr "" msgid "Edit Icon Theme" msgstr "" @@ -13728,16 +13426,14 @@ #. *< priority #. *< id #. * description -#, fuzzy msgid "Pidgin Theme Editor" -msgstr "Piĝin GTK+ Etoso Kontrolo" +msgstr "Piĝin Etoso Redaktilo" #. *< name #. *< version #. * summary -#, fuzzy msgid "Pidgin Theme Editor." -msgstr "Piĝin GTK+ Etoso Kontrolo" +msgstr "Piĝin Etoso Redaktilo." #. *< type #. *< ui_requirement @@ -13902,10 +13598,9 @@ msgid "Options specific to Pidgin for Windows." msgstr "Opcioj apartaj al Piĝin Vindoza." -#, fuzzy msgid "" "Provides options specific to Pidgin for Windows, such as buddy list docking." -msgstr "Opcioj apartaj al Piĝin Vindoza." +msgstr "" msgid "Logged out." msgstr "" @@ -13944,6 +13639,12 @@ msgid "This plugin is useful for debbuging XMPP servers or clients." msgstr "" +#~ msgid "Invitation Rejected" +#~ msgstr "Invito malakceptita" + +#~ msgid "_Resume" +#~ msgstr "_Rekomenci" + #~ msgid "Connection failed." #~ msgstr "Konekto malsukcesis." @@ -14038,24 +13739,12 @@ #~ msgid "Could Not Connect" #~ msgstr "Ne Povas Konekti" -#, fuzzy -#~ msgid "Invalid username." -#~ msgstr "Malvalida Uzantonomo" - -#, fuzzy -#~ msgid "Could not decrypt server reply" -#~ msgstr "Konekto servilo" - #~ msgid "Connection lost" #~ msgstr "Konekto perdita" #~ msgid "Connection closed (writing)" #~ msgstr "Koneto fermita (skribante)" -#, fuzzy -#~ msgid "Incorrect Password" -#~ msgstr "Misa pasvorto" - #~ msgid "Yahoo Japan" #~ msgstr "Yahoo Japanio" @@ -14075,10 +13764,6 @@ #~ msgid "Conversation Window Hiding" #~ msgstr "Konversacio Fenestroj Kaŝeco" -#, fuzzy -#~ msgid "Please select an image for the smiley." -#~ msgstr "Bonvolu enigi novan nomon por vi." - #~ msgid "Activate which ID?" #~ msgstr "Ŝaltu kiun ID?" @@ -14094,33 +13779,9 @@ #~ msgid "Widget Sizes" #~ msgstr "Fenestraĵo Grandecoj" -#, fuzzy -#~ msgid "Invite message" -#~ msgstr "Enmetu en mesaĝon" - -#, fuzzy -#~ msgid "" -#~ "Please enter the name of the user you wish to invite,\n" -#~ "along with an optional invite message." -#~ msgstr "" -#~ "Bonvolu enigi la nomon de uzanto kiun vi deziras inviti, kun fakultativan " -#~ "invitmesaĝon." - #~ msgid "Unable to retrieve MSN Address Book" #~ msgstr "Ne eblas ricevi MSN Adresaron" -#, fuzzy -#~ msgid "Add buddy Q&A" -#~ msgstr "Aldonu Kunulon" - -#, fuzzy -#~ msgid "" -#~ "Lost connection with server:\n" -#~ "%d, %s" -#~ msgstr "" -#~ "Perdis konekton kun servilo:\n" -#~ "%s" - #~ msgid "Failed to send IM." #~ msgstr "Malsukcesis sendi tujmesaĝon." @@ -14130,10 +13791,6 @@ #~ msgid "Country not supported." #~ msgstr "Lando ne subtenita." -#, fuzzy -#~ msgid "Incorrect username or password." -#~ msgstr "Misa ekrannomo aŭ pasvorto." - #~ msgid "An unknown signon error has occurred: %s." #~ msgstr "Nekonata ensaluteraro okazis: %s." @@ -14185,10 +13842,6 @@ #~ msgid "ST_UN server:" #~ msgstr "ST_UN servilo:" -#, fuzzy -#~ msgid "Smiley _Image" -#~ msgstr "Konservu Bildon" - #~ msgid "A group with the name already exists." #~ msgstr "Samnomita grupo jam ekzistas." @@ -14198,17 +13851,9 @@ #~ msgid "Blood Type" #~ msgstr "Sanga Tipo" -#, fuzzy -#~ msgid "Successed:" -#~ msgstr "Rapideco:" - #~ msgid "Invalid QQ Face" #~ msgstr "Malvalida QQ Aspekto" -#, fuzzy -#~ msgid "QQ Number Error" -#~ msgstr "QQ Nombro" - #~ msgid "Group Description" #~ msgstr "Grupo Priskribo" @@ -14221,31 +13866,15 @@ #~ msgid "I am a member" #~ msgstr "Mi estas membro" -#, fuzzy -#~ msgid "I am requesting" -#~ msgstr "Malbona Demando" - #~ msgid "Unknown status" #~ msgstr "Nekonata stato" -#, fuzzy -#~ msgid "Remove from Qun" -#~ msgstr "Forigu Grupon" - #~ msgid "Are you sure you want to leave this Qun?" #~ msgstr "Ĉu vi certas vi volas forigi tiun Qun?" #~ msgid "Do you want to approve the request?" #~ msgstr "Ĉu vi volas jesi tiun demandon?" -#, fuzzy -#~ msgid "Change Qun member" -#~ msgstr "Telefonnumero" - -#, fuzzy -#~ msgid "Change Qun information" -#~ msgstr "Ŝanĝu uzanto-informon de %s" - #~ msgid "System Message" #~ msgstr "Sistema Mesaĝo" @@ -14255,50 +13884,6 @@ #~ msgid "Block this buddy" #~ msgstr "Bloku tiun kunulon" -#, fuzzy -#~ msgid "Error password: %s" -#~ msgstr "Erara ŝanĝante pasvorton" - -#, fuzzy -#~ msgid "Failed to connect all servers" -#~ msgstr "Malsukcesis konekti servilon." - -#, fuzzy -#~ msgid "Connecting server %s, retries %d" -#~ msgstr "Konekto servilo" - -#, fuzzy -#~ msgid "Do you approve the requestion?" -#~ msgstr "Ĉu vi volas jesi tiun demandon?" - -#, fuzzy -#~ msgid "Do you add the buddy?" -#~ msgstr "Ĉu vi volas aldoni tiun kunul?" - -#, fuzzy -#~ msgid "%s added you [%s] to buddy list" -#~ msgstr "%s aldonis vin [%s] en sia kunul listo" - -#, fuzzy -#~ msgid "QQ Budy" -#~ msgstr "Kunul" - -#, fuzzy -#~ msgid "%s is not in buddy list" -#~ msgstr "%s aldonis vin en sia kunul listo." - -#, fuzzy -#~ msgid "Would you add?" -#~ msgstr "Ĉu vi deziras aldoni ŝlin?" - -#, fuzzy -#~ msgid "QQ Server Notice" -#~ msgstr "Servilo pordo" - -#, fuzzy -#~ msgid "Network disconnected" -#~ msgstr "%s malkontaktita" - #~ msgid "developer" #~ msgstr "programisto" diff -r c138390bada8 -r 7763697a85c8 po/he.po --- a/po/he.po Thu Aug 13 17:40:00 2009 +0000 +++ b/po/he.po Mon Aug 24 19:21:21 2009 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: he\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-27 19:57-0700\n" -"PO-Revision-Date: 2009-07-27 16:21+0200\n" +"POT-Creation-Date: 2009-08-15 09:57-0400\n" +"PO-Revision-Date: 2009-08-16 08:51+0200\n" "Last-Translator: Shalom Craimer \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" @@ -47,13 +47,8 @@ " -v, --version הצג את הגירסא של התוכנה וצא\n" #, c-format -msgid "" -"%s encountered errors migrating your settings from %s to %s. Please " -"investigate and complete the migration by hand. Please report this error at " -"http://developer.pidgin.im" -msgstr "" -"%s נתקל בשגיאות בעת המרת הגדרותיך מ- %s ל- %s. יש לחקור את העניין, ולסיים את " -"ההעברה ידנית. נשמח אם באפשורתך לדווח על תקלה זו ב- http://developer.pidgin.im" +msgid "%s encountered errors migrating your settings from %s to %s. Please investigate and complete the migration by hand. Please report this error at http://developer.pidgin.im" +msgstr "%s נתקל בשגיאות בעת המרת הגדרותיך מ- %s ל- %s. יש לחקור את העניין, ולסיים את ההעברה ידנית. נשמח אם באפשורתך לדווח על תקלה זו ב- http://developer.pidgin.im" msgid "Error" msgstr "שגיאה" @@ -349,11 +344,8 @@ msgid "Unblock" msgstr "הסר חסימה" -msgid "" -"Please enter the username or alias of the person you would like to Block/" -"Unblock." -msgstr "" -"יש להזין את שם המשתמש או הכינוי של האדם אותו ברצונך לחסום/להוציא מחסימה." +msgid "Please enter the username or alias of the person you would like to Block/Unblock." +msgstr "יש להזין את שם המשתמש או הכינוי של האדם אותו ברצונך לחסום/להוציא מחסימה." #. Not multiline #. Not masked? @@ -379,11 +371,8 @@ msgid "Join" msgstr "הצטרף" -msgid "" -"Please enter the username or alias of the person whose log you would like to " -"view." -msgstr "" -"יש להזין את שם המשתמש או הכינוי של האדם שאת יומן-השיחות שלו ברצונך לקרוא." +msgid "Please enter the username or alias of the person whose log you would like to view." +msgstr "יש להזין את שם המשתמש או הכינוי של האדם שאת יומן-השיחות שלו ברצונך לקרוא." #. Create the "Options" frame. msgid "Options" @@ -529,8 +518,7 @@ msgid "" "%s\n" "\n" -"Finch will not attempt to reconnect the account until you correct the error " -"and re-enable the account." +"Finch will not attempt to reconnect the account until you correct the error and re-enable the account." msgstr "" "%s\n" "\n" @@ -539,12 +527,8 @@ msgid "Re-enable Account" msgstr "הפעל מחדש חשבון" -msgid "" -"The account has disconnected and you are no longer in this chat. You will be " -"automatically rejoined in the chat when the account reconnects." -msgstr "" -"החשבון נותק וכבר אינך בצא'ט זה. החזרה לצ'אט תיעשה באופן אוטומטי ברגע שהחשבון " -"יתחבר מחדש." +msgid "The account has disconnected and you are no longer in this chat. You will be automatically rejoined in the chat when the account reconnects." +msgstr "החשבון נותק וכבר אינך בצא'ט זה. החזרה לצ'אט תיעשה באופן אוטומטי ברגע שהחשבון יתחבר מחדש." msgid "No such command." msgstr "אין פקודה כזו." @@ -589,8 +573,7 @@ msgid "Logging started. Future messages in this conversation will be logged." msgstr "רישום הוחל. הודעות בשיחה זו יירשמו מעתה." -msgid "" -"Logging stopped. Future messages in this conversation will not be logged." +msgid "Logging stopped. Future messages in this conversation will not be logged." msgstr "רישום הופסק. הודעות בשיחה זו לא יירשמו מעתה." msgid "Send To" @@ -640,28 +623,20 @@ "להלן הפקודות שאפשריים בהקשר הנוכחי:\n" #, c-format -msgid "" -"%s is not a valid message class. See '/help msgcolor' for valid message " -"classes." -msgstr "" -"%s אינו מחלקת מסרים תקפה. יש לראות את המידע בתוך '/help msgcolor' לרשימה של " -"מחלקות-מסרים תקפות." +msgid "%s is not a valid message class. See '/help msgcolor' for valid message classes." +msgstr "%s אינו מחלקת מסרים תקפה. יש לראות את המידע בתוך '/help msgcolor' לרשימה של מחלקות-מסרים תקפות." #, c-format msgid "%s is not a valid color. See '/help msgcolor' for valid colors." msgstr "%s אינו צבע תקף. יש לראות את '/help msgcolor' לצבעים תקפים." -msgid "" -"say <message>: Send a message normally as if you weren't using a " -"command." +msgid "say <message>: Send a message normally as if you weren't using a command." msgstr "say <message>: שלח הודעה כרגיל, כאילו לא דרך פקודה." msgid "me <action>: Send an IRC style action to a buddy or chat." msgstr "me <action>: שלח למשתמש או צ'אט פעולה נוסח IRC." -msgid "" -"debug <option>: Send various debug information to the current " -"conversation." +msgid "debug <option>: Send various debug information to the current conversation." msgstr "debug <option>: שלח כל מיני רסיסי מידע לחלון שיחה הנוכחי." msgid "clear: Clears the conversation scrollback." @@ -691,18 +666,8 @@ msgid "statuses: Show the savedstatuses window." msgstr "statuses: הצג את חלון המצבים-השמורים." -msgid "" -"msgcolor <class> <foreground> <background>: Set the color " -"for different classes of messages in the conversation window.
<" -"class>: receive, send, highlight, action, timestamp
<foreground/" -"background>: black, red, green, blue, white, gray, darkgray, magenta, " -"cyan, default

EXAMPLE:
msgcolor send cyan default" -msgstr "" -"msgcolor <מחלקה> <צבע-תוכן> <רקע>: קבע צבע עבור מחלקות " -"שונות של הודעות בחלון השיחה.
<מחלקה>: receive, send, highlight, " -"action, timestamp
<צבע-תוכן/רקע>: black, red, green, blue, " -"white, gray, darkgray, magenta, cyan, default

לדוגמא:
msgcolor " -"send cyan default" +msgid "msgcolor <class> <foreground> <background>: Set the color for different classes of messages in the conversation window.
<class>: receive, send, highlight, action, timestamp
<foreground/background>: black, red, green, blue, white, gray, darkgray, magenta, cyan, default

EXAMPLE:
msgcolor send cyan default" +msgstr "msgcolor <מחלקה> <צבע-תוכן> <רקע>: קבע צבע עבור מחלקות שונות של הודעות בחלון השיחה.
<מחלקה>: receive, send, highlight, action, timestamp
<צבע-תוכן/רקע>: black, red, green, blue, white, gray, darkgray, magenta, cyan, default

לדוגמא:
msgcolor send cyan default" msgid "Unable to open file." msgstr "אין אפשרות לפתוח את הקובץ." @@ -804,18 +769,13 @@ msgid "%B %Y" msgstr "%B %Y" -msgid "" -"System events will only be logged if the \"Log all status changes to system " -"log\" preference is enabled." +msgid "System events will only be logged if the \"Log all status changes to system log\" preference is enabled." msgstr "אירועי מערכת רק יירשמו אם סומן \"רשום כל שינויי סטטוס ליומן המערכת\"." -msgid "" -"Instant messages will only be logged if the \"Log all instant messages\" " -"preference is enabled." +msgid "Instant messages will only be logged if the \"Log all instant messages\" preference is enabled." msgstr "הודעות רק יירשמו אם סומן \"רשום את כל ההודעות\"." -msgid "" -"Chats will only be logged if the \"Log all chats\" preference is enabled." +msgid "Chats will only be logged if the \"Log all chats\" preference is enabled." msgstr "צ'אטים רק יירשמו אם סומן \"רשום את כל הצ'אטים\"." msgid "No logs were found" @@ -955,11 +915,8 @@ msgid "The selected file is not a valid plugin." msgstr "הקובץ שנבחר אינו תוסף." -msgid "" -"Please open the debug window and try again to see the exact error message." -msgstr "" -"יש לפתוח את חלון ניפוי הבאגים ולנסות שוב על מנת לראות את הודעת השגיאה " -"המדוייקת." +msgid "Please open the debug window and try again to see the exact error message." +msgstr "יש לפתוח את חלון ניפוי הבאגים ולנסות שוב על מנת לראות את הודעת השגיאה המדוייקת." msgid "Select plugin to install" msgstr "יש לבחור תוסף להתקין" @@ -1395,9 +1352,7 @@ msgid "Clipboard plugin" msgstr "תוסף לוח ההעתקה" -msgid "" -"When the gnt clipboard contents change, the contents are made available to " -"X, if possible." +msgid "When the gnt clipboard contents change, the contents are made available to X, if possible." msgstr "כאשר תוכן לוח ההעתקה של gnt משתנה, התוכן גם נעשה זמין עבור X, אם ניתן." #, c-format @@ -1457,8 +1412,7 @@ msgid "" "Logging can be enabled from Tools -> Preferences -> Logging.\n" "\n" -"Enabling logs for instant messages and/or chats will activate history for " -"the same conversation type(s)." +"Enabling logs for instant messages and/or chats will activate history for the same conversation type(s)." msgstr "" "ניתן לאפשר רישום מתוך כלים -> העדפות -> רישום.\n" "\n" @@ -1470,9 +1424,7 @@ msgid "Shows recently logged conversations in new conversations." msgstr "מציג שיחות אחרונות בחלונות שיחה חדשות." -msgid "" -"When a new conversation is opened this plugin will insert the last " -"conversation into the current conversation." +msgid "When a new conversation is opened this plugin will insert the last conversation into the current conversation." msgstr "כאשר חלון שיחה חדש נפתח, תוסף זה יכניס את השיחה האחרונה לראש החלון." msgid "Online" @@ -1644,20 +1596,16 @@ msgid "_View Certificate..." msgstr "הצג תעודה..." -#. Prompt the user to authenticate the certificate -#. vrq will be completed by user_auth -#, c-format -msgid "" -"The certificate presented by \"%s\" is self-signed. It cannot be " -"automatically checked." -msgstr "" -"התעודה שהוצגה על ידי \"%s\" נחתמה על ידי עצמה. לא ניתן לבצע בדיקה אוטומטית." - -#. FIXME 2.6.1 -#, c-format -msgid "The certificate chain presented for %s is not valid." -msgstr "שרשרת רשויות הנפקת התעודה עבור %s אינה תקפה." - +#, c-format +msgid "The certificate presented by \"%s\" claims to be from \"%s\" instead. This could mean that you are not connecting to the service you believe you are." +msgstr "תעודה שהוצגה על ידי \"%s\" טוענת שהיא באה בעצם מתוך \"%s\". ייתכן וזה אומר שהשירות אליו התחברת אינו השירות שחשבת." + +#. Had no CA pool, so couldn't verify the chain *and* +#. * the subject name isn't valid. +#. * I think this is bad enough to warrant a fatal error. It's +#. * not likely anyway... +#. +#. TODO: Probably wrong. #. TODO: Make this error either block the ensuing SSL #. connection error until the user dismisses this one, or #. stifle it. @@ -1670,41 +1618,36 @@ msgid "Invalid certificate chain" msgstr "שרשרת תעודות לא-תקפה" +#. The subject name is correct, but we weren't able to verify the +#. * chain because there was no pool of root CAs found. Prompt the user +#. * to validate it. +#. #. vrq will be completed by user_auth -msgid "" -"You have no database of root certificates, so this certificate cannot be " -"validated." +msgid "You have no database of root certificates, so this certificate cannot be validated." msgstr "אין לך מסד-נתונים של תעודות שורש, אז לא ניתן לאשרר תעודה זו." +#. Prompt the user to authenticate the certificate +#. vrq will be completed by user_auth +#, c-format +msgid "The certificate presented by \"%s\" is self-signed. It cannot be automatically checked." +msgstr "התעודה שהוצגה על ידי \"%s\" נחתמה על ידי עצמה. לא ניתן לבצע בדיקה אוטומטית." + +#. FIXME 2.6.1 +#, c-format +msgid "The certificate chain presented for %s is not valid." +msgstr "שרשרת רשויות הנפקת התעודה עבור %s אינה תקפה." + #. vrq will be completed by user_auth -msgid "" -"The root certificate this one claims to be issued by is unknown to Pidgin." +msgid "The root certificate this one claims to be issued by is unknown to Pidgin." msgstr "תעודת-השורש שלכאורה הנפיקה את התעודה אינה מוכרת לפידג'ין." #, c-format -msgid "" -"The certificate chain presented by %s does not have a valid digital " -"signature from the Certificate Authority from which it claims to have a " -"signature." -msgstr "" -"שרשרת התעודות שהוצגה על ידי %s לא מכילה חתימה תקפה מרשויות ההנפקה שמהם היא " -"טוענת שיש לה חתימה." +msgid "The certificate chain presented by %s does not have a valid digital signature from the Certificate Authority from which it claims to have a signature." +msgstr "שרשרת התעודות שהוצגה על ידי %s לא מכילה חתימה תקפה מרשויות ההנפקה שמהם היא טוענת שיש לה חתימה." msgid "Invalid certificate authority signature" msgstr "חתימת רשות הנפקות לא תקפה" -#. Prompt the user to authenticate the certificate -#. TODO: Provide the user with more guidance about why he is -#. being prompted -#. vrq will be completed by user_auth -#, c-format -msgid "" -"The certificate presented by \"%s\" claims to be from \"%s\" instead. This " -"could mean that you are not connecting to the service you believe you are." -msgstr "" -"תעודה שהוצגה על ידי \"%s\" טוענת שהיא באה בעצם מתוך \"%s\". ייתכן וזה אומר " -"שהשירות אליו התחברת אינו השירות שחשבת." - #. Make messages #, c-format msgid "" @@ -1741,6 +1684,7 @@ msgstr "+++ %s התנתק" #. Unknown error +#, c-format msgid "Unknown error" msgstr "שגיאה לא מוכרת" @@ -1791,9 +1735,7 @@ msgstr "הזמן לצ'אט" #. Put our happy label in it. -msgid "" -"Please enter the name of the user you wish to invite, along with an optional " -"invite message." +msgid "Please enter the name of the user you wish to invite, along with an optional invite message." msgstr "יש להזין את שם המשתמש שברצונך להזמין, יחד עם הודעת הזמנה אופציונלית." #, c-format @@ -2011,49 +1953,31 @@ msgid "The handler for \"ymsgr\" URLs" msgstr "המטפל בכתובות \"ymsgr\"" -msgid "" -"True if the command specified in the \"command\" key should handle \"aim\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"aim\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"gg\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"gg\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"gg\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"icq\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"icq\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"icq\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"irc\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"irc\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"irc\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"msnim\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"msnim\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"msnim\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"sip\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"sip\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"aim\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"xmpp\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"xmpp\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"xmpp\"." -msgid "" -"True if the command specified in the \"command\" key should handle \"ymsgr\" " -"URLs." +msgid "True if the command specified in the \"command\" key should handle \"ymsgr\" URLs." msgstr "אמת אם הפקודה שהוגדרת לכפתור \"פקודה\" צריך לטפל בכתובות \"ymsgr\"." -msgid "" -"True if the command used to handle this type of URL should be run in a " -"terminal." +msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "אמת אם הפקודה לטיפול בסוג זה של כתובת צריכה לרוץ בטרמינל." msgid "Whether the specified command should handle \"aim\" URLs" @@ -2099,20 +2023,12 @@ msgstr "XML" #, c-format -msgid "" -"(%s) %s <AUTO-" -"REPLY>: %s
\n" -msgstr "" -"(%s) %s <מענה " -"אוטומטי>: %s
\n" - -#, c-format -msgid "" -"(%s) %s <AUTO-" -"REPLY>: %s
\n" -msgstr "" -"(%s) %s <מענה " -"אוטומטי>: %s
\n" +msgid "(%s) %s <AUTO-REPLY>: %s
\n" +msgstr "(%s) %s <מענה אוטומטי>: %s
\n" + +#, c-format +msgid "(%s) %s <AUTO-REPLY>: %s
\n" +msgstr "(%s) %s <מענה אוטומטי>: %s
\n" msgid "Unable to find log path!" msgstr "לא ניתן למצוא את נתיב הרישום!" @@ -2143,14 +2059,11 @@ msgid "ABI version mismatch %d.%d.x (need %d.%d.x)" msgstr "אי-התאמה בגירסת ABI %d.%d.x (צריך %d.%d.x)" -msgid "" -"Plugin does not implement all required functions (list_icon, login and close)" +msgid "Plugin does not implement all required functions (list_icon, login and close)" msgstr "התוסף לא מיישם את כל הפונקציות הדרושות (list_icon, login וכן close)" #, c-format -msgid "" -"The required plugin %s was not found. Please install this plugin and try " -"again." +msgid "The required plugin %s was not found. Please install this plugin and try again." msgstr "חסר תוסף %s. מומלץ להתקין את התוסף מחדש ולנסות שנית." msgid "Unable to load the plugin" @@ -2351,12 +2264,8 @@ msgstr "בודק תמיכה ב-IPC, כלקוח." #. * description -msgid "" -"Test plugin IPC support, as a client. This locates the server plugin and " -"calls the commands registered." -msgstr "" -"בודק את תוסף התמיכה ב-IPC, כלקוח. זה מאתר את השרת של התוסף וקורא לפקודות " -"הרשומות." +msgid "Test plugin IPC support, as a client. This locates the server plugin and calls the commands registered." +msgstr "בודק את תוסף התמיכה ב-IPC, כלקוח. זה מאתר את השרת של התוסף וקורא לפקודות הרשומות." #. *< type #. *< ui_requirement @@ -2405,12 +2314,8 @@ msgstr "מסתיר הודעות הצטרפות/עזיבה לא נחוצות." #. * description -msgid "" -"This plugin hides join/part messages in large rooms, except for those users " -"actively taking part in a conversation." -msgstr "" -"תוסף זה מסתיר הודעות הצטרפות/עזיבה בחדרי-צ'אט גדולים, מלבד עבור אותם משתמשים " -"שלוקחים חלק פעיל בשיחה." +msgid "This plugin hides join/part messages in large rooms, except for those users actively taking part in a conversation." +msgstr "תוסף זה מסתיר הודעות הצטרפות/עזיבה בחדרי-צ'אט גדולים, מלבד עבור אותם משתמשים שלוקחים חלק פעיל בשיחה." #. This is used in the place of a timezone abbreviation if the #. * offset is way off. The user should never really see it, but @@ -2435,9 +2340,7 @@ msgid "You were disconnected from the server." msgstr "נותקת מהשרת." -msgid "" -"You are currently disconnected. Messages will not be received unless you are " -"logged in." +msgid "You are currently disconnected. Messages will not be received unless you are logged in." msgstr "את/ה כרגע מנותק/ת. הודעות לא יתקבלו אלא רק בזמן שאת/ה מחובר/ת." msgid "Message could not be sent because the maximum length was exceeded." @@ -2519,17 +2422,13 @@ #. * description msgid "" -"When viewing logs, this plugin will include logs from other IM clients. " -"Currently, this includes Adium, MSN Messenger, aMSN, and Trillian.\n" +"When viewing logs, this plugin will include logs from other IM clients. Currently, this includes Adium, MSN Messenger, aMSN, and Trillian.\n" "\n" -"WARNING: This plugin is still alpha code and may crash frequently. Use it " -"at your own risk!" +"WARNING: This plugin is still alpha code and may crash frequently. Use it at your own risk!" msgstr "" -"בעת צפייה ביומני-שיחה, תוסף זה יכלול יומנים מתוכנות צ'אט אחרות. כרגע, זה " -"כולל Adium, MSN Messenger, aMSN, Trillian.\n" +"בעת צפייה ביומני-שיחה, תוסף זה יכלול יומנים מתוכנות צ'אט אחרות. כרגע, זה כולל Adium, MSN Messenger, aMSN, Trillian.\n" "\n" -"אזהרה: תוסף זה עדיין בשלבי פיתוח מוקדמים וייתכן ויקרוס לעיתים קרובות. יש " -"להשתמש בו על חשבון סיכונך האישי בלבד!" +"אזהרה: תוסף זה עדיין בשלבי פיתוח מוקדמים וייתכן ויקרוס לעיתים קרובות. יש להשתמש בו על חשבון סיכונך האישי בלבד!" msgid "Mono Plugin Loader" msgstr "אשף הטענת תוספי Mono" @@ -2561,12 +2460,8 @@ msgstr "מוסיף שורה חדשה לפני הודעה מוצגת." #. *< summary -msgid "" -"Prepends a newline to messages so that the rest of the message appears below " -"the username in the conversation window." -msgstr "" -"מוסיף תו שורה חדשה לתחילת הודעות כדי ששאר ההודעה תופיע מתחת לשם המשתמש בחלון " -"השיחה." +msgid "Prepends a newline to messages so that the rest of the message appears below the username in the conversation window." +msgstr "מוסיף תו שורה חדשה לתחילת הודעות כדי ששאר ההודעה תופיע מתחת לשם המשתמש בחלון השיחה." msgid "Offline Message Emulation" msgstr "אמולציה של הודעות לא-מקוונות" @@ -2574,20 +2469,12 @@ msgid "Save messages sent to an offline user as pounce." msgstr "שמור הודעות שנשלחו למשתמש לא-מחובר בתור תגובת-פעילות." -msgid "" -"The rest of the messages will be saved as pounces. You can edit/delete the " -"pounce from the `Buddy Pounce' dialog." -msgstr "" -"שאר ההודעת יישמרו בתור תגובת-פעילות. ניתן לערוך/למחוק את התגובה מתוך חלון " -"תגובות-הפעילות." - -#, c-format -msgid "" -"\"%s\" is currently offline. Do you want to save the rest of the messages in " -"a pounce and automatically send them when \"%s\" logs back in?" -msgstr "" -"\"%s\" לא מחובר כרגע. האם ברצונך לשמור את שאר ההודעות בתגובת-פעילות על מנת " -"שהם יישלחו אליו אוטומטים כאשר \"%s\" יתחבר מחדש?" +msgid "The rest of the messages will be saved as pounces. You can edit/delete the pounce from the `Buddy Pounce' dialog." +msgstr "שאר ההודעת יישמרו בתור תגובת-פעילות. ניתן לערוך/למחוק את התגובה מתוך חלון תגובות-הפעילות." + +#, c-format +msgid "\"%s\" is currently offline. Do you want to save the rest of the messages in a pounce and automatically send them when \"%s\" logs back in?" +msgstr "\"%s\" לא מחובר כרגע. האם ברצונך לשמור את שאר ההודעות בתגובת-פעילות על מנת שהם יישלחו אליו אוטומטים כאשר \"%s\" יתחבר מחדש?" msgid "Offline Message" msgstr "הודעות לא-מקוונות" @@ -2627,12 +2514,10 @@ #. * description msgid "" -"Allows you to enforce on a per-account basis that passwords not being saved " -"are only used in a single successful connection.\n" +"Allows you to enforce on a per-account basis that passwords not being saved are only used in a single successful connection.\n" "Note: The account password must not be saved for this to work." msgstr "" -"מאפשר לך לאכוף לכל חשבון משתמש שסיסמאות שאינן נשמרות ישומשו רק לחיבור יחיד " -"שמצליח.\n" +"מאפשר לך לאכוף לכל חשבון משתמש שסיסמאות שאינן נשמרות ישומשו רק לחיבור יחיד שמצליח.\n" "הערה: על מנת שזה יעבוד אין לשמור את סיסמת החשבון." #. *< type @@ -2656,12 +2541,8 @@ msgid "Psychic mode for incoming conversation" msgstr "מצב מנבא-עתידות לשיחות נכנסות" -msgid "" -"Causes conversation windows to appear as other users begin to message you. " -"This works for AIM, ICQ, XMPP, Sametime, and Yahoo!" -msgstr "" -"גורם לחלונות-שיחה להופיע כבר כאשר אנשי קשר מתחילים לכתוב הודעה. זה עובד " -"עבור AIM, ICQ, XMPP, Sametime, Yahoo!" +msgid "Causes conversation windows to appear as other users begin to message you. This works for AIM, ICQ, XMPP, Sametime, and Yahoo!" +msgstr "גורם לחלונות-שיחה להופיע כבר כאשר אנשי קשר מתחילים לכתוב הודעה. זה עובד עבור AIM, ICQ, XMPP, Sametime, Yahoo!" msgid "You feel a disturbance in the force..." msgstr "אתה מרגיש הפרעה בכוח..." @@ -2807,12 +2688,8 @@ #. *< version #. * summary #. * description -msgid "" -"Notifies in a conversation window when a buddy goes or returns from away or " -"idle." -msgstr "" -"מודיע בחלון השיחה כאשר איש הקשר מתרחק מהמתחשב, עובר למצב של חוזר פעילות, או " -"חוזר." +msgid "Notifies in a conversation window when a buddy goes or returns from away or idle." +msgstr "מודיע בחלון השיחה כאשר איש הקשר מתרחק מהמתחשב, עובר למצב של חוזר פעילות, או חוזר." msgid "Tcl Plugin Loader" msgstr "מטעין לתוספי Tcl" @@ -2820,25 +2697,16 @@ msgid "Provides support for loading Tcl plugins" msgstr "מספק תמיכה לטעינת תוספי Tcl" -msgid "" -"Unable to detect ActiveTCL installation. If you wish to use TCL plugins, " -"install ActiveTCL from http://www.activestate.com\n" -msgstr "" -"לא היה ניתן לזהות ActiveTCL מתוקן. אם ברצונך להשתמש בתוספי TCL, יש להתקין " -"ActiveTCL מתוך http://www.activestate.com\n" - -msgid "" -"Unable to find Apple's \"Bonjour for Windows\" toolkit, see http://d.pidgin." -"im/BonjourWindows for more information." -msgstr "" -"חבילת \"בונג'ור\" של אפל עבור חלונות לא נמצאה, ראה את השו\"ת באתר: http://d." -"pidgin.im/BonjourWindows למידע נוסף." +msgid "Unable to detect ActiveTCL installation. If you wish to use TCL plugins, install ActiveTCL from http://www.activestate.com\n" +msgstr "לא היה ניתן לזהות ActiveTCL מתוקן. אם ברצונך להשתמש בתוספי TCL, יש להתקין ActiveTCL מתוך http://www.activestate.com\n" + +msgid "Unable to find Apple's \"Bonjour for Windows\" toolkit, see http://d.pidgin.im/BonjourWindows for more information." +msgstr "חבילת \"בונג'ור\" של אפל עבור חלונות לא נמצאה, ראה את השו\"ת באתר: http://d.pidgin.im/BonjourWindows למידע נוסף." msgid "Unable to listen for incoming IM connections" msgstr "לא ניתן להקשיב לחיבורי הודעות נכנסת" -msgid "" -"Unable to establish connection with the local mDNS server. Is it running?" +msgid "Unable to establish connection with the local mDNS server. Is it running?" msgstr "לא מצליח לתקשר עם שרת ה-mDNS המקומי. האם הוא כבר רץ?" msgid "First name" @@ -2904,9 +2772,7 @@ msgid "Invalid proxy settings" msgstr "הגדרות לא תקפות של מתווכים" -msgid "" -"Either the host name or port number specified for your given proxy type is " -"invalid." +msgid "Either the host name or port number specified for your given proxy type is invalid." msgstr "או כתובת השרת או יציאת השרת שניתנה עבור סוג המתווך שהוגדרלא תקפים." msgid "Token Error" @@ -3400,14 +3266,10 @@ msgid "Invalid nickname" msgstr "שם המשתמש לא חוקי" -msgid "" -"Your selected nickname was rejected by the server. It probably contains " -"invalid characters." +msgid "Your selected nickname was rejected by the server. It probably contains invalid characters." msgstr "הכינוי שבחרת נדחה ע\"י השרת. כנראה הוא מכיל אותיות לא חוקיות." -msgid "" -"Your selected account name was rejected by the server. It probably contains " -"invalid characters." +msgid "Your selected account name was rejected by the server. It probably contains invalid characters." msgstr "שם החשבון שבחרת נדחה ע\"י השרת. כנראה הוא מכיל אותיות לא חוקיות." #. We only want to do the following dance if the connection @@ -3454,11 +3316,8 @@ msgid "action <action to perform>: Perform an action." msgstr "action <פעולה לביצוע>: פעל פעולה ." -msgid "" -"away [message]: Set an away message, or use no message to return from being " -"away." -msgstr "" -"away [הודעה]: קבע הודעת ריחוק מהמחשב, או השתמש ללא הודעה לחזור לזמינות." +msgid "away [message]: Set an away message, or use no message to return from being away." +msgstr "away [הודעה]: קבע הודעת ריחוק מהמחשב, או השתמש ללא הודעה לחזור לזמינות." msgid "ctcp : sends ctcp msg to nick." msgstr "ctcp <שם> <הודעה>: שלך הודעת ctcp לאותו כינוי." @@ -3466,56 +3325,26 @@ msgid "chanserv: Send a command to chanserv" msgstr "chanserv: שלח פקודה אל chanserv" -msgid "" -"deop <nick1> [nick2] ...: Remove channel operator status from " -"someone. You must be a channel operator to do this." -msgstr "" -"deop <שם1>1; [שם2] ...: הסר סטטוס של מפעיל הערוץ ממישהו. חובה להיות " -"מפעיל ערוץ כדי לבצע פעולה זו." - -msgid "" -"devoice <nick1> [nick2] ...: Remove channel voice status from " -"someone, preventing them from speaking if the channel is moderated (+m). You " -"must be a channel operator to do this." -msgstr "" -"devoice <שם1> [שם2] ...: הסר יכולת דיבור בערוץ ממישהו, אשר רק מונע " -"מהם לדבר אם הערוץ במצב של תיווך (+m). חובה להיות מפעיל ערוץ כדי לבצע פעולה " -"זו." - -msgid "" -"invite <nick> [room]: Invite someone to join you in the specified " -"channel, or the current channel." -msgstr "" -"invite <שם> [חדר]: הזמן מישהו להצטרף אליך בערוץ הנתון, או בערוץ " -"הנוכחי." - -msgid "" -"j <room1>[,room2][,...] [key1[,key2][,...]]: Enter one or more " -"channels, optionally providing a channel key for each if needed." -msgstr "" -"j <חדר1>[,חדר2][...] [מפתח1[,מפתח2][,...]]: הזן ערוץ אחד או יותר, עם " -"אפשרות להזין מפתח לכל אחד מן החדרים, בשעת הצורך." - -msgid "" -"join <room1>[,room2][,...] [key1[,key2][,...]]: Enter one or more " -"channels, optionally providing a channel key for each if needed." -msgstr "" -"join <חדר1>[,חדר2][...] [מפתח1[,מפתח2][,...]]: הזן ערוץ אחד או יותר, " -"עם אפשרות להזין מפתח לכל אחד מן החדרים, בשעת הצורך." - -msgid "" -"kick <nick> [message]: Remove someone from a channel. You must be a " -"channel operator to do this." -msgstr "" -"kick <שם כינוי> [הודעה]: הסר מישהו מהערוץ. צריך להיות מפעיל הערוץ כדי " -"לעשות זאת." - -msgid "" -"list: Display a list of chat rooms on the network. Warning, some servers " -"may disconnect you upon doing this." -msgstr "" -"list: הצג רשימה של חדרי צ'אט ברשת. אזהרה, יש שרתים שינתקו אותך ברגע ביצוע " -"פעולה זו." +msgid "deop <nick1> [nick2] ...: Remove channel operator status from someone. You must be a channel operator to do this." +msgstr "deop <שם1>1; [שם2] ...: הסר סטטוס של מפעיל הערוץ ממישהו. חובה להיות מפעיל ערוץ כדי לבצע פעולה זו." + +msgid "devoice <nick1> [nick2] ...: Remove channel voice status from someone, preventing them from speaking if the channel is moderated (+m). You must be a channel operator to do this." +msgstr "devoice <שם1> [שם2] ...: הסר יכולת דיבור בערוץ ממישהו, אשר רק מונע מהם לדבר אם הערוץ במצב של תיווך (+m). חובה להיות מפעיל ערוץ כדי לבצע פעולה זו." + +msgid "invite <nick> [room]: Invite someone to join you in the specified channel, or the current channel." +msgstr "invite <שם> [חדר]: הזמן מישהו להצטרף אליך בערוץ הנתון, או בערוץ הנוכחי." + +msgid "j <room1>[,room2][,...] [key1[,key2][,...]]: Enter one or more channels, optionally providing a channel key for each if needed." +msgstr "j <חדר1>[,חדר2][...] [מפתח1[,מפתח2][,...]]: הזן ערוץ אחד או יותר, עם אפשרות להזין מפתח לכל אחד מן החדרים, בשעת הצורך." + +msgid "join <room1>[,room2][,...] [key1[,key2][,...]]: Enter one or more channels, optionally providing a channel key for each if needed." +msgstr "join <חדר1>[,חדר2][...] [מפתח1[,מפתח2][,...]]: הזן ערוץ אחד או יותר, עם אפשרות להזין מפתח לכל אחד מן החדרים, בשעת הצורך." + +msgid "kick <nick> [message]: Remove someone from a channel. You must be a channel operator to do this." +msgstr "kick <שם כינוי> [הודעה]: הסר מישהו מהערוץ. צריך להיות מפעיל הערוץ כדי לעשות זאת." + +msgid "list: Display a list of chat rooms on the network. Warning, some servers may disconnect you upon doing this." +msgstr "list: הצג רשימה של חדרי צ'אט ברשת. אזהרה, יש שרתים שינתקו אותך ברגע ביצוע פעולה זו." msgid "me <action to perform>: Perform an action." msgstr "me <פעולה לביצוע>: בצע פעולה" @@ -3523,18 +3352,11 @@ msgid "memoserv: Send a command to memoserv" msgstr "memoserv: שלח פקודה אל memoserv" -msgid "" -"mode <+|-><A-Za-z> <nick|channel>: Set or unset a channel " -"or user mode." -msgstr "" -"mode <+|-><A-Za-z> <שם כינוי|ערוץ>: קבע או הסר מצבי ערוץ " -"או משתמש." - -msgid "" -"msg <nick> <message>: Send a private message to a user (as " -"opposed to a channel)." -msgstr "" -"msg <שם כינוי> <הודעה>: שלח הודעה פרטית למשתמש (בניגוד לערוץ)." +msgid "mode <+|-><A-Za-z> <nick|channel>: Set or unset a channel or user mode." +msgstr "mode <+|-><A-Za-z> <שם כינוי|ערוץ>: קבע או הסר מצבי ערוץ או משתמש." + +msgid "msg <nick> <message>: Send a private message to a user (as opposed to a channel)." +msgstr "msg <שם כינוי> <הודעה>: שלח הודעה פרטית למשתמש (בניגוד לערוץ)." msgid "names [channel]: List the users currently in a channel." msgstr "names [ערוץ]: הצג את רשימת המשתמשים שכרגע בערוץ." @@ -3548,41 +3370,23 @@ msgid "notice <target<: Send a notice to a user or channel." msgstr "me <action>: שלח למשתמש או צ'אט התראה." -msgid "" -"op <nick1> [nick2] ...: Grant channel operator status to someone. You " -"must be a channel operator to do this." -msgstr "" -"op <שם כינוי1> [שם כינוי2] ...: נותן סטטוס של מפעיל ערוץ למישהו. עליך " -"להיות מפעיל ערוץ לבצע פעולה זו." - -msgid "" -"operwall <message>: If you don't know what this is, you probably " -"can't use it." -msgstr "" -"operwall <הודעה>: אם אינך יודע/ת מה זה עושה, כנראה את/ה לא יכול/ה " -"להשתמש בזה." +msgid "op <nick1> [nick2] ...: Grant channel operator status to someone. You must be a channel operator to do this." +msgstr "op <שם כינוי1> [שם כינוי2] ...: נותן סטטוס של מפעיל ערוץ למישהו. עליך להיות מפעיל ערוץ לבצע פעולה זו." + +msgid "operwall <message>: If you don't know what this is, you probably can't use it." +msgstr "operwall <הודעה>: אם אינך יודע/ת מה זה עושה, כנראה את/ה לא יכול/ה להשתמש בזה." msgid "operserv: Send a command to operserv" msgstr " operserv: שלח פקודה אל operserv" -msgid "" -"part [room] [message]: Leave the current channel, or a specified channel, " -"with an optional message." -msgstr "" -"part [חדר] [הודעה]: עזוב את החדר הנוכחי, או חדר מסויים, עם אפשרות להודעה." - -msgid "" -"ping [nick]: Asks how much lag a user (or the server if no user specified) " -"has." -msgstr "" -"ping [שם כינוי]: שואל כמה איטית התגובה של משתמש (או של השרת אם לא צויין " -"משתמש." - -msgid "" -"query <nick> <message>: Send a private message to a user (as " -"opposed to a channel)." -msgstr "" -"query <שם משתמש> <הודעה>: שלח הודעה פרטית למשתמש (בניגוד לערוץ)." +msgid "part [room] [message]: Leave the current channel, or a specified channel, with an optional message." +msgstr "part [חדר] [הודעה]: עזוב את החדר הנוכחי, או חדר מסויים, עם אפשרות להודעה." + +msgid "ping [nick]: Asks how much lag a user (or the server if no user specified) has." +msgstr "ping [שם כינוי]: שואל כמה איטית התגובה של משתמש (או של השרת אם לא צויין משתמש." + +msgid "query <nick> <message>: Send a private message to a user (as opposed to a channel)." +msgstr "query <שם משתמש> <הודעה>: שלח הודעה פרטית למשתמש (בניגוד לערוץ)." msgid "quit [message]: Disconnect from the server, with an optional message." msgstr "quit [הודעה]: התנתקות מהשרת, עם אפשרות להודעה." @@ -3590,12 +3394,8 @@ msgid "quote [...]: Send a raw command to the server." msgstr "quote [...]: שלח פקודה ישירות לשרת." -msgid "" -"remove <nick> [message]: Remove someone from a room. You must be a " -"channel operator to do this." -msgstr "" -"remove <שם כינוי> [הודעה]: הסר מישהו מחדר. צריך להיות מפעיל הערוץ " -"לבצע פעולה זו." +msgid "remove <nick> [message]: Remove someone from a room. You must be a channel operator to do this." +msgstr "remove <שם כינוי> [הודעה]: הסר מישהו מחדר. צריך להיות מפעיל הערוץ לבצע פעולה זו." msgid "time: Displays the current local time at the IRC server." msgstr "time: מציג את השעה המקומית בשרת ה-IRC." @@ -3609,18 +3409,11 @@ msgid "version [nick]: send CTCP VERSION request to a user" msgstr "version [שם כינוי]: שלח בקשה CTCP VERSION למשתמש" -msgid "" -"voice <nick1> [nick2] ...: Grant channel voice status to someone. You " -"must be a channel operator to do this." -msgstr "" -"voice <שם כינוי1> [שם כינוי2] ...: תן סטטוס דיבור למישהו. חובה להיות " -"מפעיל הערוץ לבצע פעולה זו." - -msgid "" -"wallops <message>: If you don't know what this is, you probably can't " -"use it." -msgstr "" -"wallops <הודעה>: אם אינך יודע/ת מה זה, את/ה כנראה לא יכול להשתמש בזה." +msgid "voice <nick1> [nick2] ...: Grant channel voice status to someone. You must be a channel operator to do this." +msgstr "voice <שם כינוי1> [שם כינוי2] ...: תן סטטוס דיבור למישהו. חובה להיות מפעיל הערוץ לבצע פעולה זו." + +msgid "wallops <message>: If you don't know what this is, you probably can't use it." +msgstr "wallops <הודעה>: אם אינך יודע/ת מה זה, את/ה כנראה לא יכול להשתמש בזה." msgid "whois [server] <nick>: Get information on a user." msgstr "whois [שרת] <שם כינוי>: השג מידע על משתמש." @@ -3660,9 +3453,7 @@ msgstr "השרת דורש אימות לא מוצפן מעל תקשורת לא מוצפנת" #, c-format -msgid "" -"%s requires plaintext authentication over an unencrypted connection. Allow " -"this and continue authentication?" +msgid "%s requires plaintext authentication over an unencrypted connection. Allow this and continue authentication?" msgstr "%s דורש אימות לא מוצפן מעל תקשורת לא מוצפנת. לאפשר ולהמשיך בכל זאת?" msgid "Plaintext Authentication" @@ -3721,6 +3512,11 @@ msgid "Street Address" msgstr "כתובת" +#. +#. * EXTADD is correct, EXTADR is generated by other +#. * clients. The next time someone reads this, remove +#. * EXTADR. +#. msgid "Extended Address" msgstr "מידע כתובת מורחב" @@ -3759,9 +3555,7 @@ msgid "Edit XMPP vCard" msgstr "ערוך את ה- XMPP vCard" -msgid "" -"All items below are optional. Enter only the information with which you feel " -"comfortable." +msgid "All items below are optional. Enter only the information with which you feel comfortable." msgstr "כל הפריטים להלן הם בחירה. יש להזין רק את המידע שאת/ה מרגיש/ה נוח לתת." msgid "Client" @@ -3807,14 +3601,12 @@ msgid "Temporarily Hide From" msgstr "הסתר את התבנית זמנית" -#. && NOT ME msgid "Cancel Presence Notification" msgstr "בטל התרעת נוכחות" msgid "(Re-)Request authorization" msgstr "בקש אימות (מחדש)" -#. if(NOT ME) #. shouldn't this just happen automatically when the buddy is #. removed? msgid "Unsubscribe" @@ -3845,12 +3637,8 @@ msgstr "להלן תוצאות החיפוש שלך" #. current comment from Jabber User Directory users.jabber.org -msgid "" -"Find a contact by entering the search criteria in the given fields. Note: " -"Each field supports wild card searches (%)" -msgstr "" -"מצא איש קשר על ידי הזנן קריטריונים לחיפוש בשדות הנתונים. הערה: כל שדה תומך " -"בחיפושים עם אותיות חלופיות (%)" +msgid "Find a contact by entering the search criteria in the given fields. Note: Each field supports wild card searches (%)" +msgstr "מצא איש קשר על ידי הזנן קריטריונים לחיפוש בשדות הנתונים. הערה: כל שדה תומך בחיפושים עם אותיות חלופיות (%)" msgid "Directory Query Failed" msgstr "שגיאה בשאילתת הספרייה" @@ -3964,9 +3752,7 @@ msgid "Ping timed out" msgstr "פינג לא חזר בזמן" -msgid "" -"Unable to find alternative XMPP connection methods after failing to connect " -"directly." +msgid "Unable to find alternative XMPP connection methods after failing to connect directly." msgstr "לא יכול למצוא צורות חיבור XMPP חלופיות אחרי כישלון בחיבור ישירות." msgid "Invalid XMPP ID" @@ -4020,8 +3806,7 @@ msgid "Unregister" msgstr "הסר רישום" -msgid "" -"Please fill out the information below to change your account registration." +msgid "Please fill out the information below to change your account registration." msgstr ".יש להזין את המידע להלן כדי לשנות את רישום החשבון שלך" msgid "Please fill out the information below to register your new account." @@ -4338,9 +4123,7 @@ msgstr "לא ניתן לזמזם, מכיוון שייתכן כי%s לא מחובר." #, c-format -msgid "" -"Unable to buzz, because %s does not support it or does not wish to receive " -"buzzes now." +msgid "Unable to buzz, because %s does not support it or does not wish to receive buzzes now." msgstr "לא ניתן לזמזם, כי %s לא תומך בזה או לא רוצה לקבל זימזומים כרגע." #, c-format @@ -4372,9 +4155,7 @@ msgstr "ייזום מדיה נכשל" #, c-format -msgid "" -"Please select the resource of %s with which you would like to start a media " -"session." +msgid "Please select the resource of %s with which you would like to start a media session." msgstr "יש לבחור את המשאב של %s איתו ברצונך להתחיל תקשורת מדיה." msgid "Select a Resource" @@ -4401,19 +4182,11 @@ msgid "ban <user> [reason]: Ban a user from the room." msgstr "ban <משתמש> [סיבה]: חסום משתמש מן החדר." -msgid "" -"affiliate <owner|admin|member|outcast|none> [nick1] [nick2] ...: Get " -"the users with an affiliation or set users' affiliation with the room." -msgstr "" -"affiliate <משתמש> <בעלים|מפעיל|חבר|בגלות|ללא> [שם1][שם2]...: " -"שלוף או קבע את ייחוסם של משתמשים עם החדר." - -msgid "" -"role <moderator|participant|visitor|none> [nick1] [nick2] ...: Get the " -"users with an role or set users' role with the room." -msgstr "" -"role <משתמש> <בעלים|מפעיל|חבר|בגלות|ללא> [שם1][שם2]...: שלוף או " -"קבע את ייחוסם של משתמשים עם החדר." +msgid "affiliate <owner|admin|member|outcast|none> [nick1] [nick2] ...: Get the users with an affiliation or set users' affiliation with the room." +msgstr "affiliate <משתמש> <בעלים|מפעיל|חבר|בגלות|ללא> [שם1][שם2]...: שלוף או קבע את ייחוסם של משתמשים עם החדר." + +msgid "role <moderator|participant|visitor|none> [nick1] [nick2] ...: Get the users with an role or set users' role with the room." +msgstr "role <משתמש> <בעלים|מפעיל|חבר|בגלות|ללא> [שם1][שם2]...: שלוף או קבע את ייחוסם של משתמשים עם החדר." msgid "invite <user> [message]: Invite a user to the room." msgstr "invite <משתמש> [חדר]: הזמן משתמש לחדר." @@ -4424,8 +4197,7 @@ msgid "kick <user> [reason]: Kick a user from the room." msgstr "kick <משתמש> [סיבה]: בעט משתמש מהחדר." -msgid "" -"msg <user> <message>: Send a private message to another user." +msgid "msg <user> <message>: Send a private message to another user." msgstr "msg <משתמש> <הודעה>: שלח הודעה פרטית למשתמש אחר." msgid "ping <jid>:\tPing a user/component/server." @@ -4524,11 +4296,8 @@ msgid "Create New Room" msgstr "צור חדר חדש" -msgid "" -"You are creating a new room. Would you like to configure it, or accept the " -"default settings?" -msgstr "" -"החדר החדש שיצרת. האם ברצונך לשנות את ההגדרות שלו, או לקבל את ברירות המחדל?" +msgid "You are creating a new room. Would you like to configure it, or accept the default settings?" +msgstr "החדר החדש שיצרת. האם ברצונך לשנות את ההגדרות שלו, או לקבל את ברירות המחדל?" msgid "_Configure Room" msgstr "הגדרות החדר" @@ -4553,9 +4322,6 @@ msgid "Transfer was closed." msgstr "העברת הקובץ נסגרה." -msgid "Failed to open the file" -msgstr "כישלון בעת פתיחת הקובץ" - msgid "Failed to open in-band bytestream" msgstr "כישלון בפתיחת תזרים מידע בתווך" @@ -4600,11 +4366,8 @@ msgid "Please specify a new nickname for you." msgstr "אנא הזן כינוי חדש עבורך." -msgid "" -"This information is visible to all contacts on your contact list, so choose " -"something appropriate." -msgstr "" -"המידע הזה נגיש לכל אנשי-הקשר ברשימת אנשי הקשר שלך, אז יש לבחור משהו מתאים." +msgid "This information is visible to all contacts on your contact list, so choose something appropriate." +msgstr "המידע הזה נגיש לכל אנשי-הקשר ברשימת אנשי הקשר שלך, אז יש לבחור משהו מתאים." msgid "Set Nickname..." msgstr "קבע כינוי..." @@ -4633,17 +4396,11 @@ msgstr "אירוע סינכרון רשימת אנשי הקשר ב-%s (%s)" #, c-format -msgid "" -"%s on the local list is inside the group \"%s\" but not on the server list. " -"Do you want this buddy to be added?" -msgstr "" -"%s ברשימה המקומית הוא בתוך הקבוצה \"%s\" אך לא ברשימה שעל השרת. האם ברצונך " -"להוסיף איש קשר זה?" - -#, c-format -msgid "" -"%s is on the local list but not on the server list. Do you want this buddy " -"to be added?" +msgid "%s on the local list is inside the group \"%s\" but not on the server list. Do you want this buddy to be added?" +msgstr "%s ברשימה המקומית הוא בתוך הקבוצה \"%s\" אך לא ברשימה שעל השרת. האם ברצונך להוסיף איש קשר זה?" + +#, c-format +msgid "%s is on the local list but not on the server list. Do you want this buddy to be added?" msgstr "%s הרשימה המקומית אך לא ברשימה שעל השרת. האם ברצונך להוסיף איש קשר זה?" #, c-format @@ -4930,12 +4687,8 @@ msgid "Allow MSN Mobile pages?" msgstr "אפשר הודעות לנייד מ-MSN?" -msgid "" -"Do you want to allow or disallow people on your buddy list to send you MSN " -"Mobile pages to your cell phone or other mobile device?" -msgstr "" -"האם ברצונך לאפשר או לא לאפשר לאנשים מרשימת אנשי הקשר שלך לשלוח לך הודעות " -"לטלפון הנייד או שאר מכשירים ניידים?" +msgid "Do you want to allow or disallow people on your buddy list to send you MSN Mobile pages to your cell phone or other mobile device?" +msgstr "האם ברצונך לאפשר או לא לאפשר לאנשים מרשימת אנשי הקשר שלך לשלוח לך הודעות לטלפון הנייד או שאר מכשירים ניידים?" msgid "Allow" msgstr "אפשר" @@ -4951,8 +4704,7 @@ msgstr "אין טקסט חסום עבור חשבון זה." #, c-format -msgid "" -"MSN servers are currently blocking the following regular expressions:
%s" +msgid "MSN servers are currently blocking the following regular expressions:
%s" msgstr "שרתי MSN כרגע חוסמים את הביטוי הרגוליים הבאים:
%s" msgid "This account does not have email enabled." @@ -5046,12 +4798,8 @@ msgstr "נדרשת תמיכה ב-SSL עבור MSN. נא להתקין ספריית SSL נתמכת." #, c-format -msgid "" -"Unable to add the buddy %s because the username is invalid. Usernames must " -"be a valid email address." -msgstr "" -"לא ניתן להוסיף את החבר %s מכיוון ששם המשתמש אינו חוקי. שמות משתמשים מוכרחים " -"להיות כתובות אימייל תקפות." +msgid "Unable to add the buddy %s because the username is invalid. Usernames must be a valid email address." +msgstr "לא ניתן להוסיף את החבר %s מכיוון ששם המשתמש אינו חוקי. שמות משתמשים מוכרחים להיות כתובות אימייל תקפות." msgid "Unable to Add" msgstr "לא ניתן להוסיף" @@ -5207,17 +4955,10 @@ msgid "The user has not created a public profile." msgstr "המשתמש לא יצר פרופיל ציבורי." -msgid "" -"MSN reported not being able to find the user's profile. This either means " -"that the user does not exist, or that the user exists but has not created a " -"public profile." -msgstr "" -"MSN דיווחה שלא יכלה למצוא את פרופיל המשתמש. זאת אומרת שהמשתמש לא קיים, או " -"שהמשתמש קיים אך לא יצר פרופיל ציבורי." - -msgid "" -"Could not find any information in the user's profile. The user most likely " -"does not exist." +msgid "MSN reported not being able to find the user's profile. This either means that the user does not exist, or that the user exists but has not created a public profile." +msgstr "MSN דיווחה שלא יכלה למצוא את פרופיל המשתמש. זאת אומרת שהמשתמש לא קיים, או שהמשתמש קיים אך לא יצר פרופיל ציבורי." + +msgid "Could not find any information in the user's profile. The user most likely does not exist." msgstr "לא יכול למצוא מידע בתוך פרופיל המשתמש. ככל הנראה המשתמש לא קיים." msgid "View web profile" @@ -5277,36 +5018,24 @@ #, c-format msgid "" -"The MSN server will shut down for maintenance in %d minute. You will " -"automatically be signed out at that time. Please finish any conversations " -"in progress.\n" +"The MSN server will shut down for maintenance in %d minute. You will automatically be signed out at that time. Please finish any conversations in progress.\n" "\n" -"After the maintenance has been completed, you will be able to successfully " -"sign in." +"After the maintenance has been completed, you will be able to successfully sign in." msgid_plural "" -"The MSN server will shut down for maintenance in %d minutes. You will " -"automatically be signed out at that time. Please finish any conversations " -"in progress.\n" +"The MSN server will shut down for maintenance in %d minutes. You will automatically be signed out at that time. Please finish any conversations in progress.\n" "\n" -"After the maintenance has been completed, you will be able to successfully " -"sign in." +"After the maintenance has been completed, you will be able to successfully sign in." msgstr[0] "" -"שרת ה-MSN יכבה לתחזוקה בעוד %d דקה. את/ה תנותק/י אוטומטית.אנא סיימ/י את " -"השיחות שלך בהקדם.\n" +"שרת ה-MSN יכבה לתחזוקה בעוד %d דקה. את/ה תנותק/י אוטומטית.אנא סיימ/י את השיחות שלך בהקדם.\n" "\n" "לאחר שהתחזוקה הושלמה, תוכל/י להתחבר מחדש." msgstr[1] "" -"שרת ה-MSN יכבה לתחזוקה בעוד %d דקות. את/ה תנותק/י אוטומטית.אנא סיימ/י את " -"השיחות שלך בהקדם.\n" +"שרת ה-MSN יכבה לתחזוקה בעוד %d דקות. את/ה תנותק/י אוטומטית.אנא סיימ/י את השיחות שלך בהקדם.\n" "\n" "לאחר שהתחזוקה הושלמה, תוכל/י להתחבר מחדש." -msgid "" -"Message was not sent because the system is unavailable. This normally " -"happens when the user is blocked or does not exist." -msgstr "" -"ההודעה לא נשלחה משום שהמערכת לא זמינה. בדרך-כלל זה קורה כשהמשתמש חסום או לא " -"קיים." +msgid "Message was not sent because the system is unavailable. This normally happens when the user is blocked or does not exist." +msgstr "ההודעה לא נשלחה משום שהמערכת לא זמינה. בדרך-כלל זה קורה כשהמשתמש חסום או לא קיים." msgid "Message was not sent because messages are being sent too quickly." msgstr "ההודעה לא נשלחה מכיוון שההודעות נשלחות מהר מדי." @@ -5350,8 +5079,7 @@ msgid "Unable to authenticate: %s" msgstr "לא ניתן לאמת: %s" -msgid "" -"Your MSN buddy list is temporarily unavailable. Please wait and try again." +msgid "Your MSN buddy list is temporarily unavailable. Please wait and try again." msgstr "רשימת אנשי הקשר שלך ב-MSN אינה זמינה כרגע. יש לנסות שנית מאוחר יותר." msgid "Handshaking" @@ -5374,8 +5102,7 @@ #, c-format msgid "%s requests to view your webcam, but this request is not yet supported." -msgstr "" -"נשלחה בקשה מאת %s לצפות במצלמת האינטרנט שלך, אבל בקשה זו אינה נתמכת כרגע." +msgstr "נשלחה בקשה מאת %s לצפות במצלמת האינטרנט שלך, אבל בקשה זו אינה נתמכת כרגע." #, c-format msgid "%s has sent you a webcam invite, which is not yet supported." @@ -5405,15 +5132,10 @@ msgid "Message could not be sent because we are sending too quickly:" msgstr "לא ניתן לשלוח את ההודעה כיוון שאני שולחים מהר מדי:" -msgid "" -"Message could not be sent because we were unable to establish a session with " -"the server. This is likely a server problem, try again in a few minutes:" -msgstr "" -"לא היה ניתן לשלוח את ההודעה, מכיוון שלא יכולנו לבצע התקשרות עם השרת. ככל " -"הנראה זו בעייה עם השרת, יש לנסות שוב בעוד מספר דקות:" - -msgid "" -"Message could not be sent because an error with the switchboard occurred:" +msgid "Message could not be sent because we were unable to establish a session with the server. This is likely a server problem, try again in a few minutes:" +msgstr "לא היה ניתן לשלוח את ההודעה, מכיוון שלא יכולנו לבצע התקשרות עם השרת. ככל הנראה זו בעייה עם השרת, יש לנסות שוב בעוד מספר דקות:" + +msgid "Message could not be sent because an error with the switchboard occurred:" msgstr "לא ניתן לשלוח את ההודעה כיוון שאירעה שגיאה עם המרכזייה:" msgid "Message may have not been sent because an unknown error occurred:" @@ -5548,16 +5270,10 @@ msgstr "חברי בהודעות מידיות" #, c-format -msgid "" -"%d buddy was added or updated from the server (including buddies already on " -"the server-side list)" -msgid_plural "" -"%d buddies were added or updated from the server (including buddies already " -"on the server-side list)" -msgstr[0] "" -"%d איש-קשר נוסף או עודכן מהשרת (כולל אנשי-קשר שכבר היו על הרשימה בשרת)" -msgstr[1] "" -"%d אנשי-קשר נוספו או עודכנו מהשרת (כולל אנשי-קשר שכבר היו על הרשימה בשרת)" +msgid "%d buddy was added or updated from the server (including buddies already on the server-side list)" +msgid_plural "%d buddies were added or updated from the server (including buddies already on the server-side list)" +msgstr[0] "%d איש-קשר נוסף או עודכן מהשרת (כולל אנשי-קשר שכבר היו על הרשימה בשרת)" +msgstr[1] "%d אנשי-קשר נוספו או עודכנו מהשרת (כולל אנשי-קשר שכבר היו על הרשימה בשרת)" msgid "Add contacts from server" msgstr "הוסף אנשי-קשר מהשרת" @@ -5567,14 +5283,8 @@ msgstr "שגיאת פרוטוקול, קוד %d: %s" #, c-format -msgid "" -"%s Your password is %zu characters, which is longer than the maximum length " -"of %d. Please shorten your password at http://profileedit.myspace.com/index." -"cfm?fuseaction=accountSettings.changePassword and try again." -msgstr "" -"%s סיסמתך הינה באורך %zu תוים, יותר מהאורך המצופה של %d. יש לקצר את הסיסמא " -"באתר http://profileedit.myspace.com/index.cfm?fuseaction=accountSettings." -"changePassword ולנסות שנית." +msgid "%s Your password is %zu characters, which is longer than the maximum length of %d. Please shorten your password at http://profileedit.myspace.com/index.cfm?fuseaction=accountSettings.changePassword and try again." +msgstr "%s סיסמתך הינה באורך %zu תוים, יותר מהאורך המצופה של %d. יש לקצר את הסיסמא באתר http://profileedit.myspace.com/index.cfm?fuseaction=accountSettings.changePassword ולנסות שנית." msgid "Incorrect username or password" msgstr "שם משתמש או סיסמה שגויים" @@ -5609,11 +5319,8 @@ msgid "The RC4 cipher could not be found" msgstr "צופן ה- RC4 לא נמצא" -msgid "" -"Upgrade to a libpurple with RC4 support (>= 2.0.1). MySpaceIM plugin will " -"not be loaded." -msgstr "" -"יש לשדרג לגירסא של libpurple עם תמיכת RC4 (>= 2.0.1). תוסף MySpaceIM לא יטען." +msgid "Upgrade to a libpurple with RC4 support (>= 2.0.1). MySpaceIM plugin will not be loaded." +msgstr "יש לשדרג לגירסא של libpurple עם תמיכת RC4 (>= 2.0.1). תוסף MySpaceIM לא יטען." msgid "Add friends from MySpace.com" msgstr "הוסף חברים מתוך MySpace.com" @@ -5667,14 +5374,8 @@ msgid "Client Version" msgstr "גירסת לקוח" -msgid "" -"An error occurred while trying to set the username. Please try again, or " -"visit http://editprofile.myspace.com/index.cfm?fuseaction=profile.username " -"to set your username." -msgstr "" -"קרתה שגיאה בעת קביעת שם המשתמש. יש לנסות שנית, או לגשת אל http://editprofile." -"myspace.com/index.cfm?fuseaction=profile.username על מנת לקבוע את שם המשתמש " -"שלך." +msgid "An error occurred while trying to set the username. Please try again, or visit http://editprofile.myspace.com/index.cfm?fuseaction=profile.username to set your username." +msgstr "קרתה שגיאה בעת קביעת שם המשתמש. יש לנסות שנית, או לגשת אל http://editprofile.myspace.com/index.cfm?fuseaction=profile.username על מנת לקבוע את שם המשתמש שלך." msgid "MySpaceIM - Username Available" msgstr "MySpaceIM - שם המשתמש זמין" @@ -5895,9 +5596,7 @@ msgid "Could not recognize the host of the username you entered" msgstr "לא ניתן לזהות את השרת אותו הזנת" -msgid "" -"Your account has been disabled because too many incorrect passwords were " -"entered" +msgid "Your account has been disabled because too many incorrect passwords were entered" msgstr "חשבונך הושעה עקב ריבוי הזנת סיסמאות שגויות" msgid "You cannot add the same person twice to a conversation" @@ -5918,9 +5617,7 @@ msgid "The user has blocked you" msgstr "משתמש זה חסם אותך" -msgid "" -"This evaluation version does not allow more than ten users to log in at one " -"time" +msgid "This evaluation version does not allow more than ten users to log in at one time" msgstr "גירסת הניסוי הזו אינה מאפשרת ליותר מ-10 משתמשים להתחבר בו זמנית" msgid "The user is either offline or you are blocked" @@ -5960,20 +5657,12 @@ msgstr "לא ניתן לשלוח הודעה. לא יכול ליצור את הועידה (%s)." #, c-format -msgid "" -"Unable to move user %s to folder %s in the server side list. Error while " -"creating folder (%s)." -msgstr "" -"לא ניתן להעביר את המשתמש %s לתיקייה %s ברשימה אצל השרת.שגיאה בעת יצירת " -"התיקייה (%s)." - -#, c-format -msgid "" -"Unable to add %s to your buddy list. Error creating folder in server side " -"list (%s)." -msgstr "" -"לא ניתן להוסיף את %s לרשימת אנשי הקשר שלך.שגיאה ביצירת תיקייה ברשימת של השרת " -"(%s)." +msgid "Unable to move user %s to folder %s in the server side list. Error while creating folder (%s)." +msgstr "לא ניתן להעביר את המשתמש %s לתיקייה %s ברשימה אצל השרת.שגיאה בעת יצירת התיקייה (%s)." + +#, c-format +msgid "Unable to add %s to your buddy list. Error creating folder in server side list (%s)." +msgstr "לא ניתן להוסיף את %s לרשימת אנשי הקשר שלך.שגיאה ביצירת תיקייה ברשימת של השרת (%s)." #, c-format msgid "Could not get details for user %s (%s)." @@ -6058,13 +5747,10 @@ msgstr "האם ברצונך להצטרף לשיחה?" #, c-format -msgid "" -"%s appears to be offline and did not receive the message that you just sent." +msgid "%s appears to be offline and did not receive the message that you just sent." msgstr "ככל הנראה, %s אינו מחובר ולא קיבל את ההודעה ששלחת הרגע." -msgid "" -"Unable to connect to server. Please enter the address of the server to which " -"you wish to connect." +msgid "Unable to connect to server. Please enter the address of the server to which you wish to connect." msgstr "לא ניתן להתחבר לשרת. יש להזין את כתובת השרת אליו ברצונך להתחבר." msgid "This conference has been closed. No more messages can be sent." @@ -6093,12 +5779,8 @@ msgstr "התקבלה תגובה לא-צפויה מאת" #. username connecting too frequently -msgid "" -"You have been connecting and disconnecting too frequently. Wait ten minutes " -"and try again. If you continue to try, you will need to wait even longer." -msgstr "" -"התחברת והתנתקת התדירות גבוהה מדיי. המתן 10 דקות ונסה שנית. אם תמשיך לנסות, " -"תיאלץ להמתין אפילו יותר." +msgid "You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer." +msgstr "התחברת והתנתקת התדירות גבוהה מדיי. המתן 10 דקות ונסה שנית. אם תמשיך לנסות, תיאלץ להמתין אפילו יותר." #, c-format msgid "Error requesting " @@ -6168,12 +5850,8 @@ msgstr "בוצע חיבור ישיר" #, c-format -msgid "" -"%s tried to send you a %s file, but we only allow files up to %s over Direct " -"IM. Try using file transfer instead.\n" -msgstr "" -"%s ניסה לשלוח קובץ %s אליך, אבל אנו מאפשרים רק קבצים עד %s מעל Direct IM. " -"במקום זאת, יש לנסות להעביר את הקובץ בעזרת מנגנון העברת הקבצים.\n" +msgid "%s tried to send you a %s file, but we only allow files up to %s over Direct IM. Try using file transfer instead.\n" +msgstr "%s ניסה לשלוח קובץ %s אליך, אבל אנו מאפשרים רק קבצים עד %s מעל Direct IM. במקום זאת, יש לנסות להעביר את הקובץ בעזרת מנגנון העברת הקבצים.\n" #, c-format msgid "File %s is %s, which is larger than the maximum size of %s." @@ -6251,23 +5929,12 @@ msgid "Not while on AOL" msgstr "לא בזמן שהות ב-AOL" -msgid "" -"(There was an error receiving this message. The buddy you are speaking with " -"is probably using a different encoding than expected. If you know what " -"encoding he is using, you can specify it in the advanced account options for " -"your AIM/ICQ account.)" -msgstr "" -"(הייתה שגיאה בעת קבלת הודעה זו. איש-הקשר איתו בשיחה כנראה משתמש בקידוד שונה " -"מן המצופה. אם הינך יודע/ת באיזה קידוד הוא משתמש, ניתן להגדיר זאת בהגדרות " -"המתקדמות של החשבון עבור החשבון הזה של AIM/ICQ.)" - -#, c-format -msgid "" -"(There was an error receiving this message. Either you and %s have " -"different encodings selected, or %s has a buggy client.)" -msgstr "" -"(הייתה תקלה בקבלת הודעה זו. או שלך ולמשתמש %s יש קידודים שונים,או שלמשתמש %s " -"יש תוכנה עם באגים.)" +msgid "(There was an error receiving this message. The buddy you are speaking with is probably using a different encoding than expected. If you know what encoding he is using, you can specify it in the advanced account options for your AIM/ICQ account.)" +msgstr "(הייתה שגיאה בעת קבלת הודעה זו. איש-הקשר איתו בשיחה כנראה משתמש בקידוד שונה מן המצופה. אם הינך יודע/ת באיזה קידוד הוא משתמש, ניתן להגדיר זאת בהגדרות המתקדמות של החשבון עבור החשבון הזה של AIM/ICQ.)" + +#, c-format +msgid "(There was an error receiving this message. Either you and %s have different encodings selected, or %s has a buggy client.)" +msgstr "(הייתה תקלה בקבלת הודעה זו. או שלך ולמשתמש %s יש קידודים שונים,או שלמשתמש %s יש תוכנה עם באגים.)" #. Label msgid "Buddy Icon" @@ -6379,14 +6046,8 @@ msgstr "מבצע גימור לחיבור" #, c-format -msgid "" -"Unable to sign on as %s because the username is invalid. Usernames must be " -"a valid email address, or start with a letter and contain only letters, " -"numbers and spaces, or contain only numbers." -msgstr "" -"לא ניתן להתחבר בתור %s כיוון ששם משתמש זה אינו תקף. שמות משתמשים חייבים " -"להיות כתובות אימייל חוקיות, או לחילופין להתחיל באות ולהכיל רק אותיות מספרים " -"ורווחים, או לחילופין להכיל אך ורק מספרים." +msgid "Unable to sign on as %s because the username is invalid. Usernames must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers." +msgstr "לא ניתן להתחבר בתור %s כיוון ששם משתמש זה אינו תקף. שמות משתמשים חייבים להיות כתובות אימייל חוקיות, או לחילופין להתחיל באות ולהכיל רק אותיות מספרים ורווחים, או לחילופין להכיל אך ורק מספרים." #, c-format msgid "You may be disconnected shortly. If so, check %s for updates." @@ -6421,12 +6082,8 @@ msgstr "גירסת תוכנת הלקוח בה את/ה משתמש/ת ישנה מדי. אנא שדרג/י ב-%s" #. IP address connecting too frequently -msgid "" -"You have been connecting and disconnecting too frequently. Wait a minute and " -"try again. If you continue to try, you will need to wait even longer." -msgstr "" -"התחברת והתנתקת בתדירות גבוהה מדיי. יש להמתין דקה ולנסות שנית. אם תמשיכ/י " -"לנסות, תיאלצ/י להמתין אפילו יותר." +msgid "You have been connecting and disconnecting too frequently. Wait a minute and try again. If you continue to try, you will need to wait even longer." +msgstr "התחברת והתנתקת בתדירות גבוהה מדיי. יש להמתין דקה ולנסות שנית. אם תמשיכ/י לנסות, תיאלצ/י להמתין אפילו יותר." msgid "The SecurID key entered is invalid" msgstr "המפתח SecurID שהוזן אינו תקף." @@ -6454,8 +6111,7 @@ #, c-format msgid "" -"The user %u has denied your request to add them to your buddy list for the " -"following reason:\n" +"The user %u has denied your request to add them to your buddy list for the following reason:\n" "%s" msgstr "" "המשתמש %u דחה את בקשתך להוסיף אותם לרשימת אנשי הקשר שלהם מהסיבה להלן:\n" @@ -6531,25 +6187,20 @@ msgstr[1] "פספסת %hu הודעות מאת %s מכיוון שהן היו גדולות מדי." #, c-format -msgid "" -"You missed %hu message from %s because the rate limit has been exceeded." -msgid_plural "" -"You missed %hu messages from %s because the rate limit has been exceeded." +msgid "You missed %hu message from %s because the rate limit has been exceeded." +msgid_plural "You missed %hu messages from %s because the rate limit has been exceeded." msgstr[0] "פספסת %hu הודעה מאת %s מכיוון שמהירות השליחה מופרזת." msgstr[1] "פספסת %hu הודעות מאת %s מכיוון שמהירות השליחה מופרזת." #, c-format -msgid "" -"You missed %hu message from %s because his/her warning level is too high." -msgid_plural "" -"You missed %hu messages from %s because his/her warning level is too high." +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] "לא קיבלת %hu הודעה מאת %s בגלל שרמת האזהרה של השולח גבוהה מדי." msgstr[1] "לא קיבלת %hu הודעות מאת %s בגלל שרמת האזהרה של השולח גבוהה מדי." #, 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." +msgid_plural "You missed %hu messages from %s because your warning level is too high." msgstr[0] "לא קיבלת %hu הודעה מאת %s בגלל שרמת-האזהרה שלך גבוהה מדי." msgstr[1] "לא קיבלת %hu הודעות מאת %s בגלל שרמת-האזהרה שלך גבוהה מדי." @@ -6591,17 +6242,11 @@ msgstr "החיבור AIM שלך אולי יתנתק." #. The conversion failed! -msgid "" -"[Unable to display a message from this user because it contained invalid " -"characters.]" +msgid "[Unable to display a message from this user because it contained invalid characters.]" msgstr "[לא ניתן להציג הודעה ממשתמש זה כיוון שהיא מכילה תווים לא חוקיים.]" -msgid "" -"The last action you attempted could not be performed because you are over " -"the rate limit. Please wait 10 seconds and try again." -msgstr "" -"הפעולה האחרונה שניסית לבצע לא התבצעה כיוון שאתה הפרזת במהירות שליחת ההודעת " -"יש לחכות 10 שניות ולנסות שנית." +msgid "The last action you attempted could not be performed because you are over the rate limit. Please wait 10 seconds and try again." +msgstr "הפעולה האחרונה שניסית לבצע לא התבצעה כיוון שאתה הפרזת במהירות שליחת ההודעת יש לחכות 10 שניות ולנסות שנית." #, c-format msgid "You have been disconnected from chat room %s." @@ -6654,44 +6299,28 @@ msgstr "התקבלה בקשה לאישור החשבון" #, c-format -msgid "" -"Error 0x%04x: Unable to format username because the requested name differs " -"from the original." -msgstr "" -"שגיאה 0x%04x: לא ניתן לפרמט את שם המשתמש, כיוו ששם המשתמש שונה מהשם המקורי." +msgid "Error 0x%04x: Unable to format username because the requested name differs from the original." +msgstr "שגיאה 0x%04x: לא ניתן לפרמט את שם המשתמש, כיוו ששם המשתמש שונה מהשם המקורי." #, c-format msgid "Error 0x%04x: Unable to format username because it is invalid." msgstr "שגיאה 0x%04x: לא ניתן לפרמט את שם המשתמש, כיוו ששם המשתמש לא תקני." #, c-format -msgid "" -"Error 0x%04x: Unable to format username because the requested name is too " -"long." +msgid "Error 0x%04x: Unable to format username because the requested name is too long." msgstr "שגיאה 0x%04x: לא ניתן לפרמט את שם המשתמש, כיוו ששם המשתמש ארוך מדי." #, c-format -msgid "" -"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 email address because the given address has " -"too many usernames associated with it." -msgstr "" -"שגיאה 0x%04x: לא ניתן לשנות את כתובת הדוא\"ל כיוון שהכתובת הנתונה מיוחסת " -"ליותר מדי שמות משתמשים." - -#, c-format -msgid "" -"Error 0x%04x: Unable to change email address because the given address is " -"invalid." -msgstr "" -"שגיאה 0x%04x: לא ניתן לשנות את כתובת הדוא\"ל כיוון שהכתובת שניתנה לא חוקית." +msgid "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 email address because the given address has too many usernames associated with it." +msgstr "שגיאה 0x%04x: לא ניתן לשנות את כתובת הדוא\"ל כיוון שהכתובת הנתונה מיוחסת ליותר מדי שמות משתמשים." + +#, c-format +msgid "Error 0x%04x: Unable to change email address because the given address is invalid." +msgstr "שגיאה 0x%04x: לא ניתן לשנות את כתובת הדוא\"ל כיוון שהכתובת שניתנה לא חוקית." #, c-format msgid "Error 0x%04x: Unknown error." @@ -6707,28 +6336,18 @@ msgid "Account Info" msgstr "מידע על החשבון" -msgid "" -"Your IM Image was not sent. You must be Direct Connected to send IM Images." +msgid "Your IM Image was not sent. You must be Direct Connected to send IM Images." msgstr "הודעת-התמונה לא נשלחה. עליך להיות מחובר/ת בתקשורת ישירה לשלוח תמונות." msgid "Unable to set AIM profile." msgstr "אין אפשרות לקבוע את פרופיל ה-AIM." -msgid "" -"You have probably requested to set your profile before the login procedure " -"completed. Your profile remains unset; try setting it again when you are " -"fully connected." -msgstr "" -"ככל הנראה ניסית לקבוע את פרופיל המשתמש שלך לפני סיום תהליך האימות. הפרופיל " -"לא השתנה; יש לנסות שנית לאחר סיום תהליך האימות." - -#, c-format -msgid "" -"The maximum profile length of %d byte has been exceeded. It has been " -"truncated for you." -msgid_plural "" -"The maximum profile length of %d bytes has been exceeded. It has been " -"truncated for you." +msgid "You have probably requested to set your profile before the login procedure completed. Your profile remains unset; try setting it again when you are fully connected." +msgstr "ככל הנראה ניסית לקבוע את פרופיל המשתמש שלך לפני סיום תהליך האימות. הפרופיל לא השתנה; יש לנסות שנית לאחר סיום תהליך האימות." + +#, c-format +msgid "The maximum profile length of %d byte has been exceeded. It has been truncated for you." +msgid_plural "The maximum profile length of %d bytes has been exceeded. It has been truncated for you." msgstr[0] "עברת את אורך הפרופיל המקסימלי של %d בייט. הפרופיל קוצר עבורך." msgstr[1] "עברת את אורך הפרופיל המקסימלי של %d בייטים. הפרופיל קוצר עבורך." @@ -6736,12 +6355,8 @@ msgstr "הפרופיל ארוך מדי." #, c-format -msgid "" -"The maximum away message length of %d byte has been exceeded. It has been " -"truncated for you." -msgid_plural "" -"The maximum away message length of %d bytes has been exceeded. It has been " -"truncated for you." +msgid "The maximum away message length of %d byte has been exceeded. It has been truncated for you." +msgid_plural "The maximum away message length of %d bytes has been exceeded. It has been truncated for you." msgstr[0] "עברת את אורך הודעת הריחוק המקסימלי של %d בייט. הוא קוצר עבורך." msgstr[1] "עברת את אורך הודעת הריחוק המקסימלי של %d בייטים. הוא קוצר עבורך." @@ -6749,35 +6364,21 @@ msgstr "הודעת הריחוק מהמחשב ארוכה מדי." #, c-format -msgid "" -"Unable to add the buddy %s because the username is invalid. Usernames must " -"be a valid email address, or start with a letter and contain only letters, " -"numbers and spaces, or contain only numbers." -msgstr "" -"לא ניתן להוסיף את החבר %s מכיוון ששם המשתמש שלו לא חוקי. שמות-משתמשים " -"מוכרחים להיות כתובות אימייל תקפות, או לחילופין להתחיל באות ולהכיל רק אותיות, " -"מספרים ורווחים, או לחילופין להכיל רק מספרים." +msgid "Unable to add the buddy %s because the username is invalid. Usernames must be a valid email address, or start with a letter and contain only letters, numbers and spaces, or contain only numbers." +msgstr "לא ניתן להוסיף את החבר %s מכיוון ששם המשתמש שלו לא חוקי. שמות-משתמשים מוכרחים להיות כתובות אימייל תקפות, או לחילופין להתחיל באות ולהכיל רק אותיות, מספרים ורווחים, או לחילופין להכיל רק מספרים." msgid "Unable to Retrieve Buddy List" msgstr "לא ניתן לשלוף את רשימת החברים" -msgid "" -"The AIM servers were temporarily unable to send your buddy list. Your buddy " -"list is not lost, and will probably become available in a few minutes." -msgstr "" -"שרתי ה-AIM זמנית לא יכלו לשלוח את רשימת אנשי הקשר שלך. הרשימה לא אבדה, וככל " -"הנראה תהייה זמינה בדקות הקרובות." +msgid "The AIM servers were temporarily unable to send your buddy list. Your buddy list is not lost, and will probably become available in a few minutes." +msgstr "שרתי ה-AIM זמנית לא יכלו לשלוח את רשימת אנשי הקשר שלך. הרשימה לא אבדה, וככל הנראה תהייה זמינה בדקות הקרובות." msgid "Orphans" msgstr "יתומים" #, c-format -msgid "" -"Unable to add the buddy %s because you have too many buddies in your buddy " -"list. Please remove one and try again." -msgstr "" -"לא ניתן להוסיף את %s לרשימת החברים שלך, כיוון שיש יותר מדי חברים ברשימה. יש " -"להסיר אחד ולנסות שנית." +msgid "Unable to add the buddy %s because you have too many buddies in your buddy list. Please remove one and try again." +msgstr "לא ניתן להוסיף את %s לרשימת החברים שלך, כיוון שיש יותר מדי חברים ברשימה. יש להסיר אחד ולנסות שנית." msgid "(no name)" msgstr "(ללא שם)" @@ -6787,11 +6388,8 @@ msgstr "לא ניתן להוסיף את החבר%s מסיבה לא ידועה." #, c-format -msgid "" -"The user %s has given you permission to add him or her to your buddy list. " -"Do you want to add this user?" -msgstr "" -"המשתמש %s התיר/ה לך להוסיף אותו/ה לרשימת אנשי הקשר שלך. האם ברצונך להוסיפו/ה?" +msgid "The user %s has given you permission to add him or her to your buddy list. Do you want to add this user?" +msgstr "המשתמש %s התיר/ה לך להוסיף אותו/ה לרשימת אנשי הקשר שלך. האם ברצונך להוסיפו/ה?" msgid "Authorization Given" msgstr "ההרשאה ניתנה" @@ -6807,8 +6405,7 @@ #. Denied #, c-format msgid "" -"The user %s has denied your request to add them to your buddy list for the " -"following reason:\n" +"The user %s has denied your request to add them to your buddy list for the following reason:\n" "%s" msgstr "" "המשתמש %s דחה את בקשתך להוסיף אותו לרשימת אנשי הקשר שלך מהסיבה להלן:\n" @@ -6837,12 +6434,8 @@ msgid "You have selected to open a Direct IM connection with %s." msgstr "בחרת לפתוח בתקשורת ישירה להודעות עם %s." -msgid "" -"Because this reveals your IP address, it may be considered a security risk. " -"Do you wish to continue?" -msgstr "" -"משום שפעולה זו חושפת את כתובת ה-IP שלך, יתכן והיא מהווה סיכון לביטחונך. " -"להמשיך בכל זאת?" +msgid "Because this reveals your IP address, it may be considered a security risk. Do you wish to continue?" +msgstr "משום שפעולה זו חושפת את כתובת ה-IP שלך, יתכן והיא מהווה סיכון לביטחונך. להמשיך בכל זאת?" msgid "C_onnect" msgstr "התחבר" @@ -6887,12 +6480,8 @@ msgid "You are awaiting authorization from the following buddies" msgstr "אתה מחכה להרשאה מאנשי הקשר להלן" -msgid "" -"You can re-request authorization from these buddies by right-clicking on " -"them and selecting \"Re-request Authorization.\"" -msgstr "" -"יש באפשרותך לבקש שוב הרשאה מאנשי קשר אלו ע\"י לחיצה ימנית עם העכבר עליהם " -"ולבחור \"בקש הרשאה שוב\"." +msgid "You can re-request authorization from these buddies by right-clicking on them and selecting \"Re-request Authorization.\"" +msgstr "יש באפשרותך לבקש שוב הרשאה מאנשי קשר אלו ע\"י לחיצה ימנית עם העכבר עליהם ולבחור \"בקש הרשאה שוב\"." msgid "Find Buddy by Email" msgstr "מצא איש קשר לפי דוא\"ל" @@ -6970,13 +6559,8 @@ msgid "%s has just asked to directly connect to %s" msgstr "%s ביקש כעת להתחבר ישירות אל %s" -msgid "" -"This requires a direct connection between the two computers and is necessary " -"for IM Images. Because your IP address will be revealed, this may be " -"considered a privacy risk." -msgstr "" -"זה דורש חיבור ישיר בין שני המחשבים, ונחוץ עבור תמונות בהודעות. מכיוון שכתובת " -"ה-IP שלך תיחשף, ייתכן וזה ייחשב כסיכון לפרטיותך." +msgid "This requires a direct connection between the two computers and is necessary for IM Images. Because your IP address will be revealed, this may be considered a privacy risk." +msgstr "זה דורש חיבור ישיר בין שני המחשבים, ונחוץ עבור תמונות בהודעות. מכיוון שכתובת ה-IP שלך תיחשף, ייתכן וזה ייחשב כסיכון לפרטיותך." msgid "Aquarius" msgstr "דלי" @@ -7734,8 +7318,7 @@ msgstr "מפעיל שירותים" #, c-format -msgid "" -"A Sametime administrator has issued the following announcement on server %s" +msgid "A Sametime administrator has issued the following announcement on server %s" msgstr "אדמיניסטרטור Sametime שם את ההודעה להלן על השרת %s" msgid "Sametime Administrator Announcement" @@ -7776,9 +7359,7 @@ msgstr "צור שיחת ועידה עם המשתמש" #, c-format -msgid "" -"Please enter a topic for the new conference, and an invitation message to be " -"sent to %s" +msgid "Please enter a topic for the new conference, and an invitation message to be sent to %s" msgstr "יש להזין נושא עבוד שיחת הועידה, והודעת הזמנה שתישלח אל %s" msgid "New Conference" @@ -7797,13 +7378,8 @@ msgstr "הזמן משתמש אל ועידה" #, c-format -msgid "" -"Select a conference from the list below to send an invite to user %s. Select " -"\"Create New Conference\" if you'd like to create a new conference to invite " -"this user to." -msgstr "" -"בחר שיחת ועידה מהרשימה להלן לשלוח הזמנה למשתמש %s.בחר \"צור ועידה חדשה\" אם " -"ברצונך ליצור ועידה חדשה להזמין אליה משתמש זה." +msgid "Select a conference from the list below to send an invite to user %s. Select \"Create New Conference\" if you'd like to create a new conference to invite this user to." +msgstr "בחר שיחת ועידה מהרשימה להלן לשלוח הזמנה למשתמש %s.בחר \"צור ועידה חדשה\" אם ברצונך ליצור ועידה חדשה להזמין אליה משתמש זה." msgid "Invite to Conference" msgstr "הזמן לועידה" @@ -7821,12 +7397,8 @@ msgstr "לא ניתן שרת קהילה של Sametime" #, c-format -msgid "" -"No host or IP address has been configured for the Meanwhile account %s. " -"Please enter one below to continue logging in." -msgstr "" -"לא הוגדר שם או כתובת IP עבור חשבון ה-Meanwhile %s. יש להזין אחת להלן כדי " -"להמשיך בכניסה למערכת." +msgid "No host or IP address has been configured for the Meanwhile account %s. Please enter one below to continue logging in." +msgstr "לא הוגדר שם או כתובת IP עבור חשבון ה-Meanwhile %s. יש להזין אחת להלן כדי להמשיך בכניסה למערכת." msgid "Meanwhile Connection Setup" msgstr "הגדרות תקשורת Meanwhile" @@ -7854,12 +7426,8 @@ msgstr "שם משתמש דו-משמעי הוזן" #, c-format -msgid "" -"The identifier '%s' may possibly refer to any of the following users. Please " -"select the correct user from the list below to add them to your buddy list." -msgstr "" -"המזהה '%s' יכול להתכוון אל כל אחד מן המשתמשים להלן. אנא בחר/י את המשתמשהנכון " -"מן הרשימה כדי להוסיף אותם לרשימת אנשי הקשר שלך." +msgid "The identifier '%s' may possibly refer to any of the following users. Please select the correct user from the list below to add them to your buddy list." +msgstr "המזהה '%s' יכול להתכוון אל כל אחד מן המשתמשים להלן. אנא בחר/י את המשתמשהנכון מן הרשימה כדי להוסיף אותם לרשימת אנשי הקשר שלך." msgid "Select User" msgstr "בחר משתמש" @@ -7868,12 +7436,8 @@ msgstr "אין אפשרות להוסיף משתמש: המשתמש לא נמצא" #, c-format -msgid "" -"The identifier '%s' did not match any users in your Sametime community. This " -"entry has been removed from your buddy list." -msgstr "" -"המזהה '%s' לא תואם לאף משתמש בקהילה ה-Sametime שלך.והוא הוסר מרשימת אנשי " -"הקשר שלך." +msgid "The identifier '%s' did not match any users in your Sametime community. This entry has been removed from your buddy list." +msgstr "המזהה '%s' לא תואם לאף משתמש בקהילה ה-Sametime שלך.והוא הוסר מרשימת אנשי הקשר שלך." #, c-format msgid "" @@ -7926,13 +7490,8 @@ msgstr "תוצאות מתוך רשימת הכתובות של Notes" #, c-format -msgid "" -"The identifier '%s' may possibly refer to any of the following Notes Address " -"Book groups. Please select the correct group from the list below to add it " -"to your buddy list." -msgstr "" -"המזהה '%s' יכול להתכוון לכל אחד מקבוצות ספרי הכתובות של Notes שלהלן.אנא בחר " -"י את הקבוצה הנכונה מתוך הרשימה כדי להוסיף אותה לרשימת אנשי הקשר שלך." +msgid "The identifier '%s' may possibly refer to any of the following Notes Address Book groups. Please select the correct group from the list below to add it to your buddy list." +msgstr "המזהה '%s' יכול להתכוון לכל אחד מקבוצות ספרי הכתובות של Notes שלהלן.אנא בחר י את הקבוצה הנכונה מתוך הרשימה כדי להוסיף אותה לרשימת אנשי הקשר שלך." msgid "Select Notes Address Book" msgstr "בחר ספר כתובות של Notes" @@ -7941,33 +7500,22 @@ msgstr "לא ניתן להוסיף קבוצה: הקבוצה לא נמצאה" #, c-format -msgid "" -"The identifier '%s' did not match any Notes Address Book groups in your " -"Sametime community." +msgid "The identifier '%s' did not match any Notes Address Book groups in your Sametime community." msgstr "המזהה '%s' לא תואם לאף קבוצת ספרי הכתובות של Notes בקהילה שלך." msgid "Notes Address Book Group" msgstr "קבוצה מספר כתובות של Notes" -msgid "" -"Enter the name of a Notes Address Book group in the field below to add the " -"group and its members to your buddy list." -msgstr "" -"יש להזין שם שלקבוצה בספר כתובות של Notes בשדה להלן על-מנת להוסיף את הקבוצה " -"וחבריה לרשימת אנשי הקשר שלך." +msgid "Enter the name of a Notes Address Book group in the field below to add the group and its members to your buddy list." +msgstr "יש להזין שם שלקבוצה בספר כתובות של Notes בשדה להלן על-מנת להוסיף את הקבוצה וחבריה לרשימת אנשי הקשר שלך." #, c-format msgid "Search results for '%s'" msgstr "תוצאות חיפוש עבור %s" #, c-format -msgid "" -"The identifier '%s' may possibly refer to any of the following users. You " -"may add these users to your buddy list or send them messages with the action " -"buttons below." -msgstr "" -"המזהה '%s' יכול להתכוון לכל אחר מן המשתמשים שלהלן. יש באפשרותך להוסיף אותם " -"אל רשימת אנשי הקשר שלך או לשלוח להם הודעות בעזרת כפתורי הפעולה שלמטה." +msgid "The identifier '%s' may possibly refer to any of the following users. You may add these users to your buddy list or send them messages with the action buttons below." +msgstr "המזהה '%s' יכול להתכוון לכל אחר מן המשתמשים שלהלן. יש באפשרותך להוסיף אותם אל רשימת אנשי הקשר שלך או לשלוח להם הודעות בעזרת כפתורי הפעולה שלמטה." msgid "Search Results" msgstr "תוצאות חיפוש" @@ -7985,12 +7533,8 @@ msgid "Search for a user" msgstr "חיפוש משתמש" -msgid "" -"Enter a name or partial ID in the field below to search for matching users " -"in your Sametime community." -msgstr "" -"יש להזין שם או מזהה חלקי בשדה להלן כדי לחפש משתמשים תואמים בקהילת ב Sametime " -"שלך." +msgid "Enter a name or partial ID in the field below to search for matching users in your Sametime community." +msgstr "יש להזין שם או מזהה חלקי בשדה להלן כדי לחפש משתמשים תואמים בקהילת ב Sametime שלך." msgid "User Search" msgstr "חיפוש משתמש" @@ -8046,11 +7590,8 @@ msgstr "המשתמש המרוחק כבר לא נוכח ברשת" #, c-format -msgid "" -"Key agreement request received from %s. Would you like to perform the key " -"agreement?" -msgstr "" -"בקשה להסכמה על מפתחות התקבלה מאת %s. האם ברצונך לבצע את ההסכמה על מפתחות?" +msgid "Key agreement request received from %s. Would you like to perform the key agreement?" +msgstr "בקשה להסכמה על מפתחות התקבלה מאת %s. האם ברצונך לבצע את ההסכמה על מפתחות?" #, c-format msgid "" @@ -8096,12 +7637,8 @@ msgid "The %s buddy is not trusted" msgstr "איש הקשר %s אינו נבטח" -msgid "" -"You cannot receive buddy notifications until you import his/her public key. " -"You can use the Get Public Key command to get the public key." -msgstr "" -"אינך יכול/ה לקבל התרעות על איש קשר עד אשר תייבא/י את המפתח הציבורי שלו. " -"ניתן להשתמש בפקודת השג מפתח ציבורי על-מנת להשיג את המפתח הציבורי." +msgid "You cannot receive buddy notifications until you import his/her public key. You can use the Get Public Key command to get the public key." +msgstr "אינך יכול/ה לקבל התרעות על איש קשר עד אשר תייבא/י את המפתח הציבורי שלו. ניתן להשתמש בפקודת השג מפתח ציבורי על-מנת להשיג את המפתח הציבורי." #. Open file selector to select the public key. msgid "Open..." @@ -8111,12 +7648,8 @@ msgid "The %s buddy is not present in the network" msgstr "המשתמש %s לא נוכח ברשת" -msgid "" -"To add the buddy you must import his/her public key. Press Import to import " -"a public key." -msgstr "" -"להוסיף את איש הקשר, עליך לייבא את המפתח הציבורי שלו.ניתן ללחוץ על \"ייבא\" " -"לייבא מפתח ציבורי." +msgid "To add the buddy you must import his/her public key. Press Import to import a public key." +msgstr "להוסיף את איש הקשר, עליך לייבא את המפתח הציבורי שלו.ניתן ללחוץ על \"ייבא\" לייבא מפתח ציבורי." msgid "_Import..." msgstr "ייבא..." @@ -8124,19 +7657,11 @@ msgid "Select correct user" msgstr "בחר/י משתמש נכון" -msgid "" -"More than one user was found with the same public key. Select the correct " -"user from the list to add to the buddy list." -msgstr "" -"יותר ממשתמש אחד נמצא עם אותו מפתח ציבורי. יש לבחור מהרשימה את המשתמש הנכון " -"להוסיף לרשימת אנשי הקשר." - -msgid "" -"More than one user was found with the same name. Select the correct user " -"from the list to add to the buddy list." -msgstr "" -"יותר ממשתמש אחד נמצא עם אותו שם. יש לבחור מהרשימה את המשתמש הנכון להוסיף " -"לרשימת אנשי הקשר." +msgid "More than one user was found with the same public key. Select the correct user from the list to add to the buddy list." +msgstr "יותר ממשתמש אחד נמצא עם אותו מפתח ציבורי. יש לבחור מהרשימה את המשתמש הנכון להוסיף לרשימת אנשי הקשר." + +msgid "More than one user was found with the same name. Select the correct user from the list to add to the buddy list." +msgstr "יותר ממשתמש אחד נמצא עם אותו שם. יש לבחור מהרשימה את המשתמש הנכון להוסיף לרשימת אנשי הקשר." msgid "Detached" msgstr "מנותק" @@ -8286,17 +7811,8 @@ msgstr "רשימת המפתחות הציבוריים של הערוץ" #, c-format -msgid "" -"Channel authentication is used to secure the channel from unauthorized " -"access. The authentication may be based on passphrase and digital " -"signatures. If passphrase is set, it is required to be able to join. If " -"channel public keys are set then only users whose public keys are listed are " -"able to join." -msgstr "" -"אימות בערוץ היא לצורך איבטוח הערוץ מגישה לא מורשית. ייתכן והאימות יהיה על " -"בסיס סיסמה וחתימה דיגיטלית. אם הסיסמא נקבעה, חובה לתת אותה כדי להצטרף. אם " -"נקבעו מפתחות ציבוריים לערוץ, אז רק משתמשים שהמפתח הציבורי שלהם ברשימה יוכלו " -"להצטרף." +msgid "Channel authentication is used to secure the channel from unauthorized access. The authentication may be based on passphrase and digital signatures. If passphrase is set, it is required to be able to join. If channel public keys are set then only users whose public keys are listed are able to join." +msgstr "אימות בערוץ היא לצורך איבטוח הערוץ מגישה לא מורשית. ייתכן והאימות יהיה על בסיס סיסמה וחתימה דיגיטלית. אם הסיסמא נקבעה, חובה לתת אותה כדי להצטרף. אם נקבעו מפתחות ציבוריים לערוץ, אז רק משתמשים שהמפתח הציבורי שלהם ברשימה יוכלו להצטרף." msgid "Channel Authentication" msgstr "אימות בערוץ" @@ -8360,8 +7876,7 @@ msgstr "קביעת סודיות ערוץ" #, c-format -msgid "" -"You have to join the %s channel before you are able to join the private group" +msgid "You have to join the %s channel before you are able to join the private group" msgstr "חובה להצטרף לערוץ %s לפני הצטרפות לקבוצה הפרטית" msgid "Join Private Group" @@ -8601,12 +8116,8 @@ msgstr "נדרשת סיסמא" #, c-format -msgid "" -"Received %s's public key. Your local copy does not match this key. Would you " -"still like to accept this public key?" -msgstr "" -"המפתח הציבורי של %s התקבל. ההעתק המקומי אינו תואם למפתח זה. האם ברצונך " -"להמשיך ולקבל את המפתח הציבורי?" +msgid "Received %s's public key. Your local copy does not match this key. Would you still like to accept this public key?" +msgstr "המפתח הציבורי של %s התקבל. ההעתק המקומי אינו תואם למפתח זה. האם ברצונך להמשיך ולקבל את המפתח הציבורי?" #, c-format msgid "Received %s's public key. Would you like to accept this public key?" @@ -8642,8 +8153,7 @@ msgid "Key Exchange failed" msgstr "החלפת המפתחות נכשלה" -msgid "" -"Resuming detached session failed. Press Reconnect to create new connection." +msgid "Resuming detached session failed. Press Reconnect to create new connection." msgstr "המשך תהליך פעולה שנותק, נכשל. לחצ/י על חיבור מחדש ליצור חיבור חדש." msgid "Performing key exchange" @@ -8716,13 +8226,8 @@ msgid "User Online Status Attributes" msgstr "מאפייני מצב משתמש זמין ומחובר" -msgid "" -"You can let other users see your online status information and your personal " -"information. Please fill the information you would like other users to see " -"about yourself." -msgstr "" -"ניתן לאפשר למשתמשים אחרים לראות את מצב החיבור שלך ומידע אישי. יש למלא את " -"המידע שברצונך לאפשר למשתמשים אחרים לראות עליך." +msgid "You can let other users see your online status information and your personal information. Please fill the information you would like other users to see about yourself." +msgstr "ניתן לאפשר למשתמשים אחרים לראות את מצב החיבור שלך ומידע אישי. יש למלא את המידע שברצונך לאפשר למשתמשים אחרים לראות עליך." msgid "Message of the Day" msgstr "ההודעה להיום" @@ -8841,17 +8346,11 @@ msgid "whowas <nick>: View nick's information" msgstr "whowas <שם כינוי>: הצג מידע על משתמש" -msgid "" -"cmode <channel> [+|-<modes>] [arguments]: Change or display " -"channel modes" -msgstr "" -"cmode <ערוץ> [+|-<מצבים>] [פרמטרים]: שנה או הצג את מצבי הערוץ" - -msgid "" -"cumode <channel> +|-<modes> <nick>: Change nick's modes " -"on channel" -msgstr "" -"cumode <ערוץ> +|-<מצבים> <שם כינוי>: שנה מצבי משתמש בערוץ" +msgid "cmode <channel> [+|-<modes>] [arguments]: Change or display channel modes" +msgstr "cmode <ערוץ> [+|-<מצבים>] [פרמטרים]: שנה או הצג את מצבי הערוץ" + +msgid "cumode <channel> +|-<modes> <nick>: Change nick's modes on channel" +msgstr "cumode <ערוץ> +|-<מצבים> <שם כינוי>: שנה מצבי משתמש בערוץ" msgid "umode <usermodes>: Set your modes in the network" msgstr "umode <מצבי משתמש>: קביעת מצבי המשתמש שלך ברשת" @@ -8859,12 +8358,8 @@ msgid "oper <nick> [-pubkey]: Get server operator privileges" msgstr "oper <שם כינוי> [-pubkey]: השג הרשאות מפעיל שרת" -msgid "" -"invite <channel> [-|+]<nick>: invite nick or add/remove from " -"channel invite list" -msgstr "" -"invite <ערוץ> [-|+]<שם כינוי>: הזמן משתמש או הוסף/הסר מרשימת " -"ההזמנות של הערוץ" +msgid "invite <channel> [-|+]<nick>: invite nick or add/remove from channel invite list" +msgstr "invite <ערוץ> [-|+]<שם כינוי>: הזמן משתמש או הוסף/הסר מרשימת ההזמנות של הערוץ" msgid "kick <channel> <nick> [comment]: Kick client from channel" msgstr "kick <ערוץ> <שם כינוי> [הערה]: בעט משתמש מן הערוץ" @@ -8887,12 +8382,8 @@ msgid "users <channel>: List users in channel" msgstr "users <ערוץ>: הצג את רשימת הערוצים" -msgid "" -"names [-count|-ops|-halfops|-voices|-normal] <channel(s)>: List " -"specific users in channel(s)" -msgstr "" -"names [-count|-ops|-halfops|-voices|-normal] <ערוצ(ים)>: הצג רשימת " -"אנשים מסוג מסויים בערוצ(ים)" +msgid "names [-count|-ops|-halfops|-voices|-normal] <channel(s)>: List specific users in channel(s)" +msgstr "names [-count|-ops|-halfops|-voices|-normal] <ערוצ(ים)>: הצג רשימת אנשים מסוג מסויים בערוצ(ים)" #. *< type #. *< ui_requirement @@ -9029,9 +8520,7 @@ msgstr "%s שלח הודעה אל הלוח הלבן. האם ברצונך לפתוח את הלוח הלבן?" #, c-format -msgid "" -"%s sent message to whiteboard on %s channel. Would you like to open the " -"whiteboard?" +msgid "%s sent message to whiteboard on %s channel. Would you like to open the whiteboard?" msgstr "%s שלח הודעה אל הלוח הלבן בערוץ %s.האם ברצונך לפתוח את הלוח הלבן?" msgid "Whiteboard" @@ -9220,12 +8709,8 @@ msgstr "הודעת מערכת עבור %s מ-Yahoo!:" #, c-format -msgid "" -"%s has (retroactively) denied your request to add them to your list for the " -"following reason: %s." -msgstr "" -"%s )רטרואקטיבית( דחה את בקשתך להוסיף אותך לרשימת אנשי הקשר שלך. מהסיבה הבאה: " -"%s." +msgid "%s has (retroactively) denied your request to add them to your list for the following reason: %s." +msgstr "%s )רטרואקטיבית( דחה את בקשתך להוסיף אותך לרשימת אנשי הקשר שלך. מהסיבה הבאה: %s." #, c-format msgid "%s has (retroactively) denied your request to add them to your list." @@ -9239,17 +8724,11 @@ msgstr "התקבל מידע שגוי" #. security lock from too many failed login attempts -msgid "" -"Account locked: Too many failed login attempts. Logging into the Yahoo! " -"website may fix this." -msgstr "" -"החשבון נעול: יותר מדי ניסיון התחברות כושלים. התחברות באתר Yahoo! אולי תתקן " -"את זה." +msgid "Account locked: Too many failed login attempts. Logging into the Yahoo! website may fix this." +msgstr "החשבון נעול: יותר מדי ניסיון התחברות כושלים. התחברות באתר Yahoo! אולי תתקן את זה." #. indicates a lock of some description -msgid "" -"Account locked: Unknown reason. Logging into the Yahoo! website may fix " -"this." +msgid "Account locked: Unknown reason. Logging into the Yahoo! website may fix this." msgstr "החשבון נעול: סיבה לא ידועה. התחברות באתר Yahoo! אולי תתקן את זה." #. username or password missing @@ -9257,24 +8736,15 @@ msgstr "שם משתמש או סיסמה חסרים" #, c-format -msgid "" -"The Yahoo server has requested the use of an unrecognized authentication " -"method. You will probably not be able to successfully sign on to Yahoo. " -"Check %s for updates." -msgstr "" -"ביקש תצורת אימות לא מוכרת. קרוב לוודאי שלא תוכל להתחבר בהצלחה לשרת ה-Yahoo. " -"בדוק ב-%s לעידכונים." +msgid "The Yahoo server has requested the use of an unrecognized authentication method. You will probably not be able to successfully sign on to Yahoo. Check %s for updates." +msgstr "ביקש תצורת אימות לא מוכרת. קרוב לוודאי שלא תוכל להתחבר בהצלחה לשרת ה-Yahoo. בדוק ב-%s לעידכונים." msgid "Failed Yahoo! Authentication" msgstr "כישלון באימות מול Yahoo!" #, c-format -msgid "" -"You have tried to ignore %s, but the user is on your buddy list. Clicking " -"\"Yes\" will remove and ignore the buddy." -msgstr "" -"ניסית להתעלם מ-%s, אך משתמש זה נמצא ברשימת אנשי הקשר שלך. לחיצה על \"כן\" " -"תסיר ותתעלם מן המשתמש." +msgid "You have tried to ignore %s, but the user is on your buddy list. Clicking \"Yes\" will remove and ignore the buddy." +msgstr "ניסית להתעלם מ-%s, אך משתמש זה נמצא ברשימת אנשי הקשר שלך. לחיצה על \"כן\" תסיר ותתעלם מן המשתמש." msgid "Ignore buddy?" msgstr "התעלם ממשתמש?" @@ -9393,14 +8863,10 @@ msgid "Yahoo! Profile" msgstr "פרופיל Yahoo!" -msgid "" -"Sorry, profiles marked as containing adult content are not supported at this " -"time." +msgid "Sorry, profiles marked as containing adult content are not supported at this time." msgstr "סליחה, אך פרופילים המסומנים כמכילים מידע למבוגרים בלבד לא נתמכים כרגע." -msgid "" -"If you wish to view this profile, you will need to visit this link in your " -"web browser:" +msgid "If you wish to view this profile, you will need to visit this link in your web browser:" msgstr "אם ברצונך לראות פרופיל זה, יש להשתמש בקישור הזה בדפדפן האינטרנט שלך:" msgid "Yahoo! ID" @@ -9427,32 +8893,21 @@ msgid "Last Update" msgstr "עודכן לאחרונה" -msgid "" -"This profile is in a language or format that is not supported at this time." +msgid "This profile is in a language or format that is not supported at this time." msgstr "פרופיל זה אינו בשפה או פורמט אשר אינם נתמכים כרגע." -msgid "" -"Could not retrieve the user's profile. This most likely is a temporary " -"server-side problem. Please try again later." -msgstr "" -"לא ניתן לשלוף את פרופיל המשתמש. ככל הנראה זוהי תקלה זמנית בשרת. יש לנסות " -"שנית מאוחר יותר." - -msgid "" -"Could not retrieve the user's profile. This most likely means that the user " -"does not exist; however, Yahoo! sometimes does fail to find a user's " -"profile. If you know that the user exists, please try again later." -msgstr "" -"לא ניתן לשלוף את פרופיל המשתמש. ככל הנראה זה אומר שהמשתמש לא קיים; ברם, " -"לעיתים Yahoo! לא מצליח למצוא פרופיל משתמש. אם את/ה בטוח/ה שהמשתמש קיים, נס/י " -"שנית מאוחר יותר." +msgid "Could not retrieve the user's profile. This most likely is a temporary server-side problem. Please try again later." +msgstr "לא ניתן לשלוף את פרופיל המשתמש. ככל הנראה זוהי תקלה זמנית בשרת. יש לנסות שנית מאוחר יותר." + +msgid "Could not retrieve the user's profile. This most likely means that the user does not exist; however, Yahoo! sometimes does fail to find a user's profile. If you know that the user exists, please try again later." +msgstr "לא ניתן לשלוף את פרופיל המשתמש. ככל הנראה זה אומר שהמשתמש לא קיים; ברם, לעיתים Yahoo! לא מצליח למצוא פרופיל משתמש. אם את/ה בטוח/ה שהמשתמש קיים, נס/י שנית מאוחר יותר." msgid "The user's profile is empty." msgstr "פרופיל המשתמש ריק." -#, fuzzy, c-format +#, c-format msgid "%s has declined to join." -msgstr "%s התחבר." +msgstr "%s לא רוצה להצטרף." msgid "Failed to join chat" msgstr "לא ניתן להצטרף לשיחה" @@ -9469,12 +8924,8 @@ msgid "Not available" msgstr "לא זמין" -msgid "" -"Unknown error. You may need to logout and wait five minutes before being " -"able to rejoin a chatroom" -msgstr "" -"שגיאה לא מוכרת. עליך להתנתק ולחכות כחמש דקות לפני שיהיה אפשר להצטרף שוב לחדר " -"צ'אט" +msgid "Unknown error. You may need to logout and wait five minutes before being able to rejoin a chatroom" +msgstr "שגיאה לא מוכרת. עליך להתנתק ולחכות כחמש דקות לפני שיהיה אפשר להצטרף שוב לחדר צ'אט" #, c-format msgid "You are now chatting in %s." @@ -9507,9 +8958,7 @@ msgid "Connection problem with the YCHT server" msgstr "שגיאה עם החיבור אל שרת ה-YCHT." -msgid "" -"(There was an error converting this message.\t Check the 'Encoding' option " -"in the Account Editor)" +msgid "(There was an error converting this message.\t Check the 'Encoding' option in the Account Editor)" msgstr "(הייתה שגיאה בהמרת ההודעה.\t בדוק את הגדרות ה'קידוד' בעורך החשבונות)" #, c-format @@ -9557,29 +9006,17 @@ msgid "sub <class> <instance> <recipient>: Join a new chat" msgstr "sub <מחלקה> <ישות> <נמען>: הצטרף לצ'אט חדש" -msgid "" -"zi <instance>: Send a message to <message,instance,*>" +msgid "zi <instance>: Send a message to <message,instance,*>" msgstr "zi <ישות>: שלח הודעה ל-<הודעה, ישות,*>" -msgid "" -"zci <class> <instance>: Send a message to <class," -"instance,*>" -msgstr "" -"zci <מחלקה> <ישות>: שלח הודעה ל-<מחלקה,ישות*>" - -msgid "" -"zcir <class> <instance> <recipient>: Send a message to <" -"class,instance,recipient>" -msgstr "" -"zcir <מחלקה> <ישות> <נמען>: שלח הודעה אל <מחלקה," -"ישות,נמען>" - -msgid "" -"zir <instance> <recipient>: Send a message to <MESSAGE," -"instance,recipient>" -msgstr "" -"zir <ישות> <נמען>: שלח הודעה אל <הודעה,ישות,נמען>" +msgid "zci <class> <instance>: Send a message to <class,instance,*>" +msgstr "zci <מחלקה> <ישות>: שלח הודעה ל-<מחלקה,ישות*>" + +msgid "zcir <class> <instance> <recipient>: Send a message to <class,instance,recipient>" +msgstr "zcir <מחלקה> <ישות> <נמען>: שלח הודעה אל <מחלקה,ישות,נמען>" + +msgid "zir <instance> <recipient>: Send a message to <MESSAGE,instance,recipient>" +msgstr "zir <ישות> <נמען>: שלח הודעה אל <הודעה,ישות,נמען>" msgid "zc <class>: Send a message to <class,PERSONAL,*>" msgstr "zc <מחלקה>: שלח הודעה אל <מחלקה,אישי,*>" @@ -9825,12 +9262,8 @@ msgstr "שגיאה בקריאה מתוך %s: אורך המשוב ארוך מדי (מוגבל עד %d בייט)" #, c-format -msgid "" -"Unable to allocate enough memory to hold the contents from %s. The web " -"server may be trying something malicious." -msgstr "" -"לא ניתן להקצות מספיק זיכרון להחזיק את התוכן מ-%s. שרת האתר אולי מנסה לעשות " -"משהו מזיק." +msgid "Unable to allocate enough memory to hold the contents from %s. The web server may be trying something malicious." +msgstr "לא ניתן להקצות מספיק זיכרון להחזיק את התוכן מ-%s. שרת האתר אולי מנסה לעשות משהו מזיק." #, c-format msgid "Error reading from %s: %s" @@ -9882,11 +9315,8 @@ msgstr "שגיאה בקריאת %s" #, c-format -msgid "" -"An error was encountered reading your %s. The file has not been loaded, and " -"the old file has been renamed to %s~." -msgstr "" -"חלה שגיאה בעת קריאת ה-%s שלך. הקובץ לא נטען, ושם ההובץ הישן שונה ל-%s~." +msgid "An error was encountered reading your %s. The file has not been loaded, and the old file has been renamed to %s~." +msgstr "חלה שגיאה בעת קריאת ה-%s שלך. הקובץ לא נטען, ושם ההובץ הישן שונה ל-%s~." msgid "Internet Messenger" msgstr "למסרים באינטרנט" @@ -10006,38 +9436,24 @@ msgid "" "Welcome to %s!\n" "\n" -"You have no IM accounts configured. To start connecting with %s press the " -"Add... button below and configure your first account. If you want %s " -"to connect to multiple IM accounts, press Add... again to configure " -"them all.\n" +"You have no IM accounts configured. To start connecting with %s press the Add... button below and configure your first account. If you want %s to connect to multiple IM accounts, press Add... again to configure them all.\n" "\n" -"You can come back to this window to add, edit, or remove accounts from " -"Accounts->Manage Accounts in the Buddy List window" +"You can come back to this window to add, edit, or remove accounts from Accounts->Manage Accounts in the Buddy List window" msgstr "" "ברוכים הבאים אל%s!\n" "\n" -"אין ברשותך שם חשבונות מוגדרים. על מנת להתחבר עם %s יש ללחוץ על הכפתור " -"הוסף... שלהלן להגדיר את חשבונך הראשון. אם ברצונך ש-%s יתחבר לכמה " -"חשבונות, יש ללחוץ על הוסף... שוב על מנת להגדיר את כולם.\n" +"אין ברשותך שם חשבונות מוגדרים. על מנת להתחבר עם %s יש ללחוץ על הכפתור הוסף... שלהלן להגדיר את חשבונך הראשון. אם ברצונך ש-%s יתחבר לכמה חשבונות, יש ללחוץ על הוסף... שוב על מנת להגדיר את כולם.\n" "\n" -"ניתן גם לחזור לחלון זה על מנת להוסיף, לערוך, או להסיר חשבונות על-ידי " -"חשבונות->נהל חשבונות שבחלון רשימת החברים" +"ניתן גם לחזור לחלון זה על מנת להוסיף, לערוך, או להסיר חשבונות על-ידי חשבונות->נהל חשבונות שבחלון רשימת החברים" #, c-format msgid "You have %d contact named %s. Would you like to merge them?" -msgid_plural "" -"You currently have %d contacts named %s. Would you like to merge them?" +msgid_plural "You currently have %d contacts named %s. Would you like to merge them?" msgstr[0] "יש לך %d איש-קשר בשם %s. האם ברצונך למזג אותך?" msgstr[1] "יש לך כעת %d אנשי-קשר בשם %s. האם ברצונך למזג אותך?" -msgid "" -"Merging these contacts will cause them to share a single entry on the buddy " -"list and use a single conversation window. You can separate them again by " -"choosing 'Expand' from the contact's context menu" -msgstr "" -"מיזוג אנשי-קשר אלה יגרום להם להיות תחת פריט יחיד ברשימת אנשי הקשר, ולהשתמש " -"בחלון שיחה יחיד. ניתן להפריד אותם אח\"כ על ידי בחירת 'הרחב' מהתפריט עבור איש " -"הקשר" +msgid "Merging these contacts will cause them to share a single entry on the buddy list and use a single conversation window. You can separate them again by choosing 'Expand' from the contact's context menu" +msgstr "מיזוג אנשי-קשר אלה יגרום להם להיות תחת פריט יחיד ברשימת אנשי הקשר, ולהשתמש בחלון שיחה יחיד. ניתן להפריד אותם אח\"כ על ידי בחירת 'הרחב' מהתפריט עבור איש הקשר" msgid "Please update the necessary fields." msgstr "יש לעדכן את השדות הנחוצים." @@ -10045,9 +9461,7 @@ msgid "A_ccount" msgstr "ח_שבון" -msgid "" -"Please enter the appropriate information about the chat you would like to " -"join.\n" +msgid "Please enter the appropriate information about the chat you would like to join.\n" msgstr "יש להזין את המידע המתאים על הצ'אט שברצונך להצטרף אליו.\n" msgid "Room _List" @@ -10138,8 +9552,7 @@ msgid "/Tools/Mute Sounds" msgstr "/כלים/השתק צלילים" -msgid "" -"You are not currently signed on with an account that can add that buddy." +msgid "You are not currently signed on with an account that can add that buddy." msgstr "אינך מחובר/ת כרגע עם החשבון שמסוגל להוסיף איש קשר זה." #. I don't believe this can happen currently, I think @@ -10368,8 +9781,7 @@ #, c-format msgid "%d account was disabled because you signed on from another location:" -msgid_plural "" -"%d accounts were disabled because you signed on from another location:" +msgid_plural "%d accounts were disabled because you signed on from another location:" msgstr[0] "חשבון %d סומן כלא-פעיל כי התחברת ממיקום נוסף:" msgstr[1] "%d חשבונות סומנו כלא-פעילים כי התחברת ממיקום נוסף:" @@ -10390,15 +9802,11 @@ msgid "" "Welcome to %s!\n" "\n" -"You have no accounts enabled. Enable your IM accounts from the Accounts window at Accounts->Manage Accounts. Once you enable accounts, " -"you'll be able to sign on, set your status, and talk to your friends." +"You have no accounts enabled. Enable your IM accounts from the Accounts window at Accounts->Manage Accounts. Once you enable accounts, you'll be able to sign on, set your status, and talk to your friends." msgstr "" "ברוכים הבאים ל-%s!\n" "\n" -"אין ברשותך חשבונות מופעלים. ניתן להפעיל את החשבונות שלך מתוך חלון " -"חשבונות דרך חשבונות->נהל. ברגע שיהיו חשבונות פעילים, תהיה לך " -"אפשרות להתחבר, לקבוע את המצב שלך, ולדבר עם חבריך." +"אין ברשותך חשבונות מופעלים. ניתן להפעיל את החשבונות שלך מתוך חלון חשבונות דרך חשבונות->נהל. ברגע שיהיו חשבונות פעילים, תהיה לך אפשרות להתחבר, לקבוע את המצב שלך, ולדבר עם חבריך." #. set the Show Offline Buddies option. must be done #. * after the treeview or faceprint gets mad. -Robot101 @@ -10433,16 +9841,11 @@ msgid "This protocol does not support chat rooms." msgstr "פרוטוקול זה אינו תומך בחדרי צ'אט" -msgid "" -"You are not currently signed on with any protocols that have the ability to " -"chat." +msgid "You are not currently signed on with any protocols that have the ability to chat." msgstr "אינך מחובר/ת בפרוטוקול כלשהו המאפשר שימוש בצ'אט." -msgid "" -"Please enter an alias, and the appropriate information about the chat you " -"would like to add to your buddy list.\n" -msgstr "" -"יש להזין שם נוסף, ומידע מתאים על הצ'אט שברצונך להוסיף לרשימת אנשי הקשר שלך.\n" +msgid "Please enter an alias, and the appropriate information about the chat you would like to add to your buddy list.\n" +msgstr "יש להזין שם נוסף, ומידע מתאים על הצ'אט שברצונך להוסיף לרשימת אנשי הקשר שלך.\n" msgid "A_lias:" msgstr "שם:" @@ -10567,9 +9970,7 @@ msgid "Message (Nick Said) Text" msgstr "טקסט הודעות (מישהו אמר)" -msgid "" -"The text information for when a chat has an unread message that mentions " -"your nick" +msgid "The text information for when a chat has an unread message that mentions your nick" msgstr "טקסט להציג כשצ'אט מכיל הודעה שלא-נקראה שמזכירה את הכינוי שלך" msgid "The text information for a buddy's status" @@ -10588,8 +9989,7 @@ msgid "That buddy is not on the same protocol as this chat." msgstr "איש קשר זה אינו באותו פרוטוקול של צ'אט זה" -msgid "" -"You are not currently signed on with an account that can invite that buddy." +msgid "You are not currently signed on with an account that can invite that buddy." msgstr "אינך מחובר/ת בחשבון שיכול להזמין את איש הקשר הזה." msgid "Invite Buddy Into Chat Room" @@ -11211,45 +10611,19 @@ msgstr "אודות %s" #, c-format -msgid "" -"%s is a graphical modular messaging client based on libpurple which is " -"capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, " -"Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu, and " -"QQ all at once. It is written using GTK+.

You may modify and " -"redistribute the program under the terms of the GPL (version 2 or later). A " -"copy of the GPL is contained in the 'COPYING' file distributed with %s. %s " -"is copyrighted by its contributors. See the 'COPYRIGHT' file for the " -"complete list of contributors. We provide no warranty for this program." -"

" -msgstr "" -"%s הינה תוכנת שליחת הודעות מיידיות גרפית מודולרית מבוססת libpurple אשר לבצע " -"חיבורים אל AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, Novel " -"GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu, QQ ובכולם " -"בו- זמנית. התוכנה נכתבה בעזרת GTK+.

מותר לערוך שינויים ולהפיץ את " -"התוכנה תחת הנחיות רישיון הGPL (גרסא 2 והלאה). יותר). העתק של ה-GPL מוכל בתוך " -"הקובץ 'COPYING' המופץ עם %s. %s היא תחת זכויות המפתחים והתורמים לפיתוח. ראה " -"את הקובץ 'COPYRIGHT' לרשימה מלאה של התורמים. איננו מספקים שום אחריות לתוכנה " -"זו.

" - -#, c-format -msgid "" -"FAQ: http://developer.pidgin.im/wiki/FAQ

" -msgstr "" -"שו\"ת: http://developer.pidgin.im/wiki/FAQ

" - -#, c-format -msgid "" -"Help via e-mail: support@pidgin.im

" -msgstr "" -"עזרה דרך האימייל: support@pidgin.im

" - -#, c-format -msgid "" -"IRC Channel: #pidgin on irc.freenode.net

" +msgid "%s is a graphical modular messaging client based on libpurple which is capable of connecting to AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu, and QQ all at once. It is written using GTK+.

You may modify and redistribute the program under the terms of the GPL (version 2 or later). A copy of the GPL is contained in the 'COPYING' file distributed with %s. %s is copyrighted by its contributors. See the 'COPYRIGHT' file for the complete list of contributors. We provide no warranty for this program.

" +msgstr "%s הינה תוכנת שליחת הודעות מיידיות גרפית מודולרית מבוססת libpurple אשר לבצע חיבורים אל AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, Novel GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu, QQ ובכולם בו- זמנית. התוכנה נכתבה בעזרת GTK+.

מותר לערוך שינויים ולהפיץ את התוכנה תחת הנחיות רישיון הGPL (גרסא 2 והלאה). יותר). העתק של ה-GPL מוכל בתוך הקובץ 'COPYING' המופץ עם %s. %s היא תחת זכויות המפתחים והתורמים לפיתוח. ראה את הקובץ 'COPYRIGHT' לרשימה מלאה של התורמים. איננו מספקים שום אחריות לתוכנה זו.

" + +#, c-format +msgid "FAQ: http://developer.pidgin.im/wiki/FAQ

" +msgstr "שו\"ת: http://developer.pidgin.im/wiki/FAQ

" + +#, c-format +msgid "Help via e-mail: support@pidgin.im

" +msgstr "עזרה דרך האימייל: support@pidgin.im

" + +#, c-format +msgid "IRC Channel: #pidgin on irc.freenode.net

" msgstr "ערוץ IRC: #pidgin על irc.freenode.net

" #, c-format @@ -11286,9 +10660,7 @@ msgid "Get User Info" msgstr "מידע כללי על המשתמש" -msgid "" -"Please enter the username or alias of the person whose info you would like " -"to view." +msgid "Please enter the username or alias of the person whose info you would like to view." msgstr "יש להזין את שם המשתמש או הכינוי של האדם עליו תרצו לקרוא מידע." msgid "View User Log" @@ -11314,18 +10686,10 @@ msgstr "הזן שם נוסף לשיחה זו." #, c-format -msgid "" -"You are about to remove the contact containing %s and %d other buddy from " -"your buddy list. Do you want to continue?" -msgid_plural "" -"You are about to remove the contact containing %s and %d other buddies from " -"your buddy list. Do you want to continue?" -msgstr[0] "" -"האם ברצונך להמשיך ולהסיר את איש הקשר המכיל את %s ועוד %d איש קשר אחר בתוכו " -"מתוך רשימת אנשי הקשר שלך?" -msgstr[1] "" -"האם ברצונך להמשיך ולהסיר את איש הקשר המכיל את %s ועוד %d אנשי קשר אחרים " -"בתוכו מתוך רשימת אנשי הקשר שלך?" +msgid "You are about to remove the contact containing %s and %d other buddy from your buddy list. Do you want to continue?" +msgid_plural "You are about to remove the contact containing %s and %d other buddies from your buddy list. Do you want to continue?" +msgstr[0] "האם ברצונך להמשיך ולהסיר את איש הקשר המכיל את %s ועוד %d איש קשר אחר בתוכו מתוך רשימת אנשי הקשר שלך?" +msgstr[1] "האם ברצונך להמשיך ולהסיר את איש הקשר המכיל את %s ועוד %d אנשי קשר אחרים בתוכו מתוך רשימת אנשי הקשר שלך?" msgid "Remove Contact" msgstr "הסר איש קשר" @@ -11334,9 +10698,7 @@ msgstr "ה_סר איש קשר" #, c-format -msgid "" -"You are about to merge the group called %s into the group called %s. Do you " -"want to continue?" +msgid "You are about to merge the group called %s into the group called %s. Do you want to continue?" msgstr "האם הנך בטוח/ה שברצונך לאחד את הקבוצה %s לתוך הקבוצה %s?" msgid "Merge Groups" @@ -11346,9 +10708,7 @@ msgstr "מזג קבוצות" #, c-format -msgid "" -"You are about to remove the group %s and all its members from your buddy " -"list. Do you want to continue?" +msgid "You are about to remove the group %s and all its members from your buddy list. Do you want to continue?" msgstr "האם ברצונך להמשיך ולהסיר את הקבוצה %s וכל חבריה מרשימת אנשי הקשר שלך?" msgid "Remove Group" @@ -11358,8 +10718,7 @@ msgstr "הסר _קבוצה" #, c-format -msgid "" -"You are about to remove %s from your buddy list. Do you want to continue?" +msgid "You are about to remove %s from your buddy list. Do you want to continue?" msgstr "האם ברצונך להמשיך ולהסיר את %s מרשימת אנשי הקשר שלך?" msgid "Remove Buddy" @@ -11369,9 +10728,7 @@ msgstr "הסר איש קשר" #, c-format -msgid "" -"You are about to remove the chat %s from your buddy list. Do you want to " -"continue?" +msgid "You are about to remove the chat %s from your buddy list. Do you want to continue?" msgstr "האם ברצונך להמשיך ולהסיר את הצ'אט %s מרשימת אנשי הקשר שלך?" msgid "Remove Chat" @@ -11471,14 +10828,6 @@ msgid "File transfer _details" msgstr "פרטי העברות קבצים" -#. Pause button -msgid "_Pause" -msgstr "השהייה" - -#. Resume button -msgid "_Resume" -msgstr "ה_משך" - msgid "Paste as Plain _Text" msgstr "הדבק בתור _טקסט רגיל" @@ -11619,9 +10968,7 @@ msgid "_Description" msgstr "_תיאור" -msgid "" -"Please enter the URL and description of the link that you want to insert. " -"The description is optional." +msgid "Please enter the URL and description of the link that you want to insert. The description is optional." msgstr "יש להזין כתובת ותיאור עבור הקישור ברצונך להכניס. לא חובה להזין תיאור." msgid "Please enter the URL of the link that you want to insert." @@ -11751,21 +11098,15 @@ msgstr "יש לבדוק הרשאות ולנסות בשנית." #, c-format -msgid "" -"Are you sure you want to permanently delete the log of the conversation with " -"%s which started at %s?" +msgid "Are you sure you want to permanently delete the log of the conversation with %s which started at %s?" msgstr "האם ברצונך למחוק את רישום השיחה עם %s שהתחלת ב- %s?" #, c-format -msgid "" -"Are you sure you want to permanently delete the log of the conversation in %" -"s which started at %s?" +msgid "Are you sure you want to permanently delete the log of the conversation in %s which started at %s?" msgstr "האם ברצונך למחוק את רישום השיחה ב- %s שהתחיל ב- %s?" #, c-format -msgid "" -"Are you sure you want to permanently delete the system log which started at %" -"s?" +msgid "Are you sure you want to permanently delete the system log which started at %s?" msgstr "האם ברצונך למחוק את רישום יומן המערכת שהחל ב- %s?" msgid "Delete Log?" @@ -11873,8 +11214,7 @@ "על ידי דיווח באג באתר:\n" "%ssimpleticket/\n" "\n" -"יש לפרט בדיוק מה עשית בזמן הנפילה, ולשלוח את הודעות ה-backtrace מהקובץ " -"core.\n" +"יש לפרט בדיוק מה עשית בזמן הנפילה, ולשלוח את הודעות ה-backtrace מהקובץ core.\n" "אם אינך יודע/ת להוציא את ה-backtrace, אנא קרא את ההוראות ב:\n" "%swiki/GetABacktrace\n" @@ -11904,6 +11244,12 @@ msgid "%s wishes to start a video session with you." msgstr "נתקבלה בקשה מאת %s להתחיל התקשרות וידאו איתך." +msgid "Incoming Call" +msgstr "שיחה נכנסת" + +msgid "_Pause" +msgstr "השהייה" + #, c-format msgid "%s has %d new message." msgid_plural "%s has %d new messages." @@ -11927,8 +11273,7 @@ msgid "Error launching \"%s\": %s" msgstr "שגיאה בהפעלת הפקודה \"%s\": %s" -msgid "" -"The 'Manual' browser command has been chosen, but no command has been set." +msgid "The 'Manual' browser command has been chosen, but no command has been set." msgstr "נבחרה לביצוע הפקודה 'הידנית' של הדפדפן, אבל לא נקבעה הוראה לביצוע." msgid "No message" @@ -11961,9 +11306,7 @@ msgid "Could not unload plugin" msgstr "לא ניתן להפסיק את פעולת התוסף" -msgid "" -"The plugin could not be unloaded now, but will be disabled at the next " -"startup." +msgid "The plugin could not be unloaded now, but will be disabled at the next startup." msgstr "לא ניתן לכבות את התוסף כרגע, אבל הוא יכובה בהפעלה הבאה של התוכנה." #, c-format @@ -12127,12 +11470,8 @@ msgid "Install Theme" msgstr "התקן עיצוב" -msgid "" -"Select a smiley theme that you would like to use from the list below. New " -"themes can be installed by dragging and dropping them onto the theme list." -msgstr "" -"בחר ערכת החיוכים מרשימה למטה. ערכות חדשות ניתן להתקין ע\"י גרירתם על רשימת " -"הערכות." +msgid "Select a smiley theme that you would like to use from the list below. New themes can be installed by dragging and dropping them onto the theme list." +msgstr "בחר ערכת החיוכים מרשימה למטה. ערכות חדשות ניתן להתקין ע\"י גרירתם על רשימת הערכות." msgid "Icon" msgstr "סמל" @@ -12245,12 +11584,8 @@ msgid "Default Formatting" msgstr "פורמט ברירת המחדל" -msgid "" -"This is how your outgoing message text will appear when you use protocols " -"that support formatting." -msgstr "" -"ככה ייראה הטקסט של הודעות יוצאות כאשר תשתמש/י בפרוטוקולים שתומכים בפירמוט " -"טקסט." +msgid "This is how your outgoing message text will appear when you use protocols that support formatting." +msgstr "ככה ייראה הטקסט של הודעות יוצאות כאשר תשתמש/י בפרוטוקולים שתומכים בפירמוט טקסט." msgid "Cannot start proxy configuration program." msgstr "לא יכול להפעיל את תוכנת הגדרת שרת התיווך." @@ -12631,8 +11966,7 @@ msgstr "מצב עבור %s" #, c-format -msgid "" -"A custom smiley for '%s' already exists. Please use a different shortcut." +msgid "A custom smiley for '%s' already exists. Please use a different shortcut." msgstr "כבר קיים חייכן משלך עבור '%s'. יש לנסות קיצור-דרך אחר." msgid "Custom Smiley" @@ -12699,20 +12033,14 @@ msgstr "לא ניתן לשלוח את הספריה %s." #, c-format -msgid "" -"%s cannot transfer a folder. You will need to send the files within " -"individually." +msgid "%s cannot transfer a folder. You will need to send the files within individually." msgstr "%s לא יכול להעביר ספריה. תיאלצ/י לשלוח את הקבצים בתוך הספריה אחד-אחד." msgid "You have dragged an image" msgstr "גררת תמונה" -msgid "" -"You can send this image as a file transfer, embed it into this message, or " -"use it as the buddy icon for this user." -msgstr "" -"ניתן לשלוח תמונה זו כקובץ מועבר, לשים אותה בהודעה זו, או להשתמש בה בתור סמל " -"עבור איש הקשר הזה." +msgid "You can send this image as a file transfer, embed it into this message, or use it as the buddy icon for this user." +msgstr "ניתן לשלוח תמונה זו כקובץ מועבר, לשים אותה בהודעה זו, או להשתמש בה בתור סמל עבור איש הקשר הזה." msgid "Set as buddy icon" msgstr "קבע להיות סמל איש הקשר" @@ -12726,14 +12054,10 @@ msgid "Would you like to set it as the buddy icon for this user?" msgstr "האם ברצונך לקבוע את זה להיות הסמל של איש קשר זה?" -msgid "" -"You can send this image as a file transfer, or use it as the buddy icon for " -"this user." +msgid "You can send this image as a file transfer, or use it as the buddy icon for this user." msgstr "ניתן לשלוח תמונה זו כקובץ מועבר, או להשתמש בה בתור סמל עבור משתמש זה." -msgid "" -"You can insert this image into this message, or use it as the buddy icon for " -"this user" +msgid "You can insert this image into this message, or use it as the buddy icon for this user" msgstr "ניתן להכניס תמונה זו לתוך ההודעה, או להשתמש בה כסמל איש הקשר הזה." #. I don't know if we really want to do anything here. Most of the desktop item types are crap like @@ -12744,12 +12068,8 @@ msgid "Cannot send launcher" msgstr "לא ניתן לשלוח את קובץ המפעיל" -msgid "" -"You dragged a desktop launcher. Most likely you wanted to send the target of " -"this launcher instead of this launcher itself." -msgstr "" -"גררת קובץ מפעיל של שולחן העבודה. קרוב לודאי שרצית לשלוח את מה שהמפעיל מצביע " -"עליו, ולא את המפעיל עצמו." +msgid "You dragged a desktop launcher. Most likely you wanted to send the target of this launcher instead of this launcher itself." +msgstr "גררת קובץ מפעיל של שולחן העבודה. קרוב לודאי שרצית לשלוח את מה שהמפעיל מצביע עליו, ולא את המפעיל עצמו." #, c-format msgid "" @@ -12776,8 +12096,7 @@ msgstr "כישלון בעת פתיחת הקובץ '%s': %s" #, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" +msgid "Failed to load image '%s': reason not known, probably a corrupt image file" msgstr "כישלון בעת טעינת התמונה '%s': סיבה לא ידועה, כנראה קובץ תמונה פגום" msgid "_Open Link" @@ -12944,11 +12263,8 @@ msgid "Allows browsing and registering services." msgstr "מאפשר רישום ועיון ברשימת השירותים" -msgid "" -"This plugin is useful for registering with legacy transports or other XMPP " -"services." -msgstr "" -"תוסף זה שימושי לטובת רישום עם פרוטוקולי תקשורת ישנים או שירותי XMPP אחרים." +msgid "This plugin is useful for registering with legacy transports or other XMPP services." +msgstr "תוסף זה שימושי לטובת רישום עם פרוטוקולי תקשורת ישנים או שירותי XMPP אחרים." msgid "Buddy is idle" msgstr "איש הקשר במנוחה" @@ -12969,9 +12285,7 @@ msgid "Point values to use when..." msgstr "ערכי ניקוד שיש להשתמש בהם כאשר..." -msgid "" -"The buddy with the largest score is the buddy who will have priority " -"in the contact.\n" +msgid "The buddy with the largest score is the buddy who will have priority in the contact.\n" msgstr "איש הקשר עם הניקוד הגבוה יהיה איש הקשר עם העדיפות.\n" msgid "Use last buddy when scores are equal" @@ -12992,17 +12306,12 @@ #. *< name #. *< version #. *< summary -msgid "" -"Allows for controlling the values associated with different buddy states." +msgid "Allows for controlling the values associated with different buddy states." msgstr "מאפשר שליטה על הערכים המיוחסים למצבים השונים של אנשי הקשר." #. *< description -msgid "" -"Allows for changing the point values of idle/away/offline states for buddies " -"in contact priority computations." -msgstr "" -"מאפשר לשנות את ערכי הניקוד לחוסר פעילות/ריחוק/ניתוק אשר נעשה בו שימוש " -"בחישובי הדירוג של אנשי הקשר." +msgid "Allows for changing the point values of idle/away/offline states for buddies in contact priority computations." +msgstr "מאפשר לשנות את ערכי הניקוד לחוסר פעילות/ריחוק/ניתוק אשר נעשה בו שימוש בחישובי הדירוג של אנשי הקשר." msgid "Conversation Colors" msgstr "צבעי שיחה" @@ -13046,11 +12355,8 @@ msgstr "מיקום חלון שיחה" #. Translators: "New conversations" should match the text in the preferences dialog and "By conversation count" should be the same text used above -msgid "" -"Note: The preference for \"New conversations\" must be set to \"By " -"conversation count\"." -msgstr "" -"הערה: ההעדפה עבור \"שיחות חדשות\" חייבת להקבע להיות \"על פי מספר השיחות\"." +msgid "Note: The preference for \"New conversations\" must be set to \"By conversation count\"." +msgstr "הערה: ההעדפה עבור \"שיחות חדשות\" חייבת להקבע להיות \"על פי מספר השיחות\"." msgid "Number of conversations per window" msgstr "מספר שיחות בכל חלון" @@ -13074,9 +12380,7 @@ #. *< summary #. * description -msgid "" -"Restrict the number of conversations per windows, optionally separating IMs " -"and Chats" +msgid "Restrict the number of conversations per windows, optionally separating IMs and Chats" msgstr "הגבל את מספר השיחות בכל חלון-שיחה, עם אפשרות להפריד בין הודעות לצ'אטים" #. Configuration frame @@ -13110,14 +12414,12 @@ #. * description msgid "" -"Allows support for mouse gestures in conversation windows. Drag the middle " -"mouse button to perform certain actions:\n" +"Allows support for mouse gestures in conversation windows. Drag the middle mouse button to perform certain actions:\n" " • Drag down and then to the right to close a conversation.\n" " • Drag up and then to the left to switch to the previous conversation.\n" " • Drag up and then to the right to switch to the next conversation." msgstr "" -"מאפשר תמיכה בפעולות עכבר בחלונות שיחה. גרור/י עם הכפתור האמצעי כדי לבצע " -"פעולות מסוימות:\n" +"מאפשר תמיכה בפעולות עכבר בחלונות שיחה. גרור/י עם הכפתור האמצעי כדי לבצע פעולות מסוימות:\n" " • גרור/י מטה ואז לימין לסגור חלון.\n" " • גרור/י מעלה ואז שמאלה לעבור לשיחה הקודמת.\n" " • גרור/י מעלה ואז ימינה לעבור לשיחה הבאה." @@ -13141,12 +12443,8 @@ msgstr "בחר איש קשר" #. Add the label. -msgid "" -"Select a person from your address book to add this buddy to, or create a new " -"person." -msgstr "" -"יש לבחור משתמש מרשימת הכתובות שלך כדי להוסיף אליו את איש הקשר הזה, או ליצור " -"חדש" +msgid "Select a person from your address book to add this buddy to, or create a new person." +msgstr "יש לבחור משתמש מרשימת הכתובות שלך כדי להוסיף אליו את איש הקשר הזה, או ליצור חדש" #. Add the expander msgid "User _details" @@ -13287,9 +12585,7 @@ msgid "C_hat windows" msgstr "חלונות _שיחה" -msgid "" -"A music messaging session has been requested. Please click the MM icon to " -"accept." +msgid "A music messaging session has been requested. Please click the MM icon to accept." msgstr "התקבלה בקשה לשיחת מוזיקה. נא ללחוץ על כפתור ה-MM להסכים." msgid "Music messaging session confirmed." @@ -13329,12 +12625,8 @@ msgstr "תוסף להודעות מוזיקה להלחנה משותפת." #. * summary -msgid "" -"The Music Messaging Plugin allows a number of users to simultaneously work " -"on a piece of music by editing a common score in real-time." -msgstr "" -"התוסף להודעות מוזיקה מאפשר למספר משתמשים לעבוד יחד על יצירה מוזיקלית על ידי " -"עריכה של לחן משותף בזמן אמת." +msgid "The Music Messaging Plugin allows a number of users to simultaneously work on a piece of music by editing a common score in real-time." +msgstr "התוסף להודעות מוזיקה מאפשר למספר משתמשים לעבוד יחד על יצירה מוזיקלית על ידי עריכה של לחן משותף בזמן אמת." #. ---------- "Notify For" ---------- msgid "Notify For" @@ -13521,12 +12813,8 @@ msgid "Lets you send raw input to text-based protocols." msgstr "מאפשר לך לשלוח מידע גולמי לפרוטוקולים על בסיס טקסט." -msgid "" -"Lets you send raw input to text-based protocols (XMPP, MSN, IRC, TOC). Hit " -"'Enter' in the entry box to send. Watch the debug window." -msgstr "" -"מאפשר לך לשלוח מידע גולמי לפרוטוקולים על בסיס טקסט (XMPP, MSN, IRC, TOC).לחץ " -"'Enter' בתיבת ההזנה לשלוח. צפה בחלון ניפוי הבאגים." +msgid "Lets you send raw input to text-based protocols (XMPP, MSN, IRC, TOC). Hit 'Enter' in the entry box to send. Watch the debug window." +msgstr "מאפשר לך לשלוח מידע גולמי לפרוטוקולים על בסיס טקסט (XMPP, MSN, IRC, TOC).לחץ 'Enter' בתיבת ההזנה לשלוח. צפה בחלון ניפוי הבאגים." #, c-format msgid "You can upgrade to %s %s today." @@ -13557,11 +12845,8 @@ msgstr "בודק מדי-פעם אם יצאו גרסאות חדשות." #. * description -msgid "" -"Checks periodically for new releases and notifies the user with the " -"ChangeLog." -msgstr "" -"בודק מדי פעם אם יצאו גרסאות חדשות ומודיע למשתמש, בצירוף רשימת השינויים." +msgid "Checks periodically for new releases and notifies the user with the ChangeLog." +msgstr "בודק מדי פעם אם יצאו גרסאות חדשות ומודיע למשתמש, בצירוף רשימת השינויים." #. *< major version #. *< minor version @@ -13580,12 +12865,8 @@ msgstr "כפתור שליחה בחלון שיחה." #. *< summary -msgid "" -"Adds a Send button to the entry area of the conversation window. Intended " -"for use when no physical keyboard is present." -msgstr "" -"מוסיף כפתור שליחה לאיזור הקלט של חלון השיחה. נועד לתרחיש שאין בנמצא מקלדת " -"פיזית." +msgid "Adds a Send button to the entry area of the conversation window. Intended for use when no physical keyboard is present." +msgstr "מוסיף כפתור שליחה לאיזור הקלט של חלון השיחה. נועד לתרחיש שאין בנמצא מקלדת פיזית." msgid "Duplicate Correction" msgstr "כפילות בתיקונים" @@ -13658,9 +12939,12 @@ msgid "Founder" msgstr "מייסד" +#. A user in a chat room who has special privileges. msgid "Operator" msgstr "מפעיל" +#. A half operator is someone who has a subset of the privileges +#. that an operator has. msgid "Half Operator" msgstr "חצי-מפעיל" @@ -13801,9 +13085,7 @@ msgstr "מגדיר את פורמט חותמות-הזמן בהודעות." #. * description -msgid "" -"This plugin allows the user to customize conversation and logging message " -"timestamp formats." +msgid "This plugin allows the user to customize conversation and logging message timestamp formats." msgstr "תוסף זה מאפשר למשתמש לקבוע אפשרויות שיחה וחותמות-זמן ליומני שיחה." msgid "Opacity:" @@ -13852,8 +13134,7 @@ #. * description msgid "" -"This plugin enables variable alpha transparency on conversation windows and " -"the buddy list.\n" +"This plugin enables variable alpha transparency on conversation windows and the buddy list.\n" "\n" "* Note: This plugin requires Win2000 or greater." msgstr "" @@ -13889,11 +13170,8 @@ msgid "Options specific to Pidgin for Windows." msgstr "אפשרויות לפידג'ין היחודיות לחלונות." -msgid "" -"Provides options specific to Pidgin for Windows, such as buddy list docking." -msgstr "" -"מאפשר גישה לאפשרויות הייחודיות לפידג'ין בחלונות, כגון עגינה של רשימת אנשי " -"הקשר." +msgid "Provides options specific to Pidgin for Windows, such as buddy list docking." +msgstr "מאפשר גישה לאפשרויות הייחודיות לפידג'ין בחלונות, כגון עגינה של רשימת אנשי הקשר." msgid "Logged out." msgstr "התנתק." @@ -13932,306 +13210,220 @@ msgid "This plugin is useful for debbuging XMPP servers or clients." msgstr "תוסף זה שימושי לניפוי באגים בשרתים ולקוחות של XMPP." +#~ msgid "Failed to open the file" +#~ msgstr "כישלון בעת פתיחת הקובץ" +#~ msgid "_Resume" +#~ msgstr "ה_משך" #~ msgid "Malformed BOSH Connect Server" #~ msgstr "שרת חיבור BOSH משובש" - #~ msgid "Unable to not load SILC key pair" #~ msgstr "לא ניתן שלא לטעון את זוג מפתחות ה-SILC" - #~ msgid "" #~ "%s declined your conference invitation to room \"%s\" because \"%s\"." #~ msgstr "%s סרב את ההזמנה שלך לועידה בחדר \"%s\" כיוון ש-\"%s\"." - #~ msgid "Invitation Rejected" #~ msgstr "ההזמנה נדחתה" #, fuzzy #~ msgid "_Proxy" #~ msgstr "מתווך" - #~ msgid "Cannot open socket" #~ msgstr "אין אפשרות לפתוח שקע" - #~ msgid "Could not listen on socket" #~ msgstr "אין אפשרות להקשיב בשקע זה" - #~ msgid "Unable to read socket" #~ msgstr "אין אפשרות לקרוא את השקע" - #~ msgid "Connection failed." #~ msgstr "ההתחברות נכשלה." - #~ msgid "Server has disconnected" #~ msgstr "השרת התנתק" - #~ msgid "Couldn't create socket" #~ msgstr "אין אפשרות ליצור שקע" - #~ msgid "Couldn't connect to host" #~ msgstr "לא ניתן להתחבר לשרת" - #~ msgid "Read error" #~ msgstr "שגיאה בקריאה" - #~ msgid "" #~ "Could not establish a connection with the server:\n" #~ "%s" #~ msgstr "" #~ "לא ניתן ליצור חיבור עם השרת:\n" #~ "%s" - #~ msgid "Write error" #~ msgstr "שגיאה בכתיבה" - #~ msgid "Last Activity" #~ msgstr "פעילות אחרונה" - #~ msgid "Service Discovery Info" #~ msgstr "מידע של שירות תגלית" - #~ msgid "Service Discovery Items" #~ msgstr "פריטי שירות תגלית" - #~ msgid "Extended Stanza Addressing" #~ msgstr "כתובות מורחבות לסטאנזות" - #~ msgid "Multi-User Chat" #~ msgstr "צ'אט מרובה משתמשים" - #~ msgid "Multi-User Chat Extended Presence Information" #~ msgstr "מידע נוכחותי בצ'אט מרובה משתמשים" - #~ msgid "In-Band Bytestreams" #~ msgstr "זרמי-נתונים לפי הסדר" - #~ msgid "Ad-Hoc Commands" #~ msgstr "פקודות זמניות" - #~ msgid "PubSub Service" #~ msgstr "שירות PubSub" - #~ msgid "SOCKS5 Bytestreams" #~ msgstr "זרמי-נתונים של SOCKS5" - #~ msgid "Out of Band Data" #~ msgstr "מידע שלא לפי סדר" - #~ msgid "XHTML-IM" #~ msgstr "XHTML-IM" - #~ msgid "In-Band Registration" #~ msgstr "רישום דרך התור" - #~ msgid "User Location" #~ msgstr "מיקום משתמש" - #~ msgid "User Avatar" #~ msgstr "תמונת משתמש" - #~ msgid "Chat State Notifications" #~ msgstr "התרעות על מצבי צ'אט" - #~ msgid "Software Version" #~ msgstr "גירסת תוכנה" - #~ msgid "Stream Initiation" #~ msgstr "איתחול זרם" - #~ msgid "User Mood" #~ msgstr "מצב-רוח המשתמש" - #~ msgid "User Activity" #~ msgstr "פעילות משתמש" - #~ msgid "Entity Capabilities" #~ msgstr "יכולות ישות" - #~ msgid "Encrypted Session Negotiations" #~ msgstr "מיקוחים לחיבור מוצפן" - #~ msgid "User Tune" #~ msgstr "שיר משתמש" - #~ msgid "Roster Item Exchange" #~ msgstr "החלפת פריטי רשימה" - #~ msgid "Reachability Address" #~ msgstr "כתובת זמינות" - #~ msgid "User Profile" #~ msgstr "פרופיל משתמש" - #~ msgid "Jingle" #~ msgstr "ג'ינגל" - #~ msgid "Jingle Audio" #~ msgstr "צליל ג'ינגל" - #~ msgid "User Nickname" #~ msgstr "כינוי משתמש" - #~ msgid "Jingle ICE UDP" #~ msgstr "ג'ינגל ICE UDP" - #~ msgid "Jingle ICE TCP" #~ msgstr "ג'ינגל ICE TCP" - #~ msgid "Jingle Raw UDP" #~ msgstr "ג'ינגל UDP לא-מעובד" - #~ msgid "Jingle Video" #~ msgstr "ג'ינגל וידאו" - #~ msgid "Jingle DTMF" #~ msgstr "ג'ינגל DTMF" - #~ msgid "Message Receipts" #~ msgstr "קבלות הודעות" - #~ msgid "Public Key Publishing" #~ msgstr "פירסום מפתח ציבורי" - #~ msgid "User Chatting" #~ msgstr "משתמש מצ'וטט" - #~ msgid "User Browsing" #~ msgstr "משתמש גולש" - #~ msgid "User Gaming" #~ msgstr "משתמש משחק" - #~ msgid "User Viewing" #~ msgstr "משתמש צופה" - #~ msgid "Stanza Encryption" #~ msgstr "הצפנת סטנזה" - #~ msgid "Entity Time" #~ msgstr "זמן ישות" - #~ msgid "Delayed Delivery" #~ msgstr "משלוח מעוכב" - #~ msgid "Collaborative Data Objects" #~ msgstr "אובייקטי מידע שיתופיים" - #~ msgid "File Repository and Sharing" #~ msgstr "ספריית קבצים ושיתוף" - #~ msgid "STUN Service Discovery for Jingle" #~ msgstr "שירות תגלית STUN עבור ג'ינגל" - #~ msgid "Simplified Encrypted Session Negotiation" #~ msgstr "מיקוח פשוט לחיבור המוצפן" - #~ msgid "Hop Check" #~ msgstr "בדיקת קפיצות" - #~ msgid "Read Error" #~ msgstr "שגיאה בקריאה" - #~ msgid "Failed to connect to server." #~ msgstr "כשל בהתחברות לשרת" - #~ msgid "Read buffer full (2)" #~ msgstr "תור-הקריאה מלא (2)" - #~ msgid "Unparseable message" #~ msgstr "הודעת שלא ניתנת לפיענוח" - #~ msgid "Couldn't connect to host: %s (%d)" #~ msgstr "לא ניתן להתחבר לשרת: %s (%d)" - #~ msgid "Login failed (%s)." #~ msgstr "לא ניתן להתחבר (%s)." - #~ msgid "" #~ "You have been logged out because you logged in at another workstation." #~ msgstr "נותקת כיוון שהתחברת ממחשב אחר." - #~ msgid "Error. SSL support is not installed." #~ msgstr "שגיאה. לא מותקנת תמיכה ב-SSL." - #~ msgid "Incorrect password." #~ msgstr "סיסמה לא נכונה." - #~ msgid "" #~ "Could not connect to BOS server:\n" #~ "%s" #~ msgstr "" #~ "לא ניתן להתחבר לשרת ה-BOS:\n" #~ "%s" - #~ msgid "You may be disconnected shortly. Check %s for updates." #~ msgstr "ייתכן ותנותק/י בקרוב. יש לבדוק את %s לעידכונים." - #~ msgid "Could Not Connect" #~ msgstr "לא ניתן להתחבר" - #~ msgid "Invalid username." #~ msgstr "שם משתמש לא תקף." #, fuzzy #~ msgid "Could not decrypt server reply" #~ msgstr "אין אפשרות לפיענוח המשוב בעת אימות משתמש" - #~ msgid "Connection lost" #~ msgstr "החיבור אבד" - #~ msgid "Couldn't resolve host" #~ msgstr "לא ניתן למצוא כתובת שרת" - #~ msgid "Connection closed (writing)" #~ msgstr "החיבור נסגר (כתיבה)" - #~ msgid "Connection reset" #~ msgstr "החיבור אותחל" - #~ msgid "Error reading from socket: %s" #~ msgstr "שגיאה בקריאת נתונים מהשקע: %s" - #~ msgid "Unable to connect to host" #~ msgstr "לא ניתן להתחבר לשרת" - #~ msgid "Could not write" #~ msgstr "לא ניתן לכתוב" - #~ msgid "Could not connect" #~ msgstr "לא ניתן להתחבר" - #~ msgid "Could not create listen socket" #~ msgstr "אין אפשרות ליצור שקע-קשב" - #~ msgid "Could not resolve hostname" #~ msgstr "לא ניתן למצוא כתובת שרת" #, fuzzy #~ msgid "Incorrect Password" #~ msgstr "סיסמה לא נכונה" - #~ msgid "" #~ "Could not establish a connection with %s:\n" #~ "%s" #~ msgstr "" #~ "לא היה ניתן ליצור חיבור עם %s:\n" #~ "%s" - #~ msgid "Yahoo Japan" #~ msgstr "Yahoo יפן" - #~ msgid "Japan Pager server" #~ msgstr "שרת ה-Pager ביפן" - #~ msgid "Japan file transfer server" #~ msgstr "שרת יפני להעברת קבצים" - #~ msgid "" #~ "Lost connection with server\n" #~ "%s" #~ msgstr "" #~ "אבד החיבור עם השרת\n" #~ "%s" - #~ msgid "Could not resolve host name" #~ msgstr "לא ניתן למצוא כתובת שרת" @@ -14240,53 +13432,39 @@ #~ "Unable to connect to %s: Server requires TLS/SSL, but no TLS/SSL support " #~ "was found." #~ msgstr "השרת דורש TLS/SSL להתחברות. לא נמצאה תמיכה ל-TLS/SSL." - #~ msgid "Conversation Window Hiding" #~ msgstr "הסתרת חלונות שיחה" - #~ msgid "More Data needed" #~ msgstr "נחוץ מידע נוסף" - #~ msgid "Please provide a shortcut to associate with the smiley." #~ msgstr "נא להזין קיצור-דרך לקשר עם החייכן." - #~ msgid "Please select an image for the smiley." #~ msgstr "יש לבחור תמונה עבור החייכן." - #~ msgid "Activate which ID?" #~ msgstr "איזה ID להפעיל?" - #~ msgid "Cursor Color" #~ msgstr "צבע הסמן" - #~ msgid "Secondary Cursor Color" #~ msgstr "צבע משני של הסמן" - #~ msgid "Interface colors" #~ msgstr "צבעי ממשק" - #~ msgid "Widget Sizes" #~ msgstr "גדלי פריטי ממשק" - #~ msgid "Invite message" #~ msgstr "הודעת הזמנה" - #~ msgid "" #~ "Please enter the name of the user you wish to invite,\n" #~ "along with an optional invite message." #~ msgstr "" #~ "יש להזין את שם המשתמש שברצונך להזמין,\n" #~ "יחד עם הודעת הזמנה אופציונלית." - #~ msgid "Unable to retrieve MSN Address Book" #~ msgstr "לא יכול לאחזר את רשימת הכתובות של MSN" - #~ 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] "אבד החיבור אל השרת (לא התקבל מידע תוך %d שניה)" #~ msgstr[1] "אבד החיבור אל השרת (לא התקבל מידע תוך %d שניות)" - #~ msgid "" #~ "You may be disconnected shortly. You may want to use TOC until this is " #~ "fixed. Check %s for updates." @@ -14301,10 +13479,8 @@ #, fuzzy #~ msgid "Can not decrypt get server reply" #~ msgstr "אין אפשרות לפיענוח המשוב בעת אימות משתמש" - #~ msgid "Keep alive error" #~ msgstr "שגיאה בהשאר-חי" - #~ msgid "" #~ "Lost connection with server:\n" #~ "%d, %s" @@ -14315,93 +13491,65 @@ #, fuzzy #~ msgid "Connecting server ..." #~ msgstr "שרת ההתחברות" - #~ msgid "Failed to send IM." #~ msgstr "כישלון בשליחת הודעה." #, fuzzy #~ msgid "Not a member of room \"%s\"\n" #~ msgstr "אינך חבר/ה בקבוצה \"%s\"\n" - #~ msgid "Looking up %s" #~ msgstr "מחפש את %s..." - #~ msgid "Connect to %s failed" #~ msgstr "ההתחברות אל %s לא הצליחה." - #~ msgid "Signon: %s" #~ msgstr "מתחבר: %s" - #~ msgid "Unable to write file %s." #~ msgstr "אין אפשרות לכתוב אל הקובץ %s" - #~ msgid "Unable to read file %s." #~ msgstr "אין אפשרות לקרוא את הקובץ %s." - #~ msgid "Message too long, last %s bytes truncated." #~ msgstr "הודעה ארוכה מדי, %s הבייטים האחרונים נקטמו." - #~ msgid "%s not currently logged in." #~ msgstr "%s אינו מחובר כרגע." - #~ msgid "Warning of %s not allowed." #~ msgstr "אזהרה של %s אינה מותרת." - #~ msgid "" #~ "A message has been dropped, you are exceeding the server speed limit." #~ msgstr "אבדה הודעה; אתה עובר על הגבלת המהירות של השרת." - #~ msgid "Chat in %s is not available." #~ msgstr "צ'אט ב-%s אינו זמין." - #~ msgid "You are sending messages too fast to %s." #~ msgstr "אתה שולח הודעות אל %s מהר מדיי." - #~ msgid "You missed an IM from %s because it was too big." #~ msgstr "פספסת הודעה מ-%s כיוון שהיא הייתה ארוכה מדי." - #~ msgid "You missed an IM from %s because it was sent too fast." #~ msgstr "פספסת הודעה מ-%s כיוון שהיא נשלחה מהר מדי." - #~ msgid "Failure." #~ msgstr "כישלון." - #~ msgid "Too many matches." #~ msgstr "יותר מידי תוצאות" - #~ msgid "Need more qualifiers." #~ msgstr "החיפוש זקוק ליותר מגדירים." - #~ msgid "Dir service temporarily unavailable." #~ msgstr "שירות המדריך אינו זמין זמנית." - #~ msgid "Email lookup restricted." #~ msgstr "חיפוש הדוא\"ל מוגבל." - #~ msgid "Keyword ignored." #~ msgstr "יתעלם ממילת המפתח." - #~ msgid "No keywords." #~ msgstr "אין מילות מפתח." - #~ msgid "User has no directory information." #~ msgstr "אין מידע עבור משתמש זה" - #~ msgid "Country not supported." #~ msgstr "המדינה אינה נתמכת." - #~ msgid "Failure unknown: %s." #~ msgstr "כשל מוכר: %s" - #~ msgid "Incorrect username or password." #~ msgstr "שם משתמש או סיסמא שגויים." - #~ msgid "The service is temporarily unavailable." #~ msgstr "השירות אינו זמין זמנית." - #~ msgid "Your warning level is currently too high to log in." #~ msgstr "רמת האזהרה שלך גבוהה מדיי כרגע מכדי להיכנס למערכת." - #~ msgid "" #~ "You have been connecting and disconnecting too frequently. Wait ten " #~ "minutes and try again. If you continue to try, you will need to wait " @@ -14409,93 +13557,64 @@ #~ msgstr "" #~ "התחברת והתנתקת בתדירות גבוהה מדיי. המתן 10 דקות ונסה שנית. אם תמשיך " #~ "לנסות, תיאלץ להמתין אפילו יותר." - #~ msgid "An unknown signon error has occurred: %s." #~ msgstr "ארעה שגיאה לא ידועה בזמן ניסיון לפתיחת %s" - #~ msgid "An unknown error, %d, has occurred. Info: %s" #~ msgstr "ארעה שגיאה לא מוכרת, %d, מידע: %s" - #~ msgid "Invalid Groupname" #~ msgstr "שם הקבוצה שגוי" - #~ msgid "Connection Closed" #~ msgstr "החיבור נסגר." - #~ msgid "Waiting for reply..." #~ msgstr "ממתין לתשובה..." - #~ msgid "TOC has come back from its pause. You may now send messages again." #~ msgstr "TOC חזר מן ה-pause שלו. ניתן לשלוח הודעות שוב." - #~ msgid "Password Change Successful" #~ msgstr "הסיסמה שלך שונתה בהצלחה." - #~ msgid "Get Dir Info" #~ msgstr "השג מידע על המשתמש" - #~ msgid "Set Dir Info" #~ msgstr "קבע מידע על המשתמש" - #~ msgid "Could not open %s for writing!" #~ msgstr "לא ניתן לפתוח %s לכתיבה" - #~ msgid "File transfer failed; other side probably canceled." #~ msgstr "כשל בהעברת הקובץ, כנראה צד שני ביטל" - #~ msgid "Could not connect for transfer." #~ msgstr "לא ניתן לחבר את ההעברה." - #~ msgid "Could not write file header. The file will not be transferred." #~ msgstr "לא ניתן לכתוב את רישת הקובץ. הקובץ לא יועבר." - #~ msgid "Save As..." #~ msgstr "שמור בשם..." - #~ msgid "%s requests %s to accept %d file: %s (%.2f %s)%s%s" #~ msgid_plural "%s requests %s to accept %d files: %s (%.2f %s)%s%s" #~ msgstr[0] "%s מבקש מ-%s לקבל %d קובץ: %s (%.2f %s)%s%s" #~ msgstr[1] "%s מבקש מ-%s לקבל %d קבצים: %s (%.2f %s)%s%s" - #~ msgid "%s requests you to send them a file" #~ msgstr "%s מבקש/ת ממך לשלוח לו/לה קובץ" - #~ msgid "TOC Protocol Plugin" #~ msgstr "תוסף פרוטוקול TOC" - #~ msgid "User information for %s unavailable" #~ msgstr "פרטי המשתמש %s אינם זמינים" - #~ msgid "%s Options" #~ msgstr "%s אפשרויות" - #~ msgid "Proxy Options" #~ msgstr "אפשרויות פרוקסי" - #~ msgid "By log size" #~ msgstr "לפי גודל יומן השיחות" - #~ msgid "_Open Link in Browser" #~ msgstr "_פתח את הקישור בדפדפן" - #~ msgid "ST_UN server:" #~ msgstr "שרת STUN:" - #~ msgid "Smiley _Image" #~ msgstr "_תמונת חייכן" - #~ msgid "Smiley S_hortcut" #~ msgstr "קיצורים ל_חייכנים" - #~ msgid "_Flash window when chat messages are received" #~ msgstr "_הבהב את חלון השיחה בעת קבלת הודעות צ'אט" - #~ msgid "A group with the name already exists." #~ msgstr "קבוצה בשם זה כבר קיימת." - #~ msgid "Primary Information" #~ msgstr "מידע ראשי" - #~ msgid "Blood Type" #~ msgstr "סוג דם" @@ -14506,21 +13625,16 @@ #, fuzzy #~ msgid "Successed:" #~ msgstr "מהירות:" - #~ msgid "" #~ "Setting custom faces is not currently supported. Please choose an image " #~ "from %s." #~ msgstr "אין כרגע תמיכה בהתאמה אישית של פרצופים. יש לבחור בתמונה מתוך %s." - #~ msgid "Invalid QQ Face" #~ msgstr "פרצוף QQ לא תקף" - #~ msgid "You rejected %d's request" #~ msgstr "דחית את בקשת %d" - #~ msgid "Reject request" #~ msgstr "דחה בקשה" - #~ msgid "Add buddy with auth request failed" #~ msgstr "כישלון בהוספת איש-קשר עם בקשת אימות" @@ -14531,13 +13645,10 @@ #, fuzzy #~ msgid "QQ Number Error" #~ msgstr "מספר QQ" - #~ msgid "Group Description" #~ msgstr "תיאור הקבוצה" - #~ msgid "Auth" #~ msgstr "אימות" - #~ msgid "Approve" #~ msgstr "אשר" @@ -14552,30 +13663,24 @@ #, fuzzy #~ msgid "[%d] added to Qun \"%d\"" #~ msgstr "את/ה [%d] נוספת אל הקבוצה \"%d\"" - #~ msgid "I am a member" #~ msgstr "אני הנני חבר/ה" #, fuzzy #~ msgid "I am requesting" #~ msgstr "בקשה שגויה" - #~ msgid "I am the admin" #~ msgstr "אני המנהל/ת" - #~ msgid "Unknown status" #~ msgstr "מצב לא ידוע" #, fuzzy #~ msgid "Remove from Qun" #~ msgstr "הסר קבוצה" - #~ msgid "You entered a group ID outside the acceptable range" #~ msgstr "הזנת מזהה-קבוצה מחוץ לטווח התקף" - #~ msgid "Are you sure you want to leave this Qun?" #~ msgstr "האם ברצונך לעזוב את Qun זה?" - #~ msgid "Do you want to approve the request?" #~ msgstr "האם ברצונך לאשר את הבקשה?" @@ -14586,26 +13691,20 @@ #, fuzzy #~ msgid "Change Qun information" #~ msgstr "מידע על הערוץ" - #~ msgid "System Message" #~ msgstr "הודעת מערכת" - #~ msgid "Last Login IP: %s
\n" #~ msgstr "כתובת חיבור אחרונה: %s
\n" - #~ msgid "Last Login Time: %s\n" #~ msgstr "זמן חיבור אחרון: %s\n" - #~ msgid "Set My Information" #~ msgstr "קבע את המידע שלי" #, fuzzy #~ msgid "Leave the QQ Qun" #~ msgstr "עזוב QQ Qun זה" - #~ msgid "Block this buddy" #~ msgstr "חסום משתמש זה" - #~ msgid "Invalid token reply code, 0x%02X" #~ msgstr "קוד-תגובה שגוי, 0x%02X" @@ -14616,7 +13715,6 @@ #, fuzzy #~ msgid "Failed to connect all servers" #~ msgstr "כישלון בהתחברות לשרת" - #~ msgid "Connecting server %s, retries %d" #~ msgstr "מתחבר עם שרת %s, ניסיונות %d" @@ -14635,7 +13733,6 @@ #, fuzzy #~ msgid "QQ Budy" #~ msgstr "איש הקשר" - #~ msgid "%s wants to add you [%s] as a friend" #~ msgstr "%s רוצה להוסיף אותך [%s] כחבר" @@ -14646,7 +13743,6 @@ #, fuzzy #~ msgid "Would you add?" #~ msgstr "האם ברצונך להוסיף אותו?" - #~ msgid "%s" #~ msgstr "%s" @@ -14657,166 +13753,116 @@ #, fuzzy #~ msgid "Network disconnected" #~ msgstr "הצד המרוחק מנותק" - #~ msgid "developer" #~ msgstr "מפתח" - #~ msgid "XMPP developer" #~ msgstr "מפתח XMPP" - #~ msgid "Artists" #~ msgstr "אמנים" - #~ msgid "" #~ "You are using %s version %s. The current version is %s. You can get it " #~ "from %s


" #~ msgstr "" #~ "%s שבשימוש הוא גירסא %s. הגירסא הנוכחית היא %s. ניתן להשיג אותה מ-%s
" - #~ msgid "ChangeLog:
%s" #~ msgstr "רשימת שינויים:
%s" - #~ msgid "EOF while reading from resolver process" #~ msgstr "קבלת סיום-קובץ בעת קריאה מתהליך ה-resolver" - #~ msgid "Your information has been updated" #~ msgstr "המידע שלך עודכן" - #~ msgid "Input your reason:" #~ msgstr "הזנ/י את סיבתך:" - #~ msgid "You have successfully removed a buddy" #~ msgstr "הסרת איש-קשר בהצלחה" - #~ msgid "You have successfully removed yourself from your friend's buddy list" #~ msgstr "הסרת את עצמך בהצלחה מרשימת אנשי הקשר של חברך" - #~ msgid "You have added %d to buddy list" #~ msgstr "הוספת את %d לרשימת אנשי-קשר" - #~ msgid "Invalid QQid" #~ msgstr "QQid לא תקף" - #~ msgid "Please enter external group ID" #~ msgstr "יש להזין ID של הקבוצה החיצונית" - #~ msgid "Reason: %s" #~ msgstr "סיבה: %s" - #~ msgid "Your request to join group %d has been approved by admin %d" #~ msgstr "בקשתך להצטרף לקבוצה %d אושרה על ידי המנהל %d" - #~ msgid "I am applying to join" #~ msgstr "אני מבקש/ת להצטרף" - #~ msgid "You have successfully left the group" #~ msgstr "עבת את הקבוצה בהצלחה " - #~ msgid "QQ Group Auth" #~ msgstr "אימות לקבוצת QQ" - #~ msgid "Your authorization request has been accepted by the QQ server" #~ msgstr "בקשת האימות שלך התקבלה בחיוב על ידי שרת ה-QQ" - #~ msgid "Enter your reason:" #~ msgstr "הזנ/י את סיבתך:" - #~ msgid " Space" #~ msgstr " ספייס" - #~ msgid "Real hostname: %s: %d
\n" #~ msgstr "שם מחשב אמיתי: %s: %d
\n" - #~ msgid "Show Login Information" #~ msgstr "הצג מידע על החיבור" - #~ msgid "resend interval(s)" #~ msgstr "פרק זמן בין שליחות חוזרות" - #~ msgid "hostname is NULL or port is 0" #~ msgstr "שם המחשב ריק, או מספר השקע 0" - #~ msgid "Unable to login. Check debug log." #~ msgstr "לא ניתן להיכנס. יש לבדוק ביומן רישום הבאגים" - #~ msgid "Failed room reply" #~ msgstr "כשל במשוב מהחדר" - #~ msgid "User %s rejected your request" #~ msgstr "המשתמש %s סרב לבקשתך" - #~ msgid "User %s approved your request" #~ msgstr "המשתמש %s אישר את בקשתך" - #~ msgid "Notice from: %s" #~ msgstr "הודעה מאת: %s" - #~ msgid "Code [0x%02X]: %s" #~ msgstr "קוד [0x%02X]: %s" - #~ msgid "Group Operation Error" #~ msgstr "שגיאה בפעולת-קבוצה" - #~ msgid "Error setting socket options" #~ msgstr "שגיאה בקביעת הגדרות השקע" - #~ msgid "" #~ "Windows Live ID authentication: cannot find authenticate token in server " #~ "response" #~ msgstr "אימות מזהה Windows Live: לא ניתן למצוא סמל אימות בתגובת השרת" - #~ msgid "Windows Live ID authentication Failed" #~ msgstr "אימות מזהה Windows Live נכשלה" - #~ msgid "Too evil (sender)" #~ msgstr "השולח מרושע מדי" - #~ msgid "Too evil (receiver)" #~ msgstr "המקבל מרושע מדי" - #~ msgid "Available Message" #~ msgstr "הודעת זמינות" - #~ msgid "Away Message" #~ msgstr "הודעת ריחוק מהמחשב" - #~ msgid "(retrieving)" #~ msgstr " (שולף)" - #~ msgid "TCP Address" #~ msgstr "כתובת TCP" - #~ msgid "UDP Address" #~ msgstr "כתובת UDP" #, fuzzy #~ msgid "Display Statistics" #~ msgstr "סטטיסטיקות של השרת" - #~ msgid "Screen name:" #~ msgstr "שם לתצוגה:" - #~ msgid "Someone says your screen name in chat" #~ msgstr "מישהו מזכיר את שמך בצ'אט" - #~ msgid "" #~ "This server requires plaintext authentication over an unencrypted " #~ "connection. Allow this and continue authentication?" #~ msgstr "השרת דורש אימות לא מוצפן מעל תקשורת לא מוצפנת.להמשיך בכל זאת?" - #~ msgid "Use GSSAPI (Kerberos v5) for authentication" #~ msgstr "השתמש בGSSAPI (קרברוס גירסה 5) לצורך אימות" - #~ msgid "Invalid screen name" #~ msgstr "שם לתצוגה לא תקין" - #~ msgid "Invalid screen name." #~ msgstr "שם-תצוגה לא תקין." - #~ msgid "Screen _name:" #~ msgstr "שם לתצוגה:" - #~ msgid "" #~ "%s%sWritten by:\t%s\n" #~ "Website:\t\t%s\n" @@ -14825,10 +13871,10 @@ #~ "%s%sנכתב ע\"י:\t%s\n" #~ "אתר:\t\t%s\n" #~ "שם קובץ:\t\t%s" - #~ msgid "" #~ "The contact availability plugin (cap) is used to display statistical " #~ "information about buddies in a users contact list." #~ msgstr "" #~ "התוסף לניבוי זמינות אנשי-קשר מציג מידע סטטיסטי על החברים ברשימת אנשי הקשר " #~ "של המשתמש." + diff -r c138390bada8 -r 7763697a85c8 po/hu.po --- a/po/hu.po Thu Aug 13 17:40:00 2009 +0000 +++ b/po/hu.po Mon Aug 24 19:21:21 2009 +0000 @@ -10,10 +10,10 @@ msgstr "" "Project-Id-Version: pidgin 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-31 12:01+0200\n" -"PO-Revision-Date: 2009-07-31 11:58+0200\n" +"POT-Creation-Date: 2009-08-21 17:54+0200\n" +"PO-Revision-Date: 2009-08-21 17:54+0200\n" "Last-Translator: Gabor Kelemen \n" -"Language-Team: Hungarian \n" +"Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -869,7 +869,7 @@ msgid "System Log" msgstr "Rendszernapló" -msgid "Calling ... " +msgid "Calling..." msgstr "Hívás…" msgid "Hangup" @@ -1508,6 +1508,31 @@ "Ez a bővítmény új társalgás megnyitásakor beszúrja az utolsó társalgást az " "aktuális társalgásba." +#, c-format +msgid "" +"\n" +"Fetching TinyURL..." +msgstr "" +"\n" +"TinyURL lekérése…" + +msgid "Only create TinyURL for URLs of this length or greater" +msgstr "TinyURL készítése csak a legalább ilyen hosszú URL-címekhez" + +msgid "TinyURL (or other) address prefix" +msgstr "TinyURL (vagy más) címelőtag" + +msgid "TinyURL" +msgstr "TinyURL" + +msgid "TinyURL plugin" +msgstr "TinyURL bővítmény" + +msgid "When receiving a message with URL(s), use TinyURL for easier copying" +msgstr "" +"URL-címeket tartalmazó üzenet fogadásakor TinyURL használata a másolás " +"megkönnyítéséhez" + msgid "Online" msgstr "Elérhető" @@ -1551,31 +1576,6 @@ msgid "Lastlog plugin." msgstr "Lastlog bővítmény." -#, c-format -msgid "" -"\n" -"Fetching TinyURL..." -msgstr "" -"\n" -"TinyURL lekérése…" - -msgid "Only create TinyURL for urls of this length or greater" -msgstr "TinyURL készítése csak a legalább ilyen hosszú URL-címekhez" - -msgid "TinyURL (or other) address prefix" -msgstr "TinyURL (vagy más) címelőtag" - -msgid "TinyURL" -msgstr "TinyURL" - -msgid "TinyURL plugin" -msgstr "TinyURL bővítmény" - -msgid "When receiving a message with URL(s), TinyURL for easier copying" -msgstr "" -"URL-címeket tartalmazó üzenetek fogadásakor URL-rövidítés a másolás " -"megkönnyítéséhez" - msgid "accounts" msgstr "fiókok" @@ -1728,7 +1728,6 @@ "A(z) „%s” által bemutatott tanúsítvány saját aláírású. Nem ellenőrizhető " "automatikusan." -#. FIXME 2.6.1 #, c-format msgid "The certificate chain presented for %s is not valid." msgstr "A következőhöz bemutatott tanúsítványlánc nem érvényes: %s." @@ -1751,6 +1750,18 @@ msgid "Invalid certificate authority signature" msgstr "A hitelesítésszolgáltató aláírása érvénytelen" +#, c-format +msgid "Failed to validate expiration time for %s" +msgstr "Nem sikerült ellenőrizni a következő lejárati idejét: %s" + +#, c-format +msgid "The certificate for %s is expired." +msgstr "%s tanúsítványa lejárt." + +#, c-format +msgid "The certificate for %s should not yet be in use." +msgstr "A következő tanúsítványát még nem lenne szabad használni: %s." + #. Make messages #, c-format msgid "" @@ -1986,18 +1997,18 @@ msgstr "A fájlátvitel befejeződött" #, c-format -msgid "You canceled the transfer of %s" +msgid "You cancelled the transfer of %s" msgstr "Megszakította %s átvitelét" msgid "File transfer cancelled" msgstr "Fájlátvitel megszakítva" #, c-format -msgid "%s canceled the transfer of %s" +msgid "%s cancelled the transfer of %s" msgstr "%s megszakította %s átvitelét" #, c-format -msgid "%s canceled the file transfer" +msgid "%s cancelled the file transfer" msgstr "%s megszakította a fájlátvitelt" #, c-format @@ -2455,14 +2466,15 @@ "Bővítmények IPC támogatásának tesztelése kiszolgálóként. Ez regisztrálja az " "IPC parancsokat." -msgid "Join/Part Hiding Configuration" -msgstr "Belépés/kilépés rejtésének beállítása" - -msgid "Minimum Room Size" -msgstr "Szoba legkisebb mérete" - -msgid "User Inactivity Timeout (in minutes)" -msgstr "Felhasználó inaktivitási időtartama (perc)" +msgid "Hide Joins/Parts" +msgstr "Belépés/kilépés elrejtése" + +#. Translators: Followed by an input request a number of people +msgid "For rooms with more than this many people" +msgstr "Ennél több jelenlévővel rendelkező szobákhoz:" + +msgid "If user has not spoken in this many minutes" +msgstr "Ha a felhasználó nem szólalt meg ennyi percig" msgid "Apply hiding rules to buddies" msgstr "Elrejtési szabályok alkalmazása partnerekre" @@ -3916,20 +3928,24 @@ msgid "Logo" msgstr "Logó" +#, c-format +msgid "" +"%s will no longer be able to see your status updates. Do you want to " +"continue?" +msgstr "%s nem fogja többé látni az Ön állapotfrissítéseit. Folytatni akarja?" + +msgid "Cancel Presence Notification" +msgstr "Jelenlét-értesítés törlése" + msgid "Un-hide From" msgstr "Rejtettség visszavonása" msgid "Temporarily Hide From" msgstr "Ideiglenesen elrejt" -#. && NOT ME -msgid "Cancel Presence Notification" -msgstr "Jelenlét-értesítés törlése" - msgid "(Re-)Request authorization" msgstr "Engedélyezés (újra)kérése" -#. if(NOT ME) #. shouldn't this just happen automatically when the buddy is #. removed? msgid "Unsubscribe" @@ -4538,11 +4554,11 @@ msgid "" "role <moderator|participant|visitor|none> [nick1] [nick2] ...: Get the " -"users with an role or set users' role with the room." -msgstr "" -"role <moderator|participant|visitor|none>: [1. becenév] [2. becenév]" -"… : Adott szereppel rendelkező felhasználók lekérése vagy a felhasználók " -"szerepének beállítása a szobával." +"users with a role or set users' role with the room." +msgstr "" +"role <moderator|participant|visitor|none> [1. becenév] [2. becenév] …: " +"Adott szerepű felhasználók lekérése vagy a felhasználók szerepének " +"beállítása a szobával." msgid "invite <user> [message]: Invite a user to the room." msgstr "invite <felhasználó> [üzenet]: Felhasználó meghívása a szobába." @@ -4685,9 +4701,6 @@ msgid "Transfer was closed." msgstr "Az átvitel lezárva." -msgid "Failed to open the file" -msgstr "Nem sikerült megnyitni a fájlt" - msgid "Failed to open in-band bytestream" msgstr "A bejövő adatfolyam megnyitása meghiúsult" @@ -4965,8 +4978,7 @@ msgid "Not expected" msgstr "Váratlan" -#, c-format -msgid "Friendly name changes too rapidly" +msgid "Friendly name is changing too rapidly" msgstr "A felhasználónév túl gyorsan változik" #, c-format @@ -5535,8 +5547,9 @@ "%s meg szeretné tekinteni az Ön webkameráját, de ez még nem támogatott." #, c-format -msgid "%s has sent you a webcam invite, which is not yet supported." -msgstr "%s webkamera-meghívást küldött, ami még nem támogatott." +msgid "%s invited you to view his/her webcam, but this is not yet supported." +msgstr "" +"%s meghívta Önt a webkamerájának megnézésére, de ez még nem támogatott." msgid "Away From Computer" msgstr "Nem vagyok a gépnél" @@ -5587,6 +5600,10 @@ msgid "The username specified is invalid." msgstr "A megadott felhasználónév érvénytelen." +#, c-format +msgid "Friendly name changes too rapidly" +msgstr "A felhasználónév túl gyorsan változik" + msgid "This Hotmail account may not be active." msgstr "Lehetséges, hogy ez a Hotmail fiók nem aktív." @@ -5945,18 +5962,17 @@ msgid "Slapping %s..." msgstr "%s pofozása…" -# fixme: hát ez ezt jelenti ;) #. Goose means "to pinch someone on their butt" msgid "Goose" -msgstr "Seggberúgás" +msgstr "Megcsípés" #, c-format msgid "%s has goosed you!" -msgstr "%s seggberúgta!" +msgstr "%s megcsípte!" #, c-format msgid "Goosing %s..." -msgstr "%s seggberúgása…" +msgstr "%s megcsípése…" #. A high-five is when two people's hands slap each other #. * in the air above their heads. It is done to celebrate @@ -6265,8 +6281,10 @@ msgid "Server port" msgstr "Kiszolgáló portja" -msgid "Received unexpected response from " -msgstr "Váratlan válasz érkezett a következőtől: " +#. Note to translators: %s in this string is a URL +#, c-format +msgid "Received unexpected response from %s" +msgstr "Váratlan válasz érkezett innen: %s" #. username connecting too frequently msgid "" @@ -6276,9 +6294,11 @@ "Ön túl gyakran jelentkezik ki/be. Várjon tíz percet és próbálja meg újra. Ha " "tovább folytatja, még többet kell majd várnia." -#, c-format -msgid "Error requesting " -msgstr "Hiba a kéréskor: " +#. Note to translators: The first %s is a URL, the second is an +#. error message. +#, c-format +msgid "Error requesting %s: %s" +msgstr "Hiba %s lekérésekor: %s" msgid "AOL does not allow your screen name to authenticate here" msgstr "Az AOL nem engedélyezi ezen megjelenő név hitelesítését" @@ -7072,6 +7092,9 @@ msgid "C_onnect" msgstr "Kapcs_olódás" +msgid "You closed the connection." +msgstr "Lezárta a kapcsolatot." + msgid "Get AIM Info" msgstr "AIM információk lekérése" @@ -7082,6 +7105,9 @@ msgid "Get Status Msg" msgstr "Állapotüzenet lekérése" +msgid "End Direct IM Session" +msgstr "A közvetlen kapcsolat befejezése" + msgid "Direct IM" msgstr "Közvetlen IM" @@ -7913,7 +7939,7 @@ msgstr "Fájlküldés" #, c-format -msgid "%d canceled the transfer of %s" +msgid "%d cancelled the transfer of %s" msgstr "%d megszakította a(z) %s átvitelét" #, c-format @@ -9488,6 +9514,10 @@ msgid "Yahoo! JAPAN Protocol Plugin" msgstr "Yahoo! Japán protokollbővítmény" +#, c-format +msgid "%s has sent you a webcam invite, which is not yet supported." +msgstr "%s webkamera-meghívást küldött, ami még nem támogatott." + msgid "Your SMS was not delivered" msgstr "Az SMS nem lett kézbesítve" @@ -9564,8 +9594,26 @@ msgid "Ignore buddy?" msgstr "Mellőzi a partnert?" -msgid "Your account is locked, please log in to the Yahoo! website." -msgstr "A fiókja zárolva van, kérem jelentkezzen be a Yahoo! weboldalára." +msgid "Invalid username or password" +msgstr "Érvénytelen felhasználónév vagy jelszó" + +msgid "" +"Your account has been locked due to too many failed login attempts. Please " +"try logging into the Yahoo! website." +msgstr "" +"A fiók zárolva, mert túl sok bejelentkezési kísérlet hiúsult meg. Próbáljon " +"meg bejelentkezni a Yahoo! weboldalára." + +#, c-format +msgid "Unknown error 52. Reconnecting should fix this." +msgstr "Ismeretlen hiba: 52. Próbáljon újracsatlakozni." + +msgid "" +"Error 1013: The username you have entered is invalid. The most common cause " +"of this error is entering your e-mail address instead of your Yahoo! ID." +msgstr "" +"1013-as hiba: A megadott felhasználónév érvénytelen. Ennek leggyakoribb oka, " +"hogy az e-mail címét adta meg a Yahoo! azonosítója helyett." #, c-format msgid "Unknown error number %d. Logging into the Yahoo! website may fix this." @@ -10332,6 +10380,124 @@ "segítségével visszatérhet ehhez az ablakhoz fiókok hozzáadásához, " "szerkesztéséhez vagy eltávolításához." +#. Buddy List +msgid "Background Color" +msgstr "Háttérszín" + +msgid "The background color for the buddy list" +msgstr "A partnerlista háttérszíne" + +msgid "Layout" +msgstr "Elrendezés" + +msgid "The layout of icons, name, and status of the buddy list" +msgstr "A partnerlista ikonjainak, nevének és állapotának elrendezése" + +#. Group +#. Note to translators: These two strings refer to the background color +#. of a buddy list group when in its expanded state +msgid "Expanded Background Color" +msgstr "Kibontott háttérszín" + +msgid "The background color of an expanded group" +msgstr "Kibontott csoport háttérszíne" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list group when in its expanded state +msgid "Expanded Text" +msgstr "Kibontott szöveg" + +msgid "The text information for when a group is expanded" +msgstr "Szöveges információk kibontott csoport esetén" + +#. Note to translators: These two strings refer to the background color +#. of a buddy list group when in its collapsed state +msgid "Collapsed Background Color" +msgstr "Összecsukott háttérszín" + +msgid "The background color of a collapsed group" +msgstr "Összecsukott csoport háttérszíne" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list group when in its collapsed state +msgid "Collapsed Text" +msgstr "Összecsukott szöveg" + +msgid "The text information for when a group is collapsed" +msgstr "A szöveges információk összecsukott csoport esetén" + +#. Buddy +#. Note to translators: These two strings refer to the background color +#. of a buddy list contact or chat room +msgid "Contact/Chat Background Color" +msgstr "Partner/csevegés háttérszíne" + +msgid "The background color of a contact or chat" +msgstr "Partner vagy csevegés háttérszíne" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list contact when in its expanded state +msgid "Contact Text" +msgstr "Partnerszöveg" + +msgid "The text information for when a contact is expanded" +msgstr "Kibontott partner szöveges információi" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list buddy when it is online +msgid "Online Text" +msgstr "Elérhető szöveg" + +msgid "The text information for when a buddy is online" +msgstr "Elérhető partner szöveges információi" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list buddy when it is away +msgid "Away Text" +msgstr "Távol szöveg" + +msgid "The text information for when a buddy is away" +msgstr "Távol lévő partner szöveges információi" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list buddy when it is offline +msgid "Offline Text" +msgstr "Kilépett szöveg" + +msgid "The text information for when a buddy is offline" +msgstr "Kilépett partner szöveges információi" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list buddy when it is idle +msgid "Idle Text" +msgstr "Ráérő szöveg" + +msgid "The text information for when a buddy is idle" +msgstr "Ráérő partner szöveges információi" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list buddy when they have sent you a new message +msgid "Message Text" +msgstr "Üzenetszöveg" + +msgid "The text information for when a buddy has an unread message" +msgstr "Olvasatlan üzenetekkel rendelkező partner szöveges információi" + +#. Note to translators: These two strings refer to the font and color +#. of a buddy list buddy when they have sent you a new message +msgid "Message (Nick Said) Text" +msgstr "Üzenetszöveg (becenév említve)" + +msgid "" +"The text information for when a chat has an unread message that mentions " +"your nickname" +msgstr "" +"Szöveges információk, ha a csevegés olvasatlan üzeneteket tartalmaz, amelyek " +"az Ön becenevét említik" + +msgid "The text information for a buddy's status" +msgstr "Partner állapotának szöveges információi" + #, c-format msgid "You have %d contact named %s. Would you like to merge them?" msgid_plural "" @@ -10767,8 +10933,8 @@ msgid "_Group:" msgstr "_Csoport:" -msgid "Auto_join when account becomes online." -msgstr "Automatikus _csatlakozás a fiók elérhetővé válásakor." +msgid "Auto_join when account connects." +msgstr "Automatikus _csatlakozás a fiók csatlakozásakor." msgid "_Remain in chat after window is closed." msgstr "Csevegésben mara_dás az ablak bezárásakor." @@ -10800,100 +10966,6 @@ msgid "/Buddies/Sort Buddies" msgstr "/Partnerek/Partnerek rendezése" -#. Buddy List -msgid "Background Color" -msgstr "Háttérszín" - -msgid "The background color for the buddy list" -msgstr "A partnerlista háttérszíne" - -msgid "Layout" -msgstr "Elrendezés" - -msgid "The layout of icons, name, and status of the blist" -msgstr "A partnerlista ikonjainak, nevének és állapotának elrendezése" - -#. Group -msgid "Expanded Background Color" -msgstr "Kibontott háttérszín" - -msgid "The background color of an expanded group" -msgstr "Kibontott csoport háttérszíne" - -msgid "Expanded Text" -msgstr "Kibontott szöveg" - -msgid "The text information for when a group is expanded" -msgstr "Szöveges információk kibontott csoport esetén" - -msgid "Collapsed Background Color" -msgstr "Összecsukott háttérszín" - -msgid "The background color of a collapsed group" -msgstr "Összecsukott csoport háttérszíne" - -msgid "Collapsed Text" -msgstr "Összecsukott szöveg" - -msgid "The text information for when a group is collapsed" -msgstr "A szöveges információk összecsukott csoport esetén" - -#. Buddy -msgid "Contact/Chat Background Color" -msgstr "Partner/csevegés háttérszíne" - -msgid "The background color of a contact or chat" -msgstr "Partner vagy csevegés háttérszíne" - -msgid "Contact Text" -msgstr "Partnerszöveg" - -msgid "The text information for when a contact is expanded" -msgstr "Kibontott partner szöveges információi" - -msgid "On-line Text" -msgstr "Elérhető szöveg" - -msgid "The text information for when a buddy is online" -msgstr "Elérhető partner szöveges információi" - -msgid "Away Text" -msgstr "Távol szöveg" - -msgid "The text information for when a buddy is away" -msgstr "Távol lévő partner szöveges információi" - -msgid "Off-line Text" -msgstr "Kilépett szöveg" - -msgid "The text information for when a buddy is off-line" -msgstr "Kilépett partner szöveges információi" - -msgid "Idle Text" -msgstr "Ráérő szöveg" - -msgid "The text information for when a buddy is idle" -msgstr "Ráérő partner szöveges információi" - -msgid "Message Text" -msgstr "Üzenetszöveg" - -msgid "The text information for when a buddy has an unread message" -msgstr "Olvasatlan üzenetekkel rendelkező partner szöveges információi" - -msgid "Message (Nick Said) Text" -msgstr "Üzenetszöveg (becenév említve)" - -msgid "" -"The text information for when a chat has an unread message that mentions " -"your nick" -msgstr "" -"Szöveges információk, ha a csevegés olvasatlan üzeneteket tartalmaz, amelyek " -"az Ön becenevét említik" - -msgid "The text information for a buddy's status" -msgstr "Partner állapotának szöveges információi" - msgid "Type the host name for this certificate." msgstr "Írja be a tanúsítványt birtokló gép nevét." @@ -10978,6 +11050,9 @@ msgid "/Conversation/New Instant _Message..." msgstr "/Társalgás/Új azonnali ü_zenet…" +msgid "/Conversation/Join a _Chat..." +msgstr "/Társalgás/Csatlakozás _csevegéshez…" + msgid "/Conversation/_Find..." msgstr "/Társalgás/Ker_esés…" @@ -11360,7 +11435,7 @@ msgid "Estonian" msgstr "észt" -msgid "Euskera(Basque)" +msgid "Basque" msgstr "Baszk" msgid "Persian" @@ -11565,10 +11640,19 @@ #, c-format msgid "" "Help via e-mail: support@pidgin.im

" -msgstr "" -"Segítség e-mailben (angol): support@pidgin.im

" +"\">support@pidgin.im (This is a mailing list, and messages sent here are publicly archived! " +"Furthermore, we do not support MXit, Facebook, Skype, or any " +"other third-party plugins on this list.

" +msgstr "" +"Segítség e-mailben: support@pidgin.im (Ez egy angol nyelvű levelezőlista, az ide küldött levelek " +"nyilvánosan elérhetők " +"lesznek! Továbbá, ezen a listán nem támogatjuk az MXit, " +"Facebook, Skype, vagy bármely más harmadik féltől származó bővítményt.

" #, c-format msgid "" @@ -12125,65 +12209,45 @@ #, c-format msgid "" -"%s %s\n" "Usage: %s [OPTION]...\n" "\n" -" -c, --config=DIR use DIR for config files\n" -" -d, --debug print debugging messages to stdout\n" -" -f, --force-online force online, regardless of network status\n" -" -h, --help display this help and exit\n" -" -m, --multiple do not ensure single instance\n" -" -n, --nologin don't automatically login\n" -" -l, --login[=NAME] enable specified account(s) (optional argument NAME\n" -" specifies account(s) to use, separated by commas.\n" -" Without this only the first account will be enabled).\n" -" --display=DISPLAY X display to use\n" -" -v, --version display the current version and exit\n" -msgstr "" -"%s %s\n" +msgstr "" "Használat: %s [KAPCSOLÓ]…\n" "\n" -" -c, --config=KÖNYVTÁR A KÖNYVTÁR használata a beállítófájlokhoz\n" -" -d, --debug hibakereső üzenetek kiírása a szabványos kimenetre\n" -" -f, --force-online elérhető állapot kényszerítése, a hálózat állapotától\n" -" függetlenül\n" -" -h, --help ezen súgó megjelenítése és kilépés\n" -" -m, --multiple ne csak egy példány futhasson\n" -" -n, --nologin ne jelentkezzen be automatikusan\n" -" -l, --login[=NÉV] automatikus bejelentkezés (a NÉV paraméter megadja a\n" -" használandó fiókok vesszőkkel tagolt listáját)\n" -" --display=KÉPERNYŐ a használandó X megjelenítő\n" -" -v, --version az aktuális verzió megjelenítése és kilépés\n" - -#, c-format -msgid "" -"%s %s\n" -"Usage: %s [OPTION]...\n" -"\n" -" -c, --config=DIR use DIR for config files\n" -" -d, --debug print debugging messages to stdout\n" -" -f, --force-online force online, regardless of network status\n" -" -h, --help display this help and exit\n" -" -m, --multiple do not ensure single instance\n" -" -n, --nologin don't automatically login\n" -" -l, --login[=NAME] enable specified account(s) (optional argument NAME\n" -" specifies account(s) to use, separated by commas.\n" -" Without this only the first account will be enabled).\n" -" -v, --version display the current version and exit\n" -msgstr "" -"%s %s\n" -"Használat: %s [KAPCSOLÓ]…\n" -"\n" -" -c, --config=KÖNYVTÁR A KÖNYVTÁR használata a beállítófájlokhoz\n" -" -d, --debug hibakereső üzenetek kiírása a szabványos kimenetre\n" -" -f, --force-online elérhető állapot kényszerítése, a hálózat állapotától\n" -" függetlenül\n" -" -h, --help ezen súgó megjelenítése és kilépés\n" -" -m, --multiple ne csak egy példány futhasson\n" -" -n, --nologin ne jelentkezzen be automatikusan\n" -" -l, --login[=NÉV] automatikus bejelentkezés (a NÉV paraméter megadja a\n" -" használandó fiókok vesszőkkel tagolt listáját)\n" -" -v, --version az aktuális verzió megjelenítése és kilépés\n" + +msgid "use DIR for config files" +msgstr "a KÖNYVTÁR használata a beállítófájlokhoz" + +msgid "print debugging messages to stdout" +msgstr "hibakereső üzenetek kiírása a szabványos kimenetre" + +msgid "force online, regardless of network status" +msgstr "elérhető kényszerítése a hálózat állapotától függetlenül" + +msgid "display this help and exit" +msgstr "ezen súgó megjelenítése és kilépés" + +msgid "allow multiple instances" +msgstr "több példány engedélyezése" + +msgid "don't automatically login" +msgstr "ne jelentkezzen be automatikusan" + +msgid "" +"enable specified account(s) (optional argument NAME\n" +" specifies account(s) to use, separated by commas." +msgstr "" +"automatikus bejelentkezés (a NÉV paraméter megadja a\n" +" használandó fiókok vesszőkkel tagolt listáját." + +msgid "Without this only the first account will be enabled)." +msgstr "Enélkül csak az első fiók lesz engedélyezve)." + +msgid "X display to use" +msgstr "Használandó X-megjelenítő" + +msgid "display the current version and exit" +msgstr "az aktuális verzió megjelenítése és kilépés" #, c-format msgid "" @@ -12201,7 +12265,7 @@ "%swiki/GetABacktrace\n" msgstr "" "A %s %s összeomlott és megpróbált kiírni egy magfájlt.\n" -"Ez a szoftver és nem az Ön hibája miatt történt.\n" +"Ez a szoftver, és nem az Ön hibája miatt történt.\n" "\n" "Ha ismételten elő tudja állítani az összeomlást, akkor\n" "értesítse a Pidgin fejlesztőit a következő címen:\n" @@ -12228,9 +12292,6 @@ msgid "/Media/_Hangup" msgstr "/Média/_Lerakás" -msgid "Calling..." -msgstr "Hívás…" - #, c-format msgid "%s wishes to start an audio/video session with you." msgstr "%s hang/videókapcsolatot szeretne indítani." @@ -12239,6 +12300,12 @@ msgid "%s wishes to start a video session with you." msgstr "%s videókapcsolatot szeretne indítani." +msgid "Incoming Call" +msgstr "Bejövő hívás" + +msgid "_Pause" +msgstr "_Szünet" + #, c-format msgid "%s has %d new message." msgid_plural "%s has %d new messages." @@ -13178,9 +13245,6 @@ msgid "_Open Mail" msgstr "_Levél megnyitása" -msgid "_Pause" -msgstr "_Szünet" - msgid "_Edit" msgstr "S_zerkesztés" @@ -13244,66 +13308,6 @@ msgid "Displays statistical information about your buddies' availability" msgstr "Statisztikai információk megjelenítése a partnerek elérhetőségéről" -msgid "Server name request" -msgstr "Kiszolgálónév-kérés" - -msgid "Enter an XMPP Server" -msgstr "Adjon meg egy XMPP kiszolgálót" - -msgid "Select an XMPP server to query" -msgstr "Válassza ki a lekérdezendő XMPP kiszolgálót" - -msgid "Find Services" -msgstr "Szolgáltatások keresése" - -msgid "Add to Buddy List" -msgstr "Felvétel a partnerlistára" - -msgid "Gateway" -msgstr "Átjáró" - -msgid "Directory" -msgstr "Címtár" - -msgid "PubSub Collection" -msgstr "PubSub gyűjtemény" - -msgid "PubSub Leaf" -msgstr "PubSub levél" - -msgid "" -"\n" -"Description: " -msgstr "" -"\n" -"Leírás:" - -#. Create the window. -msgid "Service Discovery" -msgstr "Szolgáltatásfeltérképezés" - -msgid "_Browse" -msgstr "_Tallózás" - -msgid "Server does not exist" -msgstr "A kiszolgáló nem létezik" - -msgid "Server does not support service discovery" -msgstr "A kiszolgáló nem támogatja a szolgáltatásfeltérképezést" - -msgid "XMPP Service Discovery" -msgstr "XMPP szolgáltatásfeltérképezés" - -msgid "Allows browsing and registering services." -msgstr "Lehetővé teszi szolgáltatások tallózását és regisztrálását." - -msgid "" -"This plugin is useful for registering with legacy transports or other XMPP " -"services." -msgstr "" -"Ez a bővítmény örökölt átvitelekkel történő, vagy más XMPP szolgáltatásokhoz " -"való regisztráláshoz hasznos." - msgid "Buddy is idle" msgstr "A partner inaktív" @@ -13396,6 +13400,68 @@ msgid "Apply in IMs" msgstr "Alkalmazás üzenetváltásokban" +#. Note to translators: The string "Enter an XMPP Server" is asking the +#. user to type the name of an XMPP server which will then be queried +msgid "Server name request" +msgstr "Kiszolgálónév-kérés" + +msgid "Enter an XMPP Server" +msgstr "Adjon meg egy XMPP kiszolgálót" + +msgid "Select an XMPP server to query" +msgstr "Válassza ki a lekérdezendő XMPP kiszolgálót" + +msgid "Find Services" +msgstr "Szolgáltatások keresése" + +msgid "Add to Buddy List" +msgstr "Felvétel a partnerlistára" + +msgid "Gateway" +msgstr "Átjáró" + +msgid "Directory" +msgstr "Címtár" + +msgid "PubSub Collection" +msgstr "PubSub gyűjtemény" + +msgid "PubSub Leaf" +msgstr "PubSub levél" + +msgid "" +"\n" +"Description: " +msgstr "" +"\n" +"Leírás:" + +#. Create the window. +msgid "Service Discovery" +msgstr "Szolgáltatásfeltérképezés" + +msgid "_Browse" +msgstr "_Tallózás" + +msgid "Server does not exist" +msgstr "A kiszolgáló nem létezik" + +msgid "Server does not support service discovery" +msgstr "A kiszolgáló nem támogatja a szolgáltatásfeltérképezést" + +msgid "XMPP Service Discovery" +msgstr "XMPP szolgáltatásfeltérképezés" + +msgid "Allows browsing and registering services." +msgstr "Lehetővé teszi szolgáltatások tallózását és regisztrálását." + +msgid "" +"This plugin is useful for registering with legacy transports or other XMPP " +"services." +msgstr "" +"Ez a bővítmény örökölt átvitelekkel történő, vagy más XMPP szolgáltatásokhoz " +"való regisztráláshoz hasznos." + msgid "By conversation count" msgstr "Társalgások száma szerint" @@ -14316,6 +14382,3 @@ msgstr "" "Ez a bővítmény XMPP kiszolgálókban vagy kliensekben végzett hibakereséshez " "hasznos." - -#~ msgid "_Resume" -#~ msgstr "_Folytatás"