diff options
218 files changed, 17522 insertions, 10739 deletions
diff --git a/.gitignore b/.gitignore index f2e96d3eb..83a53dfa3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ avatar/* files/* _darcs/* +logs/* config.php .htaccess +httpd.conf *.tmproj dataobject.ini *~ @@ -10,3 +12,4 @@ dataobject.ini *.orig *.rej .#* +*.swp diff --git a/EVENTS.txt b/EVENTS.txt index d9634325d..5edf59245 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -15,6 +15,24 @@ StartSecondaryNav: Showing the secondary nav menu EndSecondaryNav: At the end of the secondary nav menu - $action: the current action +StartShowStyles: Showing Style links; good place to add UA style resets +- $action: the current action + +EndShowStyles: End showing Style links; good place to add custom styles +- $action: the current action + +StartShowLaconicaStyles: Showing Laconica Style links +- $action: the current action + +EndShowLaconicaStyles: End showing Laconica Style links; good place to add handheld or JavaScript dependant styles +- $action: the current action + +StartShowUAStyles: Showing custom UA Style links +- $action: the current action + +EndShowUAStyles: End showing custom UA Style links; good place to add user-agent (e.g., filter, -webkit, -moz) specific styles +- $action: the current action + StartShowScripts: Showing JavaScript links - $action: the current action @@ -39,3 +57,49 @@ StartShowSections: Start the list of sections in the sidebar EndShowSections: End the list of sections in the sidebar - $action: the current action + +StartShowHeader: Showing before the header container +- $action: the current action + +EndShowHeader: Showing after the header container +- $action: the current action + +StartShowFooter: Showing before the footer container +- $action: the current action + +EndShowFooter: Showing after the footer container +- $action: the current action + +StartShowContentBlock: Showing before the content container +- $action: the current action + +EndShowContentBlock: Showing after the content container +- $action: the current action + +StartNoticeSave: before inserting a notice (good place for content filters) +- $notice: notice being saved (no ID or URI) + +EndNoticeSave: after inserting a notice and related code +- $notice: notice that was saved (with ID and URI) + +StartShowLocalNavBlock: Showing the local nav menu +- $action: the current action + +EndShowLocalNavBlock: At the end of the local nav menu +- $action: the current action + +StartShowHTML: Chance to set document headers (e.g., content type, charset, language), DOCTYPE and html element properties +- $action: the current action + +EndShowHTML: Showing after the html element +- $action: the current action + +StartPublicGroupNav: Showing the public group nav menu +- $action: the current action + +EndPublicGroupNav: At the end of the public group nav menu +- $action: the current action + +RouterInitialized: After the router instance has been initialized +- $m: the Net_URL_Mapper that has just been set up + @@ -2,8 +2,8 @@ README ------ -Laconica 0.7.1 ("West of the Fields") -6 February 2009 +Laconica 0.7.3 ("You Are The Everything") +7 April 2009 This is the README file for Laconica, the Open Source microblogging platform. It includes installation instructions, descriptions of @@ -71,54 +71,29 @@ for additional terms. New this version ================ -This is a minor bug-fix release since version 0.7.0, released Jan 29 -2009. Notable changes this version: - -- Vast improvement in auto-linking to URLs. -- Link to group search from user's group page -- Improved interface in Facebook application -- Fix bad redirects in delete notice -- Updated PostgreSQL database creation script -- Show filesize in avatar/logo upload -- Vastly improved avatar/logo upload -- Allow re-authentication with OpenID -- Correctly link hashtabs inside parens and brackets -- Group and avatar image transparency works -- Better handling of commands through the Web and Ajax channels -- Fix links for profile page feeds -- Fixed destroy method in API -- Fix endpoint of Connect menu when XMPP disabled -- Show number of group members -- Enable configuration files in /etc/laconica/ - -Changes in version 0.7.0: - -- Support for groups. Users can join groups and send themed notices - to those groups. All other members of the group receive the notices. -- Laconica-specific extensions to the Twitter API. -- A Facebook application. -- A massive UI redesign. The HTML generated by Laconica has changed - significantly, to make theming easier and to give a more open look - by default. Also, sidebar. -- Massive code hygiene changes to move towards compliance with the PEAR - coding standards and to support the new UI redesign. -- Began the breakup of util.php -- moved about 30% of code to a views - hierarchy. -- UI elements for statistical information (like top posters or most - popular groups) added in a sidebar. -- include Javascript badge by Kent Brewster. -- Updated online documentation. -- Cropping of user avatars using Jcrop. -- fix for Twitter bridge to not send "Expect:" headers. -- add 'dm' as a synonym for 'd' in commands. -- Upgrade upstream version of jQuery to 1.3. -- Upgrade upstream version of PHP-OpenID to 2.1.2. -- Move OpenMicroBlogging specification to its own repository. -- Make tag-based RSS streams work. -- Additional locales: Bulgarian, Catalan, Greek, Hebrew, simplified - Chinese, Telugu, Taiwanese Chinese, Vietnamese, -- PostgreSQL updates. -- Nasty bug in Twitter bridge that wouldn't verify with Twitter +This is a minor bug-fix and feature release since version 0.7.2.1, +released Mar 11 2009. Notable changes this version: + +- A plugin to allow a templating language for customization +- A plugin for Piwik Analytics engine +- A bookmarklet for posting a notice about a Web page you're reading +- A welcome notice ('welcomebot') and default subscription for new users +- Support for SSL for some or all pages on the site +- Better handling of empty notice lists on many pages +- Major improvements to the Twitter friend-sync offline processing +- subscribers, subscriptions, groups are listed on the Personal page. +- "Invite" link restored to main menu +- Better memory handling in FOAF output +- Fix for SUP support (FriendFeed) +- Correct and intelligent redirect HTTP status codes +- Fix DB collations for search and sort +- Better H1s and Titles using user full names +- Fixes to make the linkback plugin operational +- Better indication that a notice is being published by Ajax (spinner) +- Better and unified Atom output +- Hiding "register" and "join now" messages when site is closed +- ping, twitter and facebook queuehandlers working better +- Updated RPM spec Prerequisites ============= @@ -218,9 +193,9 @@ especially if you've previously installed PHP/MySQL packages. 1. Unpack the tarball you downloaded on your Web server. Usually a command like this will work: - tar zxf laconica-0.7.1.tar.gz + tar zxf laconica-0.7.3.tar.gz - ...which will make a laconica-0.7.1 subdirectory in your current + ...which will make a laconica-0.7.3 subdirectory in your current directory. (If you don't have shell access on your Web server, you may have to unpack the tarball on your local computer and FTP the files to the server.) @@ -228,7 +203,7 @@ especially if you've previously installed PHP/MySQL packages. 2. Move the tarball to a directory of your choosing in your Web root directory. Usually something like this will work: - mv laconica-0.7.1 /var/www/mublog + mv laconica-0.7.3 /var/www/mublog This will make your Laconica instance available in the mublog path of your server, like "http://example.net/mublog". "microblog" or @@ -236,21 +211,28 @@ especially if you've previously installed PHP/MySQL packages. configure virtual hosts on your web server, you can try setting up "http://micro.example.net/" or the like. -3. You should also take this moment to make your avatar subdirectory - writeable by the Web server. An insecure way to do this is: +3. Make your target directory writeable by the Web server. - chmod a+w /var/www/mublog/avatar + chmod a+w /var/www/mublog/ On some systems, this will probably work: - chgrp www-data /var/www/mublog/avatar - chmod g+w /var/www/mublog/avatar + chgrp www-data /var/www/mublog/ + chmod g+w /var/www/mublog/ If your Web server runs as another user besides "www-data", try that user's default group instead. As a last resort, you can create - a new group like "avatar" and add the Web server's user to the group. + a new group like "mublog" and add the Web server's user to the group. + +4. You should also take this moment to make your avatar subdirectory + writeable by the Web server. An insecure way to do this is: + + chmod a+w /var/www/mublog/avatar + + You can also make the avatar directory writeable by the Web server + group, as noted above. -4. Create a database to hold your microblog data. Something like this +5. Create a database to hold your microblog data. Something like this should work: mysqladmin -u "username" --password="password" create laconica @@ -263,63 +245,55 @@ especially if you've previously installed PHP/MySQL packages. a tool like PHPAdmin to create a database. Check your hosting service's documentation for how to create a new MySQL database.) -5. Run the laconica.sql SQL script in the db subdirectory to create - the database tables in the database. A typical system would work - like this: - - mysql -u "username" --password="password" laconica < /var/www/mublog/db/laconica.sql - - You may want to test by logging into the database and checking that - the tables were created. Here's an example: - - SHOW TABLES; - 6. Create a new database account that Laconica will use to access the database. If you have shell access, this will probably work from the MySQL shell: - GRANT SELECT,INSERT,DELETE,UPDATE on laconica.* + GRANT ALL on laconica.* TO 'lacuser'@'localhost' IDENTIFIED BY 'lacpassword'; You should change 'lacuser' and 'lacpassword' to your preferred new - username and password. You may want to test logging in as this new - user and testing that you can SELECT from some of the tables in the - DB (use SHOW TABLES to see which ones are there). - -7. Copy the config.php.sample in the Laconica directory to config.php. - -8. Edit config.php to set the basic configuration for your system. - (See descriptions below for basic config options.) Note that there - are lots of options and if you try to do them all at once, you will - have a hard time making sure what's working and what's not. So, - stick with the basics at first. In particular, customizing the - 'site' and 'db' settings will almost definitely be needed. - -9. At this point, you should be able to navigate in a browser to your - microblog's main directory and see the "Public Timeline", which - will be empty. If not, magic has happened! You can now register a - new user, post some notices, edit your profile, etc. However, you - may want to wait to do that stuff if you think you can set up - "fancy URLs" (see below), since some URLs are stored in the database. + username and password. You may want to test logging in to MySQL as + this new user. + +7. In a browser, navigate to the Laconica install script; something like: + + http://yourserver.example.com/mublog/install.php + + Enter the database connection information and your site name. The + install program will configure your site and install the initial, + almost-empty database. + +8. You should now be able to navigate to your microblog's main directory + and see the "Public Timeline", which will be empty. If not, magic + has happened! You can now register a new user, post some notices, + edit your profile, etc. However, you may want to wait to do that stuff + if you think you can set up "fancy URLs" (see below), since some + URLs are stored in the database. Fancy URLs ---------- -By default, Laconica will have big long sloppy URLs that are hard for -people to remember or use. For example, a user's home profile might be +By default, Laconica will use URLs that include the main PHP program's +name in them. For example, a user's home profile might be found at: - http://example.org/mublog/index.php?action=showstream&nickname=fred + http://example.org/mublog/index.php/mublog/fred + +On certain systems that don't support this kind of syntax, they'll +look like this: + + http://example.org/mublog/index.php?p=mublog/fred It's possible to configure the software so it looks like this instead: http://example.org/mublog/fred These "fancy URLs" are more readable and memorable for users. To use -fancy URLs, you must either have Apache 2.2.x with .htaccess enabled -and mod_redirect enabled, -OR- know how to configure "url redirection" -in your server. +fancy URLs, you must either have Apache 2.x with .htaccess enabled and +mod_redirect enabled, -OR- know how to configure "url redirection" in +your server. 1. Copy the htaccess.sample file to .htaccess in your Laconica directory. Note: if you have control of your server's httpd.conf or @@ -344,10 +318,6 @@ like: If you changed your HTTP server configuration, you may need to restart the server first. -If you have problems with the .htaccess file on versions of Apache -earlier than 2.2.x, try changing the regular expressions in the -htaccess.sample file that use "\w" to just use ".". - Sphinx ------ @@ -507,7 +477,7 @@ server is probably a good idea for high-volume sites. needs as a parameter the install path; if you run it from the Laconica dir, "." should suffice. -This will run six (for now) queue handlers: +This will run eight (for now) queue handlers: * xmppdaemon.php - listens for new XMPP messages from users and stores them as notices in the database. @@ -521,6 +491,10 @@ This will run six (for now) queue handlers: of registered users. * xmppconfirmhandler.php - sends confirmation messages to registered users. +* twitterqueuehandler.php - sends queued notices to Twitter for user + who have opted to set up Twitter bridging. +* facebookqueuehandler.php - sends queued notices to Facebook for users + of the built-in Facebook application. Note that these queue daemons are pretty raw, and need your care. In particular, they leak memory, and you may want to restart them on a @@ -553,6 +527,53 @@ Sample cron job: # Update Twitter friends subscriptions every half hour 0,30 * * * * /path/to/php /path/to/laconica/scripts/synctwitterfriends.php>&/dev/null +Built-in Facebook Application +----------------------------- + +Laconica's Facebook application allows your users to automatically +update their Facebook statuses with their latest notices, invite +their friends to use the app (and thus your site), view their notice +timelines, and post notices -- all from within Facebook. The application +is built into Laconica and runs on your host. For automatic Facebook +status updating to work you will need to enable queuing and run the +facebookqueuehandler.php daemon (see the "Queues and daemons" section +above). + +Quick setup instructions*: + +Install the Facebook Developer application on Facebook: + + http://www.facebook.com/developers/ + +Use it to create a new application and generate an API key and secret. +Uncomment the Facebook app section of your config.php and copy in the +key and secret, e.g.: + + # Config section for the built-in Facebook application + $config['facebook']['apikey'] = 'APIKEY'; + $config['facebook']['secret'] = 'SECRET'; + +In Facebook's application editor, specify the following URLs for your app: + +- Callback URL: http://example.net/mublog/facebook/ +- Post-Remove URL: http://example.net/mublog/facebook/remove +- Post-Add Redirect URL: http://apps.facebook.com/yourapp/ +- Canvas URL: http://apps.facebook.com/yourapp/ + +(Replace 'example.net' with your host's URL, 'mublog' with the path +to your Laconica installation, and 'yourapp' with the name of the +Facebook application you created.) + +Additionally, Choose "Web" for Application type in the Advanced tab. +In the "Canvas setting" section, choose the "FBML" for Render Method, +"Smart Size" for IFrame size, and "Full width (760px)" for Canvas Width. +Everything else can be left with default values. + +*For more detailed instructions please see the installation guide on the +Laconica wiki: + + http://laconi.ca/trac/wiki/FacebookApplication + Sitemaps -------- @@ -593,7 +614,7 @@ to these resources. Themes ------ -There are two themes shipped with this version of Laconica: "stoica", +There are two themes shipped with this version of Laconica: "identica", which is what the Identi.ca site uses, and "default", which is a good basis for other sites. @@ -672,7 +693,7 @@ Upgrading If you've been using Laconica 0.6, 0.5 or lower, or if you've been tracking the "git" version of the software, you will probably want to upgrade and keep your existing data. There is no automated upgrade -procedure in Laconica 0.7.1. Try these step-by-step instructions; read +procedure in Laconica 0.7.3. Try these step-by-step instructions; read to the end first before trying them. 0. Download Laconica and set up all the prerequisites as if you were @@ -699,16 +720,19 @@ to the end first before trying them. directory to your new directory. 9. Copy htaccess.sample to .htaccess in the new directory. Change the RewriteBase to use the correct path. -10. Rebuild the database. Go to your Laconica directory and run the - rebuilddb.sh script like this: - - ./scripts/rebuilddb.sh rootuser rootpassword database db/laconica.sql - - Here, rootuser and rootpassword are the username and password for a - user who can drop and create databases as well as tables; typically - that's _not_ the user Laconica runs as. -11. Use mysql client to log into your database and make sure that the - notice, user, profile, subscription etc. tables are non-empty. +10. Rebuild the database. For MySQL, go to your Laconica directory and + run the rebuilddb.sh script like this: + + ./scripts/rebuilddb.sh rootuser rootpassword database db/laconica.sql + + Here, rootuser and rootpassword are the username and password for a + user who can drop and create databases as well as tables; typically + that's _not_ the user Laconica runs as. + For PostgreSQL databases there is an equivalent, rebuilddb_psql.sh, + which operates slightly differently. Read the documentation in that + script before running it. +11. Use mysql or psql client to log into your database and make sure that + the notice, user, profile, subscription etc. tables are non-empty. 12. Turn back on the Web server, and check that things still work. 13. Turn back on XMPP bots and email maildaemon. Note that the XMPP bots have changed since version 0.5; see above for details. @@ -789,7 +813,7 @@ This section is a catch-all for site-wide variables. name: the name of your site, like 'YourCompany Microblog'. server: the server part of your site's URLs, like 'example.net'. -path: The path part of your site's URLs, like 'mublog' or '/' +path: The path part of your site's URLs, like 'mublog' or '' (installed in root). fancy: whether or not your site uses fancy URLs (see Fancy URLs section above). Default is false. @@ -833,6 +857,20 @@ notice: A plain string that will appear on every page. A good place to put introductory information about your service, or info about upgrades and outages, or other community info. Any HTML will be escaped. +dupelimit: Time in which it's not OK for the same person to post the + same notice; default = 60 seconds. +logo: URL of an image file to use as the logo for the site. Overrides + the logo in the theme, if any. +ssl: Whether to use SSL and https:// URLs for some or all pages. + Possible values are 'always' (use it for all pages), 'never' + (don't use it for any pages), or 'sometimes' (use it for + sensitive pages that include passwords like login and registration, + but not for regular pages). Default to 'never'. +sslserver: use an alternate server name for SSL URLs, like + 'secure.example.org'. You should be careful to set cookie + parameters correctly so that both the SSL server and the + "normal" server can access the session cookie and + preferably other cookies as well. db -- @@ -1077,6 +1115,20 @@ banned: an array of usernames and/or profile IDs of 'banned' profiles. not be accepted at all. (Compare with blacklisted users above, whose posts just won't show up in the public stream.) +newuser +------- + +Options with new users. + +default: nickname of a user account to automatically subscribe new + users to. Typically this would be system account for e.g. + service updates or announcements. Users are able to unsub + if they want. Default is null; no auto subscribe. +welcome: nickname of a user account that sends welcome messages to new + users. Can be the same as 'default' account, although on + busy servers it may be a good idea to keep that one just for + 'urgent' messages. Default is null; no message. + Troubleshooting =============== @@ -1089,7 +1141,7 @@ repository (see below), and you get a compilation error ("unexpected T_STRING") in the browser, check to see that you don't have any conflicts in your code. -If you upgraded to Laconica 0.7.1 without reading the "Notice inboxes" +If you upgraded to Laconica 0.7.3 without reading the "Notice inboxes" section above, and all your users' 'Personal' tabs are empty, read the "Notice inboxes" section above. @@ -1175,6 +1227,11 @@ if anyone's been overlooked in error. * Ken Sheppardson (Trac server, man-about-town) * Tiago 'gouki' Faria (i18n managerx) * Sean Murphy +* Leslie Michael Orchard +* Eric Helgeson +* Ken Sedgwick +* Brian Hendrickson +* Tobias Diekershoff Thanks also to the developers of our upstream library code and to the thousands of people who have tried out Identi.ca, installed Laconi.ca, diff --git a/actions/accesstoken.php b/actions/accesstoken.php index 77fdf6aef..bb68d3314 100644 --- a/actions/accesstoken.php +++ b/actions/accesstoken.php @@ -59,7 +59,7 @@ class AccesstokenAction extends Action try { common_debug('getting request from env variables', __FILE__); common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_locale_url('accesstoken')); common_debug('getting a server', __FILE__); $server = omb_oauth_server(); common_debug('fetching the access token', __FILE__); diff --git a/actions/all.php b/actions/all.php index 4a625207a..cb68691ba 100644 --- a/actions/all.php +++ b/actions/all.php @@ -23,31 +23,13 @@ require_once INSTALLDIR.'/lib/personalgroupnav.php'; require_once INSTALLDIR.'/lib/noticelist.php'; require_once INSTALLDIR.'/lib/feedlist.php'; -class AllAction extends Action +class AllAction extends ProfileAction { - var $user = null; - var $page = null; - function isReadOnly() { return true; } - function prepare($args) - { - parent::prepare($args); - $nickname = common_canonical_nickname($this->arg('nickname')); - $this->user = User::staticGet('nickname', $nickname); - $this->page = $this->trimmed('page'); - if (!$this->page) { - $this->page = 1; - } - - common_set_returnto($this->selfUrl()); - - return true; - } - function handle($args) { parent::handle($args); @@ -69,13 +51,22 @@ class AllAction extends Action } } - function showFeeds() + function getFeeds() { - $this->element('link', array('rel' => 'alternate', - 'href' => common_local_url('allrss', array('nickname' => - $this->user->nickname)), - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Feed for friends of %s'), $this->user->nickname))); + return array(new Feed(Feed::RSS1, + common_local_url('allrss', array('nickname' => + $this->user->nickname)), + sprintf(_('Feed for friends of %s (RSS 1.0)'), $this->user->nickname)), + new Feed(Feed::RSS2, + common_local_url('api', array('apiaction' => 'statuses', + 'method' => 'friends_timeline', + 'argument' => $this->user->nickname.'.rss')), + sprintf(_('Feed for friends of %s (RSS 2.0)'), $this->user->nickname)), + new Feed(Feed::ATOM, + common_local_url('api', array('apiaction' => 'statuses', + 'method' => 'friends_timeline', + 'argument' => $this->user->nickname.'.atom')), + sprintf(_('Feed for friends of %s (Atom)'), $this->user->nickname))); } /** @@ -95,13 +86,25 @@ class AllAction extends Action $nav->show(); } - function showExportData() + function showEmptyListMessage() { - $fl = new FeedList($this); - $fl->show(array(0=>array('href'=>common_local_url('allrss', array('nickname' => $this->user->nickname)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'allrss'))); + $message = sprintf(_('This is the timeline for %s and friends but no one has posted anything yet.'), $this->user->nickname) . ' '; + + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message .= _('Try subscribing to more people, [join a group](%%action.groups) or post something yourself.'); + } else { + $message .= sprintf(_('You can try to [nudge %s](../%s) from his profile or [post something to his or her attention](%%%%action.newnotice%%%%?status_textarea=%s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); + } + } + else { + $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); } function showContent() @@ -112,6 +115,10 @@ class AllAction extends Action $cnt = $nl->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } + $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'all', array('nickname' => $this->user->nickname)); } @@ -121,7 +128,7 @@ class AllAction extends Action $user =& common_current_user(); if ($user && ($user->id == $this->user->id)) { $this->element('h1', NULL, _("You and friends")); - } else { + } else { $this->element('h1', NULL, sprintf(_('%s and friends'), $this->user->nickname)); } } diff --git a/actions/allrss.php b/actions/allrss.php index 05787f3f7..45f3946a6 100644 --- a/actions/allrss.php +++ b/actions/allrss.php @@ -53,7 +53,9 @@ class AllrssAction extends Rss10Action /** * Initialization. - * + * + * @param array $args Web and URL arguments + * * @return boolean false if user doesn't exist */ function prepare($args) @@ -79,9 +81,10 @@ class AllrssAction extends Rss10Action */ function getNotices($limit=0) { - $user = $this->user; - $notice = $user->noticesWithFriends(0, $limit); - + $user = $this->user; + $notice = $user->noticesWithFriends(0, $limit); + $notices = array(); + while ($notice->fetch()) { $notices[] = clone($notice); } @@ -104,7 +107,8 @@ class AllrssAction extends Rss10Action 'link' => common_local_url('all', array('nickname' => $user->nickname)), - 'description' => sprintf(_('Feed for friends of %s'), $user->nickname)); + 'description' => sprintf(_('Feed for friends of %s'), + $user->nickname)); return $c; } @@ -123,10 +127,5 @@ class AllrssAction extends Rss10Action $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); return $avatar ? $avatar->url : null; } - - function isReadOnly() - { - return true; - } } diff --git a/actions/api.php b/actions/api.php index 21fe4eea3..c18d551b6 100644 --- a/actions/api.php +++ b/actions/api.php @@ -127,18 +127,20 @@ class ApiAction extends Action 'laconica/wadl'); static $bareauth = array('statuses/user_timeline', + 'statuses/friends_timeline', 'statuses/friends', + 'statuses/replies', 'statuses/followers', 'favorites/favorites'); - # If the site is "private", all API methods need authentication - + $fullname = "$this->api_action/$this->api_method"; + + // If the site is "private", all API methods except laconica/config + // need authentication if (common_config('site', 'private')) { - return true; + return $fullname != 'laconica/config' || false; } - $fullname = "$this->api_action/$this->api_method"; - if (in_array($fullname, $bareauth)) { # bareauth: only needs auth if without an argument if ($this->api_arg) { diff --git a/actions/avatarsettings.php b/actions/avatarsettings.php index f38a44a24..c2bb35a39 100644 --- a/actions/avatarsettings.php +++ b/actions/avatarsettings.php @@ -324,13 +324,14 @@ class AvatarsettingsAction extends AccountSettingsAction return; } - // If image is not being cropped assume pos & dimentions of original + $file_d = ($filedata['width'] > $filedata['height']) + ? $filedata['height'] : $filedata['width']; + $dest_x = $this->arg('avatar_crop_x') ? $this->arg('avatar_crop_x'):0; $dest_y = $this->arg('avatar_crop_y') ? $this->arg('avatar_crop_y'):0; - $dest_w = $this->arg('avatar_crop_w') ? $this->arg('avatar_crop_w'):$filedata['width']; - $dest_h = $this->arg('avatar_crop_h') ? $this->arg('avatar_crop_h'):$filedata['height']; - $size = min($dest_w, $dest_h); - $size = ($size > MAX_ORIGINAL) ? MAX_ORIGINAL:$size; + $dest_w = $this->arg('avatar_crop_w') ? $this->arg('avatar_crop_w'):$file_d; + $dest_h = $this->arg('avatar_crop_h') ? $this->arg('avatar_crop_h'):$file_d; + $size = min($dest_w, $dest_h, MAX_ORIGINAL); $user = common_current_user(); $profile = $user->getProfile(); @@ -343,6 +344,7 @@ class AvatarsettingsAction extends AccountSettingsAction unset($_SESSION['FILEDATA']); $this->mode = 'upload'; $this->showForm(_('Avatar updated.'), true); + common_broadcast_profile($profile); } else { $this->showForm(_('Failed updating avatar.')); } diff --git a/actions/block.php b/actions/block.php index e77b634c8..34f991dc6 100644 --- a/actions/block.php +++ b/actions/block.php @@ -93,7 +93,8 @@ class BlockAction extends Action if ($this->arg('no')) { $cur = common_current_user(); $other = Profile::staticGet('id', $this->arg('blockto')); - common_redirect(common_local_url('showstream', array('nickname' => $other->nickname))); + common_redirect(common_local_url('showstream', array('nickname' => $other->nickname)), + 303); } elseif ($this->arg('yes')) { $this->blockProfile(); } elseif ($this->arg('blockto')) { @@ -102,7 +103,6 @@ class BlockAction extends Action } } - function showContent() { $this->areYouSureForm(); } @@ -110,7 +110,7 @@ class BlockAction extends Action function title() { return _('Block user'); } - + function showNoticeForm() { // nop } @@ -178,10 +178,11 @@ class BlockAction extends Action } if ($action) { - common_redirect(common_local_url($action, $args)); + common_redirect(common_local_url($action, $args), 303); } else { common_redirect(common_local_url('subscriptions', - array('nickname' => $cur->nickname))); + array('nickname' => $cur->nickname)), + 303); } } } diff --git a/actions/deletenotice.php b/actions/deletenotice.php index 16e2df889..6c350b33a 100644 --- a/actions/deletenotice.php +++ b/actions/deletenotice.php @@ -141,6 +141,6 @@ class DeletenoticeAction extends DeleteAction $url = common_local_url('public'); } - common_redirect($url); + common_redirect($url, 303); } } diff --git a/actions/disfavor.php b/actions/disfavor.php index 90bab3cca..bc13b09da 100644 --- a/actions/disfavor.php +++ b/actions/disfavor.php @@ -49,7 +49,7 @@ class DisfavorAction extends Action { /** * Class handler. - * + * * @param array $args query arguments * * @return void @@ -100,7 +100,8 @@ class DisfavorAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url('showfavorites', - array('nickname' => $user->nickname))); + array('nickname' => $user->nickname)), + 303); } } } diff --git a/actions/editgroup.php b/actions/editgroup.php index e7e79040a..39dad0465 100644 --- a/actions/editgroup.php +++ b/actions/editgroup.php @@ -166,7 +166,6 @@ class EditgroupAction extends Action return; } - $nickname = common_canonical_nickname($this->trimmed('nickname')); $fullname = $this->trimmed('fullname'); $homepage = $this->trimmed('homepage'); @@ -221,7 +220,7 @@ class EditgroupAction extends Action if ($this->group->nickname != $orig->nickname) { common_redirect(common_local_url('editgroup', array('nickname' => $nickname)), - 307); + 303); } else { $this->showForm(_('Options saved.')); } diff --git a/actions/emailsettings.php b/actions/emailsettings.php index b84acb214..634388fdd 100644 --- a/actions/emailsettings.php +++ b/actions/emailsettings.php @@ -164,6 +164,11 @@ class EmailsettingsAction extends AccountSettingsAction $user->emailnotifymsg); $this->elementEnd('li'); $this->elementStart('li'); + $this->checkbox('emailnotifyattn', + _('Send me email when someone sends me an "@-reply".'), + $user->emailnotifyattn); + $this->elementEnd('li'); + $this->elementStart('li'); $this->checkbox('emailnotifynudge', _('Allow friends to nudge me and send me an email.'), $user->emailnotifynudge); @@ -255,6 +260,7 @@ class EmailsettingsAction extends AccountSettingsAction $emailnotifyfav = $this->boolean('emailnotifyfav'); $emailnotifymsg = $this->boolean('emailnotifymsg'); $emailnotifynudge = $this->boolean('emailnotifynudge'); + $emailnotifyattn = $this->boolean('emailnotifyattn'); $emailmicroid = $this->boolean('emailmicroid'); $emailpost = $this->boolean('emailpost'); @@ -270,6 +276,7 @@ class EmailsettingsAction extends AccountSettingsAction $user->emailnotifyfav = $emailnotifyfav; $user->emailnotifymsg = $emailnotifymsg; $user->emailnotifynudge = $emailnotifynudge; + $user->emailnotifyattn = $emailnotifyattn; $user->emailmicroid = $emailmicroid; $user->emailpost = $emailpost; diff --git a/actions/favor.php b/actions/favor.php index 3940df688..3b7d979eb 100644 --- a/actions/favor.php +++ b/actions/favor.php @@ -52,7 +52,7 @@ class FavorAction extends Action { /** * Class handler. - * + * * @param array $args query arguments * * @return void @@ -100,13 +100,14 @@ class FavorAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url('showfavorites', - array('nickname' => $user->nickname))); + array('nickname' => $user->nickname)), + 303); } } /** * Notifies a user when his notice is favorited. - * + * * @param class $notice favorited notice * @param class $user user declaring a favorite * diff --git a/actions/favorited.php b/actions/favorited.php index 74920ca7e..8cf1528b2 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -104,9 +104,9 @@ class FavoritedAction extends Action { parent::prepare($args); $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - + common_set_returnto($this->selfUrl()); - + return true; } @@ -145,6 +145,22 @@ class FavoritedAction extends Action $this->elementEnd('div'); } + function showEmptyList() + { + $message = _('Favorite notices appear on this page but no one has favorited one yet.') . ' '; + + if (common_logged_in()) { + $message .= _('Be the first to add a notice to your favorites by clicking the fave button next to any notice you like.'); + } + else { + $message .= _('Why not [register an account](%%action.register%%) and be the first to add a notice to your favorites!'); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } + /** * Local navigation * @@ -169,10 +185,16 @@ class FavoritedAction extends Action function showContent() { + if (common_config('db', 'type') == 'pgsql') { + $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; + } else { + $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; + } + $qry = 'SELECT notice.*, '. - 'sum(exp(-(now() - fave.modified) / %s)) as weight ' . + $weightexpr . ' as weight ' . 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - 'GROUP BY fave.notice_id ' . + 'GROUP BY id,profile_id,uri,content,rendered,url,created,notice.modified,reply_to,is_local,source ' . 'ORDER BY weight DESC'; $offset = ($this->page - 1) * NOTICES_PER_PAGE; @@ -192,6 +214,10 @@ class FavoritedAction extends Action $cnt = $nl->show(); + if ($cnt == 0) { + $this->showEmptyList(); + } + $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'favorited'); } diff --git a/actions/featured.php b/actions/featured.php index f3bade6a5..86fd3f374 100644 --- a/actions/featured.php +++ b/actions/featured.php @@ -107,6 +107,7 @@ class FeaturedAction extends Action $featured_nicks = common_config('nickname', 'featured'); + if (count($featured_nicks) > 0) { $quoted = array(); @@ -118,7 +119,7 @@ class FeaturedAction extends Action $user = new User; $user->whereAdd(sprintf('nickname IN (%s)', implode(',', $quoted))); $user->limit(($this->page - 1) * PROFILES_PER_PAGE, PROFILES_PER_PAGE + 1); - $user->orderBy('user.nickname ASC'); + $user->orderBy(common_database_tablename('user') .'.nickname ASC'); $user->find(); @@ -145,4 +146,4 @@ class FeaturedAction extends Action $this->page, 'featured'); } } -}
\ No newline at end of file +} diff --git a/actions/finishaddopenid.php b/actions/finishaddopenid.php index 8f10505cf..32bceecfd 100644 --- a/actions/finishaddopenid.php +++ b/actions/finishaddopenid.php @@ -139,7 +139,7 @@ class FinishaddopenidAction extends Action oid_set_last($display); - common_redirect(common_local_url('openidsettings')); + common_redirect(common_local_url('openidsettings'), 303); } } diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php index 1e7b73a7f..952185742 100644 --- a/actions/finishopenidlogin.php +++ b/actions/finishopenidlogin.php @@ -62,9 +62,8 @@ class FinishopenidloginAction extends Action if ($this->error) { $this->element('div', array('class' => 'error'), $this->error); } else { - global $config; $this->element('div', 'instructions', - sprintf(_('This is the first time you\'ve logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one.'), $config['site']['name'])); + sprintf(_('This is the first time you\'ve logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name'))); } } @@ -83,7 +82,7 @@ class FinishopenidloginAction extends Action function showContent() { - if ($this->message_text) { + if (!empty($this->message_text)) { $this->element('p', null, $this->message); return; } @@ -232,7 +231,8 @@ class FinishopenidloginAction extends Action return; } - if ($sreg['country']) { + $location = ''; + if (!empty($sreg['country'])) { if ($sreg['postcode']) { # XXX: use postcode to get city and region # XXX: also, store postcode somewhere -- it's valuable! @@ -242,12 +242,16 @@ class FinishopenidloginAction extends Action } } - if ($sreg['fullname'] && mb_strlen($sreg['fullname']) <= 255) { + if (!empty($sreg['fullname']) && mb_strlen($sreg['fullname']) <= 255) { $fullname = $sreg['fullname']; + } else { + $fullname = ''; } - if ($sreg['email'] && Validate::email($sreg['email'], true)) { + if (!empty($sreg['email']) && Validate::email($sreg['email'], true)) { $email = $sreg['email']; + } else { + $email = ''; } # XXX: add language @@ -267,7 +271,8 @@ class FinishopenidloginAction extends Action common_rememberme($user); } unset($_SESSION['openid_rememberme']); - common_redirect(common_local_url('showstream', array('nickname' => $user->nickname))); + common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)), + 303); } function connectUser() @@ -320,7 +325,7 @@ class FinishopenidloginAction extends Action array('nickname' => $nickname)); } - common_redirect($url); + common_redirect($url, 303); } function bestNewNickname($display, $sreg) @@ -328,7 +333,7 @@ class FinishopenidloginAction extends Action # Try the passed-in nickname - if ($sreg['nickname']) { + if (!empty($sreg['nickname'])) { $nickname = $this->nicknamize($sreg['nickname']); if ($this->isNewNickname($nickname)) { return $nickname; @@ -337,7 +342,7 @@ class FinishopenidloginAction extends Action # Try the full name - if ($sreg['fullname']) { + if (!empty($sreg['fullname'])) { $fullname = $this->nicknamize($sreg['fullname']); if ($this->isNewNickname($fullname)) { return $fullname; diff --git a/actions/finishremotesubscribe.php b/actions/finishremotesubscribe.php index 76db887de..3e3a81715 100644 --- a/actions/finishremotesubscribe.php +++ b/actions/finishremotesubscribe.php @@ -44,7 +44,7 @@ class FinishremotesubscribeAction extends Action common_debug('stored request: '.print_r($omb,true), __FILE__); common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('finishuserauthorization')); $token = $req->get_parameter('oauth_token'); @@ -136,16 +136,16 @@ class FinishremotesubscribeAction extends Action $profile->nickname = $nickname; $profile->profileurl = $profile_url; - if ($fullname) { + if (!is_null($fullname)) { $profile->fullname = $fullname; } - if ($homepage) { + if (!is_null($homepage)) { $profile->homepage = $homepage; } - if ($bio) { + if (!is_null($bio)) { $profile->bio = $bio; } - if ($location) { + if (!is_null($location)) { $profile->location = $location; } @@ -230,7 +230,8 @@ class FinishremotesubscribeAction extends Action # show up close to the top of the page common_redirect(common_local_url('subscribers', array('nickname' => - $user->nickname))); + $user->nickname)), + 303); } function add_avatar($profile, $url) @@ -283,7 +284,7 @@ class FinishremotesubscribeAction extends Action $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); $result = $fetcher->post($req->get_normalized_http_url(), $req->to_postdata(), - array('User-Agent' => 'Laconica/' . LACONICA_VERSION)); + array('User-Agent: Laconica/' . LACONICA_VERSION)); common_debug('got result: "'.print_r($result,true).'"', __FILE__); diff --git a/actions/foaf.php b/actions/foaf.php index 3a99835b4..416935b1b 100644 --- a/actions/foaf.php +++ b/actions/foaf.php @@ -33,7 +33,24 @@ class FoafAction extends Action function prepare($args) { parent::prepare($args); - $this->nickname = $this->trimmed('nickname'); + + $nickname_arg = $this->arg('nickname'); + + if (empty($nickname_arg)) { + $this->clientError(_('No such user.'), 404); + return false; + } + + $this->nickname = common_canonical_nickname($nickname_arg); + + // Permanent redirect on non-canonical nickname + + if ($nickname_arg != $this->nickname) { + common_redirect(common_local_url('foaf', + array('nickname' => $this->nickname)), + 301); + return false; + } $this->user = User::staticGet('nickname', $this->nickname); @@ -122,20 +139,30 @@ class FoafAction extends Action if ($sub->find()) { while ($sub->fetch()) { - if ($sub->token) { + if (!empty($sub->token)) { $other = Remote_profile::staticGet('id', $sub->subscribed); } else { $other = User::staticGet('id', $sub->subscribed); } - if (!$other) { + if (empty($other)) { common_debug('Got a bad subscription: '.print_r($sub,true)); continue; } $this->element('knows', array('rdf:resource' => $other->uri)); - $person[$other->uri] = array(LISTENEE, $other); + $person[$other->uri] = array(LISTENEE, + $other->id, + $other->nickname, + (empty($sub->token)) ? 'User' : 'Remote_profile'); + $other->free(); + $other = null; + unset($other); } } + $sub->free(); + $sub = null; + unset($sub); + // Get people who subscribe to user $sub = new Subscription(); @@ -156,25 +183,36 @@ class FoafAction extends Action if (array_key_exists($other->uri, $person)) { $person[$other->uri][0] = BOTH; } else { - $person[$other->uri] = array(LISTENER, $other); + $person[$other->uri] = array(LISTENER, + $other->id, + $other->nickname, + (empty($sub->token)) ? 'User' : 'Remote_profile'); } + $other->free(); + $other = null; + unset($other); } } + $sub->free(); + $sub = null; + unset($sub); + $this->elementEnd('Person'); foreach ($person as $uri => $p) { $foaf_url = null; - if ($p[1] instanceof User) { - $foaf_url = common_local_url('foaf', array('nickname' => $p[1]->nickname)); + list($type, $id, $nickname, $cls) = $p; + if ($cls == 'User') { + $foaf_url = common_local_url('foaf', array('nickname' => $nickname)); } - $this->profile = Profile::staticGet($p[1]->id); + $profile = Profile::staticGet($id); $this->elementStart('Person', array('rdf:about' => $uri)); - if ($p[0] == LISTENER || $p[0] == BOTH) { + if ($type == LISTENER || $type == BOTH) { $this->element('knows', array('rdf:resource' => $this->user->uri)); } - $this->showMicrobloggingAccount($this->profile, ($p[1] instanceof User) ? - common_root_url() : null); + $this->showMicrobloggingAccount($profile, ($cls == 'User') ? + common_root_url() : null); if ($foaf_url) { $this->element('rdfs:seeAlso', array('rdf:resource' => $foaf_url)); } @@ -182,6 +220,9 @@ class FoafAction extends Action if ($foaf_url) { $this->showPpd($foaf_url, $uri); } + $profile->free(); + $profile = null; + unset($profile); } $this->elementEnd('rdf:RDF'); diff --git a/actions/grouplogo.php b/actions/grouplogo.php index 499db4ae8..fe6127da2 100644 --- a/actions/grouplogo.php +++ b/actions/grouplogo.php @@ -83,7 +83,7 @@ class GrouplogoAction extends Action if ($nickname_arg != $nickname) { $args = array('nickname' => $nickname); - common_redirect(common_local_url('editgroup', $args), 301); + common_redirect(common_local_url('grouplogo', $args), 301); return false; } diff --git a/actions/grouprss.php b/actions/grouprss.php index 1a7b858b1..de76a5960 100644 --- a/actions/grouprss.php +++ b/actions/grouprss.php @@ -111,13 +111,13 @@ class groupRssAction extends Rss10Action { $group = $this->group; - + if (is_null($group)) { return null; } - + $notice = $group->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit); - + while ($notice->fetch()) { $notices[] = clone($notice); } @@ -141,13 +141,4 @@ class groupRssAction extends Rss10Action { return $this->group->homepage_logo; } - - # override parent to add X-SUP-ID URL - - function initRss($limit=0) - { - $url = common_local_url('sup', null, $this->group->id); - header('X-SUP-ID: '.$url); - parent::initRss($limit); - } } diff --git a/actions/groupsearch.php b/actions/groupsearch.php index 9b0026db9..06b4a7755 100644 --- a/actions/groupsearch.php +++ b/actions/groupsearch.php @@ -1,9 +1,4 @@ <?php - - -// define('GROUPS_PER_PAGE', 20); - - /** * Group search action class. * @@ -77,12 +72,23 @@ class GroupsearchAction extends SearchAction $terms = preg_split('/[\s,]+/', $q); $results = new GroupSearchResults($user_group, $terms, $this); $results->show(); + $user_group->free(); + $this->pagination($page > 1, $cnt > GROUPS_PER_PAGE, + $page, 'groupsearch', array('q' => $q)); } else { - $this->element('p', 'error', _('No results')); + $this->element('p', 'error', _('No results.')); + $this->searchSuggestions($q); + if (common_logged_in()) { + $message = _('If you can\'t find the group you\'re looking for, you can [create it](%%action.newgroup%%) yourself.'); + } + else { + $message = _('Why not [register an account](%%action.register%%) and [create the group](%%action.newgroup%%) yourself!'); + } + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + $user_group->free(); } - $user_group->free(); - $this->pagination($page > 1, $cnt > GROUPS_PER_PAGE, - $page, 'groupsearch', array('q' => $q)); } } @@ -90,23 +96,18 @@ class GroupSearchResults extends GroupList { var $terms = null; var $pattern = null; - + function __construct($user_group, $terms, $action) { parent::__construct($user_group, $terms, $action); - $this->terms = array_map('preg_quote', + $this->terms = array_map('preg_quote', array_map('htmlspecialchars', $terms)); $this->pattern = '/('.implode('|',$terms).')/i'; } - + function highlight($text) { return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text)); } - - function isReadOnly() - { - return true; - } } diff --git a/actions/joingroup.php b/actions/joingroup.php index 1888ecdab..a5d82ddc7 100644 --- a/actions/joingroup.php +++ b/actions/joingroup.php @@ -73,7 +73,7 @@ class JoingroupAction extends Action if ($nickname_arg != $nickname) { $args = array('nickname' => $nickname); - common_redirect(common_local_url('editgroup', $args), 301); + common_redirect(common_local_url('joingroup', $args), 301); return false; } @@ -143,7 +143,8 @@ class JoingroupAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url('groupmembers', array('nickname' => - $this->group->nickname))); + $this->group->nickname)), + 303); } } }
\ No newline at end of file diff --git a/actions/leavegroup.php b/actions/leavegroup.php index c7152e3c0..215ccd901 100644 --- a/actions/leavegroup.php +++ b/actions/leavegroup.php @@ -73,7 +73,7 @@ class LeavegroupAction extends Action if ($nickname_arg != $nickname) { $args = array('nickname' => $nickname); - common_redirect(common_local_url('editgroup', $args), 301); + common_redirect(common_local_url('leavegroup', $args), 301); return false; } @@ -96,12 +96,6 @@ class LeavegroupAction extends Action return false; } - if ($cur->isAdmin($this->group)) { - $this->clientError(_('You may not leave a group while you are its administrator.'), 403); - return false; - - } - return true; } @@ -153,7 +147,8 @@ class LeavegroupAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url('groupmembers', array('nickname' => - $this->group->nickname))); + $this->group->nickname)), + 303); } } } diff --git a/actions/login.php b/actions/login.php index 71e467929..59c6b4874 100644 --- a/actions/login.php +++ b/actions/login.php @@ -108,13 +108,15 @@ class LoginAction extends Action $nickname = common_canonical_nickname($this->trimmed('nickname')); $password = $this->arg('password'); - if (!common_check_user($nickname, $password)) { + $user = common_check_user($nickname, $password); + + if (!$user) { $this->showForm(_('Incorrect username or password.')); return; } // success! - if (!common_set_user($nickname)) { + if (!common_set_user($user)) { $this->serverError(_('Error setting user.')); return; } @@ -136,7 +138,7 @@ class LoginAction extends Action $nickname)); } - common_redirect($url); + common_redirect($url, 303); } /** diff --git a/actions/logout.php b/actions/logout.php index 3977f90a0..b7681be38 100644 --- a/actions/logout.php +++ b/actions/logout.php @@ -46,10 +46,10 @@ require_once INSTALLDIR.'/lib/openid.php'; */ class LogoutAction extends Action { - + /** * This is read only. - * + * * @return boolean true */ function isReadOnly() @@ -59,7 +59,7 @@ class LogoutAction extends Action /** * Class handler. - * + * * @param array $args array of arguments * * @return nothing @@ -73,7 +73,7 @@ class LogoutAction extends Action common_set_user(null); common_real_login(false); // not logged in common_forgetme(); // don't log back in! - common_redirect(common_local_url('public')); + common_redirect(common_local_url('public'), 303); } } } diff --git a/actions/newgroup.php b/actions/newgroup.php index cbd8dfeec..67cd6b2f1 100644 --- a/actions/newgroup.php +++ b/actions/newgroup.php @@ -193,7 +193,7 @@ class NewgroupAction extends Action $group->query('COMMIT'); - common_redirect($group->homeUrl(), 307); + common_redirect($group->homeUrl(), 303); } function nicknameExists($nickname) diff --git a/actions/newnotice.php b/actions/newnotice.php index 5e7691f33..cbd04c58b 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -98,7 +98,12 @@ class NewnoticeAction extends Action return; } - $this->saveNewNotice(); + try { + $this->saveNewNotice(); + } catch (Exception $e) { + $this->showForm($e->getMessage()); + return; + } } else { $this->showForm(); } @@ -123,15 +128,13 @@ class NewnoticeAction extends Action $content = $this->trimmed('status_textarea'); if (!$content) { - $this->showForm(_('No content!')); - return; + $this->clientError(_('No content!')); } else { $content_shortened = common_shorten_links($content); if (mb_strlen($content_shortened) > 140) { - $this->showForm(_('That\'s too long. '. - 'Max notice size is 140 chars.')); - return; + $this->clientError(_('That\'s too long. '. + 'Max notice size is 140 chars.')); } } @@ -149,12 +152,17 @@ class NewnoticeAction extends Action } $replyto = $this->trimmed('inreplyto'); + #If an ID of 0 is wrongly passed here, it will cause a database error, + #so override it... + if ($replyto == 0) { + $replyto = 'false'; + } $notice = Notice::saveNew($user->id, $content, 'web', 1, ($replyto == 'false') ? null : $replyto); if (is_string($notice)) { - $this->showForm($notice); + $this->clientError($notice); return; } @@ -250,7 +258,7 @@ class NewnoticeAction extends Action } } - $notice_form = new NoticeForm($this, $content); + $notice_form = new NoticeForm($this, '', $content); $notice_form->show(); } diff --git a/actions/noticesearch.php b/actions/noticesearch.php index 2d94a7906..095d0a454 100644 --- a/actions/noticesearch.php +++ b/actions/noticesearch.php @@ -57,11 +57,11 @@ class NoticesearchAction extends SearchAction return true; } - + /** * Get instructions - * - * @return string instruction text + * + * @return string instruction text */ function getInstructions() { @@ -70,7 +70,7 @@ class NoticesearchAction extends SearchAction /** * Get title - * + * * @return string title */ function title() @@ -78,62 +78,20 @@ class NoticesearchAction extends SearchAction return _('Text search'); } - - function showExportData() + function getFeeds() { $q = $this->trimmed('q'); - if (!$q) { - return; - } - $fl = new FeedList($this); - $fl->show(array(0 => array('href' => common_local_url('noticesearchrss', array('q' => $q)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'noticesearchrss'))); - } - - - function showFeeds() - { - $q = $this->trimmed('q'); if (!$q) { - return; + return null; } - $this->element('link', array('rel' => 'alternate', - 'href' => common_local_url('noticesearchrss', - array('q' => $q)), - 'type' => 'application/rss+xml', - 'title' => _('Search Stream Feed'))); + return array(new Feed(Feed::RSS1, common_local_url('noticesearchrss', + array('q' => $q)), + sprintf(_('Search results for "%s" on %s'), + $q, common_config('site', 'name')))); } - - /** - * Show header - * - * @param array $arr array containing the query - * - * @return void - */ - - function extraHead2() - { - $q = $this->trimmed('q'); - if ($q) { - $this->element('link', array('rel' => 'alternate', - 'href' => common_local_url('noticesearchrss', - array('q' => $q)), - 'type' => 'application/rss+xml', - 'title' => _('Search Stream Feed'))); - } - } - - - - - - /** * Show results * @@ -145,7 +103,7 @@ class NoticesearchAction extends SearchAction function showResults($q, $page) { $notice = new Notice(); - $q = strtolower($q); + $search_engine = $notice->getSearchEngine('identica_notices'); $search_engine->set_sort_mode('chron'); // Ask for an extra to see if there's more. @@ -155,123 +113,64 @@ class NoticesearchAction extends SearchAction } else { $cnt = $notice->find(); } - if ($cnt > 0) { - $terms = preg_split('/[\s,]+/', $q); - $this->elementStart('ul', array('class' => 'notices')); - for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) { - if ($notice->fetch()) { - $this->showNotice($notice, $terms); - } else { - // shouldn't happen! - break; - } + if ($cnt === 0) { + $this->element('p', 'error', _('No results.')); + + $this->searchSuggestions($q); + if (common_logged_in()) { + $message = sprintf(_('Be the first to [post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!'), urlencode($q)); + } + else { + $message = sprintf(_('Why not [register an account](%%%%action.register%%%%) and be the first to [post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!'), urlencode($q)); } - $this->elementEnd('ul'); - } else { - $this->element('p', 'error', _('No results')); - } + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + return; + } + $terms = preg_split('/[\s,]+/', $q); + $nl = new SearchNoticeList($notice, $this, $terms); + $cnt = $nl->show(); $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE, $page, 'noticesearch', array('q' => $q)); } +} - /** - * Show notice - * - * @param class $notice notice - * @param array $terms terms to highlight - * - * @return void - * - * @todo refactor and combine with StreamAction::showNotice() - */ - function showNotice($notice, $terms) +class SearchNoticeList extends NoticeList { + function __construct($notice, $out=null, $terms) { - $profile = $notice->getProfile(); - if (!$profile) { - common_log_db_error($notice, 'SELECT', __FILE__); - $this->serverError(_('Notice without matching profile')); - return; - } - // XXX: RDFa - $this->elementStart('li', array('class' => 'hentry notice', - 'id' => 'notice-' . $notice->id)); + parent::__construct($notice, $out); + $this->terms = $terms; + } - $this->elementStart('div', 'entry-title'); - $this->elementStart('span', 'vcard author'); - $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE); - $this->elementStart('a', array('href' => $profile->profileurl, - 'class' => 'url')); - $this->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE), - 'class' => 'avatar photo', - 'width' => AVATAR_STREAM_SIZE, - 'height' => AVATAR_STREAM_SIZE, - 'alt' => - ($profile->fullname) ? $profile->fullname : - $profile->nickname)); - $this->element('span', 'nickname fn', $profile->nickname); - $this->elementEnd('a'); - $this->elementEnd('span'); + function newListItem($notice) + { + return new SearchNoticeListItem($notice, $this->out, $this->terms); + } +} + +class SearchNoticeListItem extends NoticeListItem { + function __construct($notice, $out=null, $terms) + { + parent::__construct($notice, $out); + $this->terms = $terms; + } + function showContent() + { // FIXME: URL, image, video, audio - $this->elementStart('p', array('class' => 'entry-content')); - if ($notice->rendered) { - $this->raw($this->highlight($notice->rendered, $terms)); + $this->out->elementStart('p', array('class' => 'entry-content')); + if ($this->notice->rendered) { + $this->out->raw($this->highlight($this->notice->rendered, $this->terms)); } else { // XXX: may be some uncooked notices in the DB, // we cook them right now. This should probably disappear in future // versions (>> 0.4.x) - $this->raw($this->highlight(common_render_content($notice->content, $notice), $terms)); + $this->out->raw($this->highlight(common_render_content($this->notice->content, $this->notice), $this->terms)); } - $this->elementEnd('p'); - $this->elementEnd('div'); + $this->out->elementEnd('p'); - $noticeurl = common_local_url('shownotice', array('notice' => $notice->id)); - $this->elementStart('div', 'entry-content'); - $this->elementStart('dl', 'timestamp'); - $this->element('dt', null, _('Published')); - $this->elementStart('dd', null); - $this->elementStart('a', array('rel' => 'bookmark', - 'href' => $noticeurl)); - $dt = common_date_iso8601($notice->created); - $this->element('abbr', array('class' => 'published', - 'title' => $dt), - common_date_string($notice->created)); - $this->elementEnd('a'); - $this->elementEnd('dd'); - $this->elementEnd('dl'); - - if ($notice->reply_to) { - $replyurl = common_local_url('shownotice', - array('notice' => $this->notice->reply_to)); - $this->elementStart('dl', 'response'); - $this->element('dt', null, _('To')); - $this->elementStart('dd'); - $this->element('a', array('href' => $replyurl, - 'rel' => 'in-reply-to'), - _('in reply to')); - $this->elementEnd('dd'); - $this->elementEnd('dl'); - } - $this->elementEnd('div'); - - $this->elementStart('div', 'notice-options'); - - $reply_url = common_local_url('newnotice', - array('replyto' => $profile->nickname)); - - $this->elementStart('dl', 'notice_reply'); - $this->element('dt', null, _('Reply to this notice')); - $this->elementStart('dd'); - $this->elementStart('a', array('href' => $reply_url, - 'title' => _('Reply to this notice'))); - $this->text(_('Reply')); - $this->element('span', 'notice_id', $notice->id); - $this->elementEnd('a'); - $this->elementEnd('dd'); - $this->elementEnd('dl'); - $this->elementEnd('div'); - $this->elementEnd('li'); } /** @@ -284,7 +183,7 @@ class NoticesearchAction extends SearchAction */ function highlight($text, $terms) { - /* Highligh serach terms */ + /* Highligh search terms */ $pattern = '/('.implode('|', array_map('htmlspecialchars', $terms)).')/i'; $result = preg_replace($pattern, '<strong>\\1</strong>', $text); @@ -295,10 +194,5 @@ class NoticesearchAction extends SearchAction } while ($count); return $result; } - - function isReadOnly() - { - return true; - } } diff --git a/actions/noticesearchrss.php b/actions/noticesearchrss.php index 7172977ee..ba5276d06 100644 --- a/actions/noticesearchrss.php +++ b/actions/noticesearchrss.php @@ -62,9 +62,6 @@ class NoticesearchrssAction extends Rss10Action $notice = new Notice(); - # lcase it for comparison - $q = strtolower($q); - $search_engine = $notice->getSearchEngine('identica_notices'); $search_engine->set_sort_mode('chron'); @@ -82,10 +79,9 @@ class NoticesearchrssAction extends Rss10Action function getChannel() { - global $config; $q = $this->trimmed('q'); $c = array('url' => common_local_url('noticesearchrss', array('q' => $q)), - 'title' => $config['site']['name'] . sprintf(_(' Search Stream for "%s"'), $q), + 'title' => common_config('site', 'name') . sprintf(_(' Search Stream for "%s"'), $q), 'link' => common_local_url('noticesearch', array('q' => $q)), 'description' => sprintf(_('All updates matching search term "%s"'), $q)); return $c; diff --git a/actions/nudge.php b/actions/nudge.php index bc3d48478..b4e5e01dd 100644 --- a/actions/nudge.php +++ b/actions/nudge.php @@ -50,7 +50,7 @@ class NudgeAction extends Action { /** * Class handler. - * + * * @param array $args array of arguments * * @return nothing @@ -75,7 +75,7 @@ class NudgeAction extends Action // CSRF protection $token = $this->trimmed('token'); - + if (!$token || $token != common_session_token()) { $this->clientError(_('There was a problem with your session token. Try again, please.')); return; @@ -100,7 +100,8 @@ class NudgeAction extends Action } else { // display a confirmation to the user common_redirect(common_local_url('showstream', - array('nickname' => $other->nickname))); + array('nickname' => $other->nickname)), + 303); } } diff --git a/actions/peoplesearch.php b/actions/peoplesearch.php index 615201c46..65d970dd1 100644 --- a/actions/peoplesearch.php +++ b/actions/peoplesearch.php @@ -60,16 +60,10 @@ class PeoplesearchAction extends SearchAction function showResults($q, $page) { - $profile = new Profile(); - - # lcase it for comparison - $q = strtolower($q); - $search_engine = $profile->getSearchEngine('identica_people'); - $search_engine->set_sort_mode('chron'); - # Ask for an extra to see if there's more. + // Ask for an extra to see if there's more. $search_engine->limit((($page-1)*PROFILES_PER_PAGE), PROFILES_PER_PAGE + 1); if (false === $search_engine->query($q)) { $cnt = 0; @@ -81,38 +75,15 @@ class PeoplesearchAction extends SearchAction $terms = preg_split('/[\s,]+/', $q); $results = new PeopleSearchResults($profile, $terms, $this); $results->show(); - } else { - $this->element('p', 'error', _('No results')); - } - - $profile->free(); - - $this->pagination($page > 1, $cnt > PROFILES_PER_PAGE, + $profile->free(); + $this->pagination($page > 1, $cnt > PROFILES_PER_PAGE, $page, 'peoplesearch', array('q' => $q)); - } -} -class PeopleSearchResults extends ProfileList -{ - var $terms = null; - var $pattern = null; - - function __construct($profile, $terms, $action) - { - parent::__construct($profile, $terms, $action); - $this->terms = array_map('preg_quote', - array_map('htmlspecialchars', $terms)); - $this->pattern = '/('.implode('|',$terms).')/i'; - } - - function highlight($text) - { - return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text)); - } - - function isReadOnly() - { - return true; + } else { + $this->element('p', 'error', _('No results.')); + $this->searchSuggestions($q); + $profile->free(); + } } } diff --git a/actions/peopletag.php b/actions/peopletag.php index 6b1e34f1a..5add75485 100644 --- a/actions/peopletag.php +++ b/actions/peopletag.php @@ -119,7 +119,7 @@ class PeopletagAction extends Action 'FROM profile JOIN profile_tag ' . 'ON profile.id = profile_tag.tagger ' . 'WHERE profile_tag.tagger = profile_tag.tagged ' . - 'AND tag = "%s" ' . + "AND tag = '%s' " . 'ORDER BY profile_tag.modified DESC%s'; $profile->query(sprintf($qry, $this->tag, $lim)); diff --git a/actions/postnotice.php b/actions/postnotice.php index 0b4735296..3e98b3cd5 100644 --- a/actions/postnotice.php +++ b/actions/postnotice.php @@ -28,7 +28,7 @@ class PostnoticeAction extends Action parent::handle($args); try { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('postnotice')); # Note: server-to-server function! $server = omb_oauth_server(); list($consumer, $token) = $server->verify_request($req); @@ -79,7 +79,7 @@ class PostnoticeAction extends Action } $notice = Notice::staticGet('uri', $notice_uri); if (!$notice) { - $notice = Notice::saveNew($remote_profile->id, $content, 'omb', false, 0, $notice_uri); + $notice = Notice::saveNew($remote_profile->id, $content, 'omb', false, null, $notice_uri); if (is_string($notice)) { common_server_serror($notice, 500); return false; diff --git a/actions/public.php b/actions/public.php index eb2a4b1b0..961606908 100644 --- a/actions/public.php +++ b/actions/public.php @@ -85,9 +85,9 @@ class PublicAction extends Action { parent::prepare($args); $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - + common_set_returnto($this->selfUrl()); - + return true; } @@ -131,12 +131,20 @@ class PublicAction extends Action * @return void */ - function showFeeds() + function getFeeds() { - $this->element('link', array('rel' => 'alternate', - 'href' => common_local_url('publicrss'), - 'type' => 'application/rss+xml', - 'title' => _('Public Stream Feed'))); + return array(new Feed(Feed::RSS1, common_local_url('publicrss'), + _('Public Stream Feed (RSS 1.0)')), + new Feed(Feed::RSS2, + common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'public_timeline.rss')), + _('Public Stream Feed (RSS 2.0)')), + new Feed(Feed::ATOM, + common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'public_timeline.atom')), + _('Public Stream Feed (Atom)'))); } /** @@ -181,6 +189,22 @@ class PublicAction extends Action $nav->show(); } + function showEmptyList() + { + $message = _('This is the public timeline for %%site.name%% but no one has posted anything yet.') . ' '; + + if (common_logged_in()) { + $message .= _('Be the first to post!'); + } + else { + $message .= _('Why not [register an account](%%action.register%%) and be the first to post!'); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } + /** * Fill the content area * @@ -204,31 +228,14 @@ class PublicAction extends Action $cnt = $nl->show(); + if ($cnt == 0) { + $this->showEmptyList(); + } + $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'public'); } - /** - * Makes a list of exported feeds for this page - * - * @return void - * - * @todo I18N - */ - - function showExportData() - { - $fl = new FeedList($this); - $fl->show(array(0 => array('href' => common_local_url('publicrss'), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'publicrss'), - 1 => array('href' => common_local_url('publicatom'), - 'type' => 'atom', - 'version' => 'Atom 1.0', - 'item' => 'publicatom'))); - } - function showSections() { // $top = new TopPostersSection($this); @@ -243,9 +250,14 @@ class PublicAction extends Action function showAnonymousMessage() { - $m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . - 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' . - '[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ([Read more](%%doc.help%%))'); + if (! (common_config('site','closed') || common_config('site','inviteonly'))) { + $m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . + 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' . + '[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ([Read more](%%doc.help%%))'); + } else { + $m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . + 'based on the Free Software [Laconica](http://laconi.ca/) tool.'); + } $this->elementStart('div', array('id' => 'anon_notice')); $this->raw(common_markup_to_html($m)); $this->elementEnd('div'); diff --git a/actions/publicrss.php b/actions/publicrss.php index c35877997..77e26e0f4 100644 --- a/actions/publicrss.php +++ b/actions/publicrss.php @@ -84,12 +84,11 @@ class PublicrssAction extends Rss10Action */ function getChannel() { - global $config; $c = array( 'url' => common_local_url('publicrss') - , 'title' => sprintf(_('%s Public Stream'), $config['site']['name']) + , 'title' => sprintf(_('%s Public Stream'), common_config('site', 'name')) , 'link' => common_local_url('public') - , 'description' => sprintf(_('All updates for %s'), $config['site']['name'])); + , 'description' => sprintf(_('All updates for %s'), common_config('site', 'name'))); return $c; } diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index 6f5fc7541..855cfed9b 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -64,6 +64,22 @@ class PublictagcloudAction extends Action common_config('site', 'name'))); } + function showEmptyList() + { + $message = _('No one has posted a notice with a [hashtag](%%doc.tags%%) yet.') . ' '; + + if (common_logged_in()) { + $message .= _('Be the first to post one!'); + } + else { + $message .= _('Why not [register an account](%%action.register%%) and be the first to post one!'); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } + function showLocalNav() { $nav = new PublicGroupNav($this); @@ -126,6 +142,8 @@ class PublictagcloudAction extends Action $this->elementEnd('dd'); $this->elementEnd('dl'); $this->elementEnd('div'); + } else { + $this->showEmptyList(); } } diff --git a/actions/publicxrds.php b/actions/publicxrds.php index aad59d779..2c52f1246 100644 --- a/actions/publicxrds.php +++ b/actions/publicxrds.php @@ -51,7 +51,7 @@ class PublicxrdsAction extends Action { /** * Is read only? - * + * * @return boolean true */ function isReadOnly() @@ -61,7 +61,7 @@ class PublicxrdsAction extends Action /** * Class handler. - * + * * @param array $args array of arguments * * @return nothing @@ -70,24 +70,24 @@ class PublicxrdsAction extends Action { parent::handle($args); header('Content-Type: application/xrds+xml'); - common_start_xml(); + $this->startXML(); $this->elementStart('XRDS', array('xmlns' => 'xri://$xrds')); $this->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', 'version' => '2.0')); $this->element('Type', null, 'xri://$xrds*simple'); - foreach (array('finishopenidlogin', 'finishaddopenid', 'finishimmediate') as $finish) { + foreach (array('finishopenidlogin', 'finishaddopenid') as $finish) { $this->showService(Auth_OpenID_RP_RETURN_TO_URL_TYPE, common_local_url($finish)); } $this->elementEnd('XRD'); $this->elementEnd('XRDS'); - common_end_xml(); + $this->endXML(); } /** * Show service. - * + * * @param string $type XRDS type * @param string $uri URI * @param array $params type parameters, null by default diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index eeb6b2516..620fe7eb8 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -181,13 +181,21 @@ class RecoverpasswordAction extends Action function showRecoverForm() { $this->elementStart('form', array('method' => 'post', - 'id' => 'recoverpassword', + 'id' => 'form_password_recover', + 'class' => 'form_settings', 'action' => common_local_url('recoverpassword'))); + $this->elementStart('fieldset'); + $this->element('legend', null, _('Password recover')); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); $this->input('nicknameoremail', _('Nickname or email'), $this->trimmed('nicknameoremail'), _('Your nickname on this server, ' . 'or your registered email address.')); + $this->elementEnd('li'); + $this->elementEnd('ul'); $this->submit('recover', _('Recover')); + $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -213,14 +221,24 @@ class RecoverpasswordAction extends Action function showResetForm() { $this->elementStart('form', array('method' => 'post', - 'id' => 'recoverpassword', + 'id' => 'form_password_change', + 'class' => 'form_settings', 'action' => common_local_url('recoverpassword'))); + $this->elementStart('fieldset'); + $this->element('legend', null, _('Password change')); $this->hidden('token', common_session_token()); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); $this->password('newpassword', _('New password'), _('6 or more characters, and don\'t forget it!')); + $this->elementEnd('li'); + $this->elementStart('li'); $this->password('confirm', _('Confirm'), _('Same as password above')); + $this->elementEnd('li'); + $this->elementEnd('ul'); $this->submit('reset', _('Reset')); + $this->elementEnd('fieldset'); $this->elementEnd('form'); } diff --git a/actions/remotesubscribe.php b/actions/remotesubscribe.php index f727a63b8..0b1174896 100644 --- a/actions/remotesubscribe.php +++ b/actions/remotesubscribe.php @@ -97,9 +97,9 @@ class RemotesubscribeAction extends Action 'class' => 'form_settings', 'action' => common_local_url('remotesubscribe'))); $this->elementStart('fieldset'); - $this->element('legend', 'Subscribe to a remote user'); + $this->element('legend', _('Subscribe to a remote user')); $this->hidden('token', common_session_token()); - + $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('nickname', _('User nickname'), $this->nickname, @@ -321,8 +321,7 @@ class RemotesubscribeAction extends Action $result = $fetcher->post($req->get_normalized_http_url(), $req->to_postdata(), - array('User-Agent' => 'Laconica/' . LACONICA_VERSION)); - + array('User-Agent: Laconica/' . LACONICA_VERSION)); if ($result->status != 200) { return null; } @@ -334,8 +333,6 @@ class RemotesubscribeAction extends Action function requestAuthorization($user, $omb, $token, $secret) { - global $config; # for license URL - $con = omb_oauth_consumer(); $tok = new OAuthToken($token, $secret); @@ -359,7 +356,7 @@ class RemotesubscribeAction extends Action $req->set_parameter('omb_listenee', $user->uri); $req->set_parameter('omb_listenee_profile', common_profile_url($user->nickname)); $req->set_parameter('omb_listenee_nickname', $user->nickname); - $req->set_parameter('omb_listenee_license', $config['license']['url']); + $req->set_parameter('omb_listenee_license', common_config('license', 'url')); $profile = $user->getProfile(); if (!$profile) { @@ -368,16 +365,16 @@ class RemotesubscribeAction extends Action return; } - if ($profile->fullname) { + if (!is_null($profile->fullname)) { $req->set_parameter('omb_listenee_fullname', $profile->fullname); } - if ($profile->homepage) { + if (!is_null($profile->homepage)) { $req->set_parameter('omb_listenee_homepage', $profile->homepage); } - if ($profile->bio) { + if (!is_null($profile->bio)) { $req->set_parameter('omb_listenee_bio', $profile->bio); } - if ($profile->location) { + if (!is_null($profile->location)) { $req->set_parameter('omb_listenee_location', $profile->location); } $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); @@ -410,7 +407,7 @@ class RemotesubscribeAction extends Action # Redirect to authorization service - common_redirect($req->to_url()); + common_redirect($req->to_url(), 303); return; } } diff --git a/actions/replies.php b/actions/replies.php index 7c24b554e..1b593776e 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -84,7 +84,7 @@ class RepliesAction extends Action $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; common_set_returnto($this->selfUrl()); - + return true; } @@ -129,16 +129,13 @@ class RepliesAction extends Action * @return void */ - function showFeeds() + function getFeeds() { $rssurl = common_local_url('repliesrss', array('nickname' => $this->user->nickname)); $rsstitle = sprintf(_('Feed for replies to %s'), $this->user->nickname); - $this->element('link', array('rel' => 'alternate', - 'href' => $rssurl, - 'type' => 'application/rss+xml', - 'title' => $rsstitle)); + return array(new Feed(Feed::RSS1, $rssurl, $rsstitle)); } /** @@ -165,25 +162,6 @@ class RepliesAction extends Action } /** - * Show the replies feed links - * - * @return void - */ - - function showExportData() - { - $fl = new FeedList($this); - - $rssurl = common_local_url('repliesrss', - array('nickname' => $this->user->nickname)); - - $fl->show(array(0=>array('href'=> $rssurl, - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'repliesrss'))); - } - - /** * Show the content * * A list of notices that are replies to the user, plus pagination. @@ -199,12 +177,36 @@ class RepliesAction extends Action $nl = new NoticeList($notice, $this); $cnt = $nl->show(); + if (0 === $cnt) { + $this->showEmptyListMessage(); + } $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'replies', array('nickname' => $this->user->nickname)); } + function showEmptyListMessage() + { + $message = sprintf(_('This is the timeline showing replies to %s but %s hasn\'t received a notice to his attention yet.'), $this->user->nickname, $this->user->nickname) . ' '; + + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message .= _('You can engage other users in a conversation, subscribe to more people or [join groups](%%action.groups%%).'); + } else { + $message .= sprintf(_('You can try to [nudge %s](../%s) or [post something to his or her attention](%%%%action.newnotice%%%%?status_textarea=%s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); + } + } + else { + $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } + function isReadOnly() { return true; diff --git a/actions/requesttoken.php b/actions/requesttoken.php index ca253b97a..4e6f92913 100644 --- a/actions/requesttoken.php +++ b/actions/requesttoken.php @@ -69,7 +69,7 @@ class RequesttokenAction extends Action parent::handle($args); try { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('requesttoken')); $server = omb_oauth_server(); $token = $server->fetch_request_token($req); print $token; diff --git a/actions/showfavorites.php b/actions/showfavorites.php index 585b3b75a..5ebbfef77 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -113,7 +113,7 @@ class ShowfavoritesAction extends Action } common_set_returnto($this->selfUrl()); - + return true; } @@ -136,10 +136,10 @@ class ShowfavoritesAction extends Action /** * Feeds for the <head> section * - * @return void + * @return array Feed objects to show */ - function showFeeds() + function getFeeds() { $feedurl = common_local_url('favoritesrss', array('nickname' => @@ -147,10 +147,7 @@ class ShowfavoritesAction extends Action $feedtitle = sprintf(_('Feed for favorites of %s'), $this->user->nickname); - $this->element('link', array('rel' => 'alternate', - 'href' => $feedurl, - 'type' => 'application/rss+xml', - 'title' => $feedtitle)); + return array(new Feed(Feed::RSS1, $feedurl, $feedtitle)); } /** @@ -177,26 +174,23 @@ class ShowfavoritesAction extends Action $nav->show(); } - /** - * Show the replies feed links - * - * @return void - */ - - function showExportData() + function showEmptyListMessage() { - $feedurl = common_local_url('favoritesrss', - array('nickname' => - $this->user->nickname)); - - $fl = new FeedList($this); - - // XXX: I18N + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message = _('You haven\'t chosen any favorite notices yet. Click the fave button on notices you like to bookmark them for later or shed a spotlight on them.'); + } else { + $message = sprintf(_('%s hasn\'t added any notices to his favorites yet. Post something interesting they would add to their favorites :)'), $this->user->nickname); + } + } + else { + $message = sprintf(_('%s hasn\'t added any notices to his favorites yet. Why not [register an account](%%%%action.register%%%%) and then post something interesting they would add to thier favorites :)'), $this->user->nickname); + } - $fl->show(array(0=>array('href'=> $feedurl, - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'Favorites'))); + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); } /** @@ -220,9 +214,17 @@ class ShowfavoritesAction extends Action $nl = new NoticeList($notice, $this); $cnt = $nl->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'showfavorites', array('nickname' => $this->user->nickname)); } + + function showPageNotice() { + $this->element('p', 'instructions', _('This is a way to share what you like.')); + } } + diff --git a/actions/showgroup.php b/actions/showgroup.php index a2b40f994..d5e5a4e11 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -73,11 +73,17 @@ class ShowgroupAction extends Action function title() { + if (!empty($this->group->fullname)) { + $base = $this->group->fullname . ' (' . $this->group->nickname . ')'; + } else { + $base = $this->group->nickname; + } + if ($this->page == 1) { - return sprintf(_("%s group"), $this->group->nickname); + return sprintf(_("%s group"), $base); } else { return sprintf(_("%s group, page %d"), - $this->group->nickname, + $base, $this->page); } } @@ -244,7 +250,7 @@ class ShowgroupAction extends Action if ($this->group->location) { $this->elementStart('dl', 'entity_location'); $this->element('dt', null, _('Location')); - $this->element('dd', 'location', $this->group->location); + $this->element('dd', 'label', $this->group->location); $this->elementEnd('dl'); } @@ -275,10 +281,8 @@ class ShowgroupAction extends Action $cur = common_current_user(); if ($cur) { if ($cur->isMember($this->group)) { - if (!$cur->isAdmin($this->group)) { - $lf = new LeaveForm($this, $this->group); - $lf->show(); - } + $lf = new LeaveForm($this, $this->group); + $lf->show(); } else { $jf = new JoinForm($this, $this->group); $jf->show(); @@ -292,37 +296,18 @@ class ShowgroupAction extends Action } /** - * Show a list of links to feeds this page produces - * - * @return void - */ - - function showExportData() - { - $fl = new FeedList($this); - $fl->show(array(0=>array('href'=>common_local_url('grouprss', - array('nickname' => $this->group->nickname)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'notices'))); - } - - /** - * Show a list of links to feeds this page produces + * Get a list of the feeds for this page * * @return void */ - function showFeeds() + function getFeeds() { $url = common_local_url('grouprss', array('nickname' => $this->group->nickname)); - $this->element('link', array('rel' => 'alternate', - 'href' => $url, - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Notice feed for %s group'), + return array(new Feed(Feed::RSS1, $url, sprintf(_('Notice feed for %s group'), $this->group->nickname))); } @@ -422,11 +407,18 @@ class ShowgroupAction extends Action function showAnonymousMessage() { - $m = sprintf(_('**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . - 'based on the Free Software [Laconica](http://laconi.ca/) tool. Its members share ' . - 'short messages about their life and interests. '. - '[Join now](%%%%action.register%%%%) to become part of this group and many more! ([Read more](%%%%doc.help%%%%))'), + if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + $m = sprintf(_('**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . + 'based on the Free Software [Laconica](http://laconi.ca/) tool. Its members share ' . + 'short messages about their life and interests. '. + '[Join now](%%%%action.register%%%%) to become part of this group and many more! ([Read more](%%%%doc.help%%%%))'), $this->group->nickname); + } else { + $m = sprintf(_('**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . + 'based on the Free Software [Laconica](http://laconi.ca/) tool. Its members share ' . + 'short messages about their life and interests. '), + $this->group->nickname); + } $this->elementStart('div', array('id' => 'anon_notice')); $this->raw(common_markup_to_html($m)); $this->elementEnd('div'); diff --git a/actions/shownotice.php b/actions/shownotice.php index d5f35cd84..ccae49bb3 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -177,10 +177,17 @@ class ShownoticeAction extends Action { parent::handle($args); - $this->showPage(); + if ($this->notice->is_local == 0) { + if (!empty($this->notice->url)) { + common_redirect($this->notice->url, 301); + } else if (!empty($this->notice->uri) && preg_match('/^https?:/', $this->notice->uri)) { + common_redirect($this->notice->uri, 301); + } + } else { + $this->showPage(); + } } - /** * Don't show local navigation * @@ -191,7 +198,6 @@ class ShownoticeAction extends Action { } - /** * Fill the content area of the page * @@ -208,8 +214,6 @@ class ShownoticeAction extends Action $this->elementEnd('ul'); } - - /** * Don't show page notice * @@ -220,7 +224,6 @@ class ShownoticeAction extends Action { } - /** * Don't show aside * @@ -230,7 +233,6 @@ class ShownoticeAction extends Action function showAside() { } - /** * Extra <head> content * diff --git a/actions/showstream.php b/actions/showstream.php index 1779c70f2..3fe604f24 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -54,12 +54,8 @@ require_once INSTALLDIR.'/lib/feedlist.php'; * @link http://laconi.ca/ */ -class ShowstreamAction extends Action +class ShowstreamAction extends ProfileAction { - var $user = null; - var $page = null; - var $profile = null; - function isReadOnly() { return true; @@ -67,54 +63,21 @@ class ShowstreamAction extends Action function title() { + if (!empty($this->profile->fullname)) { + $base = $this->profile->fullname . ' (' . $this->user->nickname . ') '; + } else { + $base = $this->user->nickname; + } + if ($this->page == 1) { - return $this->user->nickname; + return $base; } else { return sprintf(_("%s, page %d"), - $this->user->nickname, + $base, $this->page); } } - function prepare($args) - { - parent::prepare($args); - - $nickname_arg = $this->arg('nickname'); - $nickname = common_canonical_nickname($nickname_arg); - - // Permanent redirect on non-canonical nickname - - if ($nickname_arg != $nickname) { - $args = array('nickname' => $nickname); - if ($this->arg('page') && $this->arg('page') != 1) { - $args['page'] = $this->arg['page']; - } - common_redirect(common_local_url('showstream', $args), 301); - return false; - } - - $this->user = User::staticGet('nickname', $nickname); - - if (!$this->user) { - $this->clientError(_('No such user.'), 404); - return false; - } - - $this->profile = $this->user->getProfile(); - - if (!$this->profile) { - $this->serverError(_('User has no profile.')); - return false; - } - - $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - common_set_returnto($this->selfUrl()); - - return true; - } - function handle($args) { @@ -140,59 +103,36 @@ class ShowstreamAction extends Action $nav->show(); } - function showPageTitle() - { - $user =& common_current_user(); - if ($user && ($user->id == $this->profile->id)) { - $this->element('h1', NULL, _("Your profile")); - } else { - $this->element('h1', NULL, sprintf(_('%s\'s profile'), $this->profile->nickname)); - } - } - function showPageNoticeBlock() { return; } - function showExportData() - { - $fl = new FeedList($this); - $fl->show(array(0=>array('href'=>common_local_url('userrss', - array('nickname' => $this->user->nickname)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'notices'), - 1=>array('href'=>common_local_url('usertimeline', - array('nickname' => $this->user->nickname)), - 'type' => 'atom', - 'version' => 'Atom 1.0', - 'item' => 'usertimeline'), - 2=>array('href'=>common_local_url('foaf', - array('nickname' => $this->user->nickname)), - 'type' => 'rdf', - 'version' => 'FOAF', - 'item' => 'foaf'))); - } - - function showFeeds() + function getFeeds() { - $this->element('link', array('rel' => 'alternate', - 'type' => 'application/rss+xml', - 'href' => common_local_url('userrss', - array('nickname' => $this->user->nickname)), - 'title' => sprintf(_('Notice feed for %s (RSS)'), - $this->user->nickname))); - - $this->element('link', - array('rel' => 'alternate', - 'href' => common_local_url('api', - array('apiaction' => 'statuses', - 'method' => 'user_timeline.atom', - 'argument' => $this->user->nickname)), - 'type' => 'application/atom+xml', - 'title' => sprintf(_('Notice feed for %s (Atom)'), - $this->user->nickname))); + return array(new Feed(Feed::RSS1, + common_local_url('userrss', + array('nickname' => $this->user->nickname)), + sprintf(_('Notice feed for %s (RSS 1.0)'), + $this->user->nickname)), + new Feed(Feed::RSS2, + common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'user_timeline', + 'argument' => $this->user->nickname.'.rss')), + sprintf(_('Notice feed for %s (RSS 2.0)'), + $this->user->nickname)), + new Feed(Feed::ATOM, + common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'user_timeline', + 'argument' => $this->user->nickname.'.atom')), + sprintf(_('Notice feed for %s (Atom)'), + $this->user->nickname)), + new Feed(Feed::FOAF, + common_local_url('foaf', array('nickname' => + $this->user->nickname)), + sprintf(_('FOAF for %s'), $this->user->nickname))); } /** @@ -208,12 +148,6 @@ class ShowstreamAction extends Action function extraHead() { - // FOAF - $this->element('link', array('rel' => 'meta', - 'href' => common_local_url('foaf', array('nickname' => - $this->user->nickname)), - 'type' => 'application/rdf+xml', - 'title' => 'FOAF')); // for remote subscriptions etc. $this->element('meta', array('http-equiv' => 'X-XRDS-Location', 'content' => common_local_url('xrds', array('nickname' => @@ -292,7 +226,7 @@ class ShowstreamAction extends Action if ($this->profile->location) { $this->elementStart('dl', 'entity_location'); $this->element('dt', null, _('Location')); - $this->element('dd', 'location', $this->profile->location); + $this->element('dd', 'label', $this->profile->location); $this->elementEnd('dl'); } @@ -322,11 +256,11 @@ class ShowstreamAction extends Action $this->elementStart('ul', 'tags xoxo'); foreach ($tags as $tag) { $this->elementStart('li'); - $this->element('span', 'mark_hash', '#'); - $this->element('a', array('rel' => 'tag', - 'href' => common_local_url('peopletag', - array('tag' => $tag))), - $tag); + // Avoid space by using raw output. + $pt = '<span class="mark_hash">#</span><a rel="tag" href="' . + common_local_url('peopletag', array('tag' => $tag)) . + '">' . $tag . '</a>'; + $this->raw($pt); $this->elementEnd('li'); } $this->elementEnd('ul'); @@ -406,178 +340,64 @@ class ShowstreamAction extends Action _('Subscribe')); } - function showNotices() - { - $notice = $this->user->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); - - $pnl = new ProfileNoticeList($notice, $this); - $cnt = $pnl->show(); - - $this->pagination($this->page>1, $cnt>NOTICES_PER_PAGE, $this->page, - 'showstream', array('nickname' => $this->user->nickname)); - } - - function showSections() - { - $this->showSubscriptions(); - $this->showSubscribers(); - $this->showGroups(); - $this->showStatistics(); - $cloud = new PersonalTagCloudSection($this, $this->user); - $cloud->show(); - } - - function showSubscriptions() - { - $profile = $this->user->getSubscriptions(0, PROFILES_PER_MINILIST + 1); - - $this->elementStart('div', array('id' => 'entity_subscriptions', - 'class' => 'section')); - - $this->element('h2', null, _('Subscriptions')); - - if ($profile) { - $pml = new ProfileMiniList($profile, $this->user, $this); - $cnt = $pml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); - } - } - - if ($cnt > PROFILES_PER_MINILIST) { - $this->elementStart('p'); - $this->element('a', array('href' => common_local_url('subscriptions', - array('nickname' => $this->profile->nickname)), - 'class' => 'more'), - _('All subscriptions')); - $this->elementEnd('p'); - } - - $this->elementEnd('div'); - } - - function showSubscribers() + function showEmptyListMessage() { - $profile = $this->user->getSubscribers(0, PROFILES_PER_MINILIST + 1); + $message = sprintf(_('This is the timeline for %s but %s hasn\'t posted anything yet.'), $this->user->nickname, $this->user->nickname) . ' '; - $this->elementStart('div', array('id' => 'entity_subscribers', - 'class' => 'section')); - - $this->element('h2', null, _('Subscribers')); - - if ($profile) { - $pml = new ProfileMiniList($profile, $this->user, $this); - $cnt = $pml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message .= _('Seen anything interesting recently? You haven\'t posted any notices yet, now would be a good time to start :)'); + } else { + $message .= sprintf(_('You can try to nudge %s or [post something to his or her attention](%%%%action.newnotice%%%%?status_textarea=%s).'), $this->user->nickname, '@' . $this->user->nickname); } } - - if ($cnt > PROFILES_PER_MINILIST) { - $this->elementStart('p'); - $this->element('a', array('href' => common_local_url('subscribers', - array('nickname' => $this->profile->nickname)), - 'class' => 'more'), - _('All subscribers')); - $this->elementEnd('p'); + else { + $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname); } + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); $this->elementEnd('div'); } - function showStatistics() - { - // XXX: WORM cache this - $subs = new Subscription(); - $subs->subscriber = $this->profile->id; - $subs_count = (int) $subs->count() - 1; - - $subbed = new Subscription(); - $subbed->subscribed = $this->profile->id; - $subbed_count = (int) $subbed->count() - 1; - - $notices = new Notice(); - $notices->profile_id = $this->profile->id; - $notice_count = (int) $notices->count(); - - $this->elementStart('div', array('id' => 'entity_statistics', - 'class' => 'section')); - - $this->element('h2', null, _('Statistics')); - - // Other stats...? - $this->elementStart('dl', 'entity_member-since'); - $this->element('dt', null, _('Member since')); - $this->element('dd', null, date('j M Y', - strtotime($this->profile->created))); - $this->elementEnd('dl'); - - $this->elementStart('dl', 'entity_subscriptions'); - $this->elementStart('dt'); - $this->element('a', array('href' => common_local_url('subscriptions', - array('nickname' => $this->profile->nickname))), - _('Subscriptions')); - $this->elementEnd('dt'); - $this->element('dd', null, (is_int($subs_count)) ? $subs_count : '0'); - $this->elementEnd('dl'); - - $this->elementStart('dl', 'entity_subscribers'); - $this->elementStart('dt'); - $this->element('a', array('href' => common_local_url('subscribers', - array('nickname' => $this->profile->nickname))), - _('Subscribers')); - $this->elementEnd('dt'); - $this->element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0'); - $this->elementEnd('dl'); - - $this->elementStart('dl', 'entity_notices'); - $this->element('dt', null, _('Notices')); - $this->element('dd', null, (is_int($notice_count)) ? $notice_count : '0'); - $this->elementEnd('dl'); - - $this->elementEnd('div'); - } - - function showGroups() + function showNotices() { - $groups = $this->user->getGroups(0, GROUPS_PER_MINILIST + 1); - - $this->elementStart('div', array('id' => 'entity_groups', - 'class' => 'section')); - - $this->element('h2', null, _('Groups')); - - if ($groups) { - $gml = new GroupMiniList($groups, $this->user, $this); - $cnt = $gml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); - } - } + $notice = $this->user->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); - if ($cnt > GROUPS_PER_MINILIST) { - $this->elementStart('p'); - $this->element('a', array('href' => common_local_url('usergroups', - array('nickname' => $this->profile->nickname)), - 'class' => 'more'), - _('All groups')); - $this->elementEnd('p'); + $pnl = new ProfileNoticeList($notice, $this); + $cnt = $pnl->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); } - $this->elementEnd('div'); + $this->pagination($this->page>1, $cnt>NOTICES_PER_PAGE, $this->page, + 'showstream', array('nickname' => $this->user->nickname)); } function showAnonymousMessage() { - $m = sprintf(_('**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . - 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' . - '[Join now](%%%%action.register%%%%) to follow **%s**\'s notices and many more! ([Read more](%%%%doc.help%%%%))'), - $this->user->nickname, $this->user->nickname); + if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + $m = sprintf(_('**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . + 'based on the Free Software [Laconica](http://laconi.ca/) tool. ' . + '[Join now](%%%%action.register%%%%) to follow **%s**\'s notices and many more! ([Read more](%%%%doc.help%%%%))'), + $this->user->nickname, $this->user->nickname); + } else { + $m = sprintf(_('**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . + 'based on the Free Software [Laconica](http://laconi.ca/) tool. '), + $this->user->nickname, $this->user->nickname); + } $this->elementStart('div', array('id' => 'anon_notice')); $this->raw(common_markup_to_html($m)); $this->elementEnd('div'); } + function showSections() + { + parent::showSections(); + $cloud = new PersonalTagCloudSection($this, $this->user); + $cloud->show(); + } } // We don't show the author for a profile, since we already know who it is! diff --git a/actions/smssettings.php b/actions/smssettings.php index a5f75d266..922bab9a4 100644 --- a/actions/smssettings.php +++ b/actions/smssettings.php @@ -488,7 +488,8 @@ class SmssettingsAction extends ConnectSettingsAction } common_redirect(common_local_url('confirmaddress', - array('code' => $code))); + array('code' => $code)), + 303); } /** diff --git a/actions/subedit.php b/actions/subedit.php index 89081ffc7..8ca2d7914 100644 --- a/actions/subedit.php +++ b/actions/subedit.php @@ -85,7 +85,8 @@ class SubeditAction extends Action } common_redirect(common_local_url('subscriptions', - array('nickname' => $cur->nickname))); + array('nickname' => $cur->nickname)), + 303); } } } diff --git a/actions/subscribe.php b/actions/subscribe.php index f761992de..0bc522867 100644 --- a/actions/subscribe.php +++ b/actions/subscribe.php @@ -75,7 +75,8 @@ class SubscribeAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url('subscriptions', array('nickname' => - $user->nickname))); + $user->nickname)), + 303); } } } diff --git a/actions/subscribers.php b/actions/subscribers.php index 22faafaef..7ebb54d33 100644 --- a/actions/subscribers.php +++ b/actions/subscribers.php @@ -88,6 +88,9 @@ class SubscribersAction extends GalleryAction if ($subscribers) { $subscribers_list = new SubscribersList($subscribers, $this->user, $this); $cnt = $subscribers_list->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } } $subscribers->free(); @@ -96,6 +99,25 @@ class SubscribersAction extends GalleryAction $this->page, 'subscribers', array('nickname' => $this->user->nickname)); } + + function showEmptyListMessage() + { + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message = _('You have no subscribers. Try subscribing to people you know and they might return the favor'); + } else { + $message = sprintf(_('%s has no subscribers. Want to be the first?'), $this->user->nickname); + } + } + else { + $message = sprintf(_('%s has no subscribers. Why not [register an account](%%%%action.register%%%%) and be the first?'), $this->user->nickname); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } } class SubscribersList extends ProfileList diff --git a/actions/subscriptions.php b/actions/subscriptions.php index 3fbea2039..e6f3c54db 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -95,6 +95,9 @@ class SubscriptionsAction extends GalleryAction if ($subscriptions) { $subscriptions_list = new SubscriptionsList($subscriptions, $this->user, $this); $cnt = $subscriptions_list->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } } $subscriptions->free(); @@ -103,6 +106,25 @@ class SubscriptionsAction extends GalleryAction $this->page, 'subscriptions', array('nickname' => $this->user->nickname)); } + + function showEmptyListMessage() + { + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message = _('You\'re not listening to anyone\'s notices right now, try subscribing to people you know. Try [people search](%%action.peoplesearch%%), look for members in groups you\'re interested in and in our [featured users](%%action.featured%%). If you\'re a [Twitter user](%%action.twittersettings%%), you can automatically subscribe to people you already follow there.'); + } else { + $message = sprintf(_('%s is not listening to anyone.'), $this->user->nickname); + } + } + else { + $message = sprintf(_('%s is not listening to anyone.'), $this->user->nickname); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } } class SubscriptionsList extends ProfileList @@ -117,7 +139,7 @@ class SubscriptionsList extends ProfileList $this->out->elementStart('form', array('id' => 'subedit-' . $profile->id, 'method' => 'post', - 'class' => 'form_subcription_edit', + 'class' => 'form_subscription_edit', 'action' => common_local_url('subedit'))); $this->out->hidden('token', common_session_token()); $this->out->hidden('profile', $profile->id); diff --git a/actions/sup.php b/actions/sup.php index f4b1cda23..246b3299d 100644 --- a/actions/sup.php +++ b/actions/sup.php @@ -45,7 +45,7 @@ class SupAction extends Action function availablePeriods() { static $periods = array(86400, 43200, 21600, 7200, - 3600, 1800, 600, 300, 120, + 3600, 1800, 600, 300, 120, 60, 30, 15); $available = array(); foreach ($periods as $period) { @@ -65,7 +65,9 @@ class SupAction extends Action $notice->query('SELECT profile_id, max(id) AS max_id ' . 'FROM notice ' . - 'WHERE created > (now() - ' . $seconds . ') ' . + ((common_config('db','type') == 'pgsql') ? + 'WHERE extract(epoch from created) > (extract(epoch from now()) - ' . $seconds . ') ' : + 'WHERE created > (now() - ' . $seconds . ') ' ) . 'GROUP BY profile_id'); $updates = array(); diff --git a/actions/tag.php b/actions/tag.php index 2a564a25d..06411085b 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -33,16 +33,25 @@ class TagAction extends Action } if ($this->tag != $taginput) { - common_redirect(common_local_url('tag', array('tag' => $this->tag))); + common_redirect(common_local_url('tag', array('tag' => $this->tag)), + 301); + return false; } $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - + common_set_returnto($this->selfUrl()); - + return true; } + function showSections() + { + $pop = new PopularNoticeSection($this); + $pop->show(); + } + + function title() { if ($this->page == 1) { @@ -61,12 +70,11 @@ class TagAction extends Action $this->showPage(); } - function showFeeds() + function getFeeds() { - $this->element('link', array('rel' => 'alternate', - 'href' => common_local_url('tagrss', array('tag' => $this->tag)), - 'type' => 'application/rss+xml', - 'title' => sprintf(_('Feed for tag %s'), $this->tag))); + return array(new Feed(Feed::RSS1, + common_local_url('tagrss', array('tag' => $this->tag)), + sprintf(_('Feed for tag %s'), $this->tag))); } /** @@ -85,15 +93,6 @@ class TagAction extends Action return sprintf(_('Messages tagged "%s", most recent first'), $this->tag); } - function showExportData() - { - $fl = new FeedList($this); - $fl->show(array(0=>array('href'=>common_local_url('tagrss', array('tag' => $this->tag)), - 'type' => 'rss', - 'version' => 'RSS 1.0', - 'item' => 'tagrss'))); - } - function showContent() { $notice = Notice_tag::getStream($this->tag, (($this->page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); @@ -105,4 +104,9 @@ class TagAction extends Action $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'tag', array('tag' => $this->tag)); } + + function isReadOnly() + { + return true; + } } diff --git a/actions/tagother.php b/actions/tagother.php index 3e8a12fd6..0c5bb7cf3 100644 --- a/actions/tagother.php +++ b/actions/tagother.php @@ -110,7 +110,7 @@ class TagotherAction extends Action if ($this->profile->location) { $this->elementStart('dl', 'entity_location'); $this->element('dt', null, _('Location')); - $this->element('dd', 'location', $this->profile->location); + $this->element('dd', 'label', $this->profile->location); $this->elementEnd('dl'); } if ($this->profile->homepage) { @@ -135,7 +135,8 @@ class TagotherAction extends Action 'id' => 'form_tag_user', 'class' => 'form_settings', 'name' => 'tagother', - 'action' => $this->selfUrl())); + 'action' => common_local_url('tagother', array('id' => $this->profile->id)))); + $this->elementStart('fieldset'); $this->element('legend', null, _('Tag user')); $this->hidden('token', common_session_token()); @@ -220,7 +221,8 @@ class TagotherAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url($action, array('nickname' => - $user->nickname))); + $user->nickname)), + 303); } } diff --git a/actions/twitapiaccount.php b/actions/twitapiaccount.php index b7c09cc9d..68a18cb57 100644 --- a/actions/twitapiaccount.php +++ b/actions/twitapiaccount.php @@ -23,23 +23,24 @@ require_once(INSTALLDIR.'/lib/twitterapi.php'); class TwitapiaccountAction extends TwitterapiAction { - - function verify_credentials($args, $apidata) + function verify_credentials($args, $apidata) { + parent::handle($args); - if ($apidata['content-type'] == 'xml') { - header('Content-Type: application/xml; charset=utf-8'); - print '<authorized>true</authorized>'; - } elseif ($apidata['content-type'] == 'json') { - header('Content-Type: application/json; charset=utf-8'); - print '{"authorized":true}'; - } else { - common_user_error(_('API method not found!'), $code=404); - } - - } + switch ($apidata['content-type']) { + case 'xml': + case 'json': + $action_obj = new TwitapiusersAction(); + $action_obj->prepare($args); + call_user_func(array($action_obj, 'show'), $args, $apidata); + break; + default: + header('Content-Type: text/html; charset=utf-8'); + print 'Authorized'; + } + } - function end_session($args, $apidata) + function end_session($args, $apidata) { parent::handle($args); $this->serverError(_('API method under construction.'), $code=501); diff --git a/actions/twitapidirect_messages.php b/actions/twitapidirect_messages.php index db55e8cd0..7101db8df 100644 --- a/actions/twitapidirect_messages.php +++ b/actions/twitapidirect_messages.php @@ -38,7 +38,6 @@ class Twitapidirect_messagesAction extends TwitterapiAction function show_messages($args, $apidata, $type) { - $user = $apidata['user']; $count = $this->arg('count'); @@ -102,7 +101,17 @@ class Twitapidirect_messagesAction extends TwitterapiAction $this->show_rss_dmsgs($message, $title, $link, $subtitle); break; case 'atom': - $this->show_atom_dmsgs($message, $title, $link, $subtitle); + $selfuri = common_root_url() . 'api/direct_messages'; + $selfuri .= ($type == 'received') ? '.atom' : '/sent.atom'; + $taguribase = common_config('integration', 'taguri'); + + if ($type == 'sent') { + $id = "tag:$taguribase:SentDirectMessages:" . $user->id; + } else { + $id = "tag:$taguribase:DirectMessages:" . $user->id; + } + + $this->show_atom_dmsgs($message, $title, $link, $subtitle, $selfuri, $id); break; case 'json': $this->show_json_dmsgs($message); @@ -190,7 +199,7 @@ class Twitapidirect_messagesAction extends TwitterapiAction $this->init_document('xml'); $this->elementStart('direct-messages', array('type' => 'array')); - if (is_array($messages)) { + if (is_array($message)) { foreach ($message as $m) { $twitter_dm = $this->twitter_dmsg_array($m); $this->show_twitter_xml_dmsg($twitter_dm); @@ -261,16 +270,17 @@ class Twitapidirect_messagesAction extends TwitterapiAction } - function show_atom_dmsgs($message, $title, $link, $subtitle) + function show_atom_dmsgs($message, $title, $link, $subtitle, $selfuri, $id) { $this->init_document('atom'); $this->element('title', null, $title); - $siteserver = common_config('site', 'server'); - $this->element('id', null, "tag:$siteserver,2008:DirectMessage"); + $this->element('id', null, $id); $this->element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), null); - $this->element('updated', null, common_date_iso8601(strftime('%c'))); + $this->element('link', array('href' => $selfuri, 'rel' => 'self', + 'type' => 'application/atom+xml'), null); + $this->element('updated', null, common_date_iso8601('now')); $this->element('subtitle', null, $subtitle); if (is_array($message)) { diff --git a/actions/twitapifavorites.php b/actions/twitapifavorites.php index 737b7229f..31dce341b 100644 --- a/actions/twitapifavorites.php +++ b/actions/twitapifavorites.php @@ -61,10 +61,9 @@ class TwitapifavoritesAction extends TwitterapiAction } $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - $title = sprintf(_('%s / Favorites from %s'), $sitename, $user->nickname); - $id = "tag:$siteserver:favorites:".$user->id; + $taguribase = common_config('integration', 'taguri'); + $id = "tag:$taguribase:Favorites:".$user->id; $link = common_local_url('favorites', array('nickname' => $user->nickname)); $subtitle = sprintf(_('%s updates favorited by %s / %s.'), $sitename, $profile->getBestName(), $user->nickname); @@ -76,7 +75,14 @@ class TwitapifavoritesAction extends TwitterapiAction $this->show_rss_timeline($notice, $title, $link, $subtitle); break; case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); + if (isset($apidata['api_arg'])) { + $selfuri = $selfuri = common_root_url() . + 'api/favorites/' . $apidata['api_arg'] . '.atom'; + } else { + $selfuri = $selfuri = common_root_url() . + 'api/favorites.atom'; + } + $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, null, $selfuri); break; case 'json': $this->show_json_timeline($notice); diff --git a/actions/twitapisearchatom.php b/actions/twitapisearchatom.php new file mode 100644 index 000000000..eb9ab5d8e --- /dev/null +++ b/actions/twitapisearchatom.php @@ -0,0 +1,377 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Action for showing Twitter-like Atom search results + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @copyright 2008-2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/twitterapi.php'; + +/** + * Action for outputting search results in Twitter compatible Atom + * format. + * + * TODO: abstract Atom stuff into a ruseable base class like + * RSS10Action. + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * + * @see TwitterapiAction + */ + +class TwitapisearchatomAction extends TwitterapiAction +{ + + var $cnt; + var $query; + var $lang; + var $rpp; + var $page; + var $since_id; + var $geocode; + + /** + * Constructor + * + * Just wraps the Action constructor. + * + * @param string $output URI to output to, default = stdout + * @param boolean $indent Whether to indent output, default true + * + * @see Action::__construct + */ + + function __construct($output='php://output', $indent=true) + { + parent::__construct($output, $indent); + } + + /** + * Do we need to write to the database? + * + * @return boolean true + */ + + function isReadonly() + { + return true; + } + + /** + * Read arguments and initialize members + * + * @param array $args Arguments from $_REQUEST + * + * @return boolean success + * + */ + + function prepare($args) + { + parent::prepare($args); + + $this->query = $this->trimmed('q'); + $this->lang = $this->trimmed('lang'); + $this->rpp = $this->trimmed('rpp'); + + if (!$this->rpp) { + $this->rpp = 15; + } + + if ($this->rpp > 100) { + $this->rpp = 100; + } + + $this->page = $this->trimmed('page'); + + if (!$this->page) { + $this->page = 1; + } + + // TODO: Suppport since_id -- we need to tweak the backend + // Search classes to support it. + + $this->since_id = $this->trimmed('since_id'); + $this->geocode = $this->trimmed('geocode'); + + // TODO: Also, language and geocode + + return true; + } + + /** + * Handle a request + * + * @param array $args Arguments from $_REQUEST + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + $this->showAtom(); + } + + /** + * Get the notices to output as results. This also sets some class + * attrs so we can use them to calculate pagination, and output + * since_id and max_id. + * + * @return array an array of Notice objects sorted in reverse chron + */ + + function getNotices() + { + // TODO: Support search operators like from: and to:, boolean, etc. + + $notices = array(); + $notice = new Notice(); + + // lcase it for comparison + $q = strtolower($this->query); + + $search_engine = $notice->getSearchEngine('identica_notices'); + $search_engine->set_sort_mode('chron'); + $search_engine->limit(($this->page - 1) * $this->rpp, + $this->rpp + 1, true); + $search_engine->query($q); + $this->cnt = $notice->find(); + + $cnt = 0; + + while ($notice->fetch()) { + + ++$cnt; + + if (!$this->max_id) { + $this->max_id = $notice->id; + } + + if ($cnt > $this->rpp) { + break; + } + + $notices[] = clone($notice); + } + + return $notices; + } + + /** + * Output search results as an Atom feed + * + * @return void + */ + + function showAtom() + { + $notices = $this->getNotices(); + + $this->initAtom(); + $this->showFeed(); + + foreach ($notices as $n) { + $this->showEntry($n); + } + + $this->endAtom(); + } + + /** + * Show feed specific Atom elements + * + * @return void + */ + + function showFeed() + { + // TODO: A9 OpenSearch stuff like search.twitter.com? + + $server = common_config('site', 'server'); + $sitename = common_config('site', 'name'); + + // XXX: Use xmlns:laconica instead? + + $this->elementStart('feed', + array('xmlns' => 'http://www.w3.org/2005/Atom', + + // XXX: xmlns:twitter causes Atom validation to fail + // It's used for the source attr on notices + + 'xmlns:twitter' => 'http://api.twitter.com/', + 'xml:lang' => 'en-US')); // XXX Other locales ? + + $taguribase = common_config('integration', 'taguri'); + $this->element('id', null, "tag:$taguribase:search/$server"); + + $site_uri = common_path(false); + + $search_uri = $site_uri . 'api/search.atom?q=' . urlencode($this->query); + + if ($this->rpp != 15) { + $search_uri .= '&rpp=' . $this->rpp; + } + + // FIXME: this alternate link is not quite right because our + // web-based notice search doesn't support a rpp (responses per + // page) param yet + + $this->element('link', array('type' => 'text/html', + 'rel' => 'alternate', + 'href' => $site_uri . 'search/notice?q=' . + urlencode($this->query))); + + // self link + + $self_uri = $search_uri; + $self_uri .= ($this->page > 1) ? '&page=' . $this->page : ''; + + $this->element('link', array('type' => 'application/atom+xml', + 'rel' => 'self', + 'href' => $self_uri)); + + $this->element('title', null, "$this->query - $sitename Search"); + $this->element('updated', null, common_date_iso8601('now')); + + // XXX: The below "rel" links are not valid Atom, but it's what + // Twitter does... + + // refresh link + + $refresh_uri = $search_uri . "&since_id=" . $this->max_id; + + $this->element('link', array('type' => 'application/atom+xml', + 'rel' => 'refresh', + 'href' => $refresh_uri)); + + // pagination links + + if ($this->cnt > $this->rpp) { + + $next_uri = $search_uri . "&max_id=" . $this->max_id . + '&page=' . ($this->page + 1); + + $this->element('link', array('type' => 'application/atom+xml', + 'rel' => 'next', + 'href' => $next_uri)); + } + + if ($this->page > 1) { + + $previous_uri = $search_uri . "&max_id=" . $this->max_id . + '&page=' . ($this->page - 1); + + $this->element('link', array('type' => 'application/atom+xml', + 'rel' => 'previous', + 'href' => $previous_uri)); + } + + } + + /** + * Build an Atom entry similar to search.twitter.com's based on + * a given notice + * + * @param Notice $notice the notice to use + * + * @return void + */ + + function showEntry($notice) + { + $server = common_config('site', 'server'); + $profile = $notice->getProfile(); + $nurl = common_local_url('shownotice', array('notice' => $notice->id)); + + $this->elementStart('entry'); + + $taguribase = common_config('integration', 'taguri'); + + $this->element('id', null, "tag:$taguribase:$notice->id"); + $this->element('published', null, common_date_w3dtf($notice->created)); + $this->element('link', array('type' => 'text/html', + 'rel' => 'alternate', + 'href' => $nurl)); + $this->element('title', null, common_xml_safe_str(trim($notice->content))); + $this->element('content', array('type' => 'html'), $notice->rendered); + $this->element('updated', null, common_date_w3dtf($notice->created)); + $this->element('link', array('type' => 'image/png', + // XXX: Twitter uses rel="image" (not valid) + 'rel' => 'related', + 'href' => $profile->avatarUrl())); + + // TODO: Here is where we'd put in a link to an atom feed for threads + + $this->element("twitter:source", null, + htmlentities($this->source_link($notice->source))); + + $this->elementStart('author'); + + $name = $profile->nickname; + + if ($profile->fullname) { + $name .= ' (' . $profile->fullname . ')'; + } + + $this->element('name', null, $name); + $this->element('uri', null, common_profile_uri($profile)); + $this->elementEnd('author'); + + $this->elementEnd('entry'); + } + + /** + * Initialize the Atom output, send headers + * + * @return void + */ + + function initAtom() + { + header('Content-Type: application/atom+xml; charset=utf-8'); + $this->startXml(); + } + + /** + * End the Atom feed + * + * @return void + */ + + function endAtom() + { + $this->elementEnd('feed'); + } + +} diff --git a/actions/twitapisearchjson.php b/actions/twitapisearchjson.php new file mode 100644 index 000000000..0f9f523a1 --- /dev/null +++ b/actions/twitapisearchjson.php @@ -0,0 +1,149 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Action for showing Twitter-like JSON search results + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @copyright 2008-2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/twitterapi.php'; +require_once INSTALLDIR.'/lib/jsonsearchresultslist.php'; + +/** + * Action handler for Twitter-compatible API search + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * @see TwitterapiAction + */ + +class TwitapisearchjsonAction extends TwitterapiAction +{ + var $query; + var $lang; + var $rpp; + var $page; + var $since_id; + var $limit; + var $geocode; + + /** + * Initialization. + * + * @param array $args Web and URL arguments + * + * @return boolean true if nothing goes wrong + */ + + function prepare($args) + { + parent::prepare($args); + + $this->query = $this->trimmed('q'); + $this->lang = $this->trimmed('lang'); + $this->rpp = $this->trimmed('rpp'); + + if (!$this->rpp) { + $this->rpp = 15; + } + + if ($this->rpp > 100) { + $this->rpp = 100; + } + + $this->page = $this->trimmed('page'); + + if (!$this->page) { + $this->page = 1; + } + + $this->since_id = $this->trimmed('since_id'); + $this->geocode = $this->trimmed('geocode'); + + return true; + } + + /** + * Handle a request + * + * @param array $args Arguments from $_REQUEST + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + $this->showResults(); + } + + /** + * Show search results + * + * @return void + */ + + function showResults() + { + + // TODO: Support search operators like from: and to:, boolean, etc. + + $notice = new Notice(); + + // lcase it for comparison + $q = strtolower($this->query); + + $search_engine = $notice->getSearchEngine('identica_notices'); + $search_engine->set_sort_mode('chron'); + $search_engine->limit(($this->page - 1) * $this->rpp, $this->rpp + 1, true); + $search_engine->query($q); + $cnt = $notice->find(); + + // TODO: since_id, lang, geocode + + $results = new JSONSearchResultsList($notice, $q, $this->rpp, $this->page); + + $this->init_document('json'); + $results->show(); + $this->end_document('json'); + } + + /** + * Do we need to write to the database? + * + * @return boolean true + */ + + function isReadOnly() + { + return true; + } +}
\ No newline at end of file diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index 18e24c0f5..323c4f1f8 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -29,10 +29,12 @@ class TwitapistatusesAction extends TwitterapiAction parent::handle($args); $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); $title = sprintf(_("%s public timeline"), $sitename); - $id = "tag:$siteserver:Statuses"; + + $taguribase = common_config('integration', 'taguri'); + $id = "tag:$taguribase:PublicTimeline"; $link = common_root_url(); + $subtitle = sprintf(_("%s updates from everyone!"), $sitename); // Number of public statuses to return by default -- Twitter sends 20 @@ -70,7 +72,8 @@ class TwitapistatusesAction extends TwitterapiAction $this->show_rss_timeline($notice, $title, $link, $subtitle); break; case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); + $selfuri = common_root_url() . 'api/statuses/public_timeline.atom'; + $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, null, $selfuri); break; case 'json': $this->show_json_timeline($notice); @@ -114,17 +117,19 @@ class TwitapistatusesAction extends TwitterapiAction } $since = strtotime($this->arg('since')); - - $user = $this->get_user(null, $apidata); + $user = $this->get_user($apidata['api_arg'], $apidata); $this->auth_user = $user; - $profile = $user->getProfile(); + if (empty($user)) { + $this->clientError(_('No such user!'), 404, $apidata['content-type']); + return; + } + $profile = $user->getProfile(); $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - $title = sprintf(_("%s and friends"), $user->nickname); - $id = "tag:$siteserver:friends:" . $user->id; + $taguribase = common_config('integration', 'taguri'); + $id = "tag:$taguribase:FriendsTimeline:" . $user->id; $link = common_local_url('all', array('nickname' => $user->nickname)); $subtitle = sprintf(_('Updates from %1$s and friends on %2$s!'), $user->nickname, $sitename); @@ -138,7 +143,14 @@ class TwitapistatusesAction extends TwitterapiAction $this->show_rss_timeline($notice, $title, $link, $subtitle); break; case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle); + if (isset($apidata['api_arg'])) { + $selfuri = $selfuri = common_root_url() . + 'api/statuses/friends_timeline/' . $apidata['api_arg'] . '.atom'; + } else { + $selfuri = $selfuri = common_root_url() . + 'api/statuses/friends_timeline.atom'; + } + $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, null, $selfuri); break; case 'json': $this->show_json_timeline($notice); @@ -194,17 +206,16 @@ class TwitapistatusesAction extends TwitterapiAction $since = strtotime($this->arg('since')); $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - $title = sprintf(_("%s timeline"), $user->nickname); - $id = "tag:$siteserver:user:".$user->id; + $taguribase = common_config('integration', 'taguri'); + $id = "tag:$taguribase:UserTimeline:".$user->id; $link = common_local_url('showstream', array('nickname' => $user->nickname)); $subtitle = sprintf(_('Updates from %1$s on %2$s!'), $user->nickname, $sitename); # FriendFeed's SUP protocol # Also added RSS and Atom feeds - $suplink = common_local_url('sup', null, $user->id); + $suplink = common_local_url('sup', null, null, $user->id); header('X-SUP-ID: '.$suplink); # XXX: since @@ -219,7 +230,14 @@ class TwitapistatusesAction extends TwitterapiAction $this->show_rss_timeline($notice, $title, $link, $subtitle, $suplink); break; case 'atom': - $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, $suplink); + if (isset($apidata['api_arg'])) { + $selfuri = $selfuri = common_root_url() . + 'api/statuses/user_timeline/' . $apidata['api_arg'] . '.atom'; + } else { + $selfuri = $selfuri = common_root_url() . + 'api/statuses/user_timeline.atom'; + } + $this->show_atom_timeline($notice, $title, $id, $link, $subtitle, $suplink, $selfuri); break; case 'json': $this->show_json_timeline($notice); @@ -337,15 +355,14 @@ class TwitapistatusesAction extends TwitterapiAction $since_id = $this->arg('since_id'); $before_id = $this->arg('before_id'); + $user = $this->get_user($apidata['api_arg'], $apidata); $this->auth_user = $apidata['user']; - $user = $this->auth_user; $profile = $user->getProfile(); $sitename = common_config('site', 'name'); - $siteserver = common_config('site', 'server'); - $title = sprintf(_('%1$s / Updates replying to %2$s'), $sitename, $user->nickname); - $id = "tag:$siteserver:replies:".$user->id; + $taguribase = common_config('integration', 'taguri'); + $id = "tag:$taguribase:Replies:".$user->id; $link = common_local_url('replies', array('nickname' => $user->nickname)); $subtitle = sprintf(_('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $user->nickname, $profile->getBestName()); @@ -383,7 +400,14 @@ class TwitapistatusesAction extends TwitterapiAction $this->show_rss_timeline($notices, $title, $link, $subtitle); break; case 'atom': - $this->show_atom_timeline($notices, $title, $id, $link, $subtitle); + if (isset($apidata['api_arg'])) { + $selfuri = $selfuri = common_root_url() . + 'api/statuses/replies/' . $apidata['api_arg'] . '.atom'; + } else { + $selfuri = $selfuri = common_root_url() . + 'api/statuses/replies.atom'; + } + $this->show_atom_timeline($notices, $title, $id, $link, $subtitle, null, $selfuri); break; case 'json': $this->show_json_timeline($notices); @@ -470,19 +494,28 @@ class TwitapistatusesAction extends TwitterapiAction return $this->subscriptions($apidata, 'subscribed', 'subscriber'); } - function followers($args, $apidata) + function friendsIDs($args, $apidata) { parent::handle($args); + return $this->subscriptions($apidata, 'subscribed', 'subscriber', true); + } + function followers($args, $apidata) + { + parent::handle($args); return $this->subscriptions($apidata, 'subscriber', 'subscribed'); } - function subscriptions($apidata, $other_attr, $user_attr) + function followersIDs($args, $apidata) { + parent::handle($args); + return $this->subscriptions($apidata, 'subscriber', 'subscribed', true); + } - # XXX: lite + function subscriptions($apidata, $other_attr, $user_attr, $onlyIDs=false) + { - $this->auth_user = $apidate['user']; + $this->auth_user = $apidata['user']; $user = $this->get_user($apidata['api_arg'], $apidata); if (!$user) { @@ -514,7 +547,10 @@ class TwitapistatusesAction extends TwitterapiAction } $sub->orderBy('created DESC'); - $sub->limit(($page-1)*100, 100); + + if (!$onlyIDs) { + $sub->limit(($page-1)*100, 100); + } $others = array(); @@ -529,7 +565,13 @@ class TwitapistatusesAction extends TwitterapiAction $type = $apidata['content-type']; $this->init_document($type); - $this->show_profiles($others, $type); + + if ($onlyIDs) { + $this->showIDs($others, $type); + } else { + $this->show_profiles($others, $type); + } + $this->end_document($type); } @@ -555,6 +597,28 @@ class TwitapistatusesAction extends TwitterapiAction } } + function showIDs($profiles, $type) + { + switch ($type) { + case 'xml': + $this->elementStart('ids'); + foreach ($profiles as $profile) { + $this->element('id', null, $profile->id); + } + $this->elementEnd('ids'); + break; + case 'json': + $ids = array(); + foreach ($profiles as $profile) { + $ids[] = (int)$profile->id; + } + print json_encode($ids); + break; + default: + $this->clientError(_('unsupported file type')); + } + } + function featured($args, $apidata) { parent::handle($args); diff --git a/actions/twitapitrends.php b/actions/twitapitrends.php new file mode 100644 index 000000000..c73d89446 --- /dev/null +++ b/actions/twitapitrends.php @@ -0,0 +1,90 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * List of replies + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @copyright 2008-2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/twitterapi.php'; + +/** + * Returns the top ten queries that are currently trending + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * + * @see TwitterapiAction + */ + +class TwitapitrendsAction extends TwitterapiAction +{ + + var $callback; + + /** + * Initialization. + * + * @param array $args Web and URL arguments + * + * @return boolean false if user doesn't exist + */ + function prepare($args) + { + parent::prepare($args); + return true; + } + + /** + * Handle a request + * + * @param array $args Arguments from $_REQUEST + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + $this->showTrends(); + } + + /** + * Output the trends + * + * @return void + */ + function showTrends() + { + $this->serverError(_('API method under construction.'), $code = 501); + } + +}
\ No newline at end of file diff --git a/actions/twitapiusers.php b/actions/twitapiusers.php index 8f16e5613..2894b7486 100644 --- a/actions/twitapiusers.php +++ b/actions/twitapiusers.php @@ -25,25 +25,29 @@ class TwitapiusersAction extends TwitterapiAction { function show($args, $apidata) - { + { parent::handle($args); - if (!in_array($apidata['content-type'], array('xml', 'json'))) { + if (!in_array($apidata['content-type'], array('xml', 'json'))) { $this->clientError(_('API method not found!'), $code = 404); return; } - - $this->auth_user = $apidata['user']; + $user = null; $email = $this->arg('email'); + $user_id = $this->arg('user_id'); if ($email) { $user = User::staticGet('email', $email); + } elseif ($user_id) { + $user = $this->get_user($user_id); } elseif (isset($apidata['api_arg'])) { $user = $this->get_user($apidata['api_arg']); - } - - if (!$user) { + } elseif (isset($apidata['user'])) { + $user = $apidata['user']; + } + + if (!$user) { // XXX: Twitter returns a random(?) user instead of throwing and err! -- Zach $this->client_error(_('Not found.'), 404, $apidata['content-type']); return; @@ -74,9 +78,12 @@ class TwitapiusersAction extends TwitterapiAction // Other fields Twitter sends... $twitter_user['profile_background_color'] = ''; + $twitter_user['profile_background_image_url'] = ''; $twitter_user['profile_text_color'] = ''; $twitter_user['profile_link_color'] = ''; $twitter_user['profile_sidebar_fill_color'] = ''; + $twitter_user['profile_sidebar_border_color'] = ''; + $twitter_user['profile_background_tile'] = 'false'; $faves = DB_DataObject::factory('fave'); $faves->user_id = $user->id; @@ -94,18 +101,27 @@ class TwitapiusersAction extends TwitterapiAction $twitter_user['utc_offset'] = $t->format('Z'); $twitter_user['time_zone'] = $timezone; - if (isset($this->auth_user)) { + if (isset($apidata['user'])) { - if ($this->auth_user->isSubscribed($profile)) { + if ($apidata['user']->isSubscribed($profile)) { $twitter_user['following'] = 'true'; } else { $twitter_user['following'] = 'false'; } - - // Not implemented yet - $twitter_user['notifications'] = 'false'; - } - + + // Notifications on? + $sub = Subscription::pkeyGet(array('subscriber' => + $apidata['user']->id, 'subscribed' => $profile->id)); + + if ($sub) { + if ($sub->jabber || $sub->sms) { + $twitter_user['notifications'] = 'true'; + } else { + $twitter_user['notifications'] = 'false'; + } + } + } + if ($apidata['content-type'] == 'xml') { $this->init_document('xml'); $this->show_twitter_xml_user($twitter_user); @@ -114,7 +130,13 @@ class TwitapiusersAction extends TwitterapiAction $this->init_document('json'); $this->show_json_objects($twitter_user); $this->end_document('json'); - } + } else { + + // This is in case 'show' was called via /account/verify_credentials + // without a format (xml or json). + header('Content-Type: text/html; charset=utf-8'); + print 'Authorized'; + } } } diff --git a/actions/twittersettings.php b/actions/twittersettings.php index 2d41469bb..45725d3ff 100644 --- a/actions/twittersettings.php +++ b/actions/twittersettings.php @@ -32,6 +32,7 @@ if (!defined('LACONICA')) { } require_once INSTALLDIR.'/lib/connectsettingsaction.php'; +require_once INSTALLDIR.'/lib/twitter.php'; define('SUBSCRIPTIONS', 80); @@ -90,7 +91,7 @@ class TwittersettingsAction extends ConnectSettingsAction $fuser = null; - $flink = Foreign_link::getByUserID($user->id, 1); // 1 == Twitter + $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE); if ($flink) { $fuser = $flink->getForeignUser(); @@ -185,12 +186,12 @@ class TwittersettingsAction extends ConnectSettingsAction $current_user = common_current_user(); - $qry = 'SELECT user.* ' . + $qry = 'SELECT "user".* ' . 'FROM subscription ' . - 'JOIN user ON subscription.subscribed = user.id ' . - 'JOIN foreign_link ON foreign_link.user_id = user.id ' . + 'JOIN "user" ON subscription.subscribed = "user".id ' . + 'JOIN foreign_link ON foreign_link.user_id = "user".id ' . 'WHERE subscriber = %d ' . - 'ORDER BY user.nickname'; + 'ORDER BY "user".nickname'; $user = new User(); @@ -358,7 +359,7 @@ class TwittersettingsAction extends ConnectSettingsAction $flink->user_id = $user->id; $flink->foreign_id = $twit_user->id; - $flink->service = 1; // Twitter + $flink->service = TWITTER_SERVICE; $flink->credentials = $password; $flink->created = common_sql_now(); diff --git a/actions/unblock.php b/actions/unblock.php index bad496353..8573b2a87 100644 --- a/actions/unblock.php +++ b/actions/unblock.php @@ -116,10 +116,11 @@ class UnblockAction extends Action } } if ($action) { - common_redirect(common_local_url($action, $args)); + common_redirect(common_local_url($action, $args), 303); } else { common_redirect(common_local_url('subscriptions', - array('nickname' => $cur->nickname))); + array('nickname' => $cur->nickname)), + 303); } } } diff --git a/actions/unsubscribe.php b/actions/unsubscribe.php index b1e2b6425..7dcab04c0 100644 --- a/actions/unsubscribe.php +++ b/actions/unsubscribe.php @@ -77,7 +77,8 @@ class UnsubscribeAction extends Action $this->elementEnd('html'); } else { common_redirect(common_local_url('subscriptions', array('nickname' => - $user->nickname))); + $user->nickname)), + 303); } } } diff --git a/actions/updateprofile.php b/actions/updateprofile.php index 898c53543..08cb31ae0 100644 --- a/actions/updateprofile.php +++ b/actions/updateprofile.php @@ -29,11 +29,13 @@ class UpdateprofileAction extends Action parent::handle($args); try { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('updateprofile')); # Note: server-to-server function! $server = omb_oauth_server(); list($consumer, $token) = $server->verify_request($req); if ($this->update_profile($req, $consumer, $token)) { + header('HTTP/1.1 200 OK'); + header('Content-type: text/plain'); print "omb_version=".OMB_VERSION_01; } } catch (OAuthException $e) { @@ -136,22 +138,24 @@ class UpdateprofileAction extends Action $orig_profile = clone($profile); - if ($nickname) { + /* Use values even if they are an empty string. Parsing an empty string in + updateProfile is the specified way of clearing a parameter in OMB. */ + if (!is_null($nickname)) { $profile->nickname = $nickname; } - if ($profile_url) { + if (!is_null($profile_url)) { $profile->profileurl = $profile_url; } - if ($fullname) { + if (!is_null($fullname)) { $profile->fullname = $fullname; } - if ($homepage) { + if (!is_null($homepage)) { $profile->homepage = $homepage; } - if ($bio) { + if (!is_null($bio)) { $profile->bio = $bio; } - if ($location) { + if (!is_null($location)) { $profile->location = $location; } @@ -162,15 +166,17 @@ class UpdateprofileAction extends Action if ($avatar) { $temp_filename = tempnam(sys_get_temp_dir(), 'listenee_avatar'); copy($avatar, $temp_filename); - if (!$profile->setOriginal($temp_filename)) { + $imagefile = new ImageFile($profile->id, $temp_filename); + $filename = Avatar::filename($profile->id, + image_type_to_extension($imagefile->type), + null, + common_timestamp()); + rename($temp_filename, Avatar::path($filename)); + if (!$profile->setOriginal($filename)) { $this->serverError(_('Could not save avatar info'), 500); return false; } } - header('HTTP/1.1 200 OK'); - header('Content-type: text/plain'); - print 'Updated profile'; - print "\n"; return true; } } diff --git a/actions/userauthorization.php b/actions/userauthorization.php index ed17ceec9..168019149 100644 --- a/actions/userauthorization.php +++ b/actions/userauthorization.php @@ -25,7 +25,7 @@ define('TIMESTAMP_THRESHOLD', 300); class UserauthorizationAction extends Action { var $error; - var $req; + var $params; function handle($args) { @@ -35,8 +35,8 @@ class UserauthorizationAction extends Action # CSRF protection $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { - $req = $this->getStoredRequest(); - $this->showForm($req, _('There was a problem with your session token. '. + $params = $this->getStoredParams(); + $this->showForm($params, _('There was a problem with your session token. '. 'Try again, please.')); return; } @@ -50,18 +50,13 @@ class UserauthorizationAction extends Action common_redirect(common_local_url('login')); return; } + try { - # this must be a new request - $req = $this->getNewRequest(); - if (!$req) { - $this->clientError(_('No request found!')); - } - # XXX: only validate new requests, since nonce is one-time use - $this->validateRequest($req); - $this->storeRequest($req); - $this->showForm($req); + $this->validateRequest(); + $this->storeParams($_GET); + $this->showForm($_GET); } catch (OAuthException $e) { - $this->clearRequest(); + $this->clearParams(); $this->clientError($e->getMessage()); return; } @@ -69,9 +64,9 @@ class UserauthorizationAction extends Action } } - function showForm($req, $error=null) + function showForm($params, $error=null) { - $this->req = $req; + $this->params = $params; $this->error = $error; $this->showPage(); } @@ -91,113 +86,157 @@ class UserauthorizationAction extends Action function showContent() { - $req = $this->req; - - $nickname = $req->get_parameter('omb_listenee_nickname'); - $profile = $req->get_parameter('omb_listenee_profile'); - $license = $req->get_parameter('omb_listenee_license'); - $fullname = $req->get_parameter('omb_listenee_fullname'); - $homepage = $req->get_parameter('omb_listenee_homepage'); - $bio = $req->get_parameter('omb_listenee_bio'); - $location = $req->get_parameter('omb_listenee_location'); - $avatar = $req->get_parameter('omb_listenee_avatar'); - - $this->elementStart('div', 'profile'); + $params = $this->params; + + $nickname = $params['omb_listenee_nickname']; + $profile = $params['omb_listenee_profile']; + $license = $params['omb_listenee_license']; + $fullname = $params['omb_listenee_fullname']; + $homepage = $params['omb_listenee_homepage']; + $bio = $params['omb_listenee_bio']; + $location = $params['omb_listenee_location']; + $avatar = $params['omb_listenee_avatar']; + + $this->elementStart('div', array('class' => 'profile')); + $this->elementStart('div', 'entity_profile vcard'); + $this->elementStart('a', array('href' => $profile, + 'class' => 'url')); if ($avatar) { $this->element('img', array('src' => $avatar, - 'class' => 'avatar profile', + 'class' => 'photo avatar', 'width' => AVATAR_PROFILE_SIZE, 'height' => AVATAR_PROFILE_SIZE, 'alt' => $nickname)); } - $this->element('a', array('href' => $profile, - 'class' => 'external profile nickname'), - $nickname); - if ($fullname) { - $this->elementStart('div', 'fullname'); - if ($homepage) { - $this->element('a', array('href' => $homepage), - $fullname); - } else { - $this->text($fullname); - } - $this->elementEnd('div'); + $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname'; + $this->elementStart('span', $hasFN); + $this->raw($nickname); + $this->elementEnd('span'); + $this->elementEnd('a'); + + if (!is_null($fullname)) { + $this->elementStart('dl', 'entity_fn'); + $this->elementStart('dd'); + $this->elementStart('span', 'fn'); + $this->raw($fullname); + $this->elementEnd('span'); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + } + if (!is_null($location)) { + $this->elementStart('dl', 'entity_location'); + $this->element('dt', null, _('Location')); + $this->elementStart('dd', 'label'); + $this->raw($location); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + } + + if (!is_null($homepage)) { + $this->elementStart('dl', 'entity_url'); + $this->element('dt', null, _('URL')); + $this->elementStart('dd'); + $this->elementStart('a', array('href' => $homepage, + 'class' => 'url')); + $this->raw($homepage); + $this->elementEnd('a'); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + } + + if (!is_null($bio)) { + $this->elementStart('dl', 'entity_note'); + $this->element('dt', null, _('Note')); + $this->elementStart('dd', 'note'); + $this->raw($bio); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + } + + if (!is_null($license)) { + $this->elementStart('dl', 'entity_license'); + $this->element('dt', null, _('License')); + $this->elementStart('dd', 'license'); + $this->element('a', array('href' => $license, + 'class' => 'license'), + $license); + $this->elementEnd('dd'); + $this->elementEnd('dl'); } - if ($location) { - $this->element('div', 'location', $location); - } - if ($bio) { - $this->element('div', 'bio', $bio); - } - $this->elementStart('div', 'license'); - $this->element('a', array('href' => $license, - 'class' => 'license'), - $license); - $this->elementEnd('div'); $this->elementEnd('div'); + + $this->elementStart('div', 'entity_actions'); + $this->elementStart('ul'); + $this->elementStart('li', 'entity_subscribe'); $this->elementStart('form', array('method' => 'post', 'id' => 'userauthorization', + 'class' => 'form_user_authorization', 'name' => 'userauthorization', 'action' => common_local_url('userauthorization'))); $this->hidden('token', common_session_token()); - $this->submit('accept', _('Accept')); - $this->submit('reject', _('Reject')); + + $this->submit('accept', _('Accept'), 'submit accept', null, _('Subscribe to this user')); + $this->submit('reject', _('Reject'), 'submit reject', null, _('Reject this subscription')); $this->elementEnd('form'); + $this->elementEnd('li'); + $this->elementEnd('ul'); + $this->elementEnd('div'); + $this->elementEnd('div'); } function sendAuthorization() { - $req = $this->getStoredRequest(); + $params = $this->getStoredParams(); - if (!$req) { + if (!$params) { $this->clientError(_('No authorization request!')); return; } - $callback = $req->get_parameter('oauth_callback'); + $callback = $params['oauth_callback']; if ($this->arg('accept')) { - if (!$this->authorizeToken($req)) { + if (!$this->authorizeToken($params)) { $this->clientError(_('Error authorizing token')); } - if (!$this->saveRemoteProfile($req)) { + if (!$this->saveRemoteProfile($params)) { $this->clientError(_('Error saving remote profile')); } if (!$callback) { - $this->showAcceptMessage($req->get_parameter('oauth_token')); + $this->showAcceptMessage($params['oauth_token']); } else { - $params = array(); - $params['oauth_token'] = $req->get_parameter('oauth_token'); - $params['omb_version'] = OMB_VERSION_01; - $user = User::staticGet('uri', $req->get_parameter('omb_listener')); + $newparams = array(); + $newparams['oauth_token'] = $params['oauth_token']; + $newparams['omb_version'] = OMB_VERSION_01; + $user = User::staticGet('uri', $params['omb_listener']); $profile = $user->getProfile(); if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); $this->serverError(_('User without matching profile')); return; } - $params['omb_listener_nickname'] = $user->nickname; - $params['omb_listener_profile'] = common_local_url('showstream', + $newparams['omb_listener_nickname'] = $user->nickname; + $newparams['omb_listener_profile'] = common_local_url('showstream', array('nickname' => $user->nickname)); - if ($profile->fullname) { - $params['omb_listener_fullname'] = $profile->fullname; + if (!is_null($profile->fullname)) { + $newparams['omb_listener_fullname'] = $profile->fullname; } - if ($profile->homepage) { - $params['omb_listener_homepage'] = $profile->homepage; + if (!is_null($profile->homepage)) { + $newparams['omb_listener_homepage'] = $profile->homepage; } - if ($profile->bio) { - $params['omb_listener_bio'] = $profile->bio; + if (!is_null($profile->bio)) { + $newparams['omb_listener_bio'] = $profile->bio; } - if ($profile->location) { - $params['omb_listener_location'] = $profile->location; + if (!is_null($profile->location)) { + $newparams['omb_listener_location'] = $profile->location; } $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); if ($avatar) { - $params['omb_listener_avatar'] = $avatar->url; + $newparams['omb_listener_avatar'] = $avatar->url; } $parts = array(); - foreach ($params as $k => $v) { - $parts[] = $k . '=' . OAuthUtil::urlencodeRFC3986($v); + foreach ($newparams as $k => $v) { + $parts[] = $k . '=' . OAuthUtil::urlencode_rfc3986($v); } $query_string = implode('&', $parts); $parsed = parse_url($callback); @@ -214,12 +253,10 @@ class UserauthorizationAction extends Action } } - function authorizeToken(&$req) + function authorizeToken(&$params) { - $consumer_key = $req->get_parameter('oauth_consumer_key'); - $token_field = $req->get_parameter('oauth_token'); + $token_field = $params['oauth_token']; $rt = new Token(); - $rt->consumer_key = $consumer_key; $rt->tok = $token_field; $rt->type = 0; $rt->state = 0; @@ -235,21 +272,21 @@ class UserauthorizationAction extends Action # XXX: refactor with similar code in finishremotesubscribe.php - function saveRemoteProfile(&$req) + function saveRemoteProfile(&$params) { # FIXME: we should really do this when the consumer comes # back for an access token. If they never do, we've got stuff in a # weird state. - $nickname = $req->get_parameter('omb_listenee_nickname'); - $fullname = $req->get_parameter('omb_listenee_fullname'); - $profile_url = $req->get_parameter('omb_listenee_profile'); - $homepage = $req->get_parameter('omb_listenee_homepage'); - $bio = $req->get_parameter('omb_listenee_bio'); - $location = $req->get_parameter('omb_listenee_location'); - $avatar_url = $req->get_parameter('omb_listenee_avatar'); + $nickname = $params['omb_listenee_nickname']; + $fullname = $params['omb_listenee_fullname']; + $profile_url = $params['omb_listenee_profile']; + $homepage = $params['omb_listenee_homepage']; + $bio = $params['omb_listenee_bio']; + $location = $params['omb_listenee_location']; + $avatar_url = $params['omb_listenee_avatar']; - $listenee = $req->get_parameter('omb_listenee'); + $listenee = $params['omb_listenee']; $remote = Remote_profile::staticGet('uri', $listenee); if ($remote) { @@ -267,16 +304,16 @@ class UserauthorizationAction extends Action $profile->nickname = $nickname; $profile->profileurl = $profile_url; - if ($fullname) { + if (!is_null($fullname)) { $profile->fullname = $fullname; } - if ($homepage) { + if (!is_null($homepage)) { $profile->homepage = $homepage; } - if ($bio) { + if (!is_null($bio)) { $profile->bio = $bio; } - if ($location) { + if (!is_null($location)) { $profile->location = $location; } @@ -309,14 +346,11 @@ class UserauthorizationAction extends Action } $user = common_current_user(); - $datastore = omb_oauth_datastore(); - $consumer = $this->getConsumer($datastore, $req); - $token = $this->getToken($datastore, $req, $consumer); $sub = new Subscription(); $sub->subscriber = $user->id; $sub->subscribed = $remote->id; - $sub->token = $token->key; # NOTE: request token, not valid for use! + $sub->token = $params['oauth_token']; # NOTE: request token, not valid for use! $sub->created = DB_DataObject_Cast::dateTime(); # current time if (!$sub->insert()) { @@ -360,65 +394,59 @@ class UserauthorizationAction extends Action common_show_footer(); } - function storeRequest($req) + function storeParams($params) { common_ensure_session(); - $_SESSION['userauthorizationrequest'] = $req; + $_SESSION['userauthorizationparams'] = $params; } - function clearRequest() + function clearParams() { common_ensure_session(); - unset($_SESSION['userauthorizationrequest']); + unset($_SESSION['userauthorizationparams']); } - function getStoredRequest() + function getStoredParams() { common_ensure_session(); - $req = $_SESSION['userauthorizationrequest']; - return $req; - } - - function getNewRequest() - { - common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); - return $req; + $params = $_SESSION['userauthorizationparams']; + return $params; } # Throws an OAuthException if anything goes wrong - function validateRequest(&$req) + function validateRequest() { - # OAuth stuff -- have to copy from OAuth.php since they're - # all private methods, and there's no user-authentication method - $this->checkVersion($req); - $datastore = omb_oauth_datastore(); - $consumer = $this->getConsumer($datastore, $req); - $token = $this->getToken($datastore, $req, $consumer); - $this->checkTimestamp($req); - $this->checkNonce($datastore, $req, $consumer, $token); - $this->checkSignature($req, $consumer, $token); - $this->validateOmb($req); + /* Find token. + TODO: If no token is passed the user should get a prompt to enter it + according to OAuth Core 1.0 */ + $t = new Token(); + $t->tok = $_GET['oauth_token']; + $t->type = 0; + if (!$t->find(true)) { + throw new OAuthException("Invalid request token: " . $_GET['oauth_token']); + } + + $this->validateOmb(); return true; } - function validateOmb(&$req) + function validateOmb() { foreach (array('omb_version', 'omb_listener', 'omb_listenee', 'omb_listenee_profile', 'omb_listenee_nickname', 'omb_listenee_license') as $param) { - if (!$req->get_parameter($param)) { + if (!isset($_GET[$param]) || is_null($_GET[$param])) { throw new OAuthException("Required parameter '$param' not found"); } } # Now, OMB stuff - $version = $req->get_parameter('omb_version'); + $version = $_GET['omb_version']; if ($version != OMB_VERSION_01) { throw new OAuthException("OpenMicroBlogging version '$version' not supported"); } - $listener = $req->get_parameter('omb_listener'); + $listener = $_GET['omb_listener']; $user = User::staticGet('uri', $listener); if (!$user) { throw new OAuthException("Listener URI '$listener' not found here"); @@ -427,7 +455,7 @@ class UserauthorizationAction extends Action if ($cur->id != $user->id) { throw new OAuthException("Can't add for another user!"); } - $listenee = $req->get_parameter('omb_listenee'); + $listenee = $_GET['omb_listenee']; if (!Validate::uri($listenee) && !common_valid_tag($listenee)) { throw new OAuthException("Listenee URI '$listenee' not a recognizable URI"); @@ -450,13 +478,13 @@ class UserauthorizationAction extends Action throw new OAuthException("Already subscribed to user!"); } } - $nickname = $req->get_parameter('omb_listenee_nickname'); + $nickname = $_GET['omb_listenee_nickname']; if (!Validate::string($nickname, array('min_length' => 1, 'max_length' => 64, 'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) { throw new OAuthException('Nickname must have only letters and numbers and no spaces.'); } - $profile = $req->get_parameter('omb_listenee_profile'); + $profile = $_GET['omb_listenee_profile']; if (!common_valid_http_url($profile)) { throw new OAuthException("Invalid profile URL '$profile'."); } @@ -465,7 +493,7 @@ class UserauthorizationAction extends Action throw new OAuthException("Profile URL '$profile' is for a local user."); } - $license = $req->get_parameter('omb_listenee_license'); + $license = $_GET['omb_listenee_license']; if (!common_valid_http_url($license)) { throw new OAuthException("Invalid license URL '$license'."); } @@ -474,23 +502,23 @@ class UserauthorizationAction extends Action throw new OAuthException("Listenee stream license '$license' not compatible with site license '$site_license'."); } # optional stuff - $fullname = $req->get_parameter('omb_listenee_fullname'); + $fullname = $_GET['omb_listenee_fullname']; if ($fullname && mb_strlen($fullname) > 255) { throw new OAuthException("Full name '$fullname' too long."); } - $homepage = $req->get_parameter('omb_listenee_homepage'); + $homepage = $_GET['omb_listenee_homepage']; if ($homepage && (!common_valid_http_url($homepage) || mb_strlen($homepage) > 255)) { throw new OAuthException("Invalid homepage '$homepage'"); } - $bio = $req->get_parameter('omb_listenee_bio'); + $bio = $_GET['omb_listenee_bio']; if ($bio && mb_strlen($bio) > 140) { throw new OAuthException("Bio too long '$bio'"); } - $location = $req->get_parameter('omb_listenee_location'); + $location = $_GET['omb_listenee_location']; if ($location && mb_strlen($location) > 255) { throw new OAuthException("Location too long '$location'"); } - $avatar = $req->get_parameter('omb_listenee_avatar'); + $avatar = $_GET['omb_listenee_avatar']; if ($avatar) { if (!common_valid_http_url($avatar) || strlen($avatar) > 255) { throw new OAuthException("Invalid avatar URL '$avatar'"); @@ -507,7 +535,7 @@ class UserauthorizationAction extends Action throw new OAuthException("Wrong image type for '$avatar'"); } } - $callback = $req->get_parameter('oauth_callback'); + $callback = $_GET['oauth_callback']; if ($callback && !common_valid_http_url($callback)) { throw new OAuthException("Invalid callback URL '$callback'"); } @@ -515,92 +543,4 @@ class UserauthorizationAction extends Action throw new OAuthException("Callback URL '$callback' is for local site."); } } - - # Snagged from OAuthServer - - function checkVersion(&$req) - { - $version = $req->get_parameter("oauth_version"); - if (!$version) { - $version = 1.0; - } - if ($version != 1.0) { - throw new OAuthException("OAuth version '$version' not supported"); - } - return $version; - } - - # Snagged from OAuthServer - - function getConsumer($datastore, $req) - { - $consumer_key = @$req->get_parameter("oauth_consumer_key"); - if (!$consumer_key) { - throw new OAuthException("Invalid consumer key"); - } - - $consumer = $datastore->lookup_consumer($consumer_key); - if (!$consumer) { - throw new OAuthException("Invalid consumer"); - } - return $consumer; - } - - # Mostly cadged from OAuthServer - - function getToken($datastore, &$req, $consumer) - {/*{{{*/ - $token_field = @$req->get_parameter('oauth_token'); - $token = $datastore->lookup_token($consumer, 'request', $token_field); - if (!$token) { - throw new OAuthException("Invalid $token_type token: $token_field"); - } - return $token; - } - - function checkTimestamp(&$req) - { - $timestamp = @$req->get_parameter('oauth_timestamp'); - $now = time(); - if ($now - $timestamp > TIMESTAMP_THRESHOLD) { - throw new OAuthException("Expired timestamp, yours $timestamp, ours $now"); - } - } - - # NOTE: don't call twice on the same request; will fail! - function checkNonce(&$datastore, &$req, $consumer, $token) - { - $timestamp = @$req->get_parameter('oauth_timestamp'); - $nonce = @$req->get_parameter('oauth_nonce'); - $found = $datastore->lookup_nonce($consumer, $token, $nonce, $timestamp); - if ($found) { - throw new OAuthException("Nonce already used"); - } - return true; - } - - function checkSignature(&$req, $consumer, $token) - { - $signature_method = $this->getSignatureMethod($req); - $signature = $req->get_parameter('oauth_signature'); - $valid_sig = $signature_method->check_signature($req, - $consumer, - $token, - $signature); - if (!$valid_sig) { - throw new OAuthException("Invalid signature"); - } - } - - function getSignatureMethod(&$req) - { - $signature_method = @$req->get_parameter("oauth_signature_method"); - if (!$signature_method) { - $signature_method = "PLAINTEXT"; - } - if ($signature_method != 'HMAC-SHA1') { - throw new OAuthException("Signature method '$signature_method' not supported."); - } - return omb_hmac_sha1(); - } } diff --git a/actions/usergroups.php b/actions/usergroups.php index ded4ba76b..06b2334bf 100644 --- a/actions/usergroups.php +++ b/actions/usergroups.php @@ -139,10 +139,28 @@ class UsergroupsAction extends Action if ($groups) { $gl = new GroupList($groups, $this->user, $this); $cnt = $gl->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } } $this->pagination($this->page > 1, $cnt > GROUPS_PER_PAGE, $this->page, 'usergroups', array('nickname' => $this->user->nickname)); } + + function showEmptyListMessage() + { + $message = sprintf(_('%s is not a member of any group.'), $this->user->nickname) . ' '; + + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + $message .= _('Try [searching for groups](%%action.groupsearch%%) and joining them.'); + } + } + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } } diff --git a/actions/userrss.php b/actions/userrss.php index 04855ccca..d3bf352d8 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -46,13 +46,14 @@ class UserrssAction extends Rss10Action { $user = $this->user; - + if (is_null($user)) { return null; } - + $notice = $user->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit); - + + $notices = array(); while ($notice->fetch()) { $notices[] = clone($notice); } @@ -87,10 +88,10 @@ class UserrssAction extends Rss10Action } # override parent to add X-SUP-ID URL - + function initRss($limit=0) { - $url = common_local_url('sup', null, $this->user->id); + $url = common_local_url('sup', null, null, $this->user->id); header('X-SUP-ID: '.$url); parent::initRss($limit); } @@ -100,4 +101,3 @@ class UserrssAction extends Rss10Action return true; } } - diff --git a/apple-touch-icon.png b/apple-touch-icon.png Binary files differnew file mode 100644 index 000000000..d129298d4 --- /dev/null +++ b/apple-touch-icon.png diff --git a/classes/Nonce.php b/classes/Nonce.php index 2c0edfa14..486a65a3c 100644 --- a/classes/Nonce.php +++ b/classes/Nonce.php @@ -4,22 +4,21 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Nonce extends Memcached_DataObject +class Nonce extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ public $__table = 'nonce'; // table name public $consumer_key; // varchar(255) primary_key not_null - public $tok; // char(32) primary_key not_null + public $tok; // char(32) public $nonce; // char(32) primary_key not_null - public $ts; // datetime() not_null + public $ts; // datetime() primary_key not_null public $created; // datetime() not_null public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Nonce',$k,$v); } + function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Nonce',$k,$v); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE diff --git a/classes/Notice.php b/classes/Notice.php index 329988368..5fa0d79a1 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -34,22 +34,23 @@ class Notice extends Memcached_DataObject ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ - public $__table = 'notice'; // table name - public $id; // int(4) primary_key not_null - public $profile_id; // int(4) not_null + public $__table = 'notice'; // table name + public $id; // int(4) primary_key not_null + public $profile_id; // int(4) not_null public $uri; // varchar(255) unique_key public $content; // varchar(140) - public $rendered; // text() + public $rendered; // text() public $url; // varchar(255) - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - public $reply_to; // int(4) - public $is_local; // tinyint(1) - public $source; // varchar(32) + public $created; // datetime() not_null + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + public $reply_to; // int(4) + public $is_local; // tinyint(1) + public $source; // varchar(32) /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Notice',$k,$v); } + function staticGet($k,$v=NULL) { + return Memcached_DataObject::staticGet('Notice',$k,$v); + } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -66,6 +67,8 @@ class Notice extends Memcached_DataObject $this->blowSubsCache(true); $this->query('BEGIN'); + //Null any notices that are replies to this notice + $this->query(sprintf("UPDATE notice set reply_to = null WHERE reply_to = %d", $this->id)); $related = array('Reply', 'Fave', 'Notice_tag', @@ -94,27 +97,34 @@ class Notice extends Memcached_DataObject /* Add them to the database */ foreach(array_unique($match[1]) as $hashtag) { /* elide characters we don't want in the tag */ - $hashtag = common_canonical_tag($hashtag); - - $tag = DB_DataObject::factory('Notice_tag'); - $tag->notice_id = $this->id; - $tag->tag = $hashtag; - $tag->created = $this->created; - $id = $tag->insert(); - if (!$id) { - $last_error = PEAR::getStaticProperty('DB_DataObject','lastError'); - common_log(LOG_ERR, 'DB error inserting hashtag: ' . $last_error->message); - common_server_error(sprintf(_('DB error inserting hashtag: %s'), $last_error->message)); - return; - } + $this->saveTag($hashtag); } return true; } + function saveTag($hashtag) + { + $hashtag = common_canonical_tag($hashtag); + + $tag = new Notice_tag(); + $tag->notice_id = $this->id; + $tag->tag = $hashtag; + $tag->created = $this->created; + $id = $tag->insert(); + + if (!$id) { + throw new ServerException(sprintf(_('DB error inserting hashtag: %s'), + $last_error->message)); + return; + } + } + static function saveNew($profile_id, $content, $source=null, $is_local=1, $reply_to=null, $uri=null) { $profile = Profile::staticGet($profile_id); + $final = common_shorten_links($content); + if (!$profile) { common_log(LOG_ERR, 'Problem saving notice. Unknown user.'); return _('Problem saving notice. Unknown user.'); @@ -125,7 +135,12 @@ class Notice extends Memcached_DataObject return _('Too many notices too fast; take a breather and post again in a few minutes.'); } - $banned = common_config('profile', 'banned'); + if (common_config('site', 'dupelimit') > 0 && !Notice::checkDupes($profile_id, $final)) { + common_log(LOG_WARNING, 'Dupe posting by profile #' . $profile_id . '; throttled.'); + return _('Too many duplicate messages too quickly; take a breather and post again in a few minutes.'); + } + + $banned = common_config('profile', 'banned'); if ( in_array($profile_id, $banned) || in_array($profile->nickname, $banned)) { common_log(LOG_WARNING, "Attempted post from banned user: $profile->nickname (user id = $profile_id)."); @@ -136,10 +151,12 @@ class Notice extends Memcached_DataObject $notice->profile_id = $profile_id; $blacklist = common_config('public', 'blacklist'); + $autosource = common_config('public', 'autosource'); # Blacklisted are non-false, but not 1, either - if ($blacklist && in_array($profile_id, $blacklist)) { + if (($blacklist && in_array($profile_id, $blacklist)) || + ($source && $autosource && in_array($source, $autosource))) { $notice->is_local = -1; } else { $notice->is_local = $is_local; @@ -147,39 +164,44 @@ class Notice extends Memcached_DataObject $notice->query('BEGIN'); - $notice->reply_to = $reply_to; - $notice->created = common_sql_now(); - $notice->content = common_shorten_links($content); - $notice->rendered = common_render_content($notice->content, $notice); - $notice->source = $source; - $notice->uri = $uri; - - $id = $notice->insert(); + $notice->reply_to = $reply_to; + $notice->created = common_sql_now(); + $notice->content = $final; + $notice->rendered = common_render_content($final, $notice); + $notice->source = $source; + $notice->uri = $uri; - if (!$id) { - common_log_db_error($notice, 'INSERT', __FILE__); - return _('Problem saving notice.'); - } + if (Event::handle('StartNoticeSave', array(&$notice))) { - # Update the URI after the notice is in the database - if (!$uri) { - $orig = clone($notice); - $notice->uri = common_notice_uri($notice); + $id = $notice->insert(); - if (!$notice->update($orig)) { - common_log_db_error($notice, 'UPDATE', __FILE__); + if (!$id) { + common_log_db_error($notice, 'INSERT', __FILE__); return _('Problem saving notice.'); } - } - # XXX: do we need to change this for remote users? + # Update the URI after the notice is in the database + if (!$uri) { + $orig = clone($notice); + $notice->uri = common_notice_uri($notice); + + if (!$notice->update($orig)) { + common_log_db_error($notice, 'UPDATE', __FILE__); + return _('Problem saving notice.'); + } + } + + # XXX: do we need to change this for remote users? + + $notice->saveReplies(); + $notice->saveTags(); + $notice->saveGroups(); - $notice->saveReplies(); - $notice->saveTags(); - $notice->saveGroups(); + $notice->addToInboxes(); + $notice->query('COMMIT'); - $notice->addToInboxes(); - $notice->query('COMMIT'); + Event::handle('EndNoticeSave', array($notice)); + } # Clear the cache for subscribed users, so they'll update at next request # XXX: someone clever could prepend instead of clearing the cache @@ -191,6 +213,36 @@ class Notice extends Memcached_DataObject return $notice; } + static function checkDupes($profile_id, $content) { + $profile = Profile::staticGet($profile_id); + if (!$profile) { + return false; + } + $notice = $profile->getNotices(0, NOTICE_CACHE_WINDOW); + if ($notice) { + $last = 0; + while ($notice->fetch()) { + if (time() - strtotime($notice->created) >= common_config('site', 'dupelimit')) { + return true; + } else if ($notice->content == $content) { + return false; + } + } + } + # If we get here, oldest item in cache window is not + # old enough for dupe limit; do direct check against DB + $notice = new Notice(); + $notice->profile_id = $profile_id; + $notice->content = $content; + if (common_config('db','type') == 'pgsql') + $notice->whereAdd('extract(epoch from now() - created) < ' . common_config('site', 'dupelimit')); + else + $notice->whereAdd('now() - created < ' . common_config('site', 'dupelimit')); + + $cnt = $notice->count(); + return ($cnt == 0); + } + static function checkEditThrottle($profile_id) { $profile = Profile::staticGet($profile_id); if (!$profile) { @@ -572,7 +624,7 @@ class Notice extends Memcached_DataObject $inbox = new Notice_inbox(); $UT = common_config('db','type')=='pgsql'?'"user"':'user'; $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created) ' . - "SELECT $UT.id, " . $this->id . ', "' . $this->created . '" ' . + "SELECT $UT.id, " . $this->id . ", '" . $this->created . "' " . "FROM $UT JOIN subscription ON $UT.id = subscription.subscriber " . 'WHERE subscription.subscribed = ' . $this->profile_id . ' ' . 'AND NOT EXISTS (SELECT user_id, notice_id ' . @@ -614,6 +666,15 @@ class Notice extends Memcached_DataObject continue; } + // we automatically add a tag for every group name, too + + $tag = Notice_tag::pkeyGet(array('tag' => common_canonical_tag($nickname), + 'notice_id' => $this->id)); + + if (is_null($tag)) { + $this->saveTag($nickname); + } + if ($profile->isMember($group)) { $gi = new Group_inbox(); @@ -633,7 +694,7 @@ class Notice extends Memcached_DataObject $inbox = new Notice_inbox(); $UT = common_config('db','type')=='pgsql'?'"user"':'user'; $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created, source) ' . - "SELECT $UT.id, " . $this->id . ', "' . $this->created . '", 2 ' . + "SELECT $UT.id, " . $this->id . ", '" . $this->created . "', 2 " . "FROM $UT JOIN group_member ON $UT.id = group_member.profile_id " . 'WHERE group_member.group_id = ' . $group->id . ' ' . 'AND NOT EXISTS (SELECT user_id, notice_id ' . @@ -725,10 +786,113 @@ class Notice extends Memcached_DataObject if (!$id) { common_log_db_error($reply, 'INSERT', __FILE__); return; + } else { + $replied[$recipient->id] = 1; } } } } } + + foreach (array_keys($replied) as $recipient) { + $user = User::staticGet('id', $recipient); + if ($user) { + mail_notify_attn($user, $this); + } + } + } + + function asAtomEntry($namespace=false, $source=false) + { + $profile = $this->getProfile(); + + $xs = new XMLStringer(true); + + if ($namespace) { + $attrs = array('xmlns' => 'http://www.w3.org/2005/Atom', + 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0'); + } else { + $attrs = array(); + } + + $xs->elementStart('entry', $attrs); + + if ($source) { + $xs->elementStart('source'); + $xs->element('title', null, $profile->nickname . " - " . common_config('site', 'name')); + $xs->element('link', array('href' => $profile->profileurl)); + $user = User::staticGet('id', $profile->id); + if (!empty($user)) { + $atom_feed = common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'user_timeline', + 'argument' => $profile->nickname.'.atom')); + $xs->element('link', array('rel' => 'self', + 'type' => 'application/atom+xml', + 'href' => $profile->profileurl)); + $xs->element('link', array('rel' => 'license', + 'href' => common_config('license', 'url'))); + } + + $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE)); + } + + $xs->elementStart('author'); + $xs->element('name', null, $profile->nickname); + $xs->element('uri', null, $profile->profileurl); + $xs->elementEnd('author'); + + if ($source) { + $xs->elementEnd('source'); + } + + $xs->element('title', null, $this->content); + $xs->element('summary', null, $this->content); + + $xs->element('link', array('rel' => 'alternate', + 'href' => $this->bestUrl())); + + $xs->element('id', null, $this->uri); + + $xs->element('published', null, common_date_w3dtf($this->created)); + $xs->element('updated', null, common_date_w3dtf($this->modified)); + + if ($this->reply_to) { + $reply_notice = Notice::staticGet('id', $this->reply_to); + if (!empty($reply_notice)) { + $xs->element('link', array('rel' => 'related', + 'href' => $reply_notice->bestUrl())); + $xs->element('thr:in-reply-to', + array('ref' => $reply_notice->uri, + 'href' => $reply_notice->bestUrl())); + } + } + + $xs->element('content', array('type' => 'html'), $this->rendered); + + $tag = new Notice_tag(); + $tag->notice_id = $this->id; + if ($tag->find()) { + while ($tag->fetch()) { + $xs->element('category', array('term' => $tag->tag)); + } + } + $tag->free(); + + $xs->elementEnd('entry'); + + return $xs->getString(); + } + + function bestUrl() + { + if (!empty($this->url)) { + return $this->url; + } else if (!empty($this->uri) && preg_match('/^https?:/', $this->uri)) { + return $this->uri; + } else { + return common_local_url('shownotice', + array('notice' => $this->id)); + } } } diff --git a/classes/Notice_tag.php b/classes/Notice_tag.php index 94f9296d6..f2247299a 100644 --- a/classes/Notice_tag.php +++ b/classes/Notice_tag.php @@ -19,7 +19,7 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Notice_tag extends Memcached_DataObject +class Notice_tag extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -35,18 +35,18 @@ class Notice_tag extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - + static function getStream($tag, $offset=0, $limit=20) { - $qry = + $qry = 'SELECT notice.* ' . 'FROM notice JOIN notice_tag ON notice.id = notice_tag.notice_id ' . - 'WHERE notice_tag.tag = "%s" '; + "WHERE notice_tag.tag = '%s' "; return Notice::getStream(sprintf($qry, $tag), 'notice_tag:notice_stream:' . common_keyize($tag), $offset, $limit); } - + function blowCache() { $cache = common_memcache(); @@ -54,4 +54,9 @@ class Notice_tag extends Memcached_DataObject $cache->delete(common_cache_key('notice_tag:notice_stream:' . $this->tag)); } } + + function &pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Notice_tag', $kv); + } } diff --git a/classes/Profile_tag.php b/classes/Profile_tag.php index cb60cbaec..0a1ad9cd6 100644 --- a/classes/Profile_tag.php +++ b/classes/Profile_tag.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Profile_tag extends Memcached_DataObject +class Profile_tag extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -23,45 +23,46 @@ class Profile_tag extends Memcached_DataObject ###END_AUTOCODE static function getTags($tagger, $tagged) { - + $tags = array(); # XXX: store this in memcached - + $profile_tag = new Profile_tag(); $profile_tag->tagger = $tagger; $profile_tag->tagged = $tagged; - + $profile_tag->find(); - + while ($profile_tag->fetch()) { $tags[] = $profile_tag->tag; } - + $profile_tag->free(); - + return $tags; } - + static function setTags($tagger, $tagged, $newtags) { - + + $newtags = array_unique($newtags); $oldtags = Profile_tag::getTags($tagger, $tagged); - + # Delete stuff that's old that not in new - + $to_delete = array_diff($oldtags, $newtags); - + # Insert stuff that's in new and not in old - + $to_insert = array_diff($newtags, $oldtags); - + $profile_tag = new Profile_tag(); - + $profile_tag->tagger = $tagger; $profile_tag->tagged = $tagged; - + $profile_tag->query('BEGIN'); - + foreach ($to_delete as $deltag) { $profile_tag->tag = $deltag; $result = $profile_tag->delete(); @@ -70,7 +71,7 @@ class Profile_tag extends Memcached_DataObject return false; } } - + foreach ($to_insert as $instag) { $profile_tag->tag = $instag; $result = $profile_tag->insert(); @@ -79,12 +80,12 @@ class Profile_tag extends Memcached_DataObject return false; } } - + $profile_tag->query('COMMIT'); - + return true; } - + # Return profiles with a given tag static function getTagged($tagger, $tag) { $profile = new Profile(); diff --git a/classes/User.php b/classes/User.php index a6a1b11b9..3b9b5cd83 100644 --- a/classes/User.php +++ b/classes/User.php @@ -1,7 +1,7 @@ <?php /* * Laconica - a distributed open-source microblogging tool - * Copyright (C) 2008, Controlez-Vous, Inc. + * Copyright (C) 2008, 2009, Control Yourself, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -17,11 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('LACONICA')) { exit(1); } +if (!defined('LACONICA')) { + exit(1); +} /** * Table Definition for user */ + require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; require_once 'Validate.php'; @@ -40,6 +43,7 @@ class User extends Memcached_DataObject public $emailnotifyfav; // tinyint(1) default_1 public $emailnotifynudge; // tinyint(1) default_1 public $emailnotifymsg; // tinyint(1) default_1 + public $emailnotifyattn; // tinyint(1) default_1 public $emailmicroid; // tinyint(1) default_1 public $language; // varchar(50) public $timezone; // varchar(50) @@ -62,8 +66,10 @@ class User extends Memcached_DataObject public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('User',$k,$v); } + function staticGet($k,$v=NULL) + { + return Memcached_DataObject::staticGet('User',$k,$v); + } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -76,13 +82,13 @@ class User extends Memcached_DataObject function isSubscribed($other) { assert(!is_null($other)); - # XXX: cache results of this query + // XXX: cache results of this query $sub = Subscription::pkeyGet(array('subscriber' => $this->id, 'subscribed' => $other->id)); return (is_null($sub)) ? false : true; } - # 'update' won't write key columns, so we have to do it ourselves. + // 'update' won't write key columns, so we have to do it ourselves. function updateKeys(&$orig) { @@ -93,7 +99,7 @@ class User extends Memcached_DataObject } } if (count($parts) == 0) { - # No changes + // No changes return true; } $toupdate = implode(', ', $parts); @@ -114,11 +120,12 @@ class User extends Memcached_DataObject function allowed_nickname($nickname) { - # XXX: should already be validated for size, content, etc. + // XXX: should already be validated for size, content, etc. static $blacklist = array('rss', 'xrds', 'doc', 'main', 'settings', 'notice', 'user', 'search', 'avatar', 'tag', 'tags', - 'api', 'message', 'group', 'groups'); + 'api', 'message', 'group', 'groups', + 'local'); $merged = array_merge($blacklist, common_config('nickname', 'blacklist')); return !in_array($nickname, $merged); } @@ -143,7 +150,7 @@ class User extends Memcached_DataObject $sub->subscriber = $this->id; $sub->subscribed = $other->id; - $sub->created = common_sql_now(); # current time + $sub->created = common_sql_now(); // current time if (!$sub->insert()) { return false; @@ -169,7 +176,7 @@ class User extends Memcached_DataObject static function register($fields) { - # MAGICALLY put fields into current scope + // MAGICALLY put fields into current scope extract($fields); @@ -180,16 +187,16 @@ class User extends Memcached_DataObject $profile->nickname = $nickname; $profile->profileurl = common_profile_url($nickname); - if ($fullname) { + if (!empty($fullname)) { $profile->fullname = $fullname; } - if ($homepage) { + if (!empty($homepage)) { $profile->homepage = $homepage; } - if ($bio) { + if (!empty($bio)) { $profile->bio = $bio; } - if ($location) { + if (!empty($location)) { $profile->location = $location; } @@ -197,7 +204,7 @@ class User extends Memcached_DataObject $id = $profile->insert(); - if (!$id) { + if (empty($id)) { common_log_db_error($profile, 'INSERT', __FILE__); return false; } @@ -207,13 +214,13 @@ class User extends Memcached_DataObject $user->id = $id; $user->nickname = $nickname; - if ($password) { # may not have a password for OpenID users + if (!empty($password)) { // may not have a password for OpenID users $user->password = common_munge_password($password, $id); } - # Users who respond to invite email have proven their ownership of that address + // Users who respond to invite email have proven their ownership of that address - if ($code) { + if (!empty($code)) { $invite = Invitation::staticGet($code); if ($invite && $invite->address && $invite->address_type == 'email' && $invite->address == $email) { $user->email = $invite->address; @@ -236,7 +243,7 @@ class User extends Memcached_DataObject return false; } - # Everyone is subscribed to themself + // Everyone is subscribed to themself $subscription = new Subscription(); $subscription->subscriber = $user->id; @@ -250,7 +257,7 @@ class User extends Memcached_DataObject return false; } - if ($email && !$user->email) { + if (!empty($email) && !$user->email) { $confirm = new Confirm_address(); $confirm->code = common_confirmation_code(128); @@ -265,20 +272,62 @@ class User extends Memcached_DataObject } } - if ($code && $user->email) { + if (!empty($code) && $user->email) { $user->emailChanged(); } + // Default system subscription + + $defnick = common_config('newuser', 'default'); + + if (!empty($defnick)) { + $defuser = User::staticGet('nickname', $defnick); + if (empty($defuser)) { + common_log(LOG_WARNING, sprintf("Default user %s does not exist.", $defnick), + __FILE__); + } else { + $defsub = new Subscription(); + $defsub->subscriber = $user->id; + $defsub->subscribed = $defuser->id; + $defsub->created = $user->created; + + $result = $defsub->insert(); + + if (!$result) { + common_log_db_error($defsub, 'INSERT', __FILE__); + return false; + } + } + } + $profile->query('COMMIT'); if ($email && !$user->email) { mail_confirm_address($user, $confirm->code, $profile->nickname, $email); } + // Welcome message + + $welcome = common_config('newuser', 'welcome'); + + if (!empty($welcome)) { + $welcomeuser = User::staticGet('nickname', $welcome); + if (empty($welcomeuser)) { + common_log(LOG_WARNING, sprintf("Welcome user %s does not exist.", $defnick), + __FILE__); + } else { + $notice = Notice::saveNew($welcomeuser->id, + sprintf(_('Welcome to %1$s, @%2$s!'), + common_config('site', 'name'), + $user->nickname), + 'system'); + } + } + return $user; } - # Things we do when the email changes + // Things we do when the email changes function emailChanged() { @@ -299,46 +348,46 @@ class User extends Memcached_DataObject { $cache = common_memcache(); - # XXX: Kind of a hack. + // XXX: Kind of a hack. if ($cache) { - # This is the stream of favorite notices, in rev chron - # order. This forces it into cache. + // This is the stream of favorite notices, in rev chron + // order. This forces it into cache. $faves = $this->favoriteNotices(0, NOTICE_CACHE_WINDOW); $cnt = 0; while ($faves->fetch()) { if ($faves->id < $notice->id) { - # If we passed it, it's not a fave + // If we passed it, it's not a fave return false; } else if ($faves->id == $notice->id) { - # If it matches a cached notice, then it's a fave + // If it matches a cached notice, then it's a fave return true; } $cnt++; } - # If we're not past the end of the cache window, - # then the cache has all available faves, so this one - # is not a fave. + // If we're not past the end of the cache window, + // then the cache has all available faves, so this one + // is not a fave. if ($cnt < NOTICE_CACHE_WINDOW) { return false; } - # Otherwise, cache doesn't have all faves; - # fall through to the default + // Otherwise, cache doesn't have all faves; + // fall through to the default } $fave = Fave::pkeyGet(array('user_id' => $this->id, 'notice_id' => $notice->id)); return ((is_null($fave)) ? false : true); } + function mutuallySubscribed($other) { return $this->isSubscribed($other) && $other->isSubscribed($this); } - function mutuallySubscribedUsers() - { - - # 3-way join; probably should get cached - $UT = common_config('db','type')=='pgsql'?'"user"':'user'; + function mutuallySubscribedUsers() + { + // 3-way join; probably should get cached + $UT = common_config('db','type')=='pgsql'?'"user"':'user'; $qry = "SELECT $UT.* " . "FROM subscription sub1 JOIN $UT ON sub1.subscribed = $UT.id " . "JOIN subscription sub2 ON $UT.id = sub2.subscriber " . @@ -361,8 +410,8 @@ class User extends Memcached_DataObject $offset, $limit, $since_id, $before_id, null, $since); } - function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) - { + function getNotices($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) + { $profile = $this->getProfile(); if (!$profile) { return null; @@ -371,8 +420,8 @@ class User extends Memcached_DataObject } } - function favoriteNotices($offset=0, $limit=NOTICES_PER_PAGE) - { + function favoriteNotices($offset=0, $limit=NOTICES_PER_PAGE) + { $qry = 'SELECT notice.* ' . 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . @@ -382,12 +431,12 @@ class User extends Memcached_DataObject $offset, $limit); } - function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) - { + function noticesWithFriends($offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $before_id=0, $since=null) + { $enabled = common_config('inboxes', 'enabled'); - # Complicated code, depending on whether we support inboxes yet - # XXX: make this go away when inboxes become mandatory + // Complicated code, depending on whether we support inboxes yet + // XXX: make this go away when inboxes become mandatory if ($enabled === false || ($enabled == 'transitional' && $this->inboxed == 0)) { @@ -397,13 +446,13 @@ class User extends Memcached_DataObject 'WHERE subscription.subscriber = %d '; $order = null; } else if ($enabled === true || - ($enabled == 'transitional' && $this->inboxed == 1)) { + ($enabled == 'transitional' && $this->inboxed == 1)) { $qry = 'SELECT notice.* ' . 'FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id ' . 'WHERE notice_inbox.user_id = %d '; - # NOTE: we override ORDER + // NOTE: we override ORDER $order = null; } return Notice::getStream(sprintf($qry, $this->id), @@ -412,35 +461,34 @@ class User extends Memcached_DataObject $order, $since); } - function blowFavesCache() - { + function blowFavesCache() + { $cache = common_memcache(); if ($cache) { - # Faves don't happen chronologically, so we need to blow - # ;last cache, too + // Faves don't happen chronologically, so we need to blow + // ;last cache, too $cache->delete(common_cache_key('user:faves:'.$this->id)); $cache->delete(common_cache_key('user:faves:'.$this->id).';last'); } } - function getSelfTags() - { + function getSelfTags() + { return Profile_tag::getTags($this->id, $this->id); } - function setSelfTags($newtags) - { + function setSelfTags($newtags) + { return Profile_tag::setTags($this->id, $this->id, $newtags); } function block($other) { - - # Add a new block record + // Add a new block record $block = new Profile_block(); - # Begin a transaction + // Begin a transaction $block->query('BEGIN'); @@ -454,7 +502,7 @@ class User extends Memcached_DataObject return false; } - # Cancel their subscription, if it exists + // Cancel their subscription, if it exists $sub = Subscription::pkeyGet(array('subscriber' => $other->id, 'subscribed' => $this->id)); @@ -474,8 +522,7 @@ class User extends Memcached_DataObject function unblock($other) { - - # Get the block record + // Get the block record $block = Profile_block::get($this->id, $other->id); @@ -586,7 +633,7 @@ class User extends Memcached_DataObject 'JOIN profile_tag ON (profile_tag.tagged = subscription.subscriber ' . 'AND profile_tag.tagger = subscription.subscribed) ' . 'WHERE subscription.subscribed = %d ' . - 'AND profile_tag.tag = "%s" ' . + "AND profile_tag.tag = '%s' " . 'AND subscription.subscribed != subscription.subscriber ' . 'ORDER BY subscription.created DESC '; @@ -614,7 +661,7 @@ class User extends Memcached_DataObject 'JOIN profile_tag on (profile_tag.tagged = subscription.subscribed ' . 'AND profile_tag.tagger = subscription.subscriber) ' . 'WHERE subscription.subscriber = %d ' . - 'AND profile_tag.tag = "%s" ' . + "AND profile_tag.tag = '%s' " . 'AND subscription.subscribed != subscription.subscriber ' . 'ORDER BY subscription.created DESC '; diff --git a/classes/laconica.ini b/classes/laconica.ini index 255122a97..529454d99 100755 --- a/classes/laconica.ini +++ b/classes/laconica.ini @@ -145,7 +145,7 @@ id = N [nonce] consumer_key = 130 -tok = 130 +tok = 2 nonce = 130 ts = 142 created = 142 @@ -153,8 +153,8 @@ modified = 384 [nonce__keys] consumer_key = K -tok = K nonce = K +ts = K [notice] id = 129 @@ -292,7 +292,8 @@ created = 142 modified = 384 [sms_carrier__keys] -id = N +id = K +name = U [subscription] subscriber = 129 @@ -331,6 +332,7 @@ emailnotifysub = 17 emailnotifyfav = 17 emailnotifynudge = 17 emailnotifymsg = 17 +emailnotifyattn = 17 emailmicroid = 17 language = 2 timezone = 2 diff --git a/config.php.sample b/config.php.sample index a2c5801f4..e70d9ab46 100644 --- a/config.php.sample +++ b/config.php.sample @@ -18,6 +18,8 @@ $config['site']['server'] = 'localhost'; $config['site']['path'] = 'laconica'; #$config['site']['fancy'] = false; #$config['site']['theme'] = 'default'; +#To enable the built-in mobile style sheet, defaults to false. +#$config['site']['mobile'] = true; #For contact email, defaults to $_SERVER["SERVER_ADMIN"] #$config['site']['email'] = 'admin@example.net'; #Brought by... @@ -28,10 +30,18 @@ $config['site']['path'] = 'laconica'; #$config['site']['closed'] = true; #Only allow registration for people invited by another user #$config['site']['inviteonly'] = true; +#Make the site invisible to non-logged-in users +#$config['site']['private'] = true; # If you want logging sent to a file instead of syslog #$config['site']['logfile'] = '/tmp/laconica.log'; +# Enables extra log information, for example full details of PEAR DB errors +#$config['site']['logdebug'] = true; + +#To set your own logo, overriding the one in the theme +#$config['site']['logo'] = '/mylogo.png'; + # This is a PEAR DB DSN, see http://pear.php.net/manual/en/package.database.db.intro-dsn.php # Set it to match your actual database @@ -107,6 +117,14 @@ $config['sphinx']['port'] = 3312; #$config['public']['blacklist'][] = 123; #$config['public']['blacklist'][] = 2307; +#Mark certain notice sources as automatic and thus not +#appropriate for public feed +#$config['public]['autosource'][] = 'twitterfeed'; +#$config['public]['autosource'][] = 'rssdent'; +#$config['public]['autosource'][] = 'Ping.Fm'; +#$config['public]['autosource'][] = 'HelloTxt'; +#$config['public]['autosource'][] = 'Updating.Me'; + #Do notice broadcasts offline #If you use this, you must run the six offline daemons in the #background. See the README for details. @@ -139,10 +157,36 @@ $config['sphinx']['port'] = 3312; #$config['profile']['banned'][] = 'hacker'; #$config['profile']['banned'][] = 12345; -# config section for the built-in Facebook application +# Config section for the built-in Facebook application #$config['facebook']['apikey'] = 'APIKEY'; #$config['facebook']['secret'] = 'SECRET'; # Add Google Analytics # require_once('plugins/GoogleAnalyticsPlugin.php'); # $ga = new GoogleAnalyticsPlugin('your secret code'); + +# Use Templating (template: /tpl/index.php) +# require_once('plugins/TemplatePlugin.php'); +# $tpl = new TemplatePlugin(); + +#Don't allow saying the same thing more than once per hour +#$config['site']['dupelimit'] = 3600; +#Don't enforce the dupe limit +#$config['site']['dupelimit'] = -1; + +#Base string for minting Tag URIs in Atom feeds. Defaults to +#"yourserver,2009". This needs to be configured properly for your Atom +#feeds to validate. See: http://www.faqs.org/rfcs/rfc4151.html and +#http://taguri.org/ Examples: +#$config['integration']['taguri'] = 'example.net,2008'; +#$config['integration']['taguri'] = 'admin@example.net,2009-03-09' + +#Don't use SSL +#$config['site']['ssl'] = 'never'; +#Use SSL only for sensitive pages (like login, password change) +#$config['site']['ssl'] = 'sometimes'; +#Use SSL for all pages +#$config['site']['ssl'] = 'always'; + +#Use a different hostname for SSL-encrypted pages +#$config['site']['sslserver'] = 'secure.example.org'; diff --git a/db/carrier.sql b/db/carrier.sql deleted file mode 100644 index 932f7c8bb..000000000 --- a/db/carrier.sql +++ /dev/null @@ -1,61 +0,0 @@ -insert into sms_carrier - (name, email_pattern, created) -values - ('3 River Wireless', '%s@sms.3rivers.net', now()), - ('7-11 Speakout', '%s@cingularme.com', now()), - ('Airtel (Karnataka, India)', '%s@airtelkk.com', now()), - ('Alaska Communications Systems', '%s@msg.acsalaska.com', now()), - ('Alltel Wireless', '%s@message.alltel.com', now()), - ('AT&T Wireless', '%s@txt.att.net', now()), - ('Bell Mobility (Canada)', '%s@txt.bell.ca', now()), - ('Boost Mobile', '%s@myboostmobile.com', now()), - ('Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), - ('Cincinnati Bell Wireless', '%s@gocbw.com', now()), - ('Cingular (Postpaid)', '%s@cingularme.com', now()), - ('Centennial Wireless', '%s@cwemail.com', now()), - ('Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), - ('Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), - ('Comcel', '%s@comcel.com.co', now()), - ('Cricket', '%s@sms.mycricket.com', now()), - ('CTI', '%s@sms.ctimovil.com.ar', now()), - ('Emtel (Mauritius)', '%s@emtelworld.net', now()), - ('Fido (Canada)', '%s@fido.ca', now()), - ('General Communications Inc.', '%s@msg.gci.net', now()), - ('Globalstar', '%s@msg.globalstarusa.com', now()), - ('Helio', '%s@myhelio.com', now()), - ('Illinois Valley Cellular', '%s@ivctext.com', now()), - ('i wireless', '%s.iws@iwspcs.net', now()), - ('Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), - ('Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), - ('MetroPCS', '%s@mymetropcs.com', now()), - ('Movicom', '%s@movimensaje.com.ar', now()), - ('Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), - ('Movistar (Colombia)', '%s@movistar.com.co', now()), - ('MTN (South Africa)', '%s@sms.co.za', now()), - ('MTS (Canada)', '%s@text.mtsmobility.com', now()), - ('Nextel (Argentina)', '%s@nextel.net.ar', now()), - ('Orange (Poland)', '%s@orange.pl', now()), - ('Orange (UK)', '%s@orange.net', now()), - ('Personal (Argentina)', '%s@personal-net.com.ar', now()), - ('Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), - ('President''s Choice (Canada)', '%s@txt.bell.ca', now()), - ('Qwest', '%s@qwestmp.com', now()), - ('Rogers (Canada)', '%s@pcs.rogers.com', now()), - ('Sasktel (Canada)', '%s@sms.sasktel.com', now()), - ('Setar Mobile email (Aruba)', '%s@mas.aw', now()), - ('Solo Mobile', '%s@txt.bell.ca', now()), - ('Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), - ('Sprint (Nextel)', '%s@page.nextel.com', now()), - ('Suncom', '%s@tms.suncom.com', now()), - ('T-Mobile', '%s@tmomail.net', now()), - ('T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), - ('Telus Mobility (Canada)', '%s@msg.telus.com', now()), - ('Thumb Cellular', '%s@sms.thumbcellular.com', now()), - ('Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), - ('Unicel', '%s@utext.com', now()), - ('US Cellular', '%s@email.uscc.net', now()), - ('Verizon', '%s@vtext.com', now()), - ('Virgin Mobile (Canada)', '%s@vmobile.ca', now()), - ('Virgin Mobile (USA)', '%s@vmobl.com', now()), - ('Vodafone NZ (txt ''R'' to 901 to enable first)', '%s@sms.vodafone.net.nz', now()), - ('YCC', '%s@sms.ycc.ru', now()); diff --git a/db/foreign_services.sql b/db/foreign_services.sql index 512d42513..557ede024 100644 --- a/db/foreign_services.sql +++ b/db/foreign_services.sql @@ -1,8 +1,5 @@ insert into foreign_service (id, name, description, created) values - ('1','Twitter', 'Twitter Micro-blogging service', now()); -insert into foreign_service - (id, name, description, created) -values - ('2','Facebook', 'Facebook', now()); + ('1','Twitter', 'Twitter Micro-blogging service', now()), + ('2','Facebook', 'Facebook', now()); diff --git a/db/laconica.sql b/db/laconica.sql index 16f482134..a790a3fd2 100644 --- a/db/laconica.sql +++ b/db/laconica.sql @@ -13,7 +13,7 @@ create table profile ( index profile_nickname_idx (nickname), FULLTEXT(nickname, fullname, location, bio, homepage) -) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin; +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; create table avatar ( profile_id integer not null comment 'foreign key to profile table' references profile (id), @@ -31,7 +31,7 @@ create table avatar ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table sms_carrier ( - id integer auto_increment primary key comment 'primary key for SMS carrier', + id integer primary key comment 'primary key for SMS carrier', name varchar(64) unique key comment 'name of the carrier', email_pattern varchar(255) not null comment 'sprintf pattern for making an email address from a phone number', created datetime not null comment 'date this record was created', @@ -50,6 +50,7 @@ create table user ( emailnotifyfav tinyint default 1 comment 'Notify by email of favorites', emailnotifynudge tinyint default 1 comment 'Notify by email of nudges', emailnotifymsg tinyint default 1 comment 'Notify by email of direct messages', + emailnotifyattn tinyint default 1 comment 'Notify by email of @-replies', emailmicroid tinyint default 1 comment 'whether to publish email microid', language varchar(50) comment 'preferred language', timezone varchar(50) comment 'timezone', @@ -72,7 +73,7 @@ create table user ( modified timestamp comment 'date this record was modified', index user_smsemail_idx (smsemail) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; /* remote people */ @@ -102,7 +103,6 @@ create table subscription ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table notice ( - id integer auto_increment primary key comment 'unique identifier', profile_id integer not null comment 'who made the update' references profile (id), uri varchar(255) unique key comment 'universally unique identifier, usually a tag URI', @@ -118,7 +118,7 @@ create table notice ( index notice_profile_id_idx (profile_id), index notice_created_idx (created), FULLTEXT(content) -) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin; +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; create table notice_source ( code varchar(32) primary key not null comment 'source code', @@ -129,7 +129,6 @@ create table notice_source ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table reply ( - notice_id integer not null comment 'notice that is the reply' references notice (id), profile_id integer not null comment 'profile replied to' references profile (id), modified timestamp not null comment 'date this record was modified', @@ -143,7 +142,6 @@ create table reply ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table fave ( - notice_id integer not null comment 'notice that is the favorite' references notice (id), user_id integer not null comment 'user who likes this notice' references user (id), modified timestamp not null comment 'date this record was modified', @@ -170,7 +168,7 @@ create table token ( tok char(32) not null comment 'identifying value', secret char(32) not null comment 'secret value', type tinyint not null default 0 comment 'request or access', - state tinyint default 0 comment 'for requests; 0 = initial, 1 = authorized, 2 = used', + state tinyint default 0 comment 'for requests, 0 = initial, 1 = authorized, 2 = used', created datetime not null comment 'date this record was created', modified timestamp comment 'date this record was modified', @@ -180,15 +178,14 @@ create table token ( create table nonce ( consumer_key varchar(255) not null comment 'unique identifier, root URL', - tok char(32) not null comment 'identifying value', + tok char(32) null comment 'buggy old value, ignored', nonce char(32) not null comment 'nonce', ts datetime not null comment 'timestamp sent', created datetime not null comment 'date this record was created', modified timestamp comment 'date this record was modified', - constraint primary key (consumer_key, tok, nonce), - constraint foreign key (consumer_key, tok) references token (consumer_key, tok) + constraint primary key (consumer_key, ts, nonce) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; /* One-to-many relationship of user to openid_url */ @@ -321,7 +318,6 @@ create table invitation ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table message ( - id integer auto_increment primary key comment 'unique identifier', uri varchar(255) unique key comment 'universally unique identifier', from_profile integer not null comment 'who the message is from' references profile (id), @@ -336,14 +332,13 @@ create table message ( index message_from_idx (from_profile), index message_to_idx (to_profile), index message_created_idx (created) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; create table notice_inbox ( - user_id integer not null comment 'user receiving the message' references user (id), notice_id integer not null comment 'notice received' references notice (id), created datetime not null comment 'date the notice was created', - source tinyint default 1 comment 'reason it is in the inbox; 1=subscription', + source tinyint default 1 comment 'reason it is in the inbox, 1=subscription', constraint primary key (user_id, notice_id), index notice_inbox_notice_id_idx (notice_id) @@ -362,7 +357,6 @@ create table profile_tag ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table profile_block ( - blocker integer not null comment 'user making the block' references user (id), blocked integer not null comment 'profile that is blocked' references profile (id), modified timestamp comment 'date of blocking', @@ -372,7 +366,6 @@ create table profile_block ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table user_group ( - id integer auto_increment primary key comment 'unique identifier', nickname varchar(64) unique key comment 'nickname for addressing', @@ -391,10 +384,9 @@ create table user_group ( index user_group_nickname_idx (nickname) -) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; create table group_member ( - group_id integer not null comment 'foreign key to user_group' references user_group (id), profile_id integer not null comment 'foreign key to profile table' references profile (id), is_admin boolean default false comment 'is this user an admin?', @@ -409,7 +401,6 @@ create table group_member ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table related_group ( - group_id integer not null comment 'foreign key to user_group' references user_group (id), related_group_id integer not null comment 'foreign key to user_group' references user_group (id), diff --git a/db/laconica_pg.sql b/db/laconica_pg.sql index 9882d091a..f879d7936 100644 --- a/db/laconica_pg.sql +++ b/db/laconica_pg.sql @@ -1,14 +1,15 @@ /* local and remote users have profiles */
+create sequence profile_seq;
create table profile (
- id serial primary key /* comment 'unique identifier' */,
+ id bigint default nextval('profile_seq') primary key /* comment 'unique identifier' */,
nickname varchar(64) not null /* comment 'nickname or username' */,
fullname varchar(255) /* comment 'display name' */,
profileurl varchar(255) /* comment 'URL, cached so we dont regenerate' */,
homepage varchar(255) /* comment 'identifying URL' */,
bio varchar(140) /* comment 'descriptive biography' */,
location varchar(255) /* comment 'physical location' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
textsearch tsvector
@@ -23,18 +24,19 @@ create table avatar ( mediatype varchar(32) not null /* comment 'file type' */,
filename varchar(255) null /* comment 'local filename, if local' */,
url varchar(255) unique /* comment 'avatar location' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key(profile_id, width, height)
);
create index avatar_profile_id_idx on avatar using btree(profile_id);
+create sequence sms_carrier_seq;
create table sms_carrier (
- id serial primary key /* comment 'primary key for SMS carrier' */,
+ id bigint default nextval('sms_carrier_seq') primary key /* comment 'primary key for SMS carrier' */,
name varchar(64) unique /* comment 'name of the carrier' */,
email_pattern varchar(255) not null /* comment 'sprintf pattern for making an email address from a phone number' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified ' */
);
@@ -50,6 +52,7 @@ create table "user" ( emailnotifyfav integer default 1 /* comment 'Notify by email of favorites' */,
emailnotifynudge integer default 1 /* comment 'Notify by email of nudges' */,
emailnotifymsg integer default 1 /* comment 'Notify by email of direct messages' */,
+ emailnotifyattn integer default 1 /* command 'Notify by email of @-replies' */,
emailmicroid integer default 1 /* comment 'whether to publish email microid' */,
language varchar(50) /* comment 'preferred language' */,
timezone varchar(50) /* comment 'timezone' */,
@@ -68,7 +71,7 @@ create table "user" ( autosubscribe integer default 0 /* comment 'automatically subscribe to users who subscribe to us' */,
urlshorteningservice varchar(50) default 'ur1.ca' /* comment 'service to use for auto-shortening URLs' */,
inboxed integer default 0 /* comment 'has an inbox been created for this user?' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -81,7 +84,7 @@ create table remote_profile ( uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */,
postnoticeurl varchar(255) /* comment 'URL we use for posting notices' */,
updateprofileurl varchar(255) /* comment 'URL we use for updates to this profile' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -92,7 +95,7 @@ create table subscription ( sms integer default 1 /* comment 'deliver sms messages' */,
token varchar(255) /* comment 'authorization token' */,
secret varchar(255) /* comment 'token secret' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (subscriber, subscribed)
@@ -100,15 +103,16 @@ create table subscription ( create index subscription_subscriber_idx on subscription using btree(subscriber);
create index subscription_subscribed_idx on subscription using btree(subscribed);
+create sequence notice_seq;
create table notice (
- id serial primary key /* comment 'unique identifier' */,
+ id bigint default nextval('notice_seq') primary key /* comment 'unique identifier' */,
profile_id integer not null /* comment 'who made the update' */ references profile (id) ,
uri varchar(255) unique /* comment 'universally unique identifier, usually a tag URI' */,
content varchar(140) /* comment 'update content' */,
rendered text /* comment 'HTML version of the content' */,
url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
reply_to integer /* comment 'notice replied to (usually a guess)' */ references notice (id) ,
is_local integer default 0 /* comment 'notice was generated by a user' */,
@@ -123,7 +127,7 @@ create table notice_source ( code varchar(32) primary key not null /* comment 'source code' */,
name varchar(255) not null /* comment 'name of the source' */,
url varchar(255) not null /* comment 'url to link to' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -131,7 +135,7 @@ create table reply ( notice_id integer not null /* comment 'notice that is the reply' */ references notice (id) ,
profile_id integer not null /* comment 'profile replied to' */ references profile (id) ,
- modified timestamp not null default 'now' /* comment 'date this record was modified' */,
+ modified timestamp /* comment 'date this record was modified' */,
replied_id integer /* comment 'notice replied to (not used, see notice.reply_to)' */,
primary key (notice_id, profile_id)
@@ -145,7 +149,7 @@ create table fave ( notice_id integer not null /* comment 'notice that is the favorite' */ references notice (id),
user_id integer not null /* comment 'user who likes this notice' */ references "user" (id) ,
- modified timestamp not null /* comment 'date this record was modified' */,
+ modified timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was modified' */,
primary key (notice_id, user_id)
);
@@ -159,7 +163,7 @@ create table consumer ( consumer_key varchar(255) primary key /* comment 'unique identifier, root URL' */,
seed char(32) not null /* comment 'seed for new tokens by this consumer' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -170,7 +174,7 @@ create table token ( type integer not null default 0 /* comment 'request or access' */,
state integer default 0 /* comment 'for requests; 0 = initial, 1 = authorized, 2 = used' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (consumer_key, tok)
@@ -179,14 +183,13 @@ create table token ( create table nonce (
consumer_key varchar(255) not null /* comment 'unique identifier, root URL' */,
tok char(32) not null /* comment 'identifying value' */,
- nonce char(32) not null /* comment 'nonce' */,
- ts timestamp not null /* comment 'timestamp sent' */,
+ nonce char(32) null /* comment 'buggy old value, ignored */,
+ ts integer not null /* comment 'timestamp sent' values are epoch, and only used internally */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
- primary key (consumer_key, tok, nonce),
- foreign key (consumer_key, tok) references token (consumer_key, tok)
+ primary key (consumer_key, ts, nonce)
);
/* One-to-many relationship of user to openid_url */
@@ -195,7 +198,7 @@ create table user_openid ( canonical varchar(255) primary key /* comment 'Canonical true URL' */,
display varchar(255) not null unique /* comment 'URL for viewing, may be different from canonical' */,
user_id integer not null /* comment 'user owning this URL' */ references "user" (id) ,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -241,7 +244,7 @@ create table queue_item ( notice_id integer not null /* comment 'notice queued' */ references notice (id) ,
transport varchar(8) not null /* comment 'queue for what? "email", "jabber", "sms", "irc", ...' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
claimed timestamp /* comment 'date this item was claimed' */,
primary key (notice_id, transport)
@@ -253,7 +256,7 @@ create index queue_item_created_idx on queue_item using btree(created); create table notice_tag (
tag varchar( 64 ) not null /* comment 'hash tag associated with this notice' */,
notice_id integer not null /* comment 'notice tagged' */ references notice (id) ,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
primary key (tag, notice_id)
);
@@ -265,7 +268,7 @@ create table foreign_service ( id int not null primary key /* comment 'numeric key for service' */,
name varchar(32) not null unique /* comment 'name of the service' */,
description varchar(255) /* comment 'description' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -274,7 +277,7 @@ create table foreign_user ( service int not null /* comment 'foreign key to service' */ references foreign_service(id) ,
uri varchar(255) not null unique /* comment 'identifying URI' */,
nickname varchar(255) /* comment 'nickname on foreign service' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (id, service)
@@ -288,8 +291,8 @@ create table foreign_link ( noticesync int not null default 1 /* comment 'notice synchronisation, bit 1 = sync outgoing, bit 2 = sync incoming, bit 3 = filter local replies' */,
friendsync int not null default 2 /* comment 'friend synchronisation, bit 1 = sync outgoing, bit 2 = sync incoming */,
profilesync int not null default 1 /* comment 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming' */,
- created timestamp not null /* comment 'date this record was created' */,
- modified timestamp not null /* comment 'date this record was modified' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
+ modified timestamp /* comment 'date this record was modified' */,
primary key (user_id,foreign_id,service)
);
@@ -299,7 +302,7 @@ create table foreign_subscription ( service int not null /* comment 'service where relationship happens' */ references foreign_service(id) ,
subscriber int not null /* comment 'subscriber on foreign service' */ ,
subscribed int not null /* comment 'subscribed user' */ ,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
primary key (service, subscriber, subscribed)
);
@@ -311,22 +314,23 @@ create table invitation ( user_id int not null /* comment 'who sent the invitation' */ references "user" (id),
address varchar(255) not null /* comment 'invitation sent to' */,
address_type varchar(8) not null /* comment 'address type ("email", "jabber", "sms") '*/,
- created timestamp not null /* comment 'date this record was created' */
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */
);
create index invitation_address_idx on invitation using btree(address,address_type);
create index invitation_user_id_idx on invitation using btree(user_id);
+create sequence message_seq;
create table message (
- id serial primary key /* comment 'unique identifier' */,
+ id bigint default nextval('message_seq') primary key /* comment 'unique identifier' */,
uri varchar(255) unique /* comment 'universally unique identifier' */,
from_profile integer not null /* comment 'who the message is from' */ references profile (id),
to_profile integer not null /* comment 'who the message is to' */ references profile (id),
content varchar(140) /* comment 'message content' */,
rendered text /* comment 'HTML version of the content' */,
url varchar(255) /* comment 'URL of any attachment (image, video, bookmark, whatever)' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */
@@ -339,7 +343,7 @@ create table notice_inbox ( user_id integer not null /* comment 'user receiving the message' */ references "user" (id),
notice_id integer not null /* comment 'notice received' */ references notice (id),
- created timestamp not null /* comment 'date the notice was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date the notice was created' */,
source integer default 1 /* comment 'reason it is in the inbox; 1=subscription' */,
primary key (user_id, notice_id)
@@ -367,9 +371,10 @@ create table profile_block ( );
+create sequence user_group_seq;
create table user_group (
- id serial primary key /* comment 'unique identifier' */,
+ id bigint default nextval('user_group_seq') primary key /* comment 'unique identifier' */,
nickname varchar(64) unique /* comment 'nickname for addressing' */,
fullname varchar(255) /* comment 'display name' */,
@@ -382,7 +387,7 @@ create table user_group ( stream_logo varchar(255) /* comment 'stream-sized logo' */,
mini_logo varchar(255) /* comment 'mini logo' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */
);
@@ -394,7 +399,7 @@ create table group_member ( profile_id integer not null /* comment 'foreign key to profile table' */ references profile (id),
is_admin integer default 0 /* comment 'is this user an admin?' */,
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
modified timestamp /* comment 'date this record was modified' */,
primary key (group_id, profile_id)
@@ -405,7 +410,7 @@ create table related_group ( group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id) ,
related_group_id integer not null /* comment 'foreign key to user_group' */ references user_group (id),
- created timestamp not null /* comment 'date this record was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date this record was created' */,
primary key (group_id, related_group_id)
@@ -414,7 +419,7 @@ create table related_group ( create table group_inbox (
group_id integer not null /* comment 'group receiving the message' references user_group (id) */,
notice_id integer not null /* comment 'notice received' references notice (id) */,
- created timestamp not null /* comment 'date the notice was created' */,
+ created timestamp not null default CURRENT_TIMESTAMP /* comment 'date the notice was created' */,
primary key (group_id, notice_id)
);
diff --git a/db/notice_source.sql b/db/notice_source.sql new file mode 100644 index 000000000..d5124e223 --- /dev/null +++ b/db/notice_source.sql @@ -0,0 +1,53 @@ +INSERT INTO notice_source + (code, name, url, created) +VALUES + ('adium', 'Adium', 'http://www.adiumx.com/', now()), + ('betwittered','BeTwittered','http://www.32hours.com/betwitteredinfo/', now()), + ('bti','bti','http://gregkh.github.com/bti/', now()), + ('cliqset', 'Cliqset', 'http://www.cliqset.com/', now()), + ('deskbar','Deskbar-Applet','http://www.gnome.org/projects/deskbar-applet/', now()), + ('Do','Gnome Do','http://do.davebsd.com/wiki/index.php?title=Microblog_Plugin', now()), + ('Facebook','Facebook','http://apps.facebook.com/identica/', now()), + ('Gwibber','Gwibber','http://launchpad.net/gwibber', now()), + ('HelloTxt','HelloTxt','http://hellotxt.com/', now()), + ('identicatools','Laconica Tools','http://bitbucketlabs.net/laconica-tools/', now()), + ('identichat','identichat','http://identichat.prosody.im/', now()), + ('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()), + ('identitwitch','IdentiTwitch','http://richfish.org/identitwitch/', now()), + ('LaTwit','LaTwit','http://latwit.mac65.com/', now()), + ('maisha', 'Maisha', 'http://maisha.grango.org/', now()), + ('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()), + ('Mobidentica', 'Mobidentica', 'http://www.substanceofcode.com/software/mobidentica/', now()), + ('moconica','Moconica','http://moconica.com/', now()), + ('nambu','Nambu','http://www.nambu.com/', now()), + ('peoplebrowsr', 'PeopleBrowsr', 'http://www.peoplebrowsr.com/', now()), + ('Pikchur','Pikchur','http://www.pikchur.com/', now()), + ('Ping.fm','Ping.fm','http://ping.fm/', now()), + ('pocketwit','PockeTwit','http://code.google.com/p/pocketwit/', now()), + ('posty','Posty','http://spreadingfunkyness.com/posty/', now()), + ('royalewithcheese','Royale With Cheese','http://p.hellyeah.org/', now()), + ('rssdent','rssdent','http://github.com/zcopley/rssdent/tree/master', now()), + ('rygh.no','rygh.no','http://rygh.no/', now()), + ('ryghsms','ryghsms','http://sms.rygh.no/', now()), + ('smob','SMOB','http://smob.sioc-project.org/', now()), + ('spaz','Spaz','http://funkatron.com/spaz', now()), + ('tarpipe','tarpipe','http://tarpipe.com/', now()), + ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()), + ('tr.im','tr.im','http://tr.im/', now()), + ('triklepost', 'Tricklepost', 'http://github.com/zcopley/tricklepost/tree/master', now()), + ('tweenky','Tweenky','http://beta.tweenky.com/', now()), + ('twhirl','Twhirl','http://www.twhirl.org/', now()), + ('twibble','twibble','http://www.twibble.de/', now()), + ('Twidge','Twidge','http://software.complete.org/twidge', now()), + ('twidge','Twidge','http://software.complete.org/twidge', now()), + ('twidroid','twidroid','http://www.twidroid.com/', now()), + ('twittelator','Twittelator','http://www.stone.com/iPhone/Twittelator/', now()), + ('twitterfeed','twitterfeed','http://twitterfeed.com/', now()), + ('twitterphoto','TwitterPhoto','http://richfish.org/twitterphoto/', now()), + ('twitterpm','Net::Twitter','http://search.cpan.org/dist/Net-Twitter/', now()), + ('twittertools','Twitter Tools','http://wordpress.org/extend/plugins/twitter-tools/', now()), + ('twitux','Twitux','http://live.gnome.org/DanielMorales/Twitux', now()), + ('twitvim','TwitVim','http://vim.sourceforge.net/scripts/script.php?script_id=2204', now()), + ('Updating.Me','Updating.Me','http://updating.me/', now()), + ('urfastr','urfastr','http://urfastr.net/', now()), + ('yatca','Yatca','http://www.yatca.com/', now()); diff --git a/db/sms_carrier.sql b/db/sms_carrier.sql new file mode 100644 index 000000000..6879f2089 --- /dev/null +++ b/db/sms_carrier.sql @@ -0,0 +1,63 @@ +INSERT INTO sms_carrier + (id, name, email_pattern, created) +VALUES + (100056, '3 River Wireless', '%s@sms.3rivers.net', now()), + (100057, '7-11 Speakout', '%s@cingularme.com', now()), + (100058, 'Airtel (Karnataka, India)', '%s@airtelkk.com', now()), + (100059, 'Alaska Communications Systems', '%s@msg.acsalaska.com', now()), + (100060, 'Alltel Wireless', '%s@message.alltel.com', now()), + (100061, 'AT&T Wireless', '%s@txt.att.net', now()), + (100062, 'Bell Mobility (Canada)', '%s@txt.bell.ca', now()), + (100063, 'Boost Mobile', '%s@myboostmobile.com', now()), + (100064, 'Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), + (100065, 'Cingular (Postpaid)', '%s@cingularme.com', now()), + (100066, 'Centennial Wireless', '%s@cwemail.com', now()), + (100067, 'Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), + (100068, 'Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), + (100069, 'Comcel', '%s@comcel.com.co', now()), + (100070, 'Cricket', '%s@sms.mycricket.com', now()), + (100071, 'CTI', '%s@sms.ctimovil.com.ar', now()), + (100072, 'Emtel (Mauritius)', '%s@emtelworld.net', now()), + (100073, 'Fido (Canada)', '%s@fido.ca', now()), + (100074, 'General Communications Inc.', '%s@msg.gci.net', now()), + (100075, 'Globalstar', '%s@msg.globalstarusa.com', now()), + (100076, 'Helio', '%s@myhelio.com', now()), + (100077, 'Illinois Valley Cellular', '%s@ivctext.com', now()), + (100078, 'i wireless', '%s.iws@iwspcs.net', now()), + (100079, 'Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), + (100080, 'Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), + (100081, 'MetroPCS', '%s@mymetropcs.com', now()), + (100082, 'Movicom', '%s@movimensaje.com.ar', now()), + (100083, 'Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), + (100084, 'Movistar (Colombia)', '%s@movistar.com.co', now()), + (100085, 'MTN (South Africa)', '%s@sms.co.za', now()), + (100086, 'MTS (Canada)', '%s@text.mtsmobility.com', now()), + (100087, 'Nextel (Argentina)', '%s@nextel.net.ar', now()), + (100088, 'Orange (Poland)', '%s@orange.pl', now()), + (100089, 'Personal (Argentina)', '%s@personal-net.com.ar', now()), + (100090, 'Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), + (100091, 'President\'s Choice (Canada)', '%s@txt.bell.ca', now()), + (100092, 'Qwest', '%s@qwestmp.com', now()), + (100093, 'Rogers (Canada)', '%s@pcs.rogers.com', now()), + (100094, 'Sasktel (Canada)', '%s@sms.sasktel.com', now()), + (100095, 'Setar Mobile email (Aruba)', '%s@mas.aw', now()), + (100096, 'Solo Mobile', '%s@txt.bell.ca', now()), + (100097, 'Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), + (100098, 'Sprint (Nextel)', '%s@page.nextel.com', now()), + (100099, 'Suncom', '%s@tms.suncom.com', now()), + (100100, 'T-Mobile', '%s@tmomail.net', now()), + (100101, 'T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), + (100102, 'Telus Mobility (Canada)', '%s@msg.telus.com', now()), + (100103, 'Thumb Cellular', '%s@sms.thumbcellular.com', now()), + (100104, 'Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), + (100105, 'Unicel', '%s@utext.com', now()), + (100106, 'US Cellular', '%s@email.uscc.net', now()), + (100107, 'Verizon', '%s@vtext.com', now()), + (100108, 'Virgin Mobile (Canada)', '%s@vmobile.ca', now()), + (100109, 'Virgin Mobile (USA)', '%s@vmobl.com', now()), + (100110, 'YCC', '%s@sms.ycc.ru', now()), + (100111, 'Orange (UK)', '%s@orange.net', now()), + (100112, 'Cincinnati Bell Wireless', '%s@gocbw.com', now()), + (100113, 'T-Mobile Germany', '%s@t-mobile-sms.de', now()), + (100114, 'Vodafone Germany', '%s@vodafone-sms.de', now()), + (100115, 'E-Plus', '%s@smsmail.eplus.de', now()); diff --git a/doc-src/badge b/doc-src/badge new file mode 100644 index 000000000..1c368eb69 --- /dev/null +++ b/doc-src/badge @@ -0,0 +1,65 @@ +Install the %%site.name%% badge on you blog or web site to show the latest updates +from you and your friends! + +<MTMarkdownOptions output='raw'> +<script type="text/javascript" src="http://identi.ca/js/identica-badge.js"> +{ + "user":"kentbrew", + "server":"identi.ca", + "headerText":" and friends" +} +</script> +</MTMarkdownOptions> + +Things to try +-------------- + +* Click an avatar and the badge will refresh with that user's timeline +* Click a nickname to open a user's profile in your browser +* Click a notice's timestamp to view the notice in your browser +* @-replies and #tags are live links + +## Installation instructions + +Copy and paste the following JavaScript into an HTML page where +you want the badge to show up. Substitute your own ID in the user +parameter. + +<pre> + <script type="text/javascript" src="http://identi.ca/js/identica-badge.js"> + { + "user":"kentbrew", + "server":"identi.ca", + "headerText":" and friends" + } + </script> + +</pre> + + + +Valid parameters for the badge: +------------------------------- + +* user : defaults to 7000 (@kentbrew) +* headerText : defaults to empty +* height : defaults to 350px +* width : defaults to 300px +* background : defaults to #193441. If you set evenBackground, oddBackground, + and headerBackground, you won't see it at all. +* border : defaults to 1px solid black +* userColor : defaults to whatever link color is set to on your page +* headerBackground : defaults to transparent +* headerColor : defaults to white +* evenBackground : defaults to #fff +* oddBackground : defaults to #eee +* thumbnailBorder : 1px solid black +* thumbnailSize : defaults to 24px +* padding : defaults to 3px +* server : defaults to identi.ca + +Licence +------- + +Identi.ca badge by [Kent Brewster](http://kentbrewster.com/identica-badge/). +Licenced under [CC-BY-SA-3](http://kentbrewster.com/rights-and-permissions/). diff --git a/doc-src/bookmarklet b/doc-src/bookmarklet new file mode 100644 index 000000000..6cd2c08f9 --- /dev/null +++ b/doc-src/bookmarklet @@ -0,0 +1,7 @@ +A bookmarklet is a small piece of javascript code used as a bookmark. This one will let you post to %%site.name%% simply by selecting some text on a page and pressing the bookmarklet. + +Drag-and-drop the following link to your bookmarks bar or right-click it and add it to your browser favorites to keep it handy. + +<MTMarkdownOptions output='raw'> +<a href="javascript:var%20d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='http://%%site.server%%/%%site.path%%/index.php?action=newnotice',l=d.location,e=encodeURIComponent,g=f+'&status_textarea=%22'+((e(s))?e(s):e(document.title))+'%22 from '+l.href;function%20a(){if(!w.open(g,'t','toolbar=0,resizable=0,scrollbars=1,status=1,width=800,height=570')){l.href=g;}}a();void(0);">Post to %%site.name%%</a> +</MTMarkdownOptions> diff --git a/doc-src/help b/doc-src/help index a8cfccd2b..02cf0d14b 100644 --- a/doc-src/help +++ b/doc-src/help @@ -30,3 +30,5 @@ Here are some documents that you might find helpful in understanding * [OpenMicroBlogging](%%doc.openmublog%%) - subscribing to remote users * [Privacy](%%doc.privacy%%) - %%site.name%%'s privacy policy * [Source](%%doc.source%%) - How to get the Laconica source code +* [Badge](%%doc.badge%%) - How to put a Laconica badge on your blog or homepage +* [Bookmarklet](%%doc.bookmarklet%%) - Bookmarklet for posting Web pages
\ No newline at end of file diff --git a/extlib/OAuth.php b/extlib/OAuth.php index 6dc6b3f35..029166175 100644 --- a/extlib/OAuth.php +++ b/extlib/OAuth.php @@ -16,6 +16,10 @@ class OAuthConsumer {/*{{{*/ $this->secret = $secret; $this->callback_url = $callback_url; }/*}}}*/ + + function __toString() {/*{{{*/ + return "OAuthConsumer[key=$this->key,secret=$this->secret]"; + }/*}}}*/ }/*}}}*/ class OAuthToken {/*{{{*/ @@ -37,8 +41,8 @@ class OAuthToken {/*{{{*/ * would respond to request_token and access_token calls with */ function to_string() {/*{{{*/ - return "oauth_token=" . OAuthUtil::urlencodeRFC3986($this->key) . - "&oauth_token_secret=" . OAuthUtil::urlencodeRFC3986($this->secret); + return "oauth_token=" . OAuthUtil::urlencode_rfc3986($this->key) . + "&oauth_token_secret=" . OAuthUtil::urlencode_rfc3986($this->secret); }/*}}}*/ function __toString() {/*{{{*/ @@ -67,7 +71,7 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {/*{{{*/ ($token) ? $token->secret : "" ); - $key_parts = array_map(array('OAuthUtil','urlencodeRFC3986'), $key_parts); + $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); $key = implode('&', $key_parts); return base64_encode( hash_hmac('sha1', $base_string, $key, true)); @@ -81,11 +85,11 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {/*{{{*/ public function build_signature($request, $consumer, $token) {/*{{{*/ $sig = array( - OAuthUtil::urlencodeRFC3986($consumer->secret) + OAuthUtil::urlencode_rfc3986($consumer->secret) ); if ($token) { - array_push($sig, OAuthUtil::urlencodeRFC3986($token->secret)); + array_push($sig, OAuthUtil::urlencode_rfc3986($token->secret)); } else { array_push($sig, ''); } @@ -94,7 +98,7 @@ class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {/*{{{*/ // for debug purposes $request->base_string = $raw; - return OAuthUtil::urlencodeRFC3986($raw); + return OAuthUtil::urlencode_rfc3986($raw); }/*}}}*/ }/*}}}*/ @@ -182,7 +186,7 @@ class OAuthRequest {/*{{{*/ */ public static function from_request($http_method=NULL, $http_url=NULL, $parameters=NULL) {/*{{{*/ $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") ? 'http' : 'https'; - @$http_url or $http_url = $scheme . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; + @$http_url or $http_url = $scheme . '://' . $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI']; @$http_method or $http_method = $_SERVER['REQUEST_METHOD']; $request_headers = OAuthRequest::get_headers(); @@ -192,27 +196,23 @@ class OAuthRequest {/*{{{*/ // do this if ($parameters) { $req = new OAuthRequest($http_method, $http_url, $parameters); + } else { + // collect request parameters from query string (GET) and post-data (POST) if appropriate (note: POST vars have priority) + $req_parameters = $_GET; + if ($http_method == "POST" && @strstr($request_headers["Content-Type"], "application/x-www-form-urlencoded") ) { + $req_parameters = array_merge($req_parameters, $_POST); + } + + // next check for the auth header, we need to do some extra stuff + // if that is the case, namely suck in the parameters from GET or POST + // so that we can include them in the signature + if (@substr($request_headers['Authorization'], 0, 6) == "OAuth ") { + $header_parameters = OAuthRequest::split_header($request_headers['Authorization']); + $parameters = array_merge($req_parameters, $header_parameters); + $req = new OAuthRequest($http_method, $http_url, $parameters); + } else $req = new OAuthRequest($http_method, $http_url, $req_parameters); } - // next check for the auth header, we need to do some extra stuff - // if that is the case, namely suck in the parameters from GET or POST - // so that we can include them in the signature - else if (@substr($request_headers['Authorization'], 0, 5) == "OAuth") { - $header_parameters = OAuthRequest::split_header($request_headers['Authorization']); - if ($http_method == "GET") { - $req_parameters = $_GET; - } - else if ($http_method == "POST") { - $req_parameters = $_POST; - } - $parameters = array_merge($header_parameters, $req_parameters); - $req = new OAuthRequest($http_method, $http_url, $parameters); - } - else if ($http_method == "GET") { - $req = new OAuthRequest($http_method, $http_url, $_GET); - } - else if ($http_method == "POST") { - $req = new OAuthRequest($http_method, $http_url, $_POST); - } + return $req; }/*}}}*/ @@ -238,7 +238,7 @@ class OAuthRequest {/*{{{*/ }/*}}}*/ public function get_parameter($name) {/*{{{*/ - return $this->parameters[$name]; + return isset($this->parameters[$name]) ? $this->parameters[$name] : null; }/*}}}*/ public function get_parameters() {/*{{{*/ @@ -267,12 +267,12 @@ class OAuthRequest {/*{{{*/ } // Urlencode both keys and values - $keys = array_map(array('OAuthUtil', 'urlencodeRFC3986'), array_keys($params)); - $values = array_map(array('OAuthUtil', 'urlencodeRFC3986'), array_values($params)); + $keys = OAuthUtil::urlencode_rfc3986(array_keys($params)); + $values = OAuthUtil::urlencode_rfc3986(array_values($params)); $params = array_combine($keys, $values); // Sort by keys (natsort) - uksort($params, 'strnatcmp'); + uksort($params, 'strcmp'); // Generate key=value pairs $pairs = array(); @@ -307,7 +307,7 @@ class OAuthRequest {/*{{{*/ $this->get_signable_parameters() ); - $parts = array_map(array('OAuthUtil', 'urlencodeRFC3986'), $parts); + $parts = OAuthUtil::urlencode_rfc3986($parts); return implode('&', $parts); }/*}}}*/ @@ -351,11 +351,21 @@ class OAuthRequest {/*{{{*/ /** * builds the data one would send in a POST request + * + * TODO(morten.fangel): + * this function might be easily replaced with http_build_query() + * and corrections for rfc3986 compatibility.. but not sure */ public function to_postdata() {/*{{{*/ $total = array(); foreach ($this->parameters as $k => $v) { - $total[] = OAuthUtil::urlencodeRFC3986($k) . "=" . OAuthUtil::urlencodeRFC3986($v); + if (is_array($v)) { + foreach ($v as $va) { + $total[] = OAuthUtil::urlencode_rfc3986($k) . "[]=" . OAuthUtil::urlencode_rfc3986($va); + } + } else { + $total[] = OAuthUtil::urlencode_rfc3986($k) . "=" . OAuthUtil::urlencode_rfc3986($v); + } } $out = implode("&", $total); return $out; @@ -364,12 +374,13 @@ class OAuthRequest {/*{{{*/ /** * builds the Authorization: header */ - public function to_header($realm="") {/*{{{*/ - $out ='"Authorization: OAuth realm="' . $realm . '",'; + public function to_header() {/*{{{*/ + $out ='Authorization: OAuth realm=""'; $total = array(); foreach ($this->parameters as $k => $v) { if (substr($k, 0, 5) != "oauth") continue; - $out .= ',' . OAuthUtil::urlencodeRFC3986($k) . '="' . OAuthUtil::urlencodeRFC3986($v) . '"'; + if (is_array($v)) throw new OAuthException('Arrays not supported in headers'); + $out .= ',' . OAuthUtil::urlencode_rfc3986($k) . '="' . OAuthUtil::urlencode_rfc3986($v) . '"'; } return $out; }/*}}}*/ @@ -412,24 +423,22 @@ class OAuthRequest {/*{{{*/ * parameters, has to do some unescaping */ private static function split_header($header) {/*{{{*/ - // remove 'OAuth ' at the start of a header - $header = substr($header, 6); - - // error cases: commas in parameter values? - $parts = explode(",", $header); - $out = array(); - foreach ($parts as $param) { - $param = ltrim($param); - // skip the "realm" param, nobody ever uses it anyway - if (substr($param, 0, 5) != "oauth") continue; - - $param_parts = explode("=", $param); - - // rawurldecode() used because urldecode() will turn a "+" in the - // value into a space - $out[$param_parts[0]] = rawurldecode(substr($param_parts[1], 1, -1)); + $pattern = '/(([-_a-z]*)=("([^"]*)"|([^,]*)),?)/'; + $offset = 0; + $params = array(); + while (preg_match($pattern, $header, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { + $match = $matches[0]; + $header_name = $matches[2][0]; + $header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0]; + $params[$header_name] = OAuthUtil::urldecode_rfc3986( $header_content ); + $offset = $match[1] + strlen($match[0]); } - return $out; + + if (isset($params['realm'])) { + unset($params['realm']); + } + + return $params; }/*}}}*/ /** @@ -506,6 +515,7 @@ class OAuthServer {/*{{{*/ // requires authorized request token $token = $this->get_token($request, $consumer, "request"); + $this->check_signature($request, $consumer, $token); $new_token = $this->data_store->new_access_token($token, $consumer); @@ -654,11 +664,11 @@ class OAuthDataStore {/*{{{*/ // implement me }/*}}}*/ - function fetch_request_token($consumer) {/*{{{*/ + function new_request_token($consumer) {/*{{{*/ // return a new token attached to this consumer }/*}}}*/ - function fetch_access_token($token, $consumer) {/*{{{*/ + function new_access_token($token, $consumer) {/*{{{*/ // return a new access token attached to this consumer // for the user associated with this token if the request token // is authorized @@ -737,17 +747,22 @@ class SimpleOAuthDataStore extends OAuthDataStore {/*{{{*/ }/*}}}*/ class OAuthUtil {/*{{{*/ - public static function urlencodeRFC3986($string) {/*{{{*/ - return str_replace('+', ' ', - str_replace('%7E', '~', rawurlencode($string))); - + public static function urlencode_rfc3986($input) {/*{{{*/ + if (is_array($input)) { + return array_map(array('OAuthUtil','urlencode_rfc3986'), $input); + } else if (is_scalar($input)) { + return str_replace('+', ' ', + str_replace('%7E', '~', rawurlencode($input))); + } else { + return ''; + } }/*}}}*/ // This decode function isn't taking into consideration the above // modifications to the encoding process. However, this method doesn't // seem to be used anywhere so leaving it as is. - public static function urldecodeRFC3986($string) {/*{{{*/ + public static function urldecode_rfc3986($string) {/*{{{*/ return rawurldecode($string); }/*}}}*/ }/*}}}*/ diff --git a/extlib/PEAR/Exception.php b/extlib/PEAR/Exception.php new file mode 100644 index 000000000..b3d75b20c --- /dev/null +++ b/extlib/PEAR/Exception.php @@ -0,0 +1,397 @@ +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */ +/** + * PEAR_Exception + * + * PHP versions 4 and 5 + * + * LICENSE: This source file is subject to version 3.0 of the PHP license + * that is available through the world-wide-web at the following URI: + * http://www.php.net/license/3_0.txt. If you did not receive a copy of + * the PHP License and are unable to obtain it through the web, please + * send a note to license@php.net so we can mail you a copy immediately. + * + * @category pear + * @package PEAR + * @author Tomas V. V. Cox <cox@idecnet.com> + * @author Hans Lellelid <hans@velum.net> + * @author Bertrand Mansion <bmansion@mamasam.com> + * @author Greg Beaver <cellog@php.net> + * @copyright 1997-2008 The PHP Group + * @license http://www.php.net/license/3_0.txt PHP License 3.0 + * @version CVS: $Id: Exception.php,v 1.29 2008/01/03 20:26:35 cellog Exp $ + * @link http://pear.php.net/package/PEAR + * @since File available since Release 1.3.3 + */ + + +/** + * Base PEAR_Exception Class + * + * 1) Features: + * + * - Nestable exceptions (throw new PEAR_Exception($msg, $prev_exception)) + * - Definable triggers, shot when exceptions occur + * - Pretty and informative error messages + * - Added more context info available (like class, method or cause) + * - cause can be a PEAR_Exception or an array of mixed + * PEAR_Exceptions/PEAR_ErrorStack warnings + * - callbacks for specific exception classes and their children + * + * 2) Ideas: + * + * - Maybe a way to define a 'template' for the output + * + * 3) Inherited properties from PHP Exception Class: + * + * protected $message + * protected $code + * protected $line + * protected $file + * private $trace + * + * 4) Inherited methods from PHP Exception Class: + * + * __clone + * __construct + * getMessage + * getCode + * getFile + * getLine + * getTraceSafe + * getTraceSafeAsString + * __toString + * + * 5) Usage example + * + * <code> + * require_once 'PEAR/Exception.php'; + * + * class Test { + * function foo() { + * throw new PEAR_Exception('Error Message', ERROR_CODE); + * } + * } + * + * function myLogger($pear_exception) { + * echo $pear_exception->getMessage(); + * } + * // each time a exception is thrown the 'myLogger' will be called + * // (its use is completely optional) + * PEAR_Exception::addObserver('myLogger'); + * $test = new Test; + * try { + * $test->foo(); + * } catch (PEAR_Exception $e) { + * print $e; + * } + * </code> + * + * @category pear + * @package PEAR + * @author Tomas V.V.Cox <cox@idecnet.com> + * @author Hans Lellelid <hans@velum.net> + * @author Bertrand Mansion <bmansion@mamasam.com> + * @author Greg Beaver <cellog@php.net> + * @copyright 1997-2008 The PHP Group + * @license http://www.php.net/license/3_0.txt PHP License 3.0 + * @version Release: 1.7.2 + * @link http://pear.php.net/package/PEAR + * @since Class available since Release 1.3.3 + * + */ +class PEAR_Exception extends Exception +{ + const OBSERVER_PRINT = -2; + const OBSERVER_TRIGGER = -4; + const OBSERVER_DIE = -8; + protected $cause; + private static $_observers = array(); + private static $_uniqueid = 0; + private $_trace; + + /** + * Supported signatures: + * - PEAR_Exception(string $message); + * - PEAR_Exception(string $message, int $code); + * - PEAR_Exception(string $message, Exception $cause); + * - PEAR_Exception(string $message, Exception $cause, int $code); + * - PEAR_Exception(string $message, PEAR_Error $cause); + * - PEAR_Exception(string $message, PEAR_Error $cause, int $code); + * - PEAR_Exception(string $message, array $causes); + * - PEAR_Exception(string $message, array $causes, int $code); + * @param string exception message + * @param int|Exception|PEAR_Error|array|null exception cause + * @param int|null exception code or null + */ + public function __construct($message, $p2 = null, $p3 = null) + { + if (is_int($p2)) { + $code = $p2; + $this->cause = null; + } elseif (is_object($p2) || is_array($p2)) { + // using is_object allows both Exception and PEAR_Error + if (is_object($p2) && !($p2 instanceof Exception)) { + if (!class_exists('PEAR_Error') || !($p2 instanceof PEAR_Error)) { + throw new PEAR_Exception('exception cause must be Exception, ' . + 'array, or PEAR_Error'); + } + } + $code = $p3; + if (is_array($p2) && isset($p2['message'])) { + // fix potential problem of passing in a single warning + $p2 = array($p2); + } + $this->cause = $p2; + } else { + $code = null; + $this->cause = null; + } + parent::__construct($message, $code); + $this->signal(); + } + + /** + * @param mixed $callback - A valid php callback, see php func is_callable() + * - A PEAR_Exception::OBSERVER_* constant + * - An array(const PEAR_Exception::OBSERVER_*, + * mixed $options) + * @param string $label The name of the observer. Use this if you want + * to remove it later with removeObserver() + */ + public static function addObserver($callback, $label = 'default') + { + self::$_observers[$label] = $callback; + } + + public static function removeObserver($label = 'default') + { + unset(self::$_observers[$label]); + } + + /** + * @return int unique identifier for an observer + */ + public static function getUniqueId() + { + return self::$_uniqueid++; + } + + private function signal() + { + foreach (self::$_observers as $func) { + if (is_callable($func)) { + call_user_func($func, $this); + continue; + } + settype($func, 'array'); + switch ($func[0]) { + case self::OBSERVER_PRINT : + $f = (isset($func[1])) ? $func[1] : '%s'; + printf($f, $this->getMessage()); + break; + case self::OBSERVER_TRIGGER : + $f = (isset($func[1])) ? $func[1] : E_USER_NOTICE; + trigger_error($this->getMessage(), $f); + break; + case self::OBSERVER_DIE : + $f = (isset($func[1])) ? $func[1] : '%s'; + die(printf($f, $this->getMessage())); + break; + default: + trigger_error('invalid observer type', E_USER_WARNING); + } + } + } + + /** + * Return specific error information that can be used for more detailed + * error messages or translation. + * + * This method may be overridden in child exception classes in order + * to add functionality not present in PEAR_Exception and is a placeholder + * to define API + * + * The returned array must be an associative array of parameter => value like so: + * <pre> + * array('name' => $name, 'context' => array(...)) + * </pre> + * @return array + */ + public function getErrorData() + { + return array(); + } + + /** + * Returns the exception that caused this exception to be thrown + * @access public + * @return Exception|array The context of the exception + */ + public function getCause() + { + return $this->cause; + } + + /** + * Function must be public to call on caused exceptions + * @param array + */ + public function getCauseMessage(&$causes) + { + $trace = $this->getTraceSafe(); + $cause = array('class' => get_class($this), + 'message' => $this->message, + 'file' => 'unknown', + 'line' => 'unknown'); + if (isset($trace[0])) { + if (isset($trace[0]['file'])) { + $cause['file'] = $trace[0]['file']; + $cause['line'] = $trace[0]['line']; + } + } + $causes[] = $cause; + if ($this->cause instanceof PEAR_Exception) { + $this->cause->getCauseMessage($causes); + } elseif ($this->cause instanceof Exception) { + $causes[] = array('class' => get_class($this->cause), + 'message' => $this->cause->getMessage(), + 'file' => $this->cause->getFile(), + 'line' => $this->cause->getLine()); + } elseif (class_exists('PEAR_Error') && $this->cause instanceof PEAR_Error) { + $causes[] = array('class' => get_class($this->cause), + 'message' => $this->cause->getMessage(), + 'file' => 'unknown', + 'line' => 'unknown'); + } elseif (is_array($this->cause)) { + foreach ($this->cause as $cause) { + if ($cause instanceof PEAR_Exception) { + $cause->getCauseMessage($causes); + } elseif ($cause instanceof Exception) { + $causes[] = array('class' => get_class($cause), + 'message' => $cause->getMessage(), + 'file' => $cause->getFile(), + 'line' => $cause->getLine()); + } elseif (class_exists('PEAR_Error') && $cause instanceof PEAR_Error) { + $causes[] = array('class' => get_class($cause), + 'message' => $cause->getMessage(), + 'file' => 'unknown', + 'line' => 'unknown'); + } elseif (is_array($cause) && isset($cause['message'])) { + // PEAR_ErrorStack warning + $causes[] = array( + 'class' => $cause['package'], + 'message' => $cause['message'], + 'file' => isset($cause['context']['file']) ? + $cause['context']['file'] : + 'unknown', + 'line' => isset($cause['context']['line']) ? + $cause['context']['line'] : + 'unknown', + ); + } + } + } + } + + public function getTraceSafe() + { + if (!isset($this->_trace)) { + $this->_trace = $this->getTrace(); + if (empty($this->_trace)) { + $backtrace = debug_backtrace(); + $this->_trace = array($backtrace[count($backtrace)-1]); + } + } + return $this->_trace; + } + + public function getErrorClass() + { + $trace = $this->getTraceSafe(); + return $trace[0]['class']; + } + + public function getErrorMethod() + { + $trace = $this->getTraceSafe(); + return $trace[0]['function']; + } + + public function __toString() + { + if (isset($_SERVER['REQUEST_URI'])) { + return $this->toHtml(); + } + return $this->toText(); + } + + public function toHtml() + { + $trace = $this->getTraceSafe(); + $causes = array(); + $this->getCauseMessage($causes); + $html = '<table border="1" cellspacing="0">' . "\n"; + foreach ($causes as $i => $cause) { + $html .= '<tr><td colspan="3" bgcolor="#ff9999">' + . str_repeat('-', $i) . ' <b>' . $cause['class'] . '</b>: ' + . htmlspecialchars($cause['message']) . ' in <b>' . $cause['file'] . '</b> ' + . 'on line <b>' . $cause['line'] . '</b>' + . "</td></tr>\n"; + } + $html .= '<tr><td colspan="3" bgcolor="#aaaaaa" align="center"><b>Exception trace</b></td></tr>' . "\n" + . '<tr><td align="center" bgcolor="#cccccc" width="20"><b>#</b></td>' + . '<td align="center" bgcolor="#cccccc"><b>Function</b></td>' + . '<td align="center" bgcolor="#cccccc"><b>Location</b></td></tr>' . "\n"; + + foreach ($trace as $k => $v) { + $html .= '<tr><td align="center">' . $k . '</td>' + . '<td>'; + if (!empty($v['class'])) { + $html .= $v['class'] . $v['type']; + } + $html .= $v['function']; + $args = array(); + if (!empty($v['args'])) { + foreach ($v['args'] as $arg) { + if (is_null($arg)) $args[] = 'null'; + elseif (is_array($arg)) $args[] = 'Array'; + elseif (is_object($arg)) $args[] = 'Object('.get_class($arg).')'; + elseif (is_bool($arg)) $args[] = $arg ? 'true' : 'false'; + elseif (is_int($arg) || is_double($arg)) $args[] = $arg; + else { + $arg = (string)$arg; + $str = htmlspecialchars(substr($arg, 0, 16)); + if (strlen($arg) > 16) $str .= '…'; + $args[] = "'" . $str . "'"; + } + } + } + $html .= '(' . implode(', ',$args) . ')' + . '</td>' + . '<td>' . (isset($v['file']) ? $v['file'] : 'unknown') + . ':' . (isset($v['line']) ? $v['line'] : 'unknown') + . '</td></tr>' . "\n"; + } + $html .= '<tr><td align="center">' . ($k+1) . '</td>' + . '<td>{main}</td>' + . '<td> </td></tr>' . "\n" + . '</table>'; + return $html; + } + + public function toText() + { + $causes = array(); + $this->getCauseMessage($causes); + $causeMsg = ''; + foreach ($causes as $i => $cause) { + $causeMsg .= str_repeat(' ', $i) . $cause['class'] . ': ' + . $cause['message'] . ' in ' . $cause['file'] + . ' on line ' . $cause['line'] . "\n"; + } + return $causeMsg . $this->getTraceAsString(); + } +} + +?>
\ No newline at end of file @@ -25,19 +25,57 @@ require_once INSTALLDIR . '/lib/common.php'; $user = null; $action = null; -function getPath($req) { - if (common_config('site', 'fancy')) { +function getPath($req) +{ + if ((common_config('site', 'fancy') || !array_key_exists('PATH_INFO', $_SERVER)) + && array_key_exists('p', $req)) { return $req['p']; - } else if ($_SERVER['PATH_INFO']) { + } else if (array_key_exists('PATH_INFO', $_SERVER)) { return $_SERVER['PATH_INFO']; } else { - return $req['p']; + return null; + } +} + +function handleError($error) +{ + if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { + return; + } + + $logmsg = "PEAR error: " . $error->getMessage(); + if(common_config('site', 'logdebug')) { + $logmsg .= " : ". $error->getDebugInfo(); } + common_log(LOG_ERR, $logmsg); + $msg = sprintf(_('The database for %s isn\'t responding correctly, '. + 'so the site won\'t work properly. '. + 'The site admins probably know about the problem, '. + 'but you can contact them at %s to make sure. '. + 'Otherwise, wait a few minutes and try again.'), + common_config('site', 'name'), + common_config('site', 'email')); + + $dac = new DBErrorAction($msg, 500); + $dac->showPage(); + exit(-1); } -function main() { +function main() +{ + global $user, $action, $config; + + if (!_have_config()) { + $msg = sprintf(_("No configuration file found. Try running ". + "the installation program first.")); + $sac = new ServerErrorAction($msg); + $sac->showPage(); + return; + } + + // For database errors - global $user, $action; + PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); // XXX: we need a little more structure in this script @@ -90,14 +128,14 @@ function main() { // XXX: find somewhere for this little block to live - if ($config['db']['mirror'] && $action_obj->isReadOnly()) { - if (is_array($config['db']['mirror'])) { + if (common_config('db', 'mirror') && $action_obj->isReadOnly()) { + if (is_array(common_config('db', 'mirror'))) { // "load balancing", ha ha - $k = array_rand($config['db']['mirror']); - - $mirror = $config['db']['mirror'][$k]; + $arr = common_config('db', 'mirror'); + $k = array_rand($arr); + $mirror = $arr[$k]; } else { - $mirror = $config['db']['mirror']; + $mirror = common_config('db', 'mirror'); } $config['db']['database'] = $mirror; } diff --git a/install.php b/install.php new file mode 100644 index 000000000..87a99a650 --- /dev/null +++ b/install.php @@ -0,0 +1,273 @@ +<?php +/** + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2009, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', dirname(__FILE__)); + +function main() +{ + if (!checkPrereqs()) + { + return; + } + + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + handlePost(); + } else { + showForm(); + } +} + +function checkPrereqs() +{ + if (file_exists(INSTALLDIR.'/config.php')) { + ?><p class="error">Config file "config.php" already exists.</p> + <?php + return false; + } + + if (version_compare(PHP_VERSION, '5.0.0', '<')) { + ?><p class="error">Require PHP version 5 or greater.</p><?php + return false; + } + + $reqs = array('gd', 'mysql', 'curl', + 'xmlwriter', 'mbstring', + 'gettext'); + + foreach ($reqs as $req) { + if (!checkExtension($req)) { + ?><p class="error">Cannot load required extension "<?php echo $req; ?>".</p><?php + return false; + } + } + + if (!is_writable(INSTALLDIR)) { + ?><p class="error">Cannot write config file to "<?php echo INSTALLDIR; ?>".</p> + <p>On your server, try this command:</p> + <blockquote>chmod a+w <?php echo INSTALLDIR; ?></blockquote> + <?php + return false; + } + + if (!is_writable(INSTALLDIR.'/avatar/')) { + ?><p class="error">Cannot write avatar directory "<?php echo INSTALLDIR; ?>/avatar/".</p> + <p>On your server, try this command:</p> + <blockquote>chmod a+w <?php echo INSTALLDIR; ?>/avatar/</blockquote> + <? + return false; + } + + return true; +} + +function checkExtension($name) +{ + if (!extension_loaded($name)) { + if (!dl($name.'.so')) { + return false; + } + } + return true; +} + +function showForm() +{ +?> +<p>Enter your database connection information below to initialize the database.</p> +<form method='post' action='install.php'> + <fieldset> + <ul class='form_data'> + <li> + <label for='sitename'>Site name</label> + <input type='text' id='sitename' name='sitename' /> + <p>The name of your site</p> + </li> + <li> + <li> + <label for='host'>Hostname</label> + <input type='text' id='host' name='host' /> + <p>Database hostname</p> + </li> + <li> + <label for='host'>Database</label> + <input type='text' id='database' name='database' /> + <p>Database name</p> + </li> + <li> + <label for='username'>Username</label> + <input type='text' id='username' name='username' /> + <p>Database username</p> + </li> + <li> + <label for='password'>Password</label> + <input type='password' id='password' name='password' /> + <p>Database password</p> + </li> + </ul> + <input type='submit' name='submit' value='Submit'> + </fieldset> +</form> +<? +} + +function updateStatus($status, $error=false) +{ +?> + <li> +<? + print $status; +?> + </li> +<? +} + +function handlePost() +{ +?> + <ul> +<? + $host = $_POST['host']; + $database = $_POST['database']; + $username = $_POST['username']; + $password = $_POST['password']; + $sitename = $_POST['sitename']; + + if (empty($host)) { + updateStatus("No hostname specified.", true); + showForm(); + return; + } + + if (empty($database)) { + updateStatus("No database specified.", true); + showForm(); + return; + } + + if (empty($username)) { + updateStatus("No username specified.", true); + showForm(); + return; + } + + if (empty($password)) { + updateStatus("No password specified.", true); + showForm(); + return; + } + + if (empty($sitename)) { + updateStatus("No sitename specified.", true); + showForm(); + return; + } + + updateStatus("Starting installation..."); + updateStatus("Checking database..."); + $conn = mysql_connect($host, $username, $password); + if (!$conn) { + updateStatus("Can't connect to server '$host' as '$username'.", true); + showForm(); + return; + } + updateStatus("Changing to database..."); + $res = mysql_select_db($database, $conn); + if (!$res) { + updateStatus("Can't change to database.", true); + showForm(); + return; + } + updateStatus("Running database script..."); + $res = runDbScript(INSTALLDIR.'/db/laconica.sql', $conn); + if ($res === false) { + updateStatus("Can't run database script.", true); + showForm(); + return; + } + foreach (array('sms_carrier' => 'SMS carrier', + 'notice_source' => 'notice source', + 'foreign_services' => 'foreign service') + as $scr => $name) { + updateStatus(sprintf("Adding %s data to database...", $name)); + $res = runDbScript(INSTALLDIR.'/db/'.$scr.'.sql', $conn); + if ($res === false) { + updateStatus(sprintf("Can't run %d script.", $name), true); + showForm(); + return; + } + } + updateStatus("Writing config file..."); + $sqlUrl = "mysqli://$username:$password@$host/$database"; + $res = writeConf($sitename, $sqlUrl); + if (!$res) { + updateStatus("Can't write config file.", true); + showForm(); + return; + } + updateStatus("Done!"); +?> + </ul> +<? +} + +function writeConf($sitename, $sqlUrl) +{ + $res = file_put_contents(INSTALLDIR.'/config.php', + "<?php\n". + "\$config['site']['name'] = \"$sitename\";\n\n". + "\$config['db']['database'] = \"$sqlUrl\";\n\n"); + return $res; +} + +function runDbScript($filename, $conn) +{ + $sql = trim(file_get_contents($filename)); + $stmts = explode(';', $sql); + foreach ($stmts as $stmt) { + $stmt = trim($stmt); + if (!mb_strlen($stmt)) { + continue; + } + $res = mysql_query($stmt, $conn); + if ($res === false) { + return $res; + } + } + return true; +} + +?> +<html> +<head> + <title>Install Laconica</title> + <link rel="stylesheet" type="text/css" href="theme/base/css/display.css?version=0.7.1" media="screen, projection, tv"/> + <link rel="stylesheet" type="text/css" href="theme/base/css/modal.css?version=0.7.1" media="screen, projection, tv"/> + <link rel="stylesheet" type="text/css" href="theme/default/css/display.css?version=0.7.1" media="screen, projection, tv"/> +</head> +<body> + <div id="wrap"> + <div id="core"> + <div id="content"> + <h1>Install Laconica</h1> +<?php main(); ?> + </div> + </div> + </div> +</body> +</html> diff --git a/js/identica-badge.js b/js/identica-badge.js index 5c586b5d6..869230b7a 100644 --- a/js/identica-badge.js +++ b/js/identica-badge.js @@ -1,4 +1,5 @@ // identica badge -- updated to work with the native API, 12-4-2008 +// Modified to point to Identi.ca, 2-20-2009 by Zach // copyright Kent Brewster 2008 // see http://kentbrewster.com/identica-badge for info ( function() { @@ -127,7 +128,7 @@ var a = document.createElement('A'); a.innerHTML = 'get this'; a.target = '_blank'; - a.href = 'http://kentbrewster.com/identica-badge'; + a.href = 'http://identica/doc/badge'; $.s.f.appendChild(a); $.s.appendChild($.s.f); $.f.getUser(); diff --git a/js/jcrop/jquery.Jcrop.go.js b/js/jcrop/jquery.Jcrop.go.js index b2737407b..a0399d540 100644 --- a/js/jcrop/jquery.Jcrop.go.js +++ b/js/jcrop/jquery.Jcrop.go.js @@ -37,10 +37,3 @@ $('#avatar_crop_w').val(c.w); $('#avatar_crop_h').val(c.h); }; - - function checkCoords() { - if (parseInt($('#avatar_crop_w').val())) return true; - alert('Please select a crop region then press submit.'); - return false; - }; - diff --git a/js/jquery.js b/js/jquery.js index 94e9c1755..926357433 100644 --- a/js/jquery.js +++ b/js/jquery.js @@ -1,13 +1,13 @@ /*! - * jQuery JavaScript Library v1.3.1 + * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * * Copyright (c) 2009 John Resig * Dual licensed under the MIT and GPL licenses. * http://docs.jquery.com/License * - * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009) - * Revision: 6158 + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 */ (function(){ @@ -88,14 +88,16 @@ jQuery.fn = jQuery.prototype = { this.context = selector.context; } - return this.setArray(jQuery.makeArray(selector)); + return this.setArray(jQuery.isArray( selector ) ? + selector : + jQuery.makeArray(selector)); }, // Start with an empty selector selector: "", // The current version of jQuery being used - jquery: "1.3.1", + jquery: "1.3.2", // The number of elements contained in the matched element set size: function() { @@ -108,7 +110,7 @@ jQuery.fn = jQuery.prototype = { return num === undefined ? // Return a 'clean' array - jQuery.makeArray( this ) : + Array.prototype.slice.call( this ) : // Return just the object this[ num ]; @@ -278,23 +280,21 @@ jQuery.fn = jQuery.prototype = { }, // For internal use only. - // Behaves like an Array's .push method, not like a jQuery method. + // Behaves like an Array's method, not like a jQuery method. push: [].push, + sort: [].sort, + splice: [].splice, find: function( selector ) { - if ( this.length === 1 && !/,/.test(selector) ) { + if ( this.length === 1 ) { var ret = this.pushStack( [], "find", selector ); ret.length = 0; jQuery.find( selector, this[0], ret ); return ret; } else { - var elems = jQuery.map(this, function(elem){ + return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ return jQuery.find( selector, elem ); - }); - - return this.pushStack( /[^+>] [^+>]/.test( selector ) ? - jQuery.unique( elems ) : - elems, "find", selector ); + })), "find", selector ); } }, @@ -310,33 +310,37 @@ jQuery.fn = jQuery.prototype = { // attributes in IE that are actually only stored // as properties will not be copied (such as the // the name attribute on an input). - var clone = this.cloneNode(true), - container = document.createElement("div"); - container.appendChild(clone); - return jQuery.clean([container.innerHTML])[0]; + var html = this.outerHTML; + if ( !html ) { + var div = this.ownerDocument.createElement("div"); + div.appendChild( this.cloneNode(true) ); + html = div.innerHTML; + } + + return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; } else return this.cloneNode(true); }); - // Need to set the expando to null on the cloned set if it exists - // removeData doesn't work here, IE removes it from the original as well - // this is primarily for IE but the data expando shouldn't be copied over in any browser - var clone = ret.find("*").andSelf().each(function(){ - if ( this[ expando ] !== undefined ) - this[ expando ] = null; - }); - // Copy the events from the original to the clone - if ( events === true ) - this.find("*").andSelf().each(function(i){ - if (this.nodeType == 3) + if ( events === true ) { + var orig = this.find("*").andSelf(), i = 0; + + ret.find("*").andSelf().each(function(){ + if ( this.nodeName !== orig[i].nodeName ) return; - var events = jQuery.data( this, "events" ); - for ( var type in events ) - for ( var handler in events[ type ] ) - jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data ); + var events = jQuery.data( orig[i], "events" ); + + for ( var type in events ) { + for ( var handler in events[ type ] ) { + jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); + } + } + + i++; }); + } // Return the cloned set return ret; @@ -355,14 +359,18 @@ jQuery.fn = jQuery.prototype = { }, closest: function( selector ) { - var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null; + var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, + closer = 0; return this.map(function(){ var cur = this; while ( cur && cur.ownerDocument ) { - if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { + jQuery.data(cur, "closest", closer); return cur; + } cur = cur.parentNode; + closer++; } }); }, @@ -475,7 +483,7 @@ jQuery.fn = jQuery.prototype = { html: function( value ) { return value === undefined ? (this[0] ? - this[0].innerHTML : + this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : null) : this.empty().append( value ); }, @@ -507,13 +515,13 @@ jQuery.fn = jQuery.prototype = { if ( this[0] ) { var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), - first = fragment.firstChild, - extra = this.length > 1 ? fragment.cloneNode(true) : fragment; + first = fragment.firstChild; if ( first ) for ( var i = 0, l = this.length; i < l; i++ ) - callback.call( root(this[i], first), i > 0 ? extra.cloneNode(true) : fragment ); - + callback.call( root(this[i], first), this.length > 1 || i > 0 ? + fragment.cloneNode(true) : fragment ); + if ( scripts ) jQuery.each( scripts, evalScript ); } @@ -636,9 +644,7 @@ jQuery.extend({ // Evalulates a script in a global context globalEval: function( data ) { - data = jQuery.trim( data ); - - if ( data ) { + if ( data && /\S/.test(data) ) { // Inspired by code by Andrea Giammarchi // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html var head = document.getElementsByTagName("head")[0] || document.documentElement, @@ -741,26 +747,32 @@ jQuery.extend({ elem.style[ name ] = old[ name ]; }, - css: function( elem, name, force ) { + css: function( elem, name, force, extra ) { if ( name == "width" || name == "height" ) { var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; function getWH() { val = name == "width" ? elem.offsetWidth : elem.offsetHeight; - var padding = 0, border = 0; + + if ( extra === "border" ) + return; + jQuery.each( which, function() { - padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; - border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; + if ( !extra ) + val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; + if ( extra === "margin" ) + val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; + else + val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; }); - val -= Math.round(padding + border); } - if ( jQuery(elem).is(":visible") ) + if ( elem.offsetWidth !== 0 ) getWH(); else jQuery.swap( elem, props, getWH ); - return Math.max(0, val); + return Math.max(0, Math.round(val)); } return jQuery.curCSS( elem, name, force ); @@ -866,7 +878,7 @@ jQuery.extend({ }); // Trim whitespace, otherwise indexOf won't work as expected - var tags = jQuery.trim( elem ).toLowerCase(); + var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); var wrap = // option or optgroup @@ -906,11 +918,12 @@ jQuery.extend({ if ( !jQuery.support.tbody ) { // String was a <table>, *may* have spurious <tbody> - var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ? - div.firstChild && div.firstChild.childNodes : + var hasBody = /<tbody/i.test(elem), + tbody = !tags.indexOf("<table") && !hasBody ? + div.firstChild && div.firstChild.childNodes : // String was a bare <thead> or <tfoot> - wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ? + wrap[1] == "<table>" && !hasBody ? div.childNodes : []; @@ -1189,13 +1202,16 @@ jQuery.each({ insertAfter: "after", replaceAll: "replaceWith" }, function(name, original){ - jQuery.fn[ name ] = function() { - var args = arguments; + jQuery.fn[ name ] = function( selector ) { + var ret = [], insert = jQuery( selector ); - return this.each(function(){ - for ( var i = 0, length = args.length; i < length; i++ ) - jQuery( args[ i ] )[ original ]( this ); - }); + for ( var i = 0, l = insert.length; i < l; i++ ) { + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery.fn[ original ].apply( jQuery(insert[i]), elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, selector ); }; }); @@ -1234,7 +1250,7 @@ jQuery.each({ empty: function() { // Remove element nodes and prevent memory leaks - jQuery( ">*", this ).remove(); + jQuery(this).children().remove(); // Remove any remaining nodes while ( this.firstChild ) @@ -1402,7 +1418,7 @@ jQuery.fn.extend({ */ (function(){ -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g, +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, done = 0, toString = Object.prototype.toString; @@ -1507,6 +1523,19 @@ var Sizzle = function(selector, context, results, seed) { if ( extra ) { Sizzle( extra, context, results, seed ); + + if ( sortOrder ) { + hasDuplicate = false; + results.sort(sortOrder); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[i-1] ) { + results.splice(i--, 1); + } + } + } + } } return results; @@ -1548,7 +1577,8 @@ Sizzle.find = function(expr, context, isXML){ }; Sizzle.filter = function(expr, set, inplace, not){ - var old = expr, result = [], curLoop = set, match, anyFound; + var old = expr, result = [], curLoop = set, match, anyFound, + isXMLFilter = set && set[0] && isXML(set[0]); while ( expr && set.length ) { for ( var type in Expr.filter ) { @@ -1561,7 +1591,7 @@ Sizzle.filter = function(expr, set, inplace, not){ } if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not ); + match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); if ( !match ) { anyFound = found = true; @@ -1606,8 +1636,6 @@ Sizzle.filter = function(expr, set, inplace, not){ } } - expr = expr.replace(/\s*,\s*/, ""); - // Improper expression if ( expr == old ) { if ( anyFound == null ) { @@ -1645,26 +1673,33 @@ var Expr = Sizzle.selectors = { } }, relative: { - "+": function(checkSet, part){ - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - if ( elem ) { - var cur = elem.previousSibling; - while ( cur && cur.nodeType !== 1 ) { - cur = cur.previousSibling; - } - checkSet[i] = typeof part === "string" ? - cur || false : - cur === part; + "+": function(checkSet, part, isXML){ + var isPartStr = typeof part === "string", + isTag = isPartStr && !/\W/.test(part), + isPartStrNotTag = isPartStr && !isTag; + + if ( isTag && !isXML ) { + part = part.toUpperCase(); + } + + for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { + if ( (elem = checkSet[i]) ) { + while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} + + checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ? + elem || false : + elem === part; } } - if ( typeof part === "string" ) { + if ( isPartStrNotTag ) { Sizzle.filter( part, checkSet, true ); } }, ">": function(checkSet, part, isXML){ - if ( typeof part === "string" && !/\W/.test(part) ) { + var isPartStr = typeof part === "string"; + + if ( isPartStr && !/\W/.test(part) ) { part = isXML ? part : part.toUpperCase(); for ( var i = 0, l = checkSet.length; i < l; i++ ) { @@ -1678,19 +1713,19 @@ var Expr = Sizzle.selectors = { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { - checkSet[i] = typeof part === "string" ? + checkSet[i] = isPartStr ? elem.parentNode : elem.parentNode === part; } } - if ( typeof part === "string" ) { + if ( isPartStr ) { Sizzle.filter( part, checkSet, true ); } } }, "": function(checkSet, part, isXML){ - var doneName = "done" + (done++), checkFn = dirCheck; + var doneName = done++, checkFn = dirCheck; if ( !part.match(/\W/) ) { var nodeCheck = part = isXML ? part : part.toUpperCase(); @@ -1700,7 +1735,7 @@ var Expr = Sizzle.selectors = { checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); }, "~": function(checkSet, part, isXML){ - var doneName = "done" + (done++), checkFn = dirCheck; + var doneName = done++, checkFn = dirCheck; if ( typeof part === "string" && !part.match(/\W/) ) { var nodeCheck = part = isXML ? part : part.toUpperCase(); @@ -1718,8 +1753,16 @@ var Expr = Sizzle.selectors = { } }, NAME: function(match, context, isXML){ - if ( typeof context.getElementsByName !== "undefined" && !isXML ) { - return context.getElementsByName(match[1]); + if ( typeof context.getElementsByName !== "undefined" ) { + var ret = [], results = context.getElementsByName(match[1]); + + for ( var i = 0, l = results.length; i < l; i++ ) { + if ( results[i].getAttribute("name") === match[1] ) { + ret.push( results[i] ); + } + } + + return ret.length === 0 ? null : ret; } }, TAG: function(match, context){ @@ -1727,13 +1770,16 @@ var Expr = Sizzle.selectors = { } }, preFilter: { - CLASS: function(match, curLoop, inplace, result, not){ + CLASS: function(match, curLoop, inplace, result, not, isXML){ match = " " + match[1].replace(/\\/g, "") + " "; - var elem; - for ( var i = 0; (elem = curLoop[i]) != null; i++ ) { + if ( isXML ) { + return match; + } + + for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { if ( elem ) { - if ( not ^ (" " + elem.className + " ").indexOf(match) >= 0 ) { + if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) { if ( !inplace ) result.push( elem ); } else if ( inplace ) { @@ -1764,14 +1810,14 @@ var Expr = Sizzle.selectors = { } // TODO: Move to normal caching system - match[0] = "done" + (done++); + match[0] = done++; return match; }, - ATTR: function(match){ + ATTR: function(match, curLoop, inplace, result, not, isXML){ var name = match[1].replace(/\\/g, ""); - if ( Expr.attrMap[name] ) { + if ( !isXML && Expr.attrMap[name] ) { match[1] = Expr.attrMap[name]; } @@ -1784,7 +1830,7 @@ var Expr = Sizzle.selectors = { PSEUDO: function(match, curLoop, inplace, result, not){ if ( match[1] === "not" ) { // If we're dealing with a complex expression, or a simple one - if ( match[3].match(chunker).length > 1 ) { + if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) { match[3] = Sizzle(match[3], null, null, curLoop); } else { var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); @@ -1793,7 +1839,7 @@ var Expr = Sizzle.selectors = { } return false; } - } else if ( Expr.match.POS.test( match[0] ) ) { + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { return true; } @@ -1890,47 +1936,6 @@ var Expr = Sizzle.selectors = { } }, filter: { - CHILD: function(elem, match){ - var type = match[1], parent = elem.parentNode; - - var doneName = match[0]; - - if ( parent && (!parent[ doneName ] || !elem.nodeIndex) ) { - var count = 1; - - for ( var node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType == 1 ) { - node.nodeIndex = count++; - } - } - - parent[ doneName ] = count - 1; - } - - if ( type == "first" ) { - return elem.nodeIndex == 1; - } else if ( type == "last" ) { - return elem.nodeIndex == parent[ doneName ]; - } else if ( type == "only" ) { - return parent[ doneName ] == 1; - } else if ( type == "nth" ) { - var add = false, first = match[2], last = match[3]; - - if ( first == 1 && last == 0 ) { - return true; - } - - if ( first == 0 ) { - if ( elem.nodeIndex == last ) { - add = true; - } - } else if ( (elem.nodeIndex - last) % first == 0 && (elem.nodeIndex - last) / first >= 0 ) { - add = true; - } - - return add; - } - }, PSEUDO: function(elem, match, i, array){ var name = match[1], filter = Expr.filters[ name ]; @@ -1950,6 +1955,49 @@ var Expr = Sizzle.selectors = { return true; } }, + CHILD: function(elem, match){ + var type = match[1], node = elem; + switch (type) { + case 'only': + case 'first': + while (node = node.previousSibling) { + if ( node.nodeType === 1 ) return false; + } + if ( type == 'first') return true; + node = elem; + case 'last': + while (node = node.nextSibling) { + if ( node.nodeType === 1 ) return false; + } + return true; + case 'nth': + var first = match[2], last = match[3]; + + if ( first == 1 && last == 0 ) { + return true; + } + + var doneName = match[0], + parent = elem.parentNode; + + if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { + var count = 0; + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + node.nodeIndex = ++count; + } + } + parent.sizcache = doneName; + } + + var diff = elem.nodeIndex - last; + if ( first == 0 ) { + return diff == 0; + } else { + return ( diff % first == 0 && diff / first >= 0 ); + } + } + }, ID: function(elem, match){ return elem.nodeType === 1 && elem.getAttribute("id") === match; }, @@ -1957,10 +2005,20 @@ var Expr = Sizzle.selectors = { return (match === "*" && elem.nodeType === 1) || elem.nodeName === match; }, CLASS: function(elem, match){ - return match.test( elem.className ); + return (" " + (elem.className || elem.getAttribute("class")) + " ") + .indexOf( match ) > -1; }, ATTR: function(elem, match){ - var result = Expr.attrHandle[ match[1] ] ? Expr.attrHandle[ match[1] ]( elem ) : elem[ match[1] ] || elem.getAttribute( match[1] ), value = result + "", type = match[2], check = match[4]; + var name = match[1], + result = Expr.attrHandle[ name ] ? + Expr.attrHandle[ name ]( elem ) : + elem[ name ] != null ? + elem[ name ] : + elem.getAttribute( name ), + value = result + "", + type = match[2], + check = match[4]; + return result == null ? type === "!=" : type === "=" ? @@ -1969,8 +2027,8 @@ var Expr = Sizzle.selectors = { value.indexOf(check) >= 0 : type === "~=" ? (" " + value + " ").indexOf(check) >= 0 : - !match[4] ? - result : + !check ? + value && result !== false : type === "!=" ? value != check : type === "^=" ? @@ -2036,6 +2094,39 @@ try { }; } +var sortOrder; + +if ( document.documentElement.compareDocumentPosition ) { + sortOrder = function( a, b ) { + var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; + if ( ret === 0 ) { + hasDuplicate = true; + } + return ret; + }; +} else if ( "sourceIndex" in document.documentElement ) { + sortOrder = function( a, b ) { + var ret = a.sourceIndex - b.sourceIndex; + if ( ret === 0 ) { + hasDuplicate = true; + } + return ret; + }; +} else if ( document.createRange ) { + sortOrder = function( a, b ) { + var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); + aRange.selectNode(a); + aRange.collapse(true); + bRange.selectNode(b); + bRange.collapse(true); + var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); + if ( ret === 0 ) { + hasDuplicate = true; + } + return ret; + }; +} + // Check to see if the browser returns elements by name when // querying by getElementById (and provide a workaround) (function(){ @@ -2099,7 +2190,8 @@ try { // Check to see if an attribute returns normalized href attributes div.innerHTML = "<a href='#'></a>"; - if ( div.firstChild && div.firstChild.getAttribute("href") !== "#" ) { + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && + div.firstChild.getAttribute("href") !== "#" ) { Expr.attrHandle.href = function(elem){ return elem.getAttribute("href", 2); }; @@ -2136,29 +2228,50 @@ if ( document.querySelectorAll ) (function(){ Sizzle.matches = oldSizzle.matches; })(); -if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) { +if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){ + var div = document.createElement("div"); + div.innerHTML = "<div class='test e'></div><div class='test'></div>"; + + // Opera can't find a second classname (in 9.6) + if ( div.getElementsByClassName("e").length === 0 ) + return; + + // Safari caches class attributes, doesn't catch changes (in 3.2) + div.lastChild.className = "e"; + + if ( div.getElementsByClassName("e").length === 1 ) + return; + Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function(match, context) { - return context.getElementsByClassName(match[1]); + Expr.find.CLASS = function(match, context, isXML) { + if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { + return context.getElementsByClassName(match[1]); + } }; -} +})(); function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + var sibDir = dir == "previousSibling" && !isXML; for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { + if ( sibDir && elem.nodeType === 1 ){ + elem.sizcache = doneName; + elem.sizset = i; + } elem = elem[dir]; var match = false; - while ( elem && elem.nodeType ) { - var done = elem[doneName]; - if ( done ) { - match = checkSet[ done ]; + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; break; } - if ( elem.nodeType === 1 && !isXML ) - elem[doneName] = i; + if ( elem.nodeType === 1 && !isXML ){ + elem.sizcache = doneName; + elem.sizset = i; + } if ( elem.nodeName === cur ) { match = elem; @@ -2174,22 +2287,28 @@ function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { } function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { + var sibDir = dir == "previousSibling" && !isXML; for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { + if ( sibDir && elem.nodeType === 1 ) { + elem.sizcache = doneName; + elem.sizset = i; + } elem = elem[dir]; var match = false; - while ( elem && elem.nodeType ) { - if ( elem[doneName] ) { - match = checkSet[ elem[doneName] ]; + while ( elem ) { + if ( elem.sizcache === doneName ) { + match = checkSet[elem.sizset]; break; } if ( elem.nodeType === 1 ) { - if ( !isXML ) - elem[doneName] = i; - + if ( !isXML ) { + elem.sizcache = doneName; + elem.sizset = i; + } if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true; @@ -2248,15 +2367,11 @@ jQuery.expr = Sizzle.selectors; jQuery.expr[":"] = jQuery.expr.filters; Sizzle.selectors.filters.hidden = function(elem){ - return "hidden" === elem.type || - jQuery.css(elem, "display") === "none" || - jQuery.css(elem, "visibility") === "hidden"; + return elem.offsetWidth === 0 || elem.offsetHeight === 0; }; Sizzle.selectors.filters.visible = function(elem){ - return "hidden" !== elem.type && - jQuery.css(elem, "display") !== "none" && - jQuery.css(elem, "visibility") !== "hidden"; + return elem.offsetWidth > 0 || elem.offsetHeight > 0; }; Sizzle.selectors.filters.animated = function(elem){ @@ -2552,7 +2667,8 @@ jQuery.event = { var all, handlers; event = arguments[0] = jQuery.event.fix( event || window.event ); - + event.currentTarget = this; + // Namespaced event handlers var namespaces = event.type.split("."); event.type = namespaces.shift(); @@ -2883,9 +2999,13 @@ function liveHandler( event ){ } }); + elems.sort(function(a,b) { + return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest"); + }); + jQuery.each(elems, function(){ if ( this.fn.call(this.elem, event, this.fn.data) === false ) - stop = false; + return (stop = false); }); return stop; @@ -2949,7 +3069,7 @@ function bindReady(){ // If IE and not an iframe // continually check to see if the document is ready - if ( document.documentElement.doScroll && typeof window.frameElement === "undefined" ) (function(){ + if ( document.documentElement.doScroll && window == window.top ) (function(){ if ( jQuery.isReady ) return; try { @@ -3079,12 +3199,11 @@ jQuery( window ).bind( 'unload', function(){ // document.body must exist before we can do this jQuery(function(){ var div = document.createElement("div"); - div.style.width = "1px"; - div.style.paddingLeft = "1px"; + div.style.width = div.style.paddingLeft = "1px"; document.body.appendChild( div ); jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; - document.body.removeChild( div ); + document.body.removeChild( div ).style.display = 'none'; }); })(); @@ -3175,7 +3294,7 @@ jQuery.fn.extend({ .filter(function(){ return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || - /text|hidden|password/i.test(this.type)); + /text|hidden|password|search/i.test(this.type)); }) .map(function(i, elem){ var val = jQuery(this).val(); @@ -3371,6 +3490,9 @@ jQuery.extend({ done = true; success(); complete(); + + // Handle memory leak in IE + script.onload = script.onreadystatechange = null; head.removeChild( script ); } }; @@ -3686,9 +3808,15 @@ jQuery.fn.extend({ elemdisplay[ tagName ] = display; } - this[i].style.display = jQuery.data(this[i], "olddisplay", display); + jQuery.data(this[i], "olddisplay", display); } } + + // Set the display of the elements in a second loop + // to avoid the constant reflow + for ( var i = 0, l = this.length; i < l; i++ ){ + this[i].style.display = jQuery.data(this[i], "olddisplay") || ""; + } return this; } @@ -3702,8 +3830,14 @@ jQuery.fn.extend({ var old = jQuery.data(this[i], "olddisplay"); if ( !old && old !== "none" ) jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display")); + } + + // Set the display of the elements in a second loop + // to avoid the constant reflow + for ( var i = 0, l = this.length; i < l; i++ ){ this[i].style.display = "none"; } + return this; } }, @@ -3915,7 +4049,7 @@ jQuery.fx.prototype = { t.elem = this.elem; - if ( t() && jQuery.timers.push(t) == 1 ) { + if ( t() && jQuery.timers.push(t) && !timerId ) { timerId = setInterval(function(){ var timers = jQuery.timers; @@ -3925,6 +4059,7 @@ jQuery.fx.prototype = { if ( !timers.length ) { clearInterval( timerId ); + timerId = undefined; } }, 13); } @@ -4193,22 +4328,21 @@ jQuery.each( ['Left', 'Top'], function(i, name) { jQuery.each([ "Height", "Width" ], function(i, name){ var tl = i ? "Left" : "Top", // top or left - br = i ? "Right" : "Bottom"; // bottom or right + br = i ? "Right" : "Bottom", // bottom or right + lower = name.toLowerCase(); // innerHeight and innerWidth jQuery.fn["inner" + name] = function(){ - return this[ name.toLowerCase() ]() + - num(this, "padding" + tl) + - num(this, "padding" + br); + return this[0] ? + jQuery.css( this[0], lower, false, "padding" ) : + null; }; // outerHeight and outerWidth jQuery.fn["outer" + name] = function(margin) { - return this["inner" + name]() + - num(this, "border" + tl + "Width") + - num(this, "border" + br + "Width") + - (margin ? - num(this, "margin" + tl) + num(this, "margin" + br) : 0); + return this[0] ? + jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) : + null; }; var type = name.toLowerCase(); @@ -4238,4 +4372,5 @@ jQuery.each([ "Height", "Width" ], function(i, name){ this.css( type, typeof size === "string" ? size : size + "px" ); }; -});})(); +}); +})(); diff --git a/js/jquery.min.js b/js/jquery.min.js index c327fae81..b1ae21d8b 100644 --- a/js/jquery.min.js +++ b/js/jquery.min.js @@ -1,19 +1,19 @@ /* - * jQuery JavaScript Library v1.3.1 + * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * * Copyright (c) 2009 John Resig * Dual licensed under the MIT and GPL licenses. * http://docs.jquery.com/License * - * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009) - * Revision: 6158 + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.makeArray(E))},selector:"",jquery:"1.3.1",size:function(){return this.length},get:function(E){return E===g?o.makeArray(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,find:function(E){if(this.length===1&&!/,/.test(E)){var G=this.pushStack([],"find",E);G.length=0;o.find(E,this[0],G);return G}else{var F=o.map(this,function(H){return o.find(E,H)});return this.pushStack(/[^+>] [^+>]/.test(E)?o.unique(F):F,"find",E)}},clone:function(F){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.cloneNode(true),H=document.createElement("div");H.appendChild(I);return o.clean([H.innerHTML])[0]}else{return this.cloneNode(true)}});var G=E.find("*").andSelf().each(function(){if(this[h]!==g){this[h]=null}});if(F===true){this.find("*").andSelf().each(function(I){if(this.nodeType==3){return}var H=o.data(this,"events");for(var K in H){for(var J in H[K]){o.event.add(G[I],K,H[K][J],H[K][J].data)}}})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var F=o.expr.match.POS.test(E)?o(E):null;return this.map(function(){var G=this;while(G&&G.ownerDocument){if(F?F.index(G)>-1:o(G).is(E)){return G}G=G.parentNode}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML:null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(K,N,M){if(this[0]){var J=(this[0].ownerDocument||this[0]).createDocumentFragment(),G=o.clean(K,(this[0].ownerDocument||this[0]),J),I=J.firstChild,E=this.length>1?J.cloneNode(true):J;if(I){for(var H=0,F=this.length;H<F;H++){M.call(L(this[H],I),H>0?E.cloneNode(true):J)}}if(G){o.each(G,z)}}return this;function L(O,P){return N&&o.nodeName(O,"table")&&o.nodeName(P,"tr")?(O.getElementsByTagName("tbody")[0]||O.appendChild(O.ownerDocument.createElement("tbody"))):O}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){G=o.trim(G);if(G){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(G,E,I){if(E=="width"||E=="height"){var K,F={position:"absolute",visibility:"hidden",display:"block"},J=E=="width"?["Left","Right"]:["Top","Bottom"];function H(){K=E=="width"?G.offsetWidth:G.offsetHeight;var M=0,L=0;o.each(J,function(){M+=parseFloat(o.curCSS(G,"padding"+this,true))||0;L+=parseFloat(o.curCSS(G,"border"+this+"Width",true))||0});K-=Math.round(M+L)}if(o(G).is(":visible")){H()}else{o.swap(G,F,H)}return Math.max(0,K)}return o.curCSS(G,E,I)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,R){if(typeof R==="number"){R+=""}if(!R){return}if(typeof R==="string"){R=R.replace(/(<(\w+)[^>]*?)\/>/g,function(T,U,S){return S.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?T:U+"></"+S+">"});var O=o.trim(R).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+R+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var N=!O.indexOf("<table")&&O.indexOf("<tbody")<0?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&O.indexOf("<tbody")<0?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(R)){L.insertBefore(K.createTextNode(R.match(/^\s*/)[0]),L.firstChild)}R=o.makeArray(L.childNodes)}if(R.nodeType){G.push(R)}else{G=o.merge(G,R)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(){var G=arguments;return this.each(function(){for(var H=0,I=G.length;H<I;H++){o(G[H])[F](this)}})}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(">*",this).remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); /* * Sizzle CSS Selector Engine - v0.9.3 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ -(function(){var Q=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,K=0,G=Object.prototype.toString;var F=function(X,T,aa,ab){aa=aa||[];T=T||document;if(T.nodeType!==1&&T.nodeType!==9){return[]}if(!X||typeof X!=="string"){return aa}var Y=[],V,ae,ah,S,ac,U,W=true;Q.lastIndex=0;while((V=Q.exec(X))!==null){Y.push(V[1]);if(V[2]){U=RegExp.rightContext;break}}if(Y.length>1&&L.exec(X)){if(Y.length===2&&H.relative[Y[0]]){ae=I(Y[0]+Y[1],T)}else{ae=H.relative[Y[0]]?[T]:F(Y.shift(),T);while(Y.length){X=Y.shift();if(H.relative[X]){X+=Y.shift()}ae=I(X,ae)}}}else{var ad=ab?{expr:Y.pop(),set:E(ab)}:F.find(Y.pop(),Y.length===1&&T.parentNode?T.parentNode:T,P(T));ae=F.filter(ad.expr,ad.set);if(Y.length>0){ah=E(ae)}else{W=false}while(Y.length){var ag=Y.pop(),af=ag;if(!H.relative[ag]){ag=""}else{af=Y.pop()}if(af==null){af=T}H.relative[ag](ah,af,P(T))}}if(!ah){ah=ae}if(!ah){throw"Syntax error, unrecognized expression: "+(ag||X)}if(G.call(ah)==="[object Array]"){if(!W){aa.push.apply(aa,ah)}else{if(T.nodeType===1){for(var Z=0;ah[Z]!=null;Z++){if(ah[Z]&&(ah[Z]===true||ah[Z].nodeType===1&&J(T,ah[Z]))){aa.push(ae[Z])}}}else{for(var Z=0;ah[Z]!=null;Z++){if(ah[Z]&&ah[Z].nodeType===1){aa.push(ae[Z])}}}}}else{E(ah,aa)}if(U){F(U,T,aa,ab)}return aa};F.matches=function(S,T){return F(S,null,null,T)};F.find=function(Z,S,aa){var Y,W;if(!Z){return[]}for(var V=0,U=H.order.length;V<U;V++){var X=H.order[V],W;if((W=H.match[X].exec(Z))){var T=RegExp.leftContext;if(T.substr(T.length-1)!=="\\"){W[1]=(W[1]||"").replace(/\\/g,"");Y=H.find[X](W,S,aa);if(Y!=null){Z=Z.replace(H.match[X],"");break}}}}if(!Y){Y=S.getElementsByTagName("*")}return{set:Y,expr:Z}};F.filter=function(ab,aa,ae,V){var U=ab,ag=[],Y=aa,X,S;while(ab&&aa.length){for(var Z in H.filter){if((X=H.match[Z].exec(ab))!=null){var T=H.filter[Z],af,ad;S=false;if(Y==ag){ag=[]}if(H.preFilter[Z]){X=H.preFilter[Z](X,Y,ae,ag,V);if(!X){S=af=true}else{if(X===true){continue}}}if(X){for(var W=0;(ad=Y[W])!=null;W++){if(ad){af=T(ad,X,W,Y);var ac=V^!!af;if(ae&&af!=null){if(ac){S=true}else{Y[W]=false}}else{if(ac){ag.push(ad);S=true}}}}}if(af!==g){if(!ae){Y=ag}ab=ab.replace(H.match[Z],"");if(!S){return[]}break}}}ab=ab.replace(/\s*,\s*/,"");if(ab==U){if(S==null){throw"Syntax error, unrecognized expression: "+ab}else{break}}U=ab}return Y};var H=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(S){return S.getAttribute("href")}},relative:{"+":function(W,T){for(var U=0,S=W.length;U<S;U++){var V=W[U];if(V){var X=V.previousSibling;while(X&&X.nodeType!==1){X=X.previousSibling}W[U]=typeof T==="string"?X||false:X===T}}if(typeof T==="string"){F.filter(T,W,true)}},">":function(X,T,Y){if(typeof T==="string"&&!/\W/.test(T)){T=Y?T:T.toUpperCase();for(var U=0,S=X.length;U<S;U++){var W=X[U];if(W){var V=W.parentNode;X[U]=V.nodeName===T?V:false}}}else{for(var U=0,S=X.length;U<S;U++){var W=X[U];if(W){X[U]=typeof T==="string"?W.parentNode:W.parentNode===T}}if(typeof T==="string"){F.filter(T,X,true)}}},"":function(V,T,X){var U="done"+(K++),S=R;if(!T.match(/\W/)){var W=T=X?T:T.toUpperCase();S=O}S("parentNode",T,U,V,W,X)},"~":function(V,T,X){var U="done"+(K++),S=R;if(typeof T==="string"&&!T.match(/\W/)){var W=T=X?T:T.toUpperCase();S=O}S("previousSibling",T,U,V,W,X)}},find:{ID:function(T,U,V){if(typeof U.getElementById!=="undefined"&&!V){var S=U.getElementById(T[1]);return S?[S]:[]}},NAME:function(S,T,U){if(typeof T.getElementsByName!=="undefined"&&!U){return T.getElementsByName(S[1])}},TAG:function(S,T){return T.getElementsByTagName(S[1])}},preFilter:{CLASS:function(V,T,U,S,Y){V=" "+V[1].replace(/\\/g,"")+" ";var X;for(var W=0;(X=T[W])!=null;W++){if(X){if(Y^(" "+X.className+" ").indexOf(V)>=0){if(!U){S.push(X)}}else{if(U){T[W]=false}}}}return false},ID:function(S){return S[1].replace(/\\/g,"")},TAG:function(T,S){for(var U=0;S[U]===false;U++){}return S[U]&&P(S[U])?T[1]:T[1].toUpperCase()},CHILD:function(S){if(S[1]=="nth"){var T=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(S[2]=="even"&&"2n"||S[2]=="odd"&&"2n+1"||!/\D/.test(S[2])&&"0n+"+S[2]||S[2]);S[2]=(T[1]+(T[2]||1))-0;S[3]=T[3]-0}S[0]="done"+(K++);return S},ATTR:function(T){var S=T[1].replace(/\\/g,"");if(H.attrMap[S]){T[1]=H.attrMap[S]}if(T[2]==="~="){T[4]=" "+T[4]+" "}return T},PSEUDO:function(W,T,U,S,X){if(W[1]==="not"){if(W[3].match(Q).length>1){W[3]=F(W[3],null,null,T)}else{var V=F.filter(W[3],T,U,true^X);if(!U){S.push.apply(S,V)}return false}}else{if(H.match.POS.test(W[0])){return true}}return W},POS:function(S){S.unshift(true);return S}},filters:{enabled:function(S){return S.disabled===false&&S.type!=="hidden"},disabled:function(S){return S.disabled===true},checked:function(S){return S.checked===true},selected:function(S){S.parentNode.selectedIndex;return S.selected===true},parent:function(S){return !!S.firstChild},empty:function(S){return !S.firstChild},has:function(U,T,S){return !!F(S[3],U).length},header:function(S){return/h\d/i.test(S.nodeName)},text:function(S){return"text"===S.type},radio:function(S){return"radio"===S.type},checkbox:function(S){return"checkbox"===S.type},file:function(S){return"file"===S.type},password:function(S){return"password"===S.type},submit:function(S){return"submit"===S.type},image:function(S){return"image"===S.type},reset:function(S){return"reset"===S.type},button:function(S){return"button"===S.type||S.nodeName.toUpperCase()==="BUTTON"},input:function(S){return/input|select|textarea|button/i.test(S.nodeName)}},setFilters:{first:function(T,S){return S===0},last:function(U,T,S,V){return T===V.length-1},even:function(T,S){return S%2===0},odd:function(T,S){return S%2===1},lt:function(U,T,S){return T<S[3]-0},gt:function(U,T,S){return T>S[3]-0},nth:function(U,T,S){return S[3]-0==T},eq:function(U,T,S){return S[3]-0==T}},filter:{CHILD:function(S,V){var Y=V[1],Z=S.parentNode;var X=V[0];if(Z&&(!Z[X]||!S.nodeIndex)){var W=1;for(var T=Z.firstChild;T;T=T.nextSibling){if(T.nodeType==1){T.nodeIndex=W++}}Z[X]=W-1}if(Y=="first"){return S.nodeIndex==1}else{if(Y=="last"){return S.nodeIndex==Z[X]}else{if(Y=="only"){return Z[X]==1}else{if(Y=="nth"){var ab=false,U=V[2],aa=V[3];if(U==1&&aa==0){return true}if(U==0){if(S.nodeIndex==aa){ab=true}}else{if((S.nodeIndex-aa)%U==0&&(S.nodeIndex-aa)/U>=0){ab=true}}return ab}}}}},PSEUDO:function(Y,U,V,Z){var T=U[1],W=H.filters[T];if(W){return W(Y,V,U,Z)}else{if(T==="contains"){return(Y.textContent||Y.innerText||"").indexOf(U[3])>=0}else{if(T==="not"){var X=U[3];for(var V=0,S=X.length;V<S;V++){if(X[V]===Y){return false}}return true}}}},ID:function(T,S){return T.nodeType===1&&T.getAttribute("id")===S},TAG:function(T,S){return(S==="*"&&T.nodeType===1)||T.nodeName===S},CLASS:function(T,S){return S.test(T.className)},ATTR:function(W,U){var S=H.attrHandle[U[1]]?H.attrHandle[U[1]](W):W[U[1]]||W.getAttribute(U[1]),X=S+"",V=U[2],T=U[4];return S==null?V==="!=":V==="="?X===T:V==="*="?X.indexOf(T)>=0:V==="~="?(" "+X+" ").indexOf(T)>=0:!U[4]?S:V==="!="?X!=T:V==="^="?X.indexOf(T)===0:V==="$="?X.substr(X.length-T.length)===T:V==="|="?X===T||X.substr(0,T.length+1)===T+"-":false},POS:function(W,T,U,X){var S=T[2],V=H.setFilters[S];if(V){return V(W,U,T,X)}}}};var L=H.match.POS;for(var N in H.match){H.match[N]=RegExp(H.match[N].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(T,S){T=Array.prototype.slice.call(T);if(S){S.push.apply(S,T);return S}return T};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(M){E=function(W,V){var T=V||[];if(G.call(W)==="[object Array]"){Array.prototype.push.apply(T,W)}else{if(typeof W.length==="number"){for(var U=0,S=W.length;U<S;U++){T.push(W[U])}}else{for(var U=0;W[U];U++){T.push(W[U])}}}return T}}(function(){var T=document.createElement("form"),U="script"+(new Date).getTime();T.innerHTML="<input name='"+U+"'/>";var S=document.documentElement;S.insertBefore(T,S.firstChild);if(!!document.getElementById(U)){H.find.ID=function(W,X,Y){if(typeof X.getElementById!=="undefined"&&!Y){var V=X.getElementById(W[1]);return V?V.id===W[1]||typeof V.getAttributeNode!=="undefined"&&V.getAttributeNode("id").nodeValue===W[1]?[V]:g:[]}};H.filter.ID=function(X,V){var W=typeof X.getAttributeNode!=="undefined"&&X.getAttributeNode("id");return X.nodeType===1&&W&&W.nodeValue===V}}S.removeChild(T)})();(function(){var S=document.createElement("div");S.appendChild(document.createComment(""));if(S.getElementsByTagName("*").length>0){H.find.TAG=function(T,X){var W=X.getElementsByTagName(T[1]);if(T[1]==="*"){var V=[];for(var U=0;W[U];U++){if(W[U].nodeType===1){V.push(W[U])}}W=V}return W}}S.innerHTML="<a href='#'></a>";if(S.firstChild&&S.firstChild.getAttribute("href")!=="#"){H.attrHandle.href=function(T){return T.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var S=F,T=document.createElement("div");T.innerHTML="<p class='TEST'></p>";if(T.querySelectorAll&&T.querySelectorAll(".TEST").length===0){return}F=function(X,W,U,V){W=W||document;if(!V&&W.nodeType===9&&!P(W)){try{return E(W.querySelectorAll(X),U)}catch(Y){}}return S(X,W,U,V)};F.find=S.find;F.filter=S.filter;F.selectors=S.selectors;F.matches=S.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){H.order.splice(1,0,"CLASS");H.find.CLASS=function(S,T){return T.getElementsByClassName(S[1])}}function O(T,Z,Y,ac,aa,ab){for(var W=0,U=ac.length;W<U;W++){var S=ac[W];if(S){S=S[T];var X=false;while(S&&S.nodeType){var V=S[Y];if(V){X=ac[V];break}if(S.nodeType===1&&!ab){S[Y]=W}if(S.nodeName===Z){X=S;break}S=S[T]}ac[W]=X}}}function R(T,Y,X,ab,Z,aa){for(var V=0,U=ab.length;V<U;V++){var S=ab[V];if(S){S=S[T];var W=false;while(S&&S.nodeType){if(S[X]){W=ab[S[X]];break}if(S.nodeType===1){if(!aa){S[X]=V}if(typeof Y!=="string"){if(S===Y){W=true;break}}else{if(F.filter(Y,[S]).length>0){W=S;break}}}S=S[T]}ab[V]=W}}}var J=document.compareDocumentPosition?function(T,S){return T.compareDocumentPosition(S)&16}:function(T,S){return T!==S&&(T.contains?T.contains(S):true)};var P=function(S){return S.nodeType===9&&S.documentElement.nodeName!=="HTML"||!!S.ownerDocument&&P(S.ownerDocument)};var I=function(S,Z){var V=[],W="",X,U=Z.nodeType?[Z]:Z;while((X=H.match.PSEUDO.exec(S))){W+=X[0];S=S.replace(H.match.PSEUDO,"")}S=H.relative[S]?S+"*":S;for(var Y=0,T=U.length;Y<T;Y++){F(S,U[Y],V)}return F.filter(W,V)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(S){return"hidden"===S.type||o.css(S,"display")==="none"||o.css(S,"visibility")==="hidden"};F.selectors.filters.visible=function(S){return"hidden"!==S.type&&o.css(S,"display")!=="none"&&o.css(S,"visibility")!=="hidden"};F.selectors.filters.animated=function(S){return o.grep(o.timers,function(T){return S===T.elem}).length};o.multiFilter=function(U,S,T){if(T){U=":not("+U+")"}return F.matches(U,S)};o.dir=function(U,T){var S=[],V=U[T];while(V&&V!=document){if(V.nodeType==1){S.push(V)}V=V[T]}return S};o.nth=function(W,S,U,V){S=S||1;var T=0;for(;W;W=W[U]){if(W.nodeType==1&&++T==S){break}}return W};o.sibling=function(U,T){var S=[];for(;U;U=U.nextSibling){if(U.nodeType==1&&U!=T){S.push(U)}}return S};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){G=false}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&typeof l.frameElement==="undefined"){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width="1px";L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L)})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}this[H].style.display=o.data(this[H],"olddisplay",K)}}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)==1){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n)}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(H,F){var E=H?"Left":"Top",G=H?"Right":"Bottom";o.fn["inner"+F]=function(){return this[F.toLowerCase()]()+j(this,"padding"+E)+j(this,"padding"+G)};o.fn["outer"+F]=function(J){return this["inner"+F]()+j(this,"border"+E+"Width")+j(this,"border"+G+"Width")+(J?j(this,"margin"+E)+j(this,"margin"+G):0)};var I=F.toLowerCase();o.fn[I]=function(J){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+F]||document.body["client"+F]:this[0]==document?Math.max(document.documentElement["client"+F],document.body["scroll"+F],document.documentElement["scroll"+F],document.body["offset"+F],document.documentElement["offset"+F]):J===g?(this.length?o.css(this[0],I):null):this.css(I,typeof J==="string"?J:J+"px")}})})();
\ No newline at end of file +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
\ No newline at end of file diff --git a/js/util.js b/js/util.js index 3ad038612..81139744f 100644 --- a/js/util.js +++ b/js/util.js @@ -161,6 +161,7 @@ $(document).ready(function(){ $("#form_notice").addClass("warning"); return false; } + $("#form_notice").addClass("processing"); $("#notice_action-submit").attr("disabled", "disabled"); $("#notice_action-submit").addClass("disabled"); return true; @@ -179,6 +180,7 @@ $(document).ready(function(){ NoticeHover(); NoticeReply(); } + $("#form_notice").removeClass("processing"); $("#notice_action-submit").removeAttr("disabled"); $("#notice_action-submit").removeClass("disabled"); } diff --git a/lib/action.php b/lib/action.php index 80a8969fa..dddba9eb0 100644 --- a/lib/action.php +++ b/lib/action.php @@ -93,10 +93,22 @@ class Action extends HTMLOutputter // lawsuit */ function showPage() { - $this->startHTML(); + if (Event::handle('StartShowHTML', array($this))) { + $this->startHTML(); + Event::handle('EndShowHTML', array($this)); + } + if (Event::handle('StartShowHead', array($this))) { $this->showHead(); + Event::handle('EndShowHead', array($this)); + } + if (Event::handle('StartShowBody', array($this))) { $this->showBody(); + Event::handle('EndShowBody', array($this)); + } + if (Event::handle('StartEndHTML', array($this))) { $this->endHTML(); + Event::handle('EndEndHTML', array($this)); + } } /** @@ -109,6 +121,7 @@ class Action extends HTMLOutputter // lawsuit // XXX: attributes (profile?) $this->elementStart('head'); $this->showTitle(); + $this->showShortcutIcon(); $this->showStylesheets(); $this->showScripts(); $this->showRelationshipLinks(); @@ -146,31 +159,77 @@ class Action extends HTMLOutputter // lawsuit } /** + * Show themed shortcut icon + * + * @return nothing + */ + function showShortcutIcon() + { + if (is_readable(INSTALLDIR . '/theme/' . common_config('site', 'theme') . '/favicon.ico')) { + $this->element('link', array('rel' => 'shortcut icon', + 'href' => theme_path('favicon.ico'))); + } else { + $this->element('link', array('rel' => 'shortcut icon', + 'href' => common_path('favicon.ico'))); + } + + if (common_config('site', 'mobile')) { + if (is_readable(INSTALLDIR . '/theme/' . common_config('site', 'theme') . '/apple-touch-icon.png')) { + $this->element('link', array('rel' => 'apple-touch-icon', + 'href' => theme_path('apple-touch-icon.png'))); + } else { + $this->element('link', array('rel' => 'apple-touch-icon', + 'href' => common_path('apple-touch-icon.png'))); + } + } + } + + /** * Show stylesheets * * @return nothing */ function showStylesheets() { - $this->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION, - 'media' => 'screen, projection, tv')); - $this->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION, - 'media' => 'screen, projection, tv')); - $this->comment('[if IE]><link rel="stylesheet" type="text/css" '. - 'href="'.theme_path('css/ie.css', 'base').'?version='.LACONICA_VERSION.'" /><![endif]'); - foreach (array(6,7) as $ver) { - if (file_exists(theme_file('css/ie'.$ver.'.css', 'base'))) { - // Yes, IE people should be put in jail. - $this->comment('[if lte IE '.$ver.']><link rel="stylesheet" type="text/css" '. - 'href="'.theme_path('css/ie'.$ver.'.css', 'base').'?version='.LACONICA_VERSION.'" /><![endif]'); + if (Event::handle('StartShowStyles', array($this))) { + if (Event::handle('StartShowLaconicaStyles', array($this))) { + $this->element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION, + 'media' => 'screen, projection, tv')); + $this->element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION, + 'media' => 'screen, projection, tv')); + if (common_config('site', 'mobile')) { + $this->element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => theme_path('css/mobile.css', 'base') . '?version=' . LACONICA_VERSION, + // TODO: "handheld" CSS for other mobile devices + 'media' => 'only screen and (max-device-width: 480px)')); // Mobile WebKit + } + $this->element('link', array('rel' => 'stylesheet', + 'type' => 'text/css', + 'href' => theme_path('css/print.css', 'base') . '?version=' . LACONICA_VERSION, + 'media' => 'print')); + Event::handle('EndShowLaconicaStyles', array($this)); + } + if (Event::handle('StartShowUAStyles', array($this))) { + $this->comment('[if IE]><link rel="stylesheet" type="text/css" '. + 'href="'.theme_path('css/ie.css', 'base').'?version='.LACONICA_VERSION.'" /><![endif]'); + foreach (array(6,7) as $ver) { + if (file_exists(theme_file('css/ie'.$ver.'.css', 'base'))) { + // Yes, IE people should be put in jail. + $this->comment('[if lte IE '.$ver.']><link rel="stylesheet" type="text/css" '. + 'href="'.theme_path('css/ie'.$ver.'.css', 'base').'?version='.LACONICA_VERSION.'" /><![endif]'); + } + } + $this->comment('[if IE]><link rel="stylesheet" type="text/css" '. + 'href="'.theme_path('css/ie.css', null).'?version='.LACONICA_VERSION.'" /><![endif]'); + Event::handle('EndShowUAStyles', array($this)); } + Event::handle('EndShowStyles', array($this)); } - $this->comment('[if IE]><link rel="stylesheet" type="text/css" '. - 'href="'.theme_path('css/ie.css', null).'?version='.LACONICA_VERSION.'" /><![endif]'); } /** @@ -197,6 +256,9 @@ class Action extends HTMLOutputter // lawsuit $this->element('script', array('type' => 'text/javascript', 'src' => common_path('js/util.js?version='.LACONICA_VERSION)), ' '); + // Frame-busting code to avoid clickjacking attacks. + $this->element('script', array('type' => 'text/javascript'), + 'if (window.top !== window.self) { window.top.location.href = window.self.location.href; }'); Event::handle('EndShowLaconicaScripts', array($this)); } Event::handle('EndShowScripts', array($this)); @@ -239,9 +301,19 @@ class Action extends HTMLOutputter // lawsuit * * @return nothing */ + function showFeeds() { - // does nothing by default + $feeds = $this->getFeeds(); + + if ($feeds) { + foreach ($feeds as $feed) { + $this->element('link', array('rel' => $feed->rel(), + 'href' => $feed->url, + 'type' => $feed->mimeType(), + 'title' => $feed->title)); + } + } } /** @@ -277,11 +349,19 @@ class Action extends HTMLOutputter // lawsuit */ function showBody() { - $this->elementStart('body', array('id' => $this->trimmed('action'))); + $this->elementStart('body', (common_current_user()) ? array('id' => $this->trimmed('action'), + 'class' => 'user_in') + : array('id' => $this->trimmed('action'))); $this->elementStart('div', array('id' => 'wrap')); - $this->showHeader(); + if (Event::handle('StartShowHeader', array($this))) { + $this->showHeader(); + Event::handle('EndShowHeader', array($this)); + } $this->showCore(); - $this->showFooter(); + if (Event::handle('StartShowFooter', array($this))) { + $this->showFooter(); + Event::handle('EndShowFooter', array($this)); + } $this->elementEnd('div'); $this->elementEnd('body'); } @@ -345,13 +425,8 @@ class Action extends HTMLOutputter // lawsuit if ($user) { $this->menuItem(common_local_url('all', array('nickname' => $user->nickname)), _('Home'), _('Personal profile and friends timeline'), false, 'nav_home'); - } - $this->menuItem(common_local_url('peoplesearch'), - _('Search'), _('Search for people or text'), false, 'nav_search'); - if ($user) { $this->menuItem(common_local_url('profilesettings'), _('Account'), _('Change your email, avatar, password, profile'), false, 'nav_account'); - if (common_config('xmpp', 'enabled')) { $this->menuItem(common_local_url('imsettings'), _('Connect'), _('Connect to IM, SMS, Twitter'), false, 'nav_connect'); @@ -359,20 +434,28 @@ class Action extends HTMLOutputter // lawsuit $this->menuItem(common_local_url('smssettings'), _('Connect'), _('Connect to SMS, Twitter'), false, 'nav_connect'); } + $this->menuItem(common_local_url('invite'), + _('Invite'), + sprintf(_('Invite friends and colleagues to join you on %s'), + common_config('site', 'name')), + false, 'nav_invitecontact'); $this->menuItem(common_local_url('logout'), _('Logout'), _('Logout from the site'), false, 'nav_logout'); - } else { - $this->menuItem(common_local_url('login'), - _('Login'), _('Login to the site'), false, 'nav_login'); + } + else { if (!common_config('site', 'closed')) { $this->menuItem(common_local_url('register'), _('Register'), _('Create an account'), false, 'nav_register'); } $this->menuItem(common_local_url('openidlogin'), _('OpenID'), _('Login with OpenID'), false, 'nav_openid'); + $this->menuItem(common_local_url('login'), + _('Login'), _('Login to the site'), false, 'nav_login'); } $this->menuItem(common_local_url('doc', array('title' => 'help')), _('Help'), _('Help me!'), false, 'nav_help'); + $this->menuItem(common_local_url('peoplesearch'), + _('Search'), _('Search for people or text'), false, 'nav_search'); Event::handle('EndPrimaryNav', array($this)); } $this->elementEnd('ul'); @@ -435,8 +518,14 @@ class Action extends HTMLOutputter // lawsuit function showCore() { $this->elementStart('div', array('id' => 'core')); - $this->showLocalNavBlock(); - $this->showContentBlock(); + if (Event::handle('StartShowLocalNavBlock', array($this))) { + $this->showLocalNavBlock(); + Event::handle('EndShowLocalNavBlock', array($this)); + } + if (Event::handle('StartShowContentBlock', array($this))) { + $this->showContentBlock(); + Event::handle('EndShowContentBlock', array($this)); + } $this->showAside(); $this->elementEnd('div'); } @@ -543,7 +632,10 @@ class Action extends HTMLOutputter // lawsuit { $this->elementStart('div', array('id' => 'aside_primary', 'class' => 'aside')); + if (Event::handle('StartShowExportData', array($this))) { $this->showExportData(); + Event::handle('EndShowExportData', array($this)); + } if (Event::handle('StartShowSections', array($this))) { $this->showSections(); Event::handle('EndShowSections', array($this)); @@ -554,15 +646,16 @@ class Action extends HTMLOutputter // lawsuit /** * Show export data feeds. * - * MAY overload if there are feeds - * - * @return nothing + * @return void */ + function showExportData() { - // is there structure to this? - // list of (visible!) feed links - // can we reuse list of feeds from showFeeds() ? + $feeds = $this->getFeeds(); + if ($feeds) { + $fl = new FeedList($this); + $fl->show($feeds); + } } /** @@ -614,6 +707,8 @@ class Action extends HTMLOutputter // lawsuit _('Source')); $this->menuItem(common_local_url('doc', array('title' => 'contact')), _('Contact')); + $this->menuItem(common_local_url('doc', array('title' => 'badge')), + _('Badge')); Event::handle('EndSecondaryNav', array($this)); } $this->elementEnd('ul'); @@ -764,12 +859,13 @@ class Action extends HTMLOutputter // lawsuit } if ($lm) { header('Last-Modified: ' . date(DATE_RFC1123, $lm)); - $if_modified_since = $_SERVER['HTTP_IF_MODIFIED_SINCE']; - if ($if_modified_since) { - $ims = strtotime($if_modified_since); + if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { + $ims = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']); if ($lm <= $ims) { - if (!$etag || - $this->_hasEtag($etag, $_SERVER['HTTP_IF_NONE_MATCH'])) { + $if_none_match = $_SERVER['HTTP_IF_NONE_MATCH']; + if (!$if_none_match || + !$etag || + $this->_hasEtag($etag, $if_none_match)) { header('HTTP/1.1 304 Not Modified'); // Better way to do this? exit(0); @@ -787,9 +883,11 @@ class Action extends HTMLOutputter // lawsuit * * @return boolean */ + function _hasEtag($etag, $if_none_match) { - return ($if_none_match) && in_array($etag, explode(',', $if_none_match)); + $etags = explode(',', $if_none_match); + return in_array($etag, $etags) || in_array('*', $etags); } /** @@ -852,11 +950,15 @@ class Action extends HTMLOutputter // lawsuit * * @return string current URL */ + function selfUrl() { $action = $this->trimmed('action'); $args = $this->args; unset($args['action']); + if (array_key_exists('submit', $args)) { + unset($args['submit']); + } foreach (array_keys($_COOKIE) as $cookie) { unset($args[$cookie]); } @@ -917,17 +1019,17 @@ class Action extends HTMLOutputter // lawsuit } if ($have_before) { $pargs = array('page' => $page-1); - $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->elementStart('li', array('class' => 'nav_prev')); - $this->element('a', array('href' => common_local_url($action, $newargs), 'rel' => 'prev'), + $this->element('a', array('href' => common_local_url($action, $args, $pargs), + 'rel' => 'prev'), _('After')); $this->elementEnd('li'); } if ($have_after) { $pargs = array('page' => $page+1); - $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->elementStart('li', array('class' => 'nav_next')); - $this->element('a', array('href' => common_local_url($action, $newargs), 'rel' => 'next'), + $this->element('a', array('href' => common_local_url($action, $args, $pargs), + 'rel' => 'next'), _('Before')); $this->elementEnd('li'); } @@ -940,6 +1042,19 @@ class Action extends HTMLOutputter // lawsuit } /** + * An array of feeds for this action. + * + * Returns an array of potential feeds for this action. + * + * @return array Feed object to show in head and links + */ + + function getFeeds() + { + return null; + } + + /** * Generate document metadata for sequential navigation * * @param boolean $have_before is there something before? @@ -958,17 +1073,15 @@ class Action extends HTMLOutputter // lawsuit // "next" is equivalent to "after" if ($have_next) { $pargs = array('page' => $page-1); - $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->element('link', array('rel' => 'next', - 'href' => common_local_url($action, $newargs), + 'href' => common_local_url($action, $args, $pargs), 'title' => _('Next'))); } // "previous" is equivalent to "before" if ($have_previous=true) { // FIXME $pargs = array('page' => $page+1); - $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->element('link', array('rel' => 'prev', - 'href' => common_local_url($action, $newargs), + 'href' => common_local_url($action, $args, $pargs), 'title' => _('Previous'))); } } diff --git a/classes/Channel.php b/lib/channel.php index fdeff21fc..f1e205546 100644 --- a/classes/Channel.php +++ b/lib/channel.php @@ -21,7 +21,6 @@ if (!defined('LACONICA')) { exit(1); } class Channel { - function on($user) { return false; diff --git a/lib/clienterroraction.php b/lib/clienterroraction.php index 5019dc06d..0c48414d5 100644 --- a/lib/clienterroraction.php +++ b/lib/clienterroraction.php @@ -49,7 +49,7 @@ class ClientErrorAction extends ErrorAction function __construct($message='Error', $code=400) { parent::__construct($message, $code); - + $this->status = array(400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', @@ -72,7 +72,7 @@ class ClientErrorAction extends ErrorAction } // XXX: Should these error actions even be invokable via URI? - + function handle($args) { parent::handle($args); @@ -84,11 +84,16 @@ class ClientErrorAction extends ErrorAction } $this->message = $this->trimmed('message'); - + if (!$this->message) { - $this->message = "Client Error $this->code"; - } + $this->message = "Client Error $this->code"; + } $this->showPage(); } + + function title() + { + return $this->status[$this->code]; + } } diff --git a/classes/Command.php b/lib/command.php index eacbdacb3..507990a0b 100644 --- a/classes/Command.php +++ b/lib/command.php @@ -19,18 +19,18 @@ if (!defined('LACONICA')) { exit(1); } -require_once(INSTALLDIR.'/classes/Channel.php'); +require_once(INSTALLDIR.'/lib/channel.php'); class Command { - + var $user = null; - + function __construct($user=null) { $this->user = $user; } - + function execute($channel) { return false; @@ -109,7 +109,7 @@ class StatsCommand extends Command $notices = new Notice(); $notices->profile_id = $this->user->id; $notice_count = (int) $notices->count(); - + $channel->output($this->user, sprintf(_("Subscriptions: %1\$s\n". "Subscribers: %2\$s\n". "Notices: %3\$s"), @@ -121,21 +121,21 @@ class StatsCommand extends Command class FavCommand extends Command { - + var $other = null; - + function __construct($user, $other) { parent::__construct($user); $this->other = $other; } - + function execute($channel) { - - $recipient = + + $recipient = common_relative_profile($this->user, common_canonical_nickname($this->other)); - + if (!$recipient) { $channel->error($this->user, _('No such user.')); return; @@ -145,7 +145,7 @@ class FavCommand extends Command $channel->error($this->user, _('User has no last notice')); return; } - + $fave = Fave::addNew($this->user, $notice); if (!$fave) { @@ -154,15 +154,15 @@ class FavCommand extends Command } $other = User::staticGet('id', $recipient->id); - + if ($other && $other->id != $user->id) { if ($other->email && $other->emailnotifyfav) { mail_notify_fave($other, $this->user, $notice); } } - + $this->user->blowFavesCache(); - + $channel->output($this->user, _('Notice marked as fave.')); } } @@ -175,17 +175,17 @@ class WhoisCommand extends Command parent::__construct($user); $this->other = $other; } - + function execute($channel) { - $recipient = + $recipient = common_relative_profile($this->user, common_canonical_nickname($this->other)); - + if (!$recipient) { $channel->error($this->user, _('No such user.')); return; } - + $whois = sprintf(_("%1\$s (%2\$s)"), $recipient->nickname, $recipient->profileurl); if ($recipient->fullname) { @@ -214,7 +214,7 @@ class MessageCommand extends Command $this->other = $other; $this->text = $text; } - + function execute($channel) { $other = User::staticGet('nickname', common_canonical_nickname($this->other)); @@ -229,7 +229,7 @@ class MessageCommand extends Command return; } } - + if (!$other) { $channel->error($this->user, _('No such user.')); return; @@ -251,19 +251,19 @@ class MessageCommand extends Command class GetCommand extends Command { - + var $other = null; - + function __construct($user, $other) { parent::__construct($user); $this->other = $other; } - + function execute($channel) { $target_nickname = common_canonical_nickname($this->other); - + $target = common_relative_profile($this->user, $target_nickname); @@ -277,32 +277,32 @@ class GetCommand extends Command return; } $notice_content = $notice->content; - + $channel->output($this->user, $target_nickname . ": " . $notice_content); } } class SubCommand extends Command { - + var $other = null; - + function __construct($user, $other) { parent::__construct($user); $this->other = $other; } - + function execute($channel) { - + if (!$this->other) { $channel->error($this->user, _('Specify the name of the user to subscribe to')); return; } - + $result = subs_subscribe_user($this->user, $this->other); - + if ($result == 'true') { $channel->output($this->user, sprintf(_('Subscribed to %s'), $this->other)); } else { @@ -315,7 +315,7 @@ class UnsubCommand extends Command { var $other = null; - + function __construct($user, $other) { parent::__construct($user); @@ -328,9 +328,9 @@ class UnsubCommand extends Command $channel->error($this->user, _('Specify the name of the user to unsubscribe from')); return; } - + $result=subs_unsubscribe_user($this->user, $this->other); - + if ($result) { $channel->output($this->user, sprintf(_('Unsubscribed from %s'), $this->other)); } else { @@ -369,7 +369,7 @@ class OnCommand extends Command parent::__construct($user); $this->other = $other; } - + function execute($channel) { if ($other) { @@ -406,7 +406,7 @@ class HelpCommand extends Command "unsub <nickname> - same as 'leave'\n". "last <nickname> - same as 'get'\n". "on <nickname> - not yet implemented.\n". - "off <nickname> - not yet implemented.\n". + "off <nickname> - not yet implemented.\n". "nudge <nickname> - not yet implemented.\n". "invite <phone number> - not yet implemented.\n". "track <word> - not yet implemented.\n". diff --git a/classes/CommandInterpreter.php b/lib/commandinterpreter.php index 0679f5462..49c733c03 100644 --- a/classes/CommandInterpreter.php +++ b/lib/commandinterpreter.php @@ -19,11 +19,10 @@ if (!defined('LACONICA')) { exit(1); } -require_once(INSTALLDIR.'/classes/Command.php'); +require_once INSTALLDIR.'/lib/command.php'; class CommandInterpreter { - function handle_command($user, $text) { # XXX: localise diff --git a/lib/common.php b/lib/common.php index 7bfd14c42..b3882d207 100644 --- a/lib/common.php +++ b/lib/common.php @@ -19,7 +19,7 @@ if (!defined('LACONICA')) { exit(1); } -define('LACONICA_VERSION', '0.7.1'); +define('LACONICA_VERSION', '0.7.3'); define('AVATAR_PROFILE_SIZE', 96); define('AVATAR_STREAM_SIZE', 48); @@ -73,6 +73,8 @@ $config = 'theme' => 'default', 'path' => $_path, 'logfile' => null, + 'logo' => null, + 'logdebug' => false, 'fancy' => false, 'locale_path' => INSTALLDIR.'/locale', 'language' => 'en_US', @@ -84,7 +86,10 @@ $config = 'broughtbyurl' => null, 'closed' => false, 'inviteonly' => false, - 'private' => false), + 'private' => false, + 'ssl' => 'never', + 'sslserver' => null, + 'dupelimit' => 60), # default for same person saying the same thing 'syslog' => array('appname' => 'laconica', # for syslog 'priority' => 'debug'), # XXX: currently ignored @@ -106,7 +111,8 @@ $config = array('server' => null), 'public' => array('localonly' => true, - 'blacklist' => array()), + 'blacklist' => array(), + 'autosource' => array()), 'theme' => array('server' => null), 'throttle' => @@ -137,13 +143,19 @@ $config = 'user' => false, 'group' => false), 'integration' => - array('source' => 'Laconica'), # source attribute for Twitter + array('source' => 'Laconica', # source attribute for Twitter + 'taguri' => $_server.',2009'), # base for tag URIs 'memcached' => array('enabled' => false, 'server' => 'localhost', 'port' => 11211), + 'ping' => + array('notify' => array()), 'inboxes' => array('enabled' => true), # on by default for new sites + 'newuser' => + array('subscribe' => null, + 'welcome' => null), ); $config['db'] = &PEAR::getStaticProperty('DB_DataObject','options'); @@ -177,12 +189,31 @@ if (strlen($_path) > 0) { $_config_files[] = INSTALLDIR.'/config.php'; +$_have_a_config = false; + foreach ($_config_files as $_config_file) { if (file_exists($_config_file)) { include_once($_config_file); + $_have_a_config = true; } } +function _have_config() +{ + global $_have_a_config; + return $_have_a_config; +} + +// XXX: Throw a conniption if database not installed + +// Fixup for laconica.ini + +$_db_name = substr($config['db']['database'], strrpos($config['db']['database'], '/') + 1); + +if ($_db_name != 'laconica' && !array_key_exists('ini_'.$_db_name, $config['db'])) { + $config['db']['ini_'.$_db_name] = INSTALLDIR.'/classes/laconica.ini'; +} + // XXX: how many of these could be auto-loaded on use? require_once('Validate.php'); diff --git a/lib/dberroraction.php b/lib/dberroraction.php new file mode 100644 index 000000000..0dc92490c --- /dev/null +++ b/lib/dberroraction.php @@ -0,0 +1,73 @@ +<?php +/** + * DB error action. + * + * PHP version 5 + * + * @category Action + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Zach Copley <zach@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://laconi.ca/ + * + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2008, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/servererroraction.php'; + +/** + * Class for displaying DB Errors + * + * This only occurs if there's been a DB_DataObject_Error that's + * reported through PEAR, so we try to avoid doing anything that connects + * to the DB, so we don't trigger it again. + * + * @category Action + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://laconi.ca/ + */ + +class DBErrorAction extends ServerErrorAction +{ + function __construct($message='Error', $code=500) + { + parent::__construct($message, $code); + } + + function title() + { + return _('Database error'); + } + + function getLanguage() + { + // Don't try to figure out user's language; just show the page + return common_config('site', 'language'); + } + + function showPrimaryNav() + { + // don't show primary nav + } +} diff --git a/lib/facebookutil.php b/lib/facebookutil.php index beab51366..ec3987273 100644 --- a/lib/facebookutil.php +++ b/lib/facebookutil.php @@ -25,21 +25,6 @@ define("FACEBOOK_SERVICE", 2); // Facebook is foreign_service ID 2 define("FACEBOOK_NOTICE_PREFIX", 1); define("FACEBOOK_PROMPTED_UPDATE_PREF", 2); -// Gets all the notices from users with a Facebook link since a given ID -function getFacebookNotices($since) -{ - $qry = 'SELECT notice.* ' . - 'FROM notice ' . - 'JOIN foreign_link ' . - 'WHERE notice.profile_id = foreign_link.user_id ' . - 'AND foreign_link.service = 2'; - - // XXX: What should the limit be? - //static function getStreamDirect($qry, $offset, $limit, $since_id, $before_id, $order, $since) { - - return Notice::getStreamDirect($qry, 0, 1000, 0, 0, null, $since); -} - function getFacebook() { $apikey = common_config('facebook', 'apikey'); @@ -52,3 +37,97 @@ function updateProfileBox($facebook, $flink, $notice) { $fbaction->updateProfileBox($notice); } +function isFacebookBound($notice, $flink) { + + // If the user does not want to broadcast to Facebook, move along + if (!($flink->noticesync & FOREIGN_NOTICE_SEND == FOREIGN_NOTICE_SEND)) { + common_log(LOG_INFO, "Skipping notice $notice->id " . + 'because user has FOREIGN_NOTICE_SEND bit off.'); + return false; + } + + $success = false; + + // If it's not a reply, or if the user WANTS to send @-replies... + if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || + ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { + + $success = true; + + // The two condition below are deal breakers: + + // Avoid a loop + if ($notice->source == 'Facebook') { + common_log(LOG_INFO, "Skipping notice $notice->id because its " . + 'source is Facebook.'); + $success = false; + } + + $facebook = getFacebook(); + $fbuid = $flink->foreign_id; + + try { + + // Check to see if the user has given the FB app status update perms + $result = $facebook->api_client-> + users_hasAppPermission('status_update', $fbuid); + + if ($result != 1) { + $user = $flink->getUser(); + $msg = "Can't send notice $notice->id to Facebook " . + "because user $user->nickname hasn't given the " . + 'Facebook app \'status_update\' permission.'; + common_log(LOG_INFO, $msg); + $success = false; + } + + } catch(FacebookRestClientException $e){ + common_log(LOG_ERR, $e->getMessage()); + $success = false; + } + + } + + return $success; + +} + + +function facebookBroadcastNotice($notice) +{ + $facebook = getFacebook(); + $flink = Foreign_link::getByUserID($notice->profile_id, FACEBOOK_SERVICE); + $fbuid = $flink->foreign_id; + + if (isFacebookBound($notice, $flink)) { + + $status = null; + + // Get the status 'verb' (prefix) the user has set + try { + $prefix = $facebook->api_client-> + data_getUserPreference(FACEBOOK_NOTICE_PREFIX, $fbuid); + + $status = "$prefix $notice->content"; + + } catch(FacebookRestClientException $e) { + common_log(LOG_ERR, $e->getMessage()); + return false; + } + + // Okay, we're good to go! + + try { + $facebook->api_client->users_setStatus($status, $fbuid, false, true); + updateProfileBox($facebook, $flink, $notice); + } catch(FacebookRestClientException $e) { + common_log(LOG_ERR, $e->getMessage()); + return false; + + // Should we remove flink if this fails? + } + + } + + return true; +} diff --git a/lib/featureduserssection.php b/lib/featureduserssection.php index 2935d8363..4b9238d47 100644 --- a/lib/featureduserssection.php +++ b/lib/featureduserssection.php @@ -57,9 +57,14 @@ class FeaturedUsersSection extends ProfileSection $quoted[] = "'$nick'"; } + $table = "user"; + if(common_config('db','quote_identifiers')) { + $table = '"' . $table . '"'; + } + $qry = 'SELECT profile.* ' . - 'FROM profile JOIN user on profile.id = user.id ' . - 'WHERE user.nickname in (' . implode(',', $quoted) . ') ' . + 'FROM profile JOIN '. $table .' on profile.id = '. $table .'.id ' . + 'WHERE '. $table .'.nickname in (' . implode(',', $quoted) . ') ' . 'ORDER BY profile.created DESC '; $limit = PROFILES_PER_SECTION + 1; @@ -86,4 +91,9 @@ class FeaturedUsersSection extends ProfileSection { return 'featured_users'; } + + function moreUrl() + { + return common_local_url('featured'); + } } diff --git a/lib/feed.php b/lib/feed.php new file mode 100644 index 000000000..466926844 --- /dev/null +++ b/lib/feed.php @@ -0,0 +1,110 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Data structure for info about syndication feeds (RSS 1.0, RSS 2.0, Atom) + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Feed + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @copyright 2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +/** + * Data structure for feeds + * + * This structure is a helpful container for shipping around information about syndication feeds. + * + * @category Feed + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +class Feed +{ + const RSS1 = 1; + const RSS2 = 2; + const ATOM = 3; + const FOAF = 4; + + var $type = null; + var $url = null; + var $title = null; + + function __construct($type, $url, $title) + { + $this->type = $type; + $this->url = $url; + $this->title = $title; + } + + function mimeType() + { + switch ($this->type) { + case Feed::RSS1: + return 'application/rdf+xml'; + case Feed::RSS2: + return 'application/rss+xml'; + case Feed::ATOM: + return 'application/atom+xml'; + case Feed::FOAF: + return 'application/rdf+xml'; + default: + return null; + } + } + + function typeName() + { + switch ($this->type) { + case Feed::RSS1: + return _('RSS 1.0'); + case Feed::RSS2: + return _('RSS 2.0'); + case Feed::ATOM: + return _('Atom'); + case Feed::FOAF: + return _('FOAF'); + default: + return null; + } + } + + function rel() + { + switch ($this->type) { + case Feed::RSS1: + case Feed::RSS2: + case Feed::ATOM: + return 'alternate'; + case Feed::FOAF: + return 'meta'; + default: + return null; + } + } +} diff --git a/lib/feedlist.php b/lib/feedlist.php index 8bfcb9c5a..927e43c33 100644 --- a/lib/feedlist.php +++ b/lib/feedlist.php @@ -50,7 +50,7 @@ if (!defined('LACONICA')) { class FeedList extends Widget { var $action = null; - + function __construct($action=null) { parent::__construct($action); @@ -64,8 +64,8 @@ class FeedList extends Widget $this->out->element('h2', null, _('Export data')); $this->out->elementStart('ul', array('class' => 'xoxo')); - foreach ($feeds as $key => $value) { - $this->feedItem($feeds[$key]); + foreach ($feeds as $feed) { + $this->feedItem($feed); } $this->out->elementEnd('ul'); @@ -74,92 +74,27 @@ class FeedList extends Widget function feedItem($feed) { - $nickname = $this->action->trimmed('nickname'); - - switch($feed['item']) { - case 'notices': default: - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "$nickname's ".$feed['version']." notice feed"; - $feed['textContent'] = "RSS"; - break; - - case 'allrss': - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = $feed['version']." feed for $nickname and friends"; - $feed['textContent'] = "RSS"; - break; - - case 'repliesrss': - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = $feed['version']." feed for replies to $nickname"; - $feed['textContent'] = "RSS"; - break; - - case 'publicrss': - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "Public timeline ".$feed['version']." feed"; - $feed['textContent'] = "RSS"; - break; - - case 'publicatom': - $feed_classname = "atom"; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "Public timeline ".$feed['version']." feed"; - $feed['textContent'] = "Atom"; - break; - - case 'noticesearchrss': - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = $feed['version']." feed for this notice search"; - $feed['textContent'] = "RSS"; - break; - - case 'tagrss': - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = $feed['version']." feed for this tag"; - $feed['textContent'] = "RSS"; - break; + $classname = null; - case 'favoritedrss': - $feed_classname = $feed['type']; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "Favorited ".$feed['version']." feed"; - $feed['textContent'] = "RSS"; + switch ($feed->type) { + case Feed::RSS1: + case Feed::RSS2: + $classname = 'rss'; break; - - case 'foaf': - $feed_classname = "foaf"; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "$nickname's FOAF file"; - $feed['textContent'] = "FOAF"; + case Feed::ATOM: + $classname = 'atom'; break; - - case 'favoritesrss': - $feed_classname = "favorites"; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "Feed for favorites of $nickname"; - $feed['textContent'] = "RSS"; - break; - - case 'usertimeline': - $feed_classname = "atom"; - $feed_mimetype = "application/".$feed['type']."+xml"; - $feed_title = "$nickname's ".$feed['version']." notice feed"; - $feed['textContent'] = "Atom"; + case Feed::FOAF: + $classname = 'foaf'; break; } + $this->out->elementStart('li'); - $this->out->element('a', array('href' => $feed['href'], - 'class' => $feed_classname, - 'type' => $feed_mimetype, - 'title' => $feed_title), - $feed['textContent']); + $this->out->element('a', array('href' => $feed->url, + 'class' => $classname, + 'type' => $feed->mimeType(), + 'title' => $feed->title), + $feed->typeName()); $this->out->elementEnd('li'); } } diff --git a/lib/galleryaction.php b/lib/galleryaction.php index 25a5e3fd5..8e21d7393 100644 --- a/lib/galleryaction.php +++ b/lib/galleryaction.php @@ -50,7 +50,7 @@ class GalleryAction extends Action if ($this->arg('page') && $this->arg('page') != 1) { $args['page'] = $this->arg['page']; } - common_redirect(common_local_url('subscriptions', $args), 301); + common_redirect(common_local_url($this->trimmed('action'), $args), 301); return false; } @@ -71,6 +71,7 @@ class GalleryAction extends Action $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; $this->tag = $this->trimmed('tag'); + $this->q = $this->trimmed('q'); return true; } @@ -87,7 +88,7 @@ class GalleryAction extends Action # Post from the tag dropdown; redirect to a GET if ($_SERVER['REQUEST_METHOD'] == 'POST') { - common_redirect($this->selfUrl(), 307); + common_redirect($this->selfUrl(), 303); return; } @@ -136,7 +137,7 @@ class GalleryAction extends Action 'method' => 'post')); $this->dropdown('tag', _('Tag'), $content, _('Choose a tag to narrow list'), false, $tag); - $this->submit('go', _('Go')); + $this->submit('submit', _('Go')); $this->elementEnd('form'); $this->elementEnd('li'); $this->elementEnd('ul'); diff --git a/lib/grouplist.php b/lib/grouplist.php index 4c448e250..1b8547499 100644 --- a/lib/grouplist.php +++ b/lib/grouplist.php @@ -124,7 +124,7 @@ class GroupList extends Widget if ($this->group->location) { $this->out->elementStart('dl', 'entity_location'); $this->out->element('dt', null, _('Location')); - $this->out->elementStart('dd', 'location'); + $this->out->elementStart('dd', 'label'); $this->out->raw($this->highlight($this->group->location)); $this->out->elementEnd('dd'); $this->out->elementEnd('dl'); @@ -151,7 +151,7 @@ class GroupList extends Widget # If we're on a list with an owner (subscriptions or subscribers)... - if ($user && $user->id == $this->owner->id) { + if (!empty($user) && !empty($this->owner) && $user->id == $this->owner->id) { $this->showOwnerControls(); } diff --git a/lib/groupminilist.php b/lib/groupminilist.php index fe38d0340..ae2d237f1 100644 --- a/lib/groupminilist.php +++ b/lib/groupminilist.php @@ -33,7 +33,7 @@ if (!defined('LACONICA')) { require_once INSTALLDIR.'/lib/grouplist.php'; -define('GROUPS_PER_MINILIST', 80); +define('GROUPS_PER_MINILIST', 27); /** * Widget to show a list of groups, good for sidebar @@ -75,8 +75,9 @@ class GroupMiniList extends GroupList 'href' => $this->group->homeUrl(), 'rel' => 'contact group', 'class' => 'url')); - $logo = ($this->group->stream_logo) ? - $this->group->stream_logo : User_group::defaultLogo(AVATAR_STREAM_SIZE); + + $logo = ($this->group->mini_logo) ? + $this->group->mini_logo : User_group::defaultLogo(AVATAR_MINI_SIZE); $this->out->element('img', array('src' => $logo, 'width' => AVATAR_MINI_SIZE, diff --git a/lib/groupsbymemberssection.php b/lib/groupsbymemberssection.php index 4fa07a244..963e21f15 100644 --- a/lib/groupsbymemberssection.php +++ b/lib/groupsbymemberssection.php @@ -48,7 +48,7 @@ class GroupsByMembersSection extends GroupSection $qry = 'SELECT user_group.*, count(*) as value ' . 'FROM user_group JOIN group_member '. 'ON user_group.id = group_member.group_id ' . - 'GROUP BY user_group.id ' . + 'GROUP BY user_group.id,user_group.nickname,user_group.fullname,user_group.homepage,user_group.description,user_group.location,user_group.original_logo,user_group.homepage_logo,user_group.stream_logo,user_group.mini_logo,user_group.created,user_group.modified ' . 'ORDER BY value DESC '; $limit = GROUPS_PER_SECTION; diff --git a/lib/groupsbypostssection.php b/lib/groupsbypostssection.php index a5e33a93d..325b4033f 100644 --- a/lib/groupsbypostssection.php +++ b/lib/groupsbypostssection.php @@ -48,7 +48,7 @@ class GroupsByPostsSection extends GroupSection $qry = 'SELECT user_group.*, count(*) as value ' . 'FROM user_group JOIN group_inbox '. 'ON user_group.id = group_inbox.group_id ' . - 'GROUP BY user_group.id ' . + 'GROUP BY user_group.id,user_group.nickname,user_group.fullname,user_group.homepage,user_group.description,user_group.location,user_group.original_logo,user_group.homepage_logo,user_group.stream_logo,user_group.mini_logo,user_group.created,user_group.modified ' . 'ORDER BY value DESC '; $limit = GROUPS_PER_SECTION; diff --git a/lib/grouptagcloudsection.php b/lib/grouptagcloudsection.php index f05be85cb..5d68af28b 100644 --- a/lib/grouptagcloudsection.php +++ b/lib/grouptagcloudsection.php @@ -58,8 +58,14 @@ class GroupTagCloudSection extends TagCloudSection function getTags() { + if (common_config('db', 'type') == 'pgsql') { + $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; + } else { + $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; + } + $qry = 'SELECT notice_tag.tag, '. - 'sum(exp(-(now() - notice_tag.created)/%s)) as weight ' . + $weightexpr . ' as weight ' . 'FROM notice_tag JOIN notice ' . 'ON notice_tag.notice_id = notice.id ' . 'JOIN group_inbox on group_inbox.notice_id = notice.id ' . diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index e2319b1fd..06603ac05 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -101,29 +101,32 @@ class HTMLOutputter extends XMLOutputter $type = common_negotiate_type($cp, $sp); if (!$type) { - common_user_error(_('This page is not available in a '. - 'media type you accept'), 406); - exit(0); + throw new ClientException(_('This page is not available in a '. + 'media type you accept'), 406); } } header('Content-Type: '.$type); - + $this->extraHeaders(); $this->startXML('html', '-//W3C//DTD XHTML 1.0 Strict//EN', 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'); - // FIXME: correct language for interface - - $language = common_language(); + $language = $this->getLanguage(); $this->elementStart('html', array('xmlns' => 'http://www.w3.org/1999/xhtml', 'xml:lang' => $language, 'lang' => $language)); } + function getLanguage() + { + // FIXME: correct language for interface + return common_language(); + } + /** * Ends an HTML document * @@ -134,7 +137,7 @@ class HTMLOutputter extends XMLOutputter $this->elementEnd('html'); $this->endXML(); } - + /** * To specify additional HTTP headers for the action * diff --git a/lib/jabber.php b/lib/jabber.php index b385d3c5c..7d584ad01 100644 --- a/lib/jabber.php +++ b/lib/jabber.php @@ -114,7 +114,7 @@ function jabber_connect($resource=null) try { $conn->connect(true); // true = persistent connection } catch (XMPPHP_Exception $e) { - common_log(LOG_ERROR, $e->getMessage()); + common_log(LOG_ERR, $e->getMessage()); return false; } @@ -163,50 +163,25 @@ function jabber_send_notice($to, $notice) function jabber_format_entry($profile, $notice) { - // FIXME: notice url might be remote - - $noticeurl = common_local_url('shownotice', - array('notice' => $notice->id)); - - $msg = jabber_format_notice($profile, $notice); - - $self_url = common_local_url('userrss', array('nickname' => $profile->nickname)); - - $entry = "\n<entry xmlns='http://www.w3.org/2005/Atom'>\n"; - $entry .= "<source>\n"; - $entry .= "<title>" . $profile->nickname . " - " . common_config('site', 'name') . "</title>\n"; - $entry .= "<link href='" . htmlspecialchars($profile->profileurl) . "'/>\n"; - $entry .= "<link rel='self' type='application/rss+xml' href='" . $self_url . "'/>\n"; - $entry .= "<author><name>" . $profile->nickname . "</name></author>\n"; - $entry .= "<icon>" . $profile->avatarUrl(AVATAR_PROFILE_SIZE) . "</icon>\n"; - $entry .= "</source>\n"; - $entry .= "<title>" . htmlspecialchars($msg) . "</title>\n"; - $entry .= "<summary>" . htmlspecialchars($msg) . "</summary>\n"; - $entry .= "<link rel='alternate' href='" . $noticeurl . "' />\n"; - $entry .= "<id>". $notice->uri . "</id>\n"; - $entry .= "<published>".common_date_w3dtf($notice->created)."</published>\n"; - $entry .= "<updated>".common_date_w3dtf($notice->modified)."</updated>\n"; - if ($notice->reply_to) { - $replyurl = common_local_url('shownotice', - array('notice' => $notice->reply_to)); - $entry .= "<link rel='related' href='" . $replyurl . "'/>\n"; + $entry = $notice->asAtomEntry(true, true); + + $xs = new XMLStringer(); + $xs->elementStart('html', array('xmlns' => 'http://jabber.org/protocol/xhtml-im')); + $xs->elementStart('body', array('xmlns' => 'http://www.w3.org/1999/xhtml')); + $xs->element('a', array('href' => $profile->profileurl), + $profile->nickname); + $xs->text(": "); + if (!empty($notice->rendered)) { + $xs->raw($notice->rendered); + } else { + $xs->raw(common_render_content($notice->content, $notice)); } - $entry .= "</entry>\n"; - - $html = "\n<html xmlns='http://jabber.org/protocol/xhtml-im'>\n"; - $html .= "<body xmlns='http://www.w3.org/1999/xhtml'>\n"; - $html .= "<a href='".htmlspecialchars($profile->profileurl)."'>".$profile->nickname."</a>: "; - $html .= ($notice->rendered) ? $notice->rendered : common_render_content($notice->content, $notice); - $html .= "\n</body>\n"; - $html .= "\n</html>\n"; + $xs->elementEnd('body'); + $xs->elementEnd('html'); - $address = "<addresses xmlns='http://jabber.org/protocol/address'>\n"; - $address .= "<address type='replyto' jid='" . jabber_daemon_address() . "' />\n"; - $address .= "</addresses>\n"; + $html = $xs->getString(); - // FIXME: include a pubsub event, too. - - return $html . $entry . $address; + return $html . ' ' . $entry; } /** @@ -410,8 +385,8 @@ function jabber_broadcast_notice($notice) "ON $UT.id = notice_inbox.user_id " . 'WHERE notice_inbox.notice_id = ' . $notice->id . ' ' . 'AND notice_inbox.source = 2 ' . - 'AND user.jabber is not null ' . - 'AND user.jabbernotify = 1 '); + "AND $UT.jabber is not null " . + "AND $UT.jabbernotify = 1 "); while ($user->fetch()) { if (!array_key_exists($user->id, $sent_to)) { diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php new file mode 100644 index 000000000..f786c20a8 --- /dev/null +++ b/lib/jsonsearchresultslist.php @@ -0,0 +1,270 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * widget for displaying a list of notices + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @copyright 2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +/** + * widget-like class for showing JSON search results + * + * @category Search + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * + */ + +class JSONSearchResultsList +{ + protected $notice; // protected attrs invisible to json_encode() + protected $rpp; + + // The below attributes are carefully named so the JSON output from + // this obj matches the output from search.twitter.com + + var $results; + var $since_id; + var $max_id; + var $refresh_url; + var $results_per_page; + var $completed_in; + var $page; + var $query; + + /** + * constructor + * + * @param Notice $notice stream of notices from DB_DataObject + * @param string $query the original search query + * @param int $rpp the number of results to display per page + * @param int $page a page offset + * @param int $since_id only display notices newer than this + */ + + function __construct($notice, $query, $rpp, $page, $since_id = 0) + { + $this->notice = $notice; + $this->query = urlencode($query); + $this->results_per_page = $rpp; + $this->rpp = $rpp; + $this->page = $page; + $this->since_id = $since_id; + $this->results = array(); + } + + /** + * show the list of search results + * + * @return int $count of the search results listed. + */ + + function show() + { + $cnt = 0; + + $time_start = microtime(true); + + while ($this->notice->fetch() && $cnt <= $this->rpp) { + $cnt++; + + // XXX: Hmmm. this depends on desc sort order + if (!$this->max_id) { + $this->max_id = (int)$this->notice->id; + } + + if ($cnt > $this->rpp) { + break; + } + + $item = new ResultItem($this->notice); + array_push($this->results, $item); + } + + $time_end = microtime(true); + $this->completed_in = $time_end - $time_start; + + // Set other attrs + + $this->refresh_url = '?since_id=' . $this->max_id . + '&q=' . $this->query; + + // pagination stuff + + if ($cnt > $this->rpp) { + $this->next_page = '?page=' . ($this->page + 1) . + '&max_id=' . $this->max_id; + if ($this->rpp != 15) { + $this->next_page .= '&rpp=' . $this->rpp; + } + $this->next_page .= '&q=' . $this->query; + } + + if ($this->page > 1) { + $this->previous_page = '?page=' . ($this->page - 1) . + '&max_id=' . $this->max_id; + if ($this->rpp != 15) { + $this->previous_page .= '&rpp=' . $this->rpp; + } + $this->previous_page .= '&q=' . $this->query; + } + + print json_encode($this); + + return $cnt; + } +} + +/** + * widget for displaying a single JSON search result + * + * @category UI + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * @see JSONSearchResultsList + */ + +class ResultItem +{ + /** The notice this item is based on. */ + + protected $notice; // protected attrs invisible to json_encode() + + /** The profile associated with the notice. */ + + protected $profile; + + // The below attributes are carefully named so the JSON output from + // this obj matches the output from search.twitter.com + + var $text; + var $to_user_id; + var $to_user; + var $from_user; + var $id; + var $from_user_id; + var $iso_language_code; + var $source; + var $profile_image_url; + var $created_at; + + /** + * constructor + * + * Also initializes the profile attribute. + * + * @param Notice $notice The notice we'll display + */ + + function __construct($notice) + { + $this->notice = $notice; + $this->profile = $notice->getProfile(); + $this->buildResult(); + } + + /** + * Build a search result object + * + * This populates the the result in preparation for JSON encoding. + * + * @return void + */ + + function buildResult() + { + $this->text = $this->notice->content; + $replier_profile = null; + + if ($this->notice->reply_to) { + $reply = Notice::staticGet(intval($notice->reply_to)); + if ($reply) { + $replier_profile = $reply->getProfile(); + } + } + + $this->to_user_id = ($replier_profile) ? + intval($replier_profile->id) : null; + $this->to_user = ($replier_profile) ? + $replier_profile->nickname : null; + + $this->from_user = $this->profile->nickname; + $this->id = $this->notice->id; + $this->from_user_id = $this->profile->id; + + $user = User::staticGet('id', $this->profile->id); + + $this->iso_language_code = $this->user->language; + + $this->source = $this->getSourceLink($this->notice->source); + + $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE); + + $this->profile_image_url = ($avatar) ? + $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE); + + $this->created_at = common_date_rfc2822($this->notice->created); + } + + /** + * Show the source of the notice + * + * Either the name (and link) of the API client that posted the notice, + * or one of other other channels. + * + * @param string $source the source of the Notice + * + * @return string a fully rendered source of the Notice + */ + + function getSourceLink($source) + { + $source_name = _($source); + switch ($source) { + case 'web': + case 'xmpp': + case 'mail': + case 'omb': + case 'api': + break; + default: + $ns = Notice_source::staticGet($source); + if ($ns) { + $source_name = '<a href="' . $ns->url . '">' . $ns->name . '</a>'; + } + break; + } + + return $source_name; + } + +} diff --git a/lib/language.php b/lib/language.php index a73b73f28..cd6498d30 100644 --- a/lib/language.php +++ b/lib/language.php @@ -94,40 +94,43 @@ function get_nice_language_list() * Get a list of all languages that are enabled in the default config * * This should ONLY be called when setting up the default config in common.php. - * Any other attempt to get a list of lanugages should instead call + * Any other attempt to get a list of languages should instead call * common_config('site','languages') * * @return array mapping of language codes to language info */ function get_all_languages() { return array( - 'bg' => array('q' => 0.8, 'lang' => 'bg_BG', 'name' => 'Bulgarian', 'direction' => 'ltr'), - 'ca' => array('q' => 0.5, 'lang' => 'ca_ES', 'name' => 'Catalan', 'direction' => 'ltr'), - 'cs' => array('q' => 0.5, 'lang' => 'cs_CZ', 'name' => 'Czech', 'direction' => 'ltr'), - 'de' => array('q' => 0.5, 'lang' => 'de_DE', 'name' => 'German', 'direction' => 'ltr'), - 'el' => array('q' => 0.1, 'lang' => 'el', 'name' => 'Greek', 'direction' => 'ltr'), - 'en-us' => array('q' => 1, 'lang' => 'en_US', 'name' => 'English (US)', 'direction' => 'ltr'), - 'en-gb' => array('q' => 0.3, 'lang' => 'en_GB', 'name' => 'English (British)', 'direction' => 'ltr'), - 'en' => array('q' => 1, 'lang' => 'en', 'name' => 'English', 'direction' => 'ltr'), - 'es' => array('q' => 0.5, 'lang' => 'es', 'name' => 'Spanish', 'direction' => 'ltr'), - 'fr-fr' => array('q' => 0.2, 'lang' => 'fr_FR', 'name' => 'French', 'direction' => 'ltr'), - 'he' => array('q' => 0.5, 'lang' => 'he_IL', 'name' => 'Hebrew', 'direction' => 'ltr'), - 'it' => array('q' => 0.9, 'lang' => 'it_IT', 'name' => 'Italian', 'direction' => 'rtl'), - 'jp' => array('q' => 0.5, 'lang' => 'ja_JP', 'name' => 'Japanese', 'direction' => 'ltr'), -# 'ko' => array('q' => 0, 'lang' => 'ko', 'name' => 'Korean', 'direction' => 'ltr'), - 'mk' => array('q' => 0.5, 'lang' => 'mk_MK', 'name' => 'Macedonian', 'direction' => 'ltr'), - 'nb' => array('q' => 0.1, 'lang' => 'nb_NO', 'name' => 'Norwegian (bokmal)', 'direction' => 'ltr'), - 'nl' => array('q' => 0.5, 'lang' => 'nl_NL', 'name' => 'Dutch', 'direction' => 'ltr'), - 'pl' => array('q' => 0.5, 'lang' => 'pl_PL', 'name' => 'Polish', 'direction' => 'ltr'), -# 'pt' => array('q' => 0, 'lang' => 'pt', 'name' => 'Portuguese', 'direction' => 'ltr'), - 'pt-br' => array('q' => 0.7, 'lang' => 'pt_BR', 'name' => 'Portuguese Brazil', 'direction' => 'ltr'), - 'ru' => array('q' => 0.1, 'lang' => 'ru_RU', 'name' => 'Russian', 'direction' => 'ltr'), - 'sv' => array('q' => 0.9, 'lang' => 'sv_SE', 'name' => 'Swedish', 'direction' => 'ltr'), - 'te' => array('q' => 0.3, 'lang' => 'te_IN', 'name' => 'Telugu', 'direction' => 'ltr'), - 'tr' => array('q' => 0.5, 'lang' => 'tr_TR', 'name' => 'Turkish', 'direction' => 'ltr'), - 'uk' => array('q' => 0.7, 'lang' => 'uk_UA', 'name' => 'Ukrainian', 'direction' => 'ltr'), - 'vi' => array('q' => 0.7, 'lang' => 'vi_VN', 'name' => 'Vietnamese', 'direction' => 'ltr'), - 'zh-cn' => array('q' => 0.9, 'lang' => 'zh_CN', 'name' => 'Chinese (Simplified)', 'direction' => 'ltr'), - 'zh-hant' => array('q' => 0.2, 'lang' => 'zh_hant', 'name' => 'Chinese (Taiwanese)', 'direction' => 'ltr'), + 'bg' => array('q' => 0.8, 'lang' => 'bg_BG', 'name' => 'Bulgarian', 'direction' => 'ltr'), + 'ca' => array('q' => 0.5, 'lang' => 'ca_ES', 'name' => 'Catalan', 'direction' => 'ltr'), + 'cs' => array('q' => 0.5, 'lang' => 'cs_CZ', 'name' => 'Czech', 'direction' => 'ltr'), + 'de' => array('q' => 0.8, 'lang' => 'de_DE', 'name' => 'German', 'direction' => 'ltr'), + 'el' => array('q' => 0.1, 'lang' => 'el', 'name' => 'Greek', 'direction' => 'ltr'), + 'en-us' => array('q' => 1, 'lang' => 'en_US', 'name' => 'English (US)', 'direction' => 'ltr'), + 'en-gb' => array('q' => 1, 'lang' => 'en_GB', 'name' => 'English (British)', 'direction' => 'ltr'), + 'en' => array('q' => 1, 'lang' => 'en', 'name' => 'English', 'direction' => 'ltr'), + 'es' => array('q' => 1, 'lang' => 'es', 'name' => 'Spanish', 'direction' => 'ltr'), + 'fi' => array('q' => 1, 'lang' => 'fi', 'name' => 'Finnish', 'direction' => 'ltr'), + 'fr-fr' => array('q' => 1, 'lang' => 'fr_FR', 'name' => 'French', 'direction' => 'ltr'), + 'he' => array('q' => 0.5, 'lang' => 'he_IL', 'name' => 'Hebrew', 'direction' => 'rtl'), + 'it' => array('q' => 1, 'lang' => 'it_IT', 'name' => 'Italian', 'direction' => 'ltr'), + 'jp' => array('q' => 0.5, 'lang' => 'ja_JP', 'name' => 'Japanese', 'direction' => 'ltr'), + 'ko' => array('q' => 0.9, 'lang' => 'ko_KR', 'name' => 'Korean', 'direction' => 'ltr'), + 'mk' => array('q' => 0.5, 'lang' => 'mk_MK', 'name' => 'Macedonian', 'direction' => 'ltr'), + 'nb' => array('q' => 0.1, 'lang' => 'nb_NO', 'name' => 'Norwegian (Bokmål)', 'direction' => 'ltr'), + 'no' => array('q' => 0.1, 'lang' => 'nb_NO', 'name' => 'Norwegian (Bokmål)', 'direction' => 'ltr'), + 'nn' => array('q' => 1, 'lang' => 'nn_NO', 'name' => 'Norwegian (Nynorsk)', 'direction' => 'ltr'), + 'nl' => array('q' => 0.5, 'lang' => 'nl_NL', 'name' => 'Dutch', 'direction' => 'ltr'), + 'pl' => array('q' => 0.5, 'lang' => 'pl_PL', 'name' => 'Polish', 'direction' => 'ltr'), + 'pt' => array('q' => 0.1, 'lang' => 'pt', 'name' => 'Portuguese', 'direction' => 'ltr'), + 'pt-br' => array('q' => 0.9, 'lang' => 'pt_BR', 'name' => 'Portuguese Brazil', 'direction' => 'ltr'), + 'ru' => array('q' => 0.9, 'lang' => 'ru_RU', 'name' => 'Russian', 'direction' => 'ltr'), + 'sv' => array('q' => 0.8, 'lang' => 'sv_SE', 'name' => 'Swedish', 'direction' => 'ltr'), + 'te' => array('q' => 0.3, 'lang' => 'te_IN', 'name' => 'Telugu', 'direction' => 'ltr'), + 'tr' => array('q' => 0.5, 'lang' => 'tr_TR', 'name' => 'Turkish', 'direction' => 'ltr'), + 'uk' => array('q' => 1, 'lang' => 'uk_UA', 'name' => 'Ukrainian', 'direction' => 'ltr'), + 'vi' => array('q' => 0.8, 'lang' => 'vi_VN', 'name' => 'Vietnamese', 'direction' => 'ltr'), + 'zh-cn' => array('q' => 0.9, 'lang' => 'zh_CN', 'name' => 'Chinese (Simplified)', 'direction' => 'ltr'), + 'zh-hant' => array('q' => 0.2, 'lang' => 'zh_TW', 'name' => 'Chinese (Taiwanese)', 'direction' => 'ltr'), ); } diff --git a/lib/logingroupnav.php b/lib/logingroupnav.php index fd909581f..f23985f3a 100644 --- a/lib/logingroupnav.php +++ b/lib/logingroupnav.php @@ -70,16 +70,16 @@ class LoginGroupNav extends Widget function show() { // action => array('prompt', 'title') - $menu = - array('login' => - array(_('Login'), - _('Login with a username and password')), - 'register' => - array(_('Register'), - _('Sign up for a new account')), - 'openidlogin' => - array(_('OpenID'), - _('Login or register with OpenID'))); + $menu = array(); + + $menu['login'] = array(_('Login'), + _('Login with a username and password')); + if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + $menu['register'] = array(_('Register'), + _('Sign up for a new account')); + } + $menu['openidlogin'] = array(_('OpenID'), + _('Login or register with OpenID')); $action_name = $this->action->trimmed('action'); $this->action->elementStart('ul', array('class' => 'nav')); diff --git a/lib/mail.php b/lib/mail.php index a1faefc80..27a1d99dc 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -50,10 +50,9 @@ function mail_backend() static $backend = null; if (!$backend) { - global $config; - $backend = Mail::factory($config['mail']['backend'], - ($config['mail']['params']) ? - $config['mail']['params'] : + $backend = Mail::factory(common_config('mail', 'backend'), + (common_config('mail', 'params')) ? + common_config('mail', 'params') : array()); if (PEAR::isError($backend)) { common_server_error($backend->getMessage(), 500); @@ -555,17 +554,19 @@ function mail_notify_fave($other, $user, $notice) $body = sprintf(_("%1\$s just added your notice from %2\$s". " as one of their favorites.\n\n" . - "In case you forgot, you can see the text". - " of your notice here:\n\n" . + "The URL of your notice is:\n\n" . "%3\$s\n\n" . - "You can see the list of %1\$s's favorites here:\n\n" . + "The text of your notice is:\n\n" . "%4\$s\n\n" . + "You can see the list of %1\$s's favorites here:\n\n" . + "%5\$s\n\n" . "Faithfully yours,\n" . - "%5\$s\n"), + "%6\$s\n"), $bestname, common_exact_date($notice->created), common_local_url('shownotice', array('notice' => $notice->id)), + $notice->content, common_local_url('showfavorites', array('nickname' => $user->nickname)), common_config('site', 'name')); @@ -573,3 +574,53 @@ function mail_notify_fave($other, $user, $notice) common_init_locale(); mail_to_user($other, $subject, $body); } + +/** + * notify a user that they have received an "attn:" message AKA "@-reply" + * + * @param User $user The user who recevied the notice + * @param Notice $notice The notice that was sent + * + * @return void + */ + +function mail_notify_attn($user, $notice) +{ + if (!$user->email || !$user->emailnotifyattn) { + return; + } + + $sender = $notice->getProfile(); + + $bestname = $sender->getBestName(); + + common_init_locale($user->language); + + $subject = sprintf(_('%s sent a notice to your attention'), $bestname); + + $body = sprintf(_("%1\$s just sent a notice to your attention (an '@-reply') on %2\$s.\n\n". + "The notice is here:\n\n". + "\t%3\$s\n\n" . + "It reads:\n\n". + "\t%4\$s\n\n" . + "You can reply back here:\n\n". + "\t%5\$s\n\n" . + "The list of all @-replies for you here:\n\n" . + "%6\$s\n\n" . + "Faithfully yours,\n" . + "%2\$s\n\n" . + "P.S. You can turn off these email notifications here: %7\$s\n"), + $bestname, + common_config('site', 'name'), + common_local_url('shownotice', + array('notice' => $notice->id)), + $notice->content, + common_local_url('newnotice', + array('replyto' => $sender->nickname)), + common_local_url('replies', + array('nickname' => $user->nickname)), + common_local_url('emailsettings')); + + common_init_locale(); + mail_to_user($user, $subject, $body); +} diff --git a/lib/mailbox.php b/lib/mailbox.php index d77234549..01bbf5721 100644 --- a/lib/mailbox.php +++ b/lib/mailbox.php @@ -137,6 +137,9 @@ class MailboxAction extends PersonalAction $message->free(); unset($message); } + else { + $this->element('p', 'guide', _('You have no private messages. You can send private message to engage other users in conversation. People can send you messages for your eyes only.')); + } } function getMessages() diff --git a/lib/messageform.php b/lib/messageform.php index f41508305..b8878ec1f 100644 --- a/lib/messageform.php +++ b/lib/messageform.php @@ -132,20 +132,14 @@ class MessageForm extends Form $mutual_users->free(); unset($mutual_users); - $this->out->elementStart('ul', 'form_data'); - $this->out->elementStart('li', array('id' => 'notice_to')); $this->out->dropdown('to', _('To'), $mutual, null, false, ($this->to) ? $this->to->id : null); - $this->out->elementEnd('li'); - $this->out->elementStart('li', array('id' => 'notice_text')); $this->out->element('textarea', array('id' => 'notice_data-text', 'cols' => 35, 'rows' => 4, 'name' => 'content'), ($this->content) ? $this->content : ''); - $this->out->elementEnd('li'); - $this->out->elementEnd('ul'); } /** @@ -156,14 +150,10 @@ class MessageForm extends Form function formActions() { - $this->out->elementStart('ul', 'form_actions'); - $this->out->elementStart('li', array('id' => 'notice_submit')); $this->out->element('input', array('id' => 'notice_action-submit', 'class' => 'submit', 'name' => 'message_send', 'type' => 'submit', 'value' => _('Send'))); - $this->out->elementEnd('li'); - $this->out->elementEnd('ul'); } } diff --git a/lib/noticeform.php b/lib/noticeform.php index 0c991c969..606b5d028 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -134,9 +134,6 @@ class NoticeForm extends Form function formData() { - - $this->out->elementStart('ul', 'form_data'); - $this->out->elementStart('li', array('id' => 'notice_text')); $this->out->element('label', array('for' => 'notice_data-text'), sprintf(_('What\'s up, %s?'), $this->user->nickname)); // XXX: vary by defined max size @@ -145,8 +142,6 @@ class NoticeForm extends Form 'rows' => 4, 'name' => 'status_textarea'), ($this->content) ? $this->content : ''); - $this->out->elementEnd('li'); - $this->out->elementEnd('ul'); $this->out->elementStart('dl', 'form_note'); $this->out->element('dt', null, _('Available characters')); @@ -168,14 +163,10 @@ class NoticeForm extends Form function formActions() { - $this->out->elementStart('ul', 'form_actions'); - $this->out->elementStart('li', array('id' => 'notice_submit')); $this->out->element('input', array('id' => 'notice_action-submit', 'class' => 'submit', 'name' => 'status_submit', 'type' => 'submit', 'value' => _('Send'))); - $this->out->elementEnd('li'); - $this->out->elementEnd('ul'); } } diff --git a/lib/noticelist.php b/lib/noticelist.php index 9fc0126b3..4182d8808 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -258,8 +258,12 @@ class NoticeListItem extends Widget function showAuthor() { $this->out->elementStart('span', 'vcard author'); - $this->out->elementStart('a', array('href' => $this->profile->profileurl, - 'class' => 'url')); + $attrs = array('href' => $this->profile->profileurl, + 'class' => 'url'); + if (!empty($this->profile->fullname)) { + $attrs['title'] = $this->profile->fullname . ' (' . $this->profile->nickname . ') '; + } + $this->out->elementStart('a', $attrs); $this->showAvatar(); $this->showNickname(); $this->out->elementEnd('a'); @@ -387,6 +391,7 @@ class NoticeListItem extends Widget case 'xmpp': case 'mail': case 'omb': + case 'system': case 'api': $this->out->element('dd', null, $source_name); break; diff --git a/lib/noticesection.php b/lib/noticesection.php index 97b517529..94c2738ef 100644 --- a/lib/noticesection.php +++ b/lib/noticesection.php @@ -73,6 +73,11 @@ class NoticeSection extends Section function showNotice($notice) { $profile = $notice->getProfile(); + if (empty($profile)) { + common_log(LOG_WARNING, sprintf("Notice %d has no profile", + $notice->id)); + return; + } $this->out->elementStart('li', 'hentry notice'); $this->out->elementStart('div', 'entry-title'); $avatar = $profile->getAvatar(AVATAR_MINI_SIZE); @@ -96,7 +101,7 @@ class NoticeSection extends Section $this->out->elementStart('p', 'entry-content'); $this->out->raw($notice->rendered); $this->out->elementEnd('p'); - if ($notice->value) { + if (!empty($notice->value)) { $this->out->elementStart('p'); $this->out->text($notice->value); $this->out->elementEnd('p'); diff --git a/lib/oauthstore.php b/lib/oauthstore.php index 7ad3be20e..183164e17 100644 --- a/lib/oauthstore.php +++ b/lib/oauthstore.php @@ -54,16 +54,21 @@ class LaconicaOAuthDataStore extends OAuthDataStore } } + // http://oauth.net/core/1.0/#nonce + // "The Consumer SHALL then generate a Nonce value that is unique for + // all requests with that timestamp." + + // XXX: It's not clear why the token is here + function lookup_nonce($consumer, $token, $nonce, $timestamp) { $n = new Nonce(); $n->consumer_key = $consumer->key; - $n->tok = $token->key; + $n->ts = $timestamp; $n->nonce = $nonce; if ($n->find(true)) { return true; } else { - $n->timestamp = $timestamp; $n->created = DB_DataObject_Cast::dateTime(); $n->insert(); return false; diff --git a/lib/omb.php b/lib/omb.php index f2dbef5ba..e8e1acc41 100644 --- a/lib/omb.php +++ b/lib/omb.php @@ -206,7 +206,7 @@ function omb_post_notice_keys($notice, $postnoticeurl, $tk, $secret) $result = $fetcher->post($req->get_normalized_http_url(), $req->to_postdata(), - array('User-Agent' => 'Laconica/' . LACONICA_VERSION)); + array('User-Agent: Laconica/' . LACONICA_VERSION)); common_debug('Got HTTP result "'.print_r($result,true).'"', __FILE__); @@ -239,7 +239,7 @@ function omb_broadcast_profile($profile) while ($sub->fetch()) { $rp = Remote_profile::staticGet('id', $sub->subscriber); if ($rp) { - if (!$updated[$rp->updateprofileurl]) { + if (!array_key_exists($rp->updateprofileurl, $updated)) { if (omb_update_profile($profile, $rp, $sub)) { $updated[$rp->updateprofileurl] = true; } @@ -251,7 +251,6 @@ function omb_broadcast_profile($profile) function omb_update_profile($profile, $remote_profile, $subscription) { - global $config; # for license URL $user = User::staticGet($profile->id); $con = omb_oauth_consumer(); $token = new OAuthToken($subscription->token, $subscription->secret); @@ -291,11 +290,13 @@ function omb_update_profile($profile, $remote_profile, $subscription) common_debug('postdata = '.$req->to_postdata(), __FILE__); $result = $fetcher->post($req->get_normalized_http_url(), $req->to_postdata(), - array('User-Agent' => 'Laconica/' . LACONICA_VERSION)); + array('User-Agent: Laconica/' . LACONICA_VERSION)); common_debug('Got HTTP result "'.print_r($result,true).'"', __FILE__); - if ($result->status == 403) { # not authorized, don't send again + if (empty($result) || !$result) { + common_debug("Unable to contact " . $req->get_normalized_http_url()); + } else if ($result->status == 403) { # not authorized, don't send again common_debug('403 result, deleting subscription', __FILE__); $subscription->delete(); return false; @@ -304,7 +305,7 @@ function omb_update_profile($profile, $remote_profile, $subscription) return false; } else { # success! parse_str($result->body, $return); - if ($return['omb_version'] == OMB_VERSION_01) { + if (isset($return['omb_version']) && $return['omb_version'] === OMB_VERSION_01) { return true; } else { return false; diff --git a/lib/openid.php b/lib/openid.php index 860573702..3af7a39cf 100644 --- a/lib/openid.php +++ b/lib/openid.php @@ -64,6 +64,9 @@ function oid_set_last($openid_url) function oid_get_last() { + if (empty($_COOKIE[OPENID_COOKIE_KEY])) { + return null; + } $openid_url = $_COOKIE[OPENID_COOKIE_KEY]; if ($openid_url && strlen($openid_url) > 0) { return $openid_url; @@ -157,7 +160,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $auth_request->addExtension($sreg_request); } - $trust_root = common_local_url('public'); + $trust_root = common_root_url(true); $process_url = common_local_url($returnto); if ($auth_request->shouldSendRedirect()) { @@ -168,7 +171,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) } else if (Auth_OpenID::isFailure($redirect_url)) { return sprintf(_('Could not redirect to server: %s'), $redirect_url->message); } else { - common_redirect($redirect_url); + common_redirect($redirect_url, 303); } } else { // Generate form markup and render it. diff --git a/lib/peoplesearchresults.php b/lib/peoplesearchresults.php new file mode 100644 index 000000000..f8ab7cf3b --- /dev/null +++ b/lib/peoplesearchresults.php @@ -0,0 +1,75 @@ +<?php +/** + * People search results class + * + * PHP version 5 + * + * @category Widget + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Robin Millette <millette@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://laconi.ca/ + * + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2008, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/profilelist.php'; + +/** + * People search results class + * + * Derivative of ProfileList with specialization for highlighting search terms. + * + * @category Widget + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Robin Millette <millette@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://laconi.ca/ + * + * @see PeoplesearchAction + */ + +class PeopleSearchResults extends ProfileList +{ + var $terms = null; + var $pattern = null; + + function __construct($profile, $terms, $action) + { + parent::__construct($profile, $terms, $action); + $this->terms = array_map('preg_quote', + array_map('htmlspecialchars', $terms)); + $this->pattern = '/('.implode('|',$terms).')/i'; + } + + function highlight($text) + { + return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text)); + } + + function isReadOnly() + { + return true; + } +} + diff --git a/lib/personaltagcloudsection.php b/lib/personaltagcloudsection.php index 0882822db..978153a84 100644 --- a/lib/personaltagcloudsection.php +++ b/lib/personaltagcloudsection.php @@ -58,8 +58,14 @@ class PersonalTagCloudSection extends TagCloudSection function getTags() { - $qry = 'SELECT notice_tag.tag, '. - 'sum(exp(-(now() - notice_tag.created)/%s)) as weight ' . + if (common_config('db', 'type') == 'pgsql') { + $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; + } else { + $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; + } + + $qry = 'SELECT notice_tag.tag, '. + $weightexpr . ' as weight ' . 'FROM notice_tag JOIN notice ' . 'ON notice_tag.notice_id = notice.id ' . 'WHERE notice.profile_id = %d ' . diff --git a/lib/ping.php b/lib/ping.php new file mode 100644 index 000000000..3de541e9a --- /dev/null +++ b/lib/ping.php @@ -0,0 +1,122 @@ +<?php +/* + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2009, Control Yourself, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +if (!defined('LACONICA')) { exit(1); } + +function ping_broadcast_notice($notice) { + + if (!$notice->is_local) { + return true; + } + + # Array of servers, URL => type + $notify = common_config('ping', 'notify'); + $profile = $notice->getProfile(); + $tags = ping_notice_tags($notice); + + foreach ($notify as $notify_url => $type) { + switch ($type) { + case 'xmlrpc': + case 'extended': + $req = xmlrpc_encode_request('weblogUpdates.ping', + array($profile->nickname, # site name + common_local_url('showstream', + array('nickname' => $profile->nickname)), + common_local_url('shownotice', + array('notice' => $notice->id)), + common_local_url('userrss', + array('nickname' => $profile->nickname)), + $tags)); + + $context = stream_context_create(array('http' => array('method' => "POST", + 'header' => + "Content-Type: text/xml\r\n". + "User-Agent: Laconica/".LACONICA_VERSION."\r\n", + 'content' => $req))); + $file = file_get_contents($notify_url, false, $context); + + if ($file === false || mb_strlen($file) == 0) { + common_log(LOG_WARNING, + "XML-RPC empty results for ping ($notify_url, $notice->id) "); + continue; + } + + $response = xmlrpc_decode($file); + + if (xmlrpc_is_fault($response)) { + common_log(LOG_WARNING, + "XML-RPC error for ping ($notify_url, $notice->id) ". + "$response[faultString] ($response[faultCode])"); + } else { + common_log(LOG_INFO, + "Ping success for $notify_url $notice->id"); + } + break; + + case 'get': + case 'post': + $args = array('name' => $profile->nickname, + 'url' => common_local_url('showstream', + array('nickname' => $profile->nickname)), + 'changesURL' => common_local_url('userrss', + array('nickname' => $profile->nickname))); + + $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); + + if ($type === 'get') { + $result = $fetcher->get($notify_url . '?' . http_build_query($args), + array('User-Agent: Laconica/'.LACONICA_VERSION)); + } else { + $result = $fetcher->post($notify_url, + http_build_query($args), + array('User-Agent: Laconica/'.LACONICA_VERSION)); + } + if ($result->status != '200') { + common_log(LOG_WARNING, + "Ping error for '$notify_url' ($notice->id): ". + "$result->body"); + } else { + common_log(LOG_INFO, + "Ping success for '$notify_url' ($notice->id): ". + "'$result->body'"); + } + break; + + default: + common_log(LOG_WARNING, 'Unknown notify type for ' . $notify_url . ': ' . $type); + } + } + + return true; +} + +function ping_notice_tags($notice) { + $tag = new Notice_tag(); + $tag->notice_id = $notice->id; + $tags = array(); + if ($tag->find()) { + while ($tag->fetch()) { + $tags[] = $tag->tag; + } + $tag->free(); + unset($tag); + return implode('|', $tags); + } + return NULL; +}
\ No newline at end of file diff --git a/lib/popularnoticesection.php b/lib/popularnoticesection.php index 5734d8001..a8d47ef54 100644 --- a/lib/popularnoticesection.php +++ b/lib/popularnoticesection.php @@ -31,8 +31,6 @@ if (!defined('LACONICA')) { exit(1); } -define('NOTICES_PER_SECTION', 5); - /** * Base class for sections showing lists of notices * @@ -50,11 +48,28 @@ class PopularNoticeSection extends NoticeSection { function getNotices() { - $qry = 'SELECT notice.*, '. - 'sum(exp(-(now() - fave.modified) / %s)) as weight ' . - 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - 'GROUP BY fave.notice_id ' . - 'ORDER BY weight DESC'; + if (common_config('db', 'type') == 'pgsql') { + $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; + if (!empty($this->out->tag)) { + $tag = pg_escape_string($this->tag); + } + } else { + $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; + if (!empty($this->out->tag)) { + $tag = mysql_escape_string($this->out->tag); + } + } + $qry = "SELECT notice.*, $weightexpr as weight "; + if(isset($tag)) { + $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . + "WHERE notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag"; + } else { + $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id'; + } + $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' . + 'notice.rendered,notice.url,notice.created,notice.modified,' . + 'notice.reply_to,notice.is_local,notice.source ' . + 'ORDER BY weight DESC'; $offset = 0; $limit = NOTICES_PER_SECTION + 1; @@ -80,4 +95,9 @@ class PopularNoticeSection extends NoticeSection { return 'popular_notices'; } + + function moreUrl() + { + return common_local_url('favorited'); + } } diff --git a/lib/profileaction.php b/lib/profileaction.php new file mode 100644 index 000000000..c81924e31 --- /dev/null +++ b/lib/profileaction.php @@ -0,0 +1,242 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Common parent of Personal and Profile actions + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Personal + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @copyright 2008-2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/profileminilist.php'; +require_once INSTALLDIR.'/lib/groupminilist.php'; + +/** + * Profile action common superclass + * + * Abstracts out common code from profile and personal tabs + * + * @category Personal + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +class ProfileAction extends Action +{ + var $user = null; + var $page = null; + var $profile = null; + + function prepare($args) + { + parent::prepare($args); + + $nickname_arg = $this->arg('nickname'); + $nickname = common_canonical_nickname($nickname_arg); + + // Permanent redirect on non-canonical nickname + + if ($nickname_arg != $nickname) { + $args = array('nickname' => $nickname); + if ($this->arg('page') && $this->arg('page') != 1) { + $args['page'] = $this->arg['page']; + } + common_redirect(common_local_url($this->trimmed('action'), $args), 301); + return false; + } + + $this->user = User::staticGet('nickname', $nickname); + + if (!$this->user) { + $this->clientError(_('No such user.'), 404); + return false; + } + + $this->profile = $this->user->getProfile(); + + if (!$this->profile) { + $this->serverError(_('User has no profile.')); + return false; + } + + $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; + + common_set_returnto($this->selfUrl()); + + return true; + } + + function showSections() + { + $this->showSubscriptions(); + $this->showSubscribers(); + $this->showGroups(); + $this->showStatistics(); + } + + function showSubscriptions() + { + $profile = $this->user->getSubscriptions(0, PROFILES_PER_MINILIST + 1); + + $this->elementStart('div', array('id' => 'entity_subscriptions', + 'class' => 'section')); + + $this->element('h2', null, _('Subscriptions')); + + if ($profile) { + $pml = new ProfileMiniList($profile, $this->user, $this); + $cnt = $pml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } + } + + if ($cnt > PROFILES_PER_MINILIST) { + $this->elementStart('p'); + $this->element('a', array('href' => common_local_url('subscriptions', + array('nickname' => $this->profile->nickname)), + 'class' => 'more'), + _('All subscriptions')); + $this->elementEnd('p'); + } + + $this->elementEnd('div'); + } + + function showSubscribers() + { + $profile = $this->user->getSubscribers(0, PROFILES_PER_MINILIST + 1); + + $this->elementStart('div', array('id' => 'entity_subscribers', + 'class' => 'section')); + + $this->element('h2', null, _('Subscribers')); + + if ($profile) { + $pml = new ProfileMiniList($profile, $this->user, $this); + $cnt = $pml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } + } + + if ($cnt > PROFILES_PER_MINILIST) { + $this->elementStart('p'); + $this->element('a', array('href' => common_local_url('subscribers', + array('nickname' => $this->profile->nickname)), + 'class' => 'more'), + _('All subscribers')); + $this->elementEnd('p'); + } + + $this->elementEnd('div'); + } + + function showStatistics() + { + // XXX: WORM cache this + $subs = new Subscription(); + $subs->subscriber = $this->profile->id; + $subs_count = (int) $subs->count() - 1; + + $subbed = new Subscription(); + $subbed->subscribed = $this->profile->id; + $subbed_count = (int) $subbed->count() - 1; + + $notices = new Notice(); + $notices->profile_id = $this->profile->id; + $notice_count = (int) $notices->count(); + + $this->elementStart('div', array('id' => 'entity_statistics', + 'class' => 'section')); + + $this->element('h2', null, _('Statistics')); + + // Other stats...? + $this->elementStart('dl', 'entity_member-since'); + $this->element('dt', null, _('Member since')); + $this->element('dd', null, date('j M Y', + strtotime($this->profile->created))); + $this->elementEnd('dl'); + + $this->elementStart('dl', 'entity_subscriptions'); + $this->elementStart('dt'); + $this->element('a', array('href' => common_local_url('subscriptions', + array('nickname' => $this->profile->nickname))), + _('Subscriptions')); + $this->elementEnd('dt'); + $this->element('dd', null, (is_int($subs_count)) ? $subs_count : '0'); + $this->elementEnd('dl'); + + $this->elementStart('dl', 'entity_subscribers'); + $this->elementStart('dt'); + $this->element('a', array('href' => common_local_url('subscribers', + array('nickname' => $this->profile->nickname))), + _('Subscribers')); + $this->elementEnd('dt'); + $this->element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0'); + $this->elementEnd('dl'); + + $this->elementStart('dl', 'entity_notices'); + $this->element('dt', null, _('Notices')); + $this->element('dd', null, (is_int($notice_count)) ? $notice_count : '0'); + $this->elementEnd('dl'); + + $this->elementEnd('div'); + } + + function showGroups() + { + $groups = $this->user->getGroups(0, GROUPS_PER_MINILIST + 1); + + $this->elementStart('div', array('id' => 'entity_groups', + 'class' => 'section')); + + $this->element('h2', null, _('Groups')); + + if ($groups) { + $gml = new GroupMiniList($groups, $this->user, $this); + $cnt = $gml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } + } + + if ($cnt > GROUPS_PER_MINILIST) { + $this->elementStart('p'); + $this->element('a', array('href' => common_local_url('usergroups', + array('nickname' => $this->profile->nickname)), + 'class' => 'more'), + _('All groups')); + $this->elementEnd('p'); + } + + $this->elementEnd('div'); + } +}
\ No newline at end of file diff --git a/lib/profilelist.php b/lib/profilelist.php index 4d924b039..a4cc23555 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -34,8 +34,6 @@ if (!defined('LACONICA')) { require_once INSTALLDIR.'/lib/widget.php'; -define('PROFILES_PER_PAGE', 20); - /** * Widget to show a list of profiles * @@ -91,6 +89,7 @@ class ProfileList extends Widget 'id' => 'profile-' . $this->profile->id)); $user = common_current_user(); + $is_own = !is_null($user) && isset($this->owner) && ($user->id === $this->owner->id); $this->out->elementStart('div', 'entity_profile vcard'); @@ -104,13 +103,13 @@ class ProfileList extends Widget 'alt' => ($this->profile->fullname) ? $this->profile->fullname : $this->profile->nickname)); - $hasFN = ($this->profile->fullname) ? 'nickname' : 'fn nickname'; + $hasFN = ($this->profile->fullname !== '') ? 'nickname' : 'fn nickname'; $this->out->elementStart('span', $hasFN); $this->out->raw($this->highlight($this->profile->nickname)); $this->out->elementEnd('span'); $this->out->elementEnd('a'); - if ($this->profile->fullname) { + if (!empty($this->profile->fullname)) { $this->out->elementStart('dl', 'entity_fn'); $this->out->element('dt', null, 'Full name'); $this->out->elementStart('dd'); @@ -120,15 +119,15 @@ class ProfileList extends Widget $this->out->elementEnd('dd'); $this->out->elementEnd('dl'); } - if ($this->profile->location) { + if (!empty($this->profile->location)) { $this->out->elementStart('dl', 'entity_location'); $this->out->element('dt', null, _('Location')); - $this->out->elementStart('dd', 'location'); + $this->out->elementStart('dd', 'label'); $this->out->raw($this->highlight($this->profile->location)); $this->out->elementEnd('dd'); $this->out->elementEnd('dl'); } - if ($this->profile->homepage) { + if (!empty($this->profile->homepage)) { $this->out->elementStart('dl', 'entity_url'); $this->out->element('dt', null, _('URL')); $this->out->elementStart('dd'); @@ -139,7 +138,7 @@ class ProfileList extends Widget $this->out->elementEnd('dd'); $this->out->elementEnd('dl'); } - if ($this->profile->bio) { + if (!empty($this->profile->bio)) { $this->out->elementStart('dl', 'entity_note'); $this->out->element('dt', null, _('Note')); $this->out->elementStart('dd', 'note'); @@ -156,7 +155,7 @@ class ProfileList extends Widget $this->out->elementStart('dl', 'entity_tags'); $this->out->elementStart('dt'); - if ($user->id == $this->owner->id) { + if ($is_own) { $this->out->element('a', array('href' => common_local_url('tagother', array('id' => $this->profile->id))), _('Tags')); @@ -185,7 +184,7 @@ class ProfileList extends Widget $this->out->elementEnd('dl'); } - if ($user && $user->id == $this->owner->id) { + if ($is_own) { $this->showOwnerControls($this->profile); } @@ -195,9 +194,10 @@ class ProfileList extends Widget $this->out->elementStart('ul'); - if ($user && $user->id != $this->profile->id) { - # XXX: special-case for user looking at own - # subscriptions page + // Is this a logged-in user, looking at someone else's + // profile? + + if (!empty($user) && $this->profile->id != $user->id) { $this->out->elementStart('li', 'entity_subscribe'); if ($user->isSubscribed($this->profile)) { $usf = new UnsubscribeForm($this->out, $this->profile); @@ -208,7 +208,7 @@ class ProfileList extends Widget } $this->out->elementEnd('li'); $this->out->elementStart('li', 'entity_block'); - if ($user && $user->id == $this->owner->id) { + if ($user->id == $this->owner->id) { $this->showBlockForm(); } $this->out->elementEnd('li'); diff --git a/lib/profileminilist.php b/lib/profileminilist.php index 0d466bba8..57496d0e9 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -33,7 +33,7 @@ if (!defined('LACONICA')) { require_once INSTALLDIR.'/lib/profilelist.php'; -define('PROFILES_PER_MINILIST', 80); +define('PROFILES_PER_MINILIST', 27); /** * Widget to show a list of profiles, good for sidebar diff --git a/lib/publicgroupnav.php b/lib/publicgroupnav.php index d72475e20..485d25e20 100644 --- a/lib/publicgroupnav.php +++ b/lib/publicgroupnav.php @@ -39,6 +39,7 @@ require_once INSTALLDIR.'/lib/widget.php'; * @category Output * @package Laconica * @author Evan Prodromou <evan@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://laconi.ca/ * @@ -73,23 +74,26 @@ class PublicGroupNav extends Widget $this->action->elementStart('ul', array('class' => 'nav')); - $this->out->menuItem(common_local_url('public'), _('Public'), - _('Public timeline'), $action_name == 'public', 'nav_timeline_public'); + if (Event::handle('StartPublicGroupNav', array($this))) { + $this->out->menuItem(common_local_url('public'), _('Public'), + _('Public timeline'), $action_name == 'public', 'nav_timeline_public'); - $this->out->menuItem(common_local_url('groups'), _('Groups'), - _('User groups'), $action_name == 'groups', 'nav_groups'); + $this->out->menuItem(common_local_url('groups'), _('Groups'), + _('User groups'), $action_name == 'groups', 'nav_groups'); - $this->out->menuItem(common_local_url('publictagcloud'), _('Recent tags'), - _('Recent tags'), $action_name == 'publictagcloud', 'nav_recent-tags'); + $this->out->menuItem(common_local_url('publictagcloud'), _('Recent tags'), + _('Recent tags'), $action_name == 'publictagcloud', 'nav_recent-tags'); - if (count(common_config('nickname', 'featured')) > 0) { - $this->out->menuItem(common_local_url('featured'), _('Featured'), - _('Featured users'), $action_name == 'featured', 'nav_featured'); - } + if (count(common_config('nickname', 'featured')) > 0) { + $this->out->menuItem(common_local_url('featured'), _('Featured'), + _('Featured users'), $action_name == 'featured', 'nav_featured'); + } - $this->out->menuItem(common_local_url('favorited'), _('Popular'), - _("Popular notices"), $action_name == 'favorited', 'nav_timeline_favorited'); + $this->out->menuItem(common_local_url('favorited'), _('Popular'), + _("Popular notices"), $action_name == 'favorited', 'nav_timeline_favorited'); + Event::handle('EndPublicGroupNav', array($this)); + } $this->action->elementEnd('ul'); } } diff --git a/lib/router.php b/lib/router.php index d47ad7118..6fb2f9487 100644 --- a/lib/router.php +++ b/lib/router.php @@ -47,8 +47,11 @@ require_once 'Net/URL/Mapper.php'; class Router { - static $m = null; + var $m = null; static $inst = null; + static $bare = array('requesttoken', 'accesstoken', 'userauthorization', + 'postnotice', 'updateprofile', 'finishremotesubscribe', + 'finishopenidlogin', 'finishaddopenid'); static function get() { @@ -65,8 +68,8 @@ class Router } } - function initialize() { - + function initialize() + { $m = Net_URL_Mapper::getInstance(); // In the "root" @@ -98,12 +101,17 @@ class Router $main = array('login', 'logout', 'register', 'subscribe', 'unsubscribe', 'confirmaddress', 'recoverpassword', 'invite', 'favor', 'disfavor', 'sup', - 'tagother', 'block'); + 'block', 'subedit'); foreach ($main as $a) { $m->connect('main/'.$a, array('action' => $a)); } + $m->connect('main/sup/:seconds', array('action' => 'sup'), + array('seconds' => '[0-9]+')); + + $m->connect('main/tagother/:id', array('action' => 'tagother')); + // these take a code foreach (array('register', 'confirmaddress', 'recoverpassword') as $c) { @@ -114,6 +122,11 @@ class Router $m->connect('main/openid', array('action' => 'openidlogin')); $m->connect('main/remote', array('action' => 'remotesubscribe')); + $m->connect('main/remote?nickname=:nickname', array('action' => 'remotesubscribe'), array('nickname' => '[A-Za-z0-9_-]+')); + + foreach (Router::$bare as $action) { + $m->connect('index.php?action=' . $action, array('action' => $action)); + } // settings @@ -126,13 +139,24 @@ class Router foreach (array('group', 'people', 'notice') as $s) { $m->connect('search/'.$s, array('action' => $s.'search')); + $m->connect('search/'.$s.'?q=:q', + array('action' => $s.'search'), + array('q' => '.+')); } + // The second of these is needed to make the link work correctly + // when inserted into the page. The first is needed to match the + // route on the way in. Seems to be another Net_URL_Mapper bug to me. $m->connect('search/notice/rss', array('action' => 'noticesearchrss')); + $m->connect('search/notice/rss?q=:q', array('action' => 'noticesearchrss'), + array('q' => '.+')); // notice $m->connect('notice/new', array('action' => 'newnotice')); + $m->connect('notice/new?replyto=:replyto', + array('action' => 'newnotice'), + array('replyto' => '[A-Za-z0-9_-]+')); $m->connect('notice/:notice', array('action' => 'shownotice'), array('notice' => '[0-9]+')); @@ -142,6 +166,7 @@ class Router array('notice' => '[0-9]+')); $m->connect('message/new', array('action' => 'newmessage')); + $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => '[A-Za-z0-9_-]+')); $m->connect('message/:message', array('action' => 'showmessage'), array('message' => '[0-9]+')); @@ -211,35 +236,47 @@ class Router $m->connect('api/statuses/:method/:argument', array('action' => 'api', 'apiaction' => 'statuses'), - array('method' => '(user_timeline|show|destroy|friends|followers)')); + array('method' => '(user_timeline|friends_timeline|replies|show|destroy|friends|followers)')); // users - $m->connect('api/users/show/:argument', + $m->connect('api/users/:method/:argument', array('action' => 'api', - 'apiaction' => 'users')); + 'apiaction' => 'users'), + array('method' => 'show(\.(xml|json))?')); $m->connect('api/users/:method', array('action' => 'api', 'apiaction' => 'users'), - array('method' => 'show(\.(xml|json|atom|rss))?')); + array('method' => 'show(\.(xml|json))?')); // direct messages - $m->connect('api/direct_messages/:method', - array('action' => 'api', - 'apiaction' => 'direct_messages'), - array('method' => '(sent|new)(\.(xml|json|atom|rss))?')); + foreach (array('xml', 'json') as $e) { + $m->connect('api/direct_messages/new.'.$e, + array('action' => 'api', + 'apiaction' => 'direct_messages', + 'method' => 'create.'.$e)); + } + + foreach (array('xml', 'json', 'rss', 'atom') as $e) { + $m->connect('api/direct_messages.'.$e, + array('action' => 'api', + 'apiaction' => 'direct_messages', + 'method' => 'direct_messages.'.$e)); + } + + foreach (array('xml', 'json', 'rss', 'atom') as $e) { + $m->connect('api/direct_messages/sent.'.$e, + array('action' => 'api', + 'apiaction' => 'direct_messages', + 'method' => 'sent.'.$e)); + } $m->connect('api/direct_messages/destroy/:argument', array('action' => 'api', 'apiaction' => 'direct_messages')); - $m->connect('api/:method', - array('action' => 'api', - 'apiaction' => 'direct_messages'), - array('method' => 'direct_messages(\.(xml|json|atom|rss))?')); - // friendships $m->connect('api/friendships/:method/:argument', @@ -250,7 +287,33 @@ class Router $m->connect('api/friendships/:method', array('action' => 'api', 'apiaction' => 'friendships'), - array('method' => 'exists(\.(xml|json|rss|atom))')); + array('method' => 'exists(\.(xml|json))')); + + // Social graph + + $m->connect('api/friends/ids/:argument', + array('action' => 'api', + 'apiaction' => 'statuses', + 'method' => 'friendsIDs')); + + foreach (array('xml', 'json') as $e) { + $m->connect('api/friends/ids.'.$e, + array('action' => 'api', + 'apiaction' => 'statuses', + 'method' => 'friendsIDs.'.$e)); + } + + $m->connect('api/followers/ids/:argument', + array('action' => 'api', + 'apiaction' => 'statuses', + 'method' => 'followersIDs')); + + foreach (array('xml', 'json') as $e) { + $m->connect('api/followers/ids.'.$e, + array('action' => 'api', + 'apiaction' => 'statuses', + 'method' => 'followersIDs.'.$e)); + } // account @@ -269,10 +332,12 @@ class Router 'apiaction' => 'favorites', 'method' => 'favorites')); - $m->connect('api/:method', - array('action' => 'api', - 'apiaction' => 'favorites'), - array('method' => 'favorites(\.(xml|json|rss|atom))?')); + foreach (array('xml', 'json', 'rss', 'atom') as $e) { + $m->connect('api/favorites.'.$e, + array('action' => 'api', + 'apiaction' => 'favorites', + 'method' => 'favorites.'.$e)); + } // notifications @@ -298,6 +363,11 @@ class Router array('action' => 'api', 'apiaction' => 'laconica')); + // search + $m->connect('api/search.atom', array('action' => 'twitapisearchatom')); + $m->connect('api/search.json', array('action' => 'twitapisearchjson')); + $m->connect('api/trends.json', array('action' => 'twitapitrends')); + // user stuff foreach (array('subscriptions', 'subscribers', @@ -340,15 +410,26 @@ class Router array('action' => 'showstream'), array('nickname' => '[a-zA-Z0-9]{1,64}')); + Event::handle('RouterInitialized', array($m)); + return $m; } function map($path) { - return $this->m->match($path); + try { + $match = $this->m->match($path); + } catch (Net_URL_Mapper_InvalidException $e) { + common_log(LOG_ERR, "Problem getting route for $path - " . + $e->getMessage()); + $cac = new ClientErrorAction("Page not found.", 404); + $cac->showPage(); + } + + return $match; } - function build($action, $args=null, $fragment=null) + function build($action, $args=null, $params=null, $fragment=null) { $action_arg = array('action' => $action); @@ -358,6 +439,17 @@ class Router $args = $action_arg; } - return $this->m->generate($args, null, $fragment); + $url = $this->m->generate($args, $params, $fragment); + + // Due to a bug in the Net_URL_Mapper code, the returned URL may + // contain a malformed query of the form ?p1=v1?p2=v2?p3=v3. We + // repair that here rather than modifying the upstream code... + + $qpos = strpos($url, '?'); + if ($qpos !== false) { + $url = substr($url, 0, $qpos+1) . + str_replace('?', '&', substr($url, $qpos+1)); + } + return $url; } -}
\ No newline at end of file +} diff --git a/lib/rssaction.php b/lib/rssaction.php index 131e8ac65..ddba862dc 100644 --- a/lib/rssaction.php +++ b/lib/rssaction.php @@ -38,6 +38,7 @@ class Rss10Action extends Action var $creators = array(); var $limit = DEFAULT_RSS_LIMIT; + var $notices = null; /** * Constructor @@ -93,8 +94,11 @@ class Rss10Action extends Action function handle($args) { + // Parent handling, including cache check parent::handle($args); - $this->showRss($this->limit); + // Get the list of notices + $this->notices = $this->getNotices($this->limit); + $this->showRss(); } /** @@ -128,15 +132,13 @@ class Rss10Action extends Action return null; } - function showRss($limit=0) + function showRss() { - $notices = $this->getNotices($limit); - $this->initRss(); - $this->showChannel($notices); + $this->showChannel(); $this->showImage(); - foreach ($notices as $n) { + foreach ($this->notices as $n) { $this->showItem($n); } @@ -144,7 +146,7 @@ class Rss10Action extends Action $this->endRss(); } - function showChannel($notices) + function showChannel() { $channel = $this->getChannel(); @@ -163,7 +165,7 @@ class Rss10Action extends Action $this->elementStart('items'); $this->elementStart('rdf:Seq'); - foreach ($notices as $notice) { + foreach ($this->notices as $notice) { $this->element('sioct:MicroblogPost', array('rdf:resource' => $notice->uri)); } @@ -258,5 +260,25 @@ class Rss10Action extends Action { $this->elementEnd('rdf:RDF'); } + + /** + * When was this page last modified? + * + */ + + function lastModified() + { + if (empty($this->notices)) { + return null; + } + + if (count($this->notices) == 0) { + return null; + } + + // FIXME: doesn't handle modified profiles, avatars, deleted notices + + return strtotime($this->notices[0]->created); + } } diff --git a/lib/search_engines.php b/lib/search_engines.php index 559107910..7b9dbb618 100644 --- a/lib/search_engines.php +++ b/lib/search_engines.php @@ -74,7 +74,7 @@ class SphinxSearch extends SearchEngine { //FIXME without LARGEST_POSSIBLE, the most recent results aren't returned // this probably has a large impact on performance - $LARGEST_POSSIBLE = 1e6; + $LARGEST_POSSIBLE = 1e6; if ($rss) { $this->sphinx->setLimits($offset, $count, $count, $LARGEST_POSSIBLE); @@ -109,12 +109,25 @@ class MySQLSearch extends SearchEngine { function query($q) { - if ('identica_people' === $this->table) - return $this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' . - 'against (\''.addslashes($q).'\')'); - if ('identica_notices' === $this->table) - return $this->target->whereAdd('MATCH(content) ' . - 'against (\''.addslashes($q).'\')'); + if ('identica_people' === $this->table) { + $this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' . + 'AGAINST (\''.addslashes($q).'\' IN BOOLEAN MODE)'); + if (strtolower($q) != $q) { + $this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' . + 'AGAINST (\''.addslashes(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR'); + } + return true; + } else if ('identica_notices' === $this->table) { + $this->target->whereAdd('MATCH(content) ' . + 'AGAINST (\''.addslashes($q).'\' IN BOOLEAN MODE)'); + if (strtolower($q) != $q) { + $this->target->whereAdd('MATCH(content) ' . + 'AGAINST (\''.addslashes(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR'); + } + return true; + } else { + throw new ServerException('Unknown table: ' . $this->table); + } } } @@ -122,10 +135,13 @@ class PGSearch extends SearchEngine { function query($q) { - if ('identica_people' === $this->table) + if ('identica_people' === $this->table) { return $this->target->whereAdd('textsearch @@ plainto_tsquery(\''.addslashes($q).'\')'); - if ('identica_notices' === $this->table) + } else if ('identica_notices' === $this->table) { return $this->target->whereAdd('to_tsvector(\'english\', content) @@ plainto_tsquery(\''.addslashes($q).'\')'); + } else { + throw new ServerException('Unknown table: ' . $this->table); + } } } diff --git a/lib/searchaction.php b/lib/searchaction.php index fdfb8dc5a..e7ad4affd 100644 --- a/lib/searchaction.php +++ b/lib/searchaction.php @@ -79,10 +79,11 @@ class SearchAction extends Action function showTop($arr=null) { + $error = null; if ($arr) { $error = $arr[1]; } - if ($error) { + if (!empty($error)) { $this->element('p', 'error', $error); } else { $instr = $this->getInstructions(); @@ -109,8 +110,6 @@ class SearchAction extends Action function showForm($error=null) { - global $config; - $q = $this->trimmed('q'); $page = $this->trimmed('page', 1); $this->elementStart('form', array('method' => 'get', @@ -121,7 +120,7 @@ class SearchAction extends Action $this->element('legend', null, _('Search site')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); - if (!isset($config['site']['fancy']) || !$config['site']['fancy']) { + if (!common_config('site', 'fancy')) { $this->hidden('action', $this->trimmed('action')); } $this->input('q', 'Keyword(s)', $q); @@ -134,5 +133,31 @@ class SearchAction extends Action $this->showResults($q, $page); } } + + function searchSuggestions($q) { + $qe = urlencode($q); + $message = sprintf(_(<<<E_O_T +* Make sure all words are spelled correctly. +* Try different keywords. +* Try more general keywords. +* Try fewer keywords. + +You can also try your search on other engines: + +* [Twingly](http://www.twingly.com/search?q=%s&content=microblog&site=identi.ca) +* [Tweet scan](http://www.tweetscan.com/indexi.php?s=%s) +* [Google](http://www.google.com/search?q=site%%3A%%%%site.server%%%%+%s) +* [Yahoo](http://search.yahoo.com/search?p=site%%3A%%%%site.server%%%%+%s) + + +E_O_T +), $qe, $qe, $qe, $qe); + $this->elementStart('dl', array('id' => 'help_search', 'class' => 'help')); + $this->element('dt', null, _('Search help')); + $this->elementStart('dd', 'instructions'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('dd'); + $this->elementEnd('div'); + } } diff --git a/lib/section.php b/lib/section.php index 0c32ddcf8..d14575086 100644 --- a/lib/section.php +++ b/lib/section.php @@ -103,6 +103,6 @@ class Section extends Widget function moreTitle() { - return null; + return _('More...'); } } diff --git a/lib/servererroraction.php b/lib/servererroraction.php index 80a3fdd7b..595dcf147 100644 --- a/lib/servererroraction.php +++ b/lib/servererroraction.php @@ -42,7 +42,7 @@ require_once INSTALLDIR.'/lib/error.php'; * says that 500 errors should be treated similarly to 400 errors, and * it's easier to give an HTML response. Maybe we can customize these * to display some funny animal cartoons. If not, we can probably role - * these classes up into a single class. + * these classes up into a single class. * * See: http://tools.ietf.org/html/rfc2616#section-10 * @@ -57,19 +57,19 @@ class ServerErrorAction extends ErrorAction function __construct($message='Error', $code=500) { parent::__construct($message, $code); - + $this->status = array(500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported'); - + $this->default = 500; } // XXX: Should these error actions even be invokable via URI? - + function handle($args) { parent::handle($args); @@ -81,12 +81,16 @@ class ServerErrorAction extends ErrorAction } $this->message = $this->trimmed('message'); - + if (!$this->message) { - $this->message = "Server Error $this->code"; - } + $this->message = "Server Error $this->code"; + } $this->showPage(); } - + + function title() + { + return $this->status[$this->code]; + } } diff --git a/lib/settingsaction.php b/lib/settingsaction.php index 53c807c6f..db20c5804 100644 --- a/lib/settingsaction.php +++ b/lib/settingsaction.php @@ -78,9 +78,9 @@ class SettingsAction extends Action common_set_returnto($this->selfUrl()); $user = common_current_user(); if ($user->hasOpenID()) { - common_redirect(common_local_url('openidlogin')); + common_redirect(common_local_url('openidlogin'), 303); } else { - common_redirect(common_local_url('login')); + common_redirect(common_local_url('login'), 303); } } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->handlePost(); diff --git a/lib/subgroupnav.php b/lib/subgroupnav.php index 5fd8a72a2..31c3ea0b5 100644 --- a/lib/subgroupnav.php +++ b/lib/subgroupnav.php @@ -98,7 +98,7 @@ class SubGroupNav extends Widget $this->user->nickname), $action == 'usergroups', 'nav_usergroups'); - if ($this->user->id == $cur->id) { + if (!is_null($cur) && $this->user->id === $cur->id) { $this->out->menuItem(common_local_url('invite'), _('Invite'), sprintf(_('Invite friends and colleagues to join you on %s'), diff --git a/lib/topposterssection.php b/lib/topposterssection.php index 4bd59ac79..1a2ce0014 100644 --- a/lib/topposterssection.php +++ b/lib/topposterssection.php @@ -51,7 +51,7 @@ class TopPostersSection extends ProfileSection $qry = 'SELECT profile.*, count(*) as value ' . 'FROM profile JOIN notice ON profile.id = notice.profile_id ' . (common_config('public', 'localonly') ? 'WHERE is_local = 1 ' : '') . - 'GROUP BY profile.id ' . + 'GROUP BY profile.id,nickname,fullname,profileurl,homepage,bio,location,profile.created,profile.modified,textsearch ' . 'ORDER BY value DESC '; $limit = PROFILES_PER_SECTION; diff --git a/lib/twitter.php b/lib/twitter.php index 197298549..ccc6c93ca 100644 --- a/lib/twitter.php +++ b/lib/twitter.php @@ -19,6 +19,8 @@ if (!defined('LACONICA')) { exit(1); } +define('TWITTER_SERVICE', 1); // Twitter is foreign_service ID 1 + function get_twitter_data($uri, $screen_name, $password) { @@ -28,14 +30,13 @@ function get_twitter_data($uri, $screen_name, $password) CURLOPT_FAILONERROR => true, CURLOPT_HEADER => false, CURLOPT_FOLLOWLOCATION => true, - # CURLOPT_USERAGENT => "identi.ca", + CURLOPT_USERAGENT => "Laconica", CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, # Twitter is strict about accepting invalid "Expect" headers CURLOPT_HTTPHEADER => array('Expect:') ); - $ch = curl_init($uri); curl_setopt_array($ch, $options); $data = curl_exec($ch); @@ -44,6 +45,10 @@ function get_twitter_data($uri, $screen_name, $password) if ($errmsg) { common_debug("Twitter bridge - cURL error: $errmsg - trying to load: $uri with user $screen_name.", __FILE__); + + if (defined('SCRIPT_DEBUG')) { + print "cURL error: $errmsg - trying to load: $uri with user $screen_name.\n"; + } } curl_close($ch); @@ -51,63 +56,141 @@ function get_twitter_data($uri, $screen_name, $password) return $data; } -function twitter_user_info($screen_name, $password) +function twitter_json_data($uri, $screen_name, $password) { + $json_data = get_twitter_data($uri, $screen_name, $password); - $uri = "http://twitter.com/users/show/$screen_name.json"; - $data = get_twitter_data($uri, $screen_name, $password); - - if (!$data) { + if (!$json_data) { return false; } - $twit_user = json_decode($data); + $data = json_decode($json_data); - if (!$twit_user) { + if (!$data) { return false; } - return $twit_user; + return $data; +} + +function twitter_user_info($screen_name, $password) +{ + $uri = "http://twitter.com/users/show/$screen_name.json"; + return twitter_json_data($uri, $screen_name, $password); +} + +function twitter_friends_ids($screen_name, $password) +{ + $uri = "http://twitter.com/friends/ids/$screen_name.json"; + return twitter_json_data($uri, $screen_name, $password); } -function update_twitter_user($fuser, $twitter_id, $screen_name) +function update_twitter_user($twitter_id, $screen_name) { + $uri = 'http://twitter.com/' . $screen_name; - $original = clone($fuser); - $fuser->nickname = $screen_name; - $fuser->uri = 'http://twitter.com/' . $screen_name; - $result = $fuser->updateKeys($original); + $fuser = new Foreign_user(); + + $fuser->query('BEGIN'); + + // Dropping down to SQL because regular db_object udpate stuff doesn't seem + // to work so good with tables that have multiple column primary keys + + // Any time we update the uri for a forein user we have to make sure there + // are no dupe entries first -- unique constraint on the uri column + + $qry = 'UPDATE foreign_user set uri = \'\' WHERE uri = '; + $qry .= '\'' . $uri . '\'' . ' AND service = ' . TWITTER_SERVICE; + + $result = $fuser->query($qry); + + if ($result) { + common_debug("Removed uri ($uri) from another foreign_user who was squatting on it."); + if (defined('SCRIPT_DEBUG')) { + print("Removed uri ($uri) from another Twitter user who was squatting on it.\n"); + } + } + + // Update the user + $qry = 'UPDATE foreign_user SET nickname = '; + $qry .= '\'' . $screen_name . '\'' . ', uri = \'' . $uri . '\' '; + $qry .= 'WHERE id = ' . $twitter_id . ' AND service = ' . TWITTER_SERVICE; + + $result = $fuser->query($qry); if (!$result) { + common_log(LOG_WARNING, + "Couldn't update foreign_user data for Twitter user: $screen_name"); common_log_db_error($fuser, 'UPDATE', __FILE__); + if (defined('SCRIPT_DEBUG')) { + print "UPDATE failed: for Twitter user: $twitter_id - $screen_name. - "; + print common_log_objstring($fuser) . "\n"; + $error = &PEAR::getStaticProperty('DB_DataObject','lastError'); + print "DB_DataObject Error: " . $error->getMessage() . "\n"; + } return false; } + $fuser->query('COMMIT'); + + $fuser->free(); + unset($fuser); + return true; } function add_twitter_user($twitter_id, $screen_name) { + $new_uri = 'http://twitter.com/' . $screen_name; + + // Clear out any bad old foreign_users with the new user's legit URL + // This can happen when users move around or fakester accounts get + // repoed, and things like that. + $luser = new Foreign_user(); + $luser->uri = $new_uri; + $luser->service = TWITTER_SERVICE; + $result = $luser->delete(); + + if ($result) { + common_log(LOG_WARNING, + "Twitter bridge - removed invalid Twitter user squatting on uri: $new_uri"); + if (defined('SCRIPT_DEBUG')) { + print "Removed invalid Twitter user squatting on uri: $new_uri\n"; + } + } + + $luser->free(); + unset($luser); + // Otherwise, create a new Twitter user - $fuser = DB_DataObject::factory('foreign_user'); + $fuser = new Foreign_user(); $fuser->nickname = $screen_name; $fuser->uri = 'http://twitter.com/' . $screen_name; $fuser->id = $twitter_id; - $fuser->service = 1; // Twitter + $fuser->service = TWITTER_SERVICE; $fuser->created = common_sql_now(); $result = $fuser->insert(); if (!$result) { - common_debug("Twitter bridge - failed to add new Twitter user: $twitter_id - $screen_name."); + common_log(LOG_WARNING, + "Twitter bridge - failed to add new Twitter user: $twitter_id - $screen_name."); common_log_db_error($fuser, 'INSERT', __FILE__); - return false; + if (defined('SCRIPT_DEBUG')) { + print "INSERT failed: could not add new Twitter user: $twitter_id - $screen_name. - "; + print common_log_objstring($fuser) . "\n"; + $error = &PEAR::getStaticProperty('DB_DataObject','lastError'); + print "DB_DataObject Error: " . $error->getMessage() . "\n"; + } + } else { + common_debug("Twitter bridge - Added new Twitter user: $screen_name ($twitter_id)."); + if (defined('SCRIPT_DEBUG')) { + print "Added new Twitter user: $screen_name ($twitter_id).\n"; + } } - common_debug("Twitter bridge - Added new Twitter user: $screen_name ($twitter_id)."); - - return true; + return $result; } // Creates or Updates a Twitter user @@ -116,53 +199,87 @@ function save_twitter_user($twitter_id, $screen_name) // Check to see whether the Twitter user is already in the system, // and update its screen name and uri if so. - $fuser = Foreign_user::getForeignUser($twitter_id, 1); + $fuser = Foreign_user::getForeignUser($twitter_id, TWITTER_SERVICE); if ($fuser) { + $result = true; + // Only update if Twitter screen name has changed if ($fuser->nickname != $screen_name) { + $result = update_twitter_user($twitter_id, $screen_name); common_debug('Twitter bridge - Updated nickname (and URI) for Twitter user ' . "$fuser->id to $screen_name, was $fuser->nickname"); - return update_twitter_user($fuser, $twitter_id, $screen_name); + if (defined('SCRIPT_DEBUG')) { + print 'Updated nickname (and URI) for Twitter user ' . + "$fuser->id to $screen_name, was $fuser->nickname\n"; + } } + return $result; + } else { return add_twitter_user($twitter_id, $screen_name); } + $fuser->free(); + unset($fuser); + return true; } function retreive_twitter_friends($twitter_id, $screen_name, $password) { + $friends = array(); $uri = "http://twitter.com/statuses/friends/$twitter_id.json?page="; - $twitter_user = twitter_user_info($screen_name, $password); + $friends_ids = twitter_friends_ids($screen_name, $password); + + if (!$friends_ids) { + return $friends; + } + + if (defined('SCRIPT_DEBUG')) { + print "Twitter 'social graph' ids method says $screen_name has " . + count($friends_ids) . " friends.\n"; + } // Calculate how many pages to get... - $pages = ceil($twitter_user->friends_count / 100); + $pages = ceil(count($friends_ids) / 100); if ($pages == 0) { - common_debug("Twitter bridge - Twitter user $screen_name has no friends! Lame."); + common_log(LOG_WARNING, + "Twitter bridge - $screen_name seems to have no friends."); + if (defined('SCRIPT_DEBUG')) { + print "$screen_name seems to have no friends.\n"; + } } - $friends = array(); - for ($i = 1; $i <= $pages; $i++) { $data = get_twitter_data($uri . $i, $screen_name, $password); if (!$data) { - return null; + common_log(LOG_WARNING, + "Twitter bridge - Couldn't retrieve page $i of $screen_name's friends."); + if (defined('SCRIPT_DEBUG')) { + print "Couldn't retrieve page $i of $screen_name's friends.\n"; + } + continue; } $more_friends = json_decode($data); if (!$more_friends) { - return null; + + common_log(LOG_WARNING, + "Twitter bridge - No data for page $i of $screen_name's friends."); + if (defined('SCRIPT_DEBUG')) { + print "No data for page $i of $screen_name's friends.\n"; + } + continue; } $friends = array_merge($friends, $more_friends); @@ -176,19 +293,27 @@ function save_twitter_friends($user, $twitter_id, $screen_name, $password) $friends = retreive_twitter_friends($twitter_id, $screen_name, $password); - if (is_null($friends)) { - common_debug("Twitter bridge - Couldn't get friends data from Twitter."); + if (empty($friends)) { + common_debug("Twitter bridge - Couldn't get friends data from Twitter for $screen_name."); + if (defined('SCRIPT_DEBUG')) { + print "Couldn't get friends data from Twitter for $screen_name.\n"; + } return false; } foreach ($friends as $friend) { $friend_name = $friend->screen_name; - $friend_id = $friend->id; + $friend_id = (int) $friend->id; // Update or create the Foreign_user record if (!save_twitter_user($friend_id, $friend_name)) { - return false; + common_log(LOG_WARNING, + "Twitter bridge - couldn't save $screen_name's friend, $friend_name."); + if (defined('SCRIPT_DEBUG')) { + print "Couldn't save $screen_name's friend, $friend_name.\n"; + } + continue; } // Check to see if there's a related local user @@ -198,11 +323,111 @@ function save_twitter_friends($user, $twitter_id, $screen_name, $password) // Get associated user and subscribe her $friend_user = User::staticGet('id', $flink->user_id); - subs_subscribe_to($user, $friend_user); - common_debug("Twitter bridge - subscribed $friend_user->nickname to $user->nickname."); + if (!empty($friend_user)) { + $result = subs_subscribe_to($user, $friend_user); + + if ($result === true) { + common_debug("Twitter bridge - subscribed $friend_user->nickname to $user->nickname."); + if (defined('SCRIPT_DEBUG')) { + print("Subscribed $friend_user->nickname to $user->nickname.\n"); + } + } else { + if (defined('SCRIPT_DEBUG')) { + print "$result ($friend_user->nickname to $user->nickname)\n"; + } + } + } } } return true; } +function is_twitter_bound($notice, $flink) { + + // Check to see if notice should go to Twitter + if ($flink->noticesync & FOREIGN_NOTICE_SEND) { + + // If it's not a Twitter-style reply, or if the user WANTS to send replies. + if (!preg_match('/^@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || + ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { + return true; + } + } + + return false; +} + +function broadcast_twitter($notice) +{ + $success = true; + + $flink = Foreign_link::getByUserID($notice->profile_id, + TWITTER_SERVICE); + + // XXX: Not sure WHERE to check whether a notice should go to + // Twitter. Should we even put in the queue if it shouldn't? --Zach + if (!is_null($flink) && is_twitter_bound($notice, $flink)) { + + $fuser = $flink->getForeignUser(); + $twitter_user = $fuser->nickname; + $twitter_password = $flink->credentials; + $uri = 'http://www.twitter.com/statuses/update.json'; + + // XXX: Hack to get around PHP cURL's use of @ being a a meta character + $statustxt = preg_replace('/^@/', ' @', $notice->content); + + $options = array( + CURLOPT_USERPWD => "$twitter_user:$twitter_password", + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => + array( + 'status' => $statustxt, + 'source' => common_config('integration', 'source') + ), + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FAILONERROR => true, + CURLOPT_HEADER => false, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_USERAGENT => "Laconica", + CURLOPT_CONNECTTIMEOUT => 120, // XXX: How long should this be? + CURLOPT_TIMEOUT => 120, + + # Twitter is strict about accepting invalid "Expect" headers + CURLOPT_HTTPHEADER => array('Expect:') + ); + + $ch = curl_init($uri); + curl_setopt_array($ch, $options); + $data = curl_exec($ch); + $errmsg = curl_error($ch); + + if ($errmsg) { + common_debug("cURL error: $errmsg - " . + "trying to send notice for $twitter_user.", + __FILE__); + $success = false; + } + + curl_close($ch); + + if (!$data) { + common_debug("No data returned by Twitter's " . + "API trying to send update for $twitter_user", + __FILE__); + $success = false; + } + + // Twitter should return a status + $status = json_decode($data); + + if (!$status->id) { + common_debug("Unexpected data returned by Twitter " . + " API trying to send update for $twitter_user", + __FILE__); + $success = false; + } + } + + return $success; +} diff --git a/lib/twitterapi.php b/lib/twitterapi.php index a4d183fcd..b8357c688 100644 --- a/lib/twitterapi.php +++ b/lib/twitterapi.php @@ -24,11 +24,33 @@ class TwitterapiAction extends Action var $auth_user; + /** + * Initialization. + * + * @param array $args Web and URL arguments + * + * @return boolean false if user doesn't exist + */ + + function prepare($args) + { + parent::prepare($args); + return true; + } + + /** + * Handle a request + * + * @param array $args Arguments from $_REQUEST + * + * @return void + */ + function handle($args) { parent::handle($args); } - + function twitter_user_array($profile, $get_notice=false) { @@ -60,20 +82,34 @@ class TwitterapiAction extends Action function twitter_status_array($notice, $include_user=true) { - $profile = $notice->getProfile(); $twitter_status = array(); $twitter_status['text'] = $notice->content; $twitter_status['truncated'] = 'false'; # Not possible on Laconica $twitter_status['created_at'] = $this->date_twitter($notice->created); - $twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ? intval($notice->reply_to) : null; + $twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ? + intval($notice->reply_to) : null; $twitter_status['source'] = $this->source_link($notice->source); $twitter_status['id'] = intval($notice->id); - $twitter_status['in_reply_to_user_id'] = ($notice->reply_to) ? $this->replier_by_reply(intval($notice->reply_to)) : null; + + $replier_profile = null; + + if ($notice->reply_to) { + $reply = Notice::staticGet(intval($notice->reply_to)); + if ($reply) { + $replier_profile = $reply->getProfile(); + } + } + + $twitter_status['in_reply_to_user_id'] = + ($replier_profile) ? intval($replier_profile->id) : null; + $twitter_status['in_reply_to_screen_name'] = + ($replier_profile) ? $replier_profile->nickname : null; if (isset($this->auth_user)) { - $twitter_status['favorited'] = ($this->auth_user->hasFave($notice)) ? 'true' : 'false'; + $twitter_status['favorited'] = + ($this->auth_user->hasFave($notice)) ? 'true' : 'false'; } else { $twitter_status['favorited'] = 'false'; } @@ -91,8 +127,6 @@ class TwitterapiAction extends Action { $profile = $notice->getProfile(); - - $server = common_config('site', 'server'); $entry = array(); # We trim() to avoid extraneous whitespace in the output @@ -101,8 +135,12 @@ class TwitterapiAction extends Action $entry['title'] = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content)); $entry['link'] = common_local_url('shownotice', array('notice' => $notice->id)); $entry['published'] = common_date_iso8601($notice->created); - $entry['id'] = "tag:$server,2008:$entry[link]"; + + $taguribase = common_config('integration', 'taguri'); + $entry['id'] = "tag:$taguribase:$entry[link]"; + $entry['updated'] = $entry['published']; + $entry['author'] = $profile->getBestName(); # RSS Item specific $entry['description'] = $entry['content']; @@ -115,7 +153,6 @@ class TwitterapiAction extends Action function twitter_rss_dmsg_array($message) { - $server = common_config('site', 'server'); $entry = array(); $entry['title'] = sprintf('Message from %s to %s', @@ -124,8 +161,12 @@ class TwitterapiAction extends Action $entry['content'] = common_xml_safe_str(trim($message->content)); $entry['link'] = common_local_url('showmessage', array('message' => $message->id)); $entry['published'] = common_date_iso8601($message->created); - $entry['id'] = "tag:$server,2008:$entry[link]"; + + $taguribase = common_config('integration', 'taguri'); + + $entry['id'] = "tag:$taguribase,:$entry[link]"; $entry['updated'] = $entry['published']; + $entry['author'] = $message->getFrom()->getBestName(); # RSS Item specific $entry['description'] = $entry['content']; @@ -137,7 +178,6 @@ class TwitterapiAction extends Action function twitter_dmsg_array($message) { - $twitter_dm = array(); $from_profile = $message->getFrom(); @@ -198,18 +238,6 @@ class TwitterapiAction extends Action $this->elementEnd('item'); } - function show_twitter_atom_entry($entry) - { - $this->elementStart('entry'); - $this->element('title', null, $entry['title']); - $this->element('content', array('type' => 'html'), $entry['content']); - $this->element('id', null, $entry['id']); - $this->element('published', null, $entry['published']); - $this->element('updated', null, $entry['updated']); - $this->element('link', array('href' => $entry['link'], 'rel' => 'alternate', 'type' => 'text/html'), null); - $this->elementEnd('entry'); - } - function show_json_objects($objects) { print(json_encode($objects)); @@ -323,7 +351,7 @@ class TwitterapiAction extends Action $this->end_twitter_rss(); } - function show_atom_timeline($notice, $title, $id, $link, $subtitle=null, $suplink=null) + function show_atom_timeline($notice, $title, $id, $link, $subtitle=null, $suplink=null, $selfuri=null) { $this->init_document('atom'); @@ -331,23 +359,29 @@ class TwitterapiAction extends Action $this->element('title', null, $title); $this->element('id', null, $id); $this->element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), null); + if (!is_null($suplink)) { # For FriendFeed's SUP protocol $this->element('link', array('rel' => 'http://api.friendfeed.com/2008/03#sup', 'href' => $suplink, 'type' => 'application/json')); } + + if (!is_null($selfuri)) { + $this->element('link', array('href' => $selfuri, + 'rel' => 'self', 'type' => 'application/atom+xml'), null); + } + + $this->element('updated', null, common_date_iso8601('now')); $this->element('subtitle', null, $subtitle); if (is_array($notice)) { foreach ($notice as $n) { - $entry = $this->twitter_rss_entry_array($n); - $this->show_twitter_atom_entry($entry); + $this->raw($n->asAtomEntry()); } } else { while ($notice->fetch()) { - $entry = $this->twitter_rss_entry_array($notice); - $this->show_twitter_atom_entry($entry); + $this->raw($notice->asAtomEntry()); } } @@ -387,22 +421,6 @@ class TwitterapiAction extends Action return date("D M d G:i:s O Y", $t); } - function replier_by_reply($reply_id) - { - $notice = Notice::staticGet($reply_id); - if ($notice) { - $profile = $notice->getProfile(); - if ($profile) { - return intval($profile->id); - } else { - common_debug('Can\'t find a profile for notice: ' . $notice->id, __FILE__); - } - } else { - common_debug("Can't get notice: $reply_id", __FILE__); - } - return null; - } - // XXX: Candidate for a general utility method somewhere? function count_subscriptions($profile) { @@ -543,13 +561,16 @@ class TwitterapiAction extends Action function init_twitter_atom() { $this->startXML(); - $this->elementStart('feed', array('xmlns' => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en-US')); + // FIXME: don't hardcode the language here! + $this->elementStart('feed', array('xmlns' => 'http://www.w3.org/2005/Atom', + 'xml:lang' => 'en-US', + 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0')); } function end_twitter_atom() { - $this->endXML(); $this->elementEnd('feed'); + $this->endXML(); } function show_profile($profile, $content_type='xml', $notice=null) @@ -615,79 +636,4 @@ class TwitterapiAction extends Action return $source_name; } - function show_extended_profile($user, $apidata) - { - - $this->auth_user = $apidata['user']; - - $profile = $user->getProfile(); - - if (!$profile) { - common_server_error(_('User has no profile.')); - return; - } - - $twitter_user = $this->twitter_user_array($profile, true); - - // Add in extended user fields offered up by this method - $twitter_user['created_at'] = $this->date_twitter($profile->created); - - $subbed = DB_DataObject::factory('subscription'); - $subbed->subscriber = $profile->id; - $subbed_count = (int) $subbed->count() - 1; - - $notices = DB_DataObject::factory('notice'); - $notices->profile_id = $profile->id; - $notice_count = (int) $notices->count(); - - $twitter_user['friends_count'] = (is_int($subbed_count)) ? $subbed_count : 0; - $twitter_user['statuses_count'] = (is_int($notice_count)) ? $notice_count : 0; - - // Other fields Twitter sends... - $twitter_user['profile_background_color'] = ''; - $twitter_user['profile_text_color'] = ''; - $twitter_user['profile_link_color'] = ''; - $twitter_user['profile_sidebar_fill_color'] = ''; - - $faves = DB_DataObject::factory('fave'); - $faves->user_id = $user->id; - $faves_count = (int) $faves->count(); - $twitter_user['favourites_count'] = $faves_count; - - $timezone = 'UTC'; - - if ($user->timezone) { - $timezone = $user->timezone; - } - - $t = new DateTime; - $t->setTimezone(new DateTimeZone($timezone)); - $twitter_user['utc_offset'] = $t->format('Z'); - $twitter_user['time_zone'] = $timezone; - - $following = 'false'; - - if (isset($this->auth_user)) { - if ($this->auth_user->isSubscribed($profile)) { - $following = 'true'; - } - - // Not implemented yet - $twitter_user['notifications'] = 'false'; - } - - $twitter_user['following'] = $following; - - if ($apidata['content-type'] == 'xml') { - $this->init_document('xml'); - $this->show_twitter_xml_user($twitter_user); - $this->end_document('xml'); - } elseif ($apidata['content-type'] == 'json') { - $this->init_document('json'); - $this->show_json_objects($twitter_user); - $this->end_document('json'); - } - - } - } diff --git a/lib/util.php b/lib/util.php index c0c980111..675ff51f0 100644 --- a/lib/util.php +++ b/lib/util.php @@ -72,8 +72,7 @@ function common_timezone() } } - global $config; - return $config['site']['timezone']; + return common_config('site', 'timezone'); } function common_language() @@ -81,7 +80,7 @@ function common_language() // If there is a user logged in and they've set a language preference // then return that one... - if (common_logged_in()) { + if (_have_config() && common_logged_in()) { $user = common_current_user(); $user_language = $user->language; if ($user_language) @@ -315,6 +314,10 @@ function common_current_user() { global $_cur; + if (!_have_config()) { + return null; + } + if ($_cur === false) { if (isset($_REQUEST[session_name()]) || (isset($_SESSION['userid']) && $_SESSION['userid'])) { @@ -394,20 +397,20 @@ function common_render_text($text) function common_replace_urls_callback($text, $callback) { // Start off with a regex - $regex = '# - (?: - (?: - (?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc):// - | - (?:mailto|aim|tel): - ) - [^.\s]+\.[^\s]+ - | - (?:[^.\s/:]+\.)+ - (?:museum|travel|[a-z]{2,4}) - (?:[:/][^\s]*)? - ) - #ix'; + $regex = '#'. + '(?:'. + '(?:'. + '(?:https?|ftps?|mms|rtsp|gopher|news|nntp|telnet|wais|file|prospero|webcal|xmpp|irc)://'. + '|'. + '(?:mailto|aim|tel):'. + ')'. + '[^.\s]+\.[^\s]+'. + '|'. + '(?:[^.\s/:]+\.)+'. + '(?:museum|travel|[a-z]{2,4})'. + '(?:[:/][^\s]*)?'. + ')'. + '#ix'; preg_match_all($regex, $text, $matches); // Then clean up what the regex left behind @@ -456,11 +459,14 @@ function common_replace_urls_callback($text, $callback) { if (!in_array($url_parts[2], $tlds)) continue; + // Make sure we didn't capture a hash tag + if (strpos($url, '#') === 0) continue; + // Put the url back the way we found it. $url = (mb_strpos($orig_url, htmlspecialchars($url)) === FALSE) ? $url:htmlspecialchars($url); // Call user specified func - $modified_url = $callback($url); + $modified_url = call_user_func($callback, $url); // Replace it! $start = mb_strpos($text, $url, $offset); @@ -472,16 +478,19 @@ function common_replace_urls_callback($text, $callback) { } function common_linkify($url) { + // It comes in special'd, so we unspecial it before passing to the stringifying + // functions + $url = htmlspecialchars_decode($url); $display = $url; - $url = (!preg_match('#^([a-z]+://|(mailto|aim|tel):)#i', $url)) ? 'http://'.$url:$url; + $url = (!preg_match('#^([a-z]+://|(mailto|aim|tel):)#i', $url)) ? 'http://'.$url : $url; + + $attrs = array('href' => $url, 'rel' => 'external'); if ($longurl = common_longurl($url)) { - $longurl = htmlentities($longurl, ENT_QUOTES, 'UTF-8'); - $title = "title=\"$longurl\""; + $attrs['title'] = $longurl; } - else $title = ''; - return "<a href=\"$url\" $title rel=\"external\">$display</a>"; + return XMLStringer::estring('a', $attrs, $display); } function common_longurl($short_url) @@ -572,17 +581,21 @@ function common_shorten_link($url, $reverse = false) function common_xml_safe_str($str) { - $xmlStr = htmlentities(iconv('UTF-8', 'UTF-8//IGNORE', $str), ENT_NOQUOTES, 'UTF-8'); - - // Replace control, formatting, and surrogate characters with '*', ala Twitter - return preg_replace('/[\p{Cc}\p{Cf}\p{Cs}]/u', '*', $str); + // Neutralize control codes and surrogates + return preg_replace('/[\p{Cc}\p{Cs}]/u', '*', $str); } function common_tag_link($tag) { $canonical = common_canonical_tag($tag); $url = common_local_url('tag', array('tag' => $canonical)); - return '<span class="tag"><a href="' . htmlspecialchars($url) . '" rel="tag">' . htmlspecialchars($tag) . '</a></span>'; + $xs = new XMLStringer(); + $xs->elementStart('span', 'tag'); + $xs->element('a', array('href' => $url, + 'rel' => 'tag'), + $tag); + $xs->elementEnd('span'); + return $xs->getString(); } function common_canonical_tag($tag) @@ -600,7 +613,24 @@ function common_at_link($sender_id, $nickname) $sender = Profile::staticGet($sender_id); $recipient = common_relative_profile($sender, common_canonical_nickname($nickname)); if ($recipient) { - return '<span class="vcard"><a href="'.htmlspecialchars($recipient->profileurl).'" class="url"><span class="fn nickname">'.$nickname.'</span></a></span>'; + $user = User::staticGet('id', $recipient->id); + if ($user) { + $url = common_local_url('userbyid', array('id' => $user->id)); + } else { + $url = $recipient->profileurl; + } + $xs = new XMLStringer(false); + $attrs = array('href' => $url, + 'class' => 'url'); + if (!empty($recipient->fullname)) { + $attrs['title'] = $recipient->fullname . ' (' . $recipient->nickname . ')'; + } + $xs->elementStart('span', 'vcard'); + $xs->elementStart('a', $attrs); + $xs->element('span', 'fn nickname', $nickname); + $xs->elementEnd('a'); + $xs->elementEnd('span'); + return $xs->getString(); } else { return $nickname; } @@ -611,7 +641,18 @@ function common_group_link($sender_id, $nickname) $sender = Profile::staticGet($sender_id); $group = User_group::staticGet('nickname', common_canonical_nickname($nickname)); if ($group && $sender->isMember($group)) { - return '<span class="vcard"><a href="'.htmlspecialchars($group->permalink()).'" class="url"><span class="fn nickname">'.$nickname.'</span></a></span>'; + $attrs = array('href' => $group->permalink(), + 'class' => 'url'); + if (!empty($group->fullname)) { + $attrs['title'] = $group->fullname . ' (' . $group->nickname . ')'; + } + $xs = new XMLStringer(); + $xs->elementStart('span', 'vcard'); + $xs->elementStart('a', $attrs); + $xs->element('span', 'fn nickname', $nickname); + $xs->elementEnd('a'); + $xs->elementEnd('span'); + return $xs->getString(); } else { return $nickname; } @@ -628,7 +669,13 @@ function common_at_hash_link($sender_id, $tag) $url = common_local_url('subscriptions', array('nickname' => $user->nickname, 'tag' => $tag)); - return '<span class="tag"><a href="'.htmlspecialchars($url).'" rel="tag">'.$tag.'</a></span>'; + $xs = new XMLStringer(); + $xs->elementStart('span', 'tag'); + $xs->element('a', array('href' => $url, + 'rel' => $tag), + $tag); + $xs->elementEnd('span'); + return $xs->getString(); } else { return $tag; } @@ -640,7 +687,7 @@ function common_relative_profile($sender, $nickname, $dt=null) $recipient = new Profile(); // XXX: use a join instead of a subquery $recipient->whereAdd('EXISTS (SELECT subscribed from subscription where subscriber = '.$sender->id.' and subscribed = id)', 'AND'); - $recipient->whereAdd('nickname = "' . trim($nickname) . '"', 'AND'); + $recipient->whereAdd("nickname = '" . trim($nickname) . "'", 'AND'); if ($recipient->find(true)) { // XXX: should probably differentiate between profiles with // the same name by date of most recent update @@ -650,7 +697,7 @@ function common_relative_profile($sender, $nickname, $dt=null) $recipient = new Profile(); // XXX: use a join instead of a subquery $recipient->whereAdd('EXISTS (SELECT subscriber from subscription where subscribed = '.$sender->id.' and subscriber = id)', 'AND'); - $recipient->whereAdd('nickname = "' . trim($nickname) . '"', 'AND'); + $recipient->whereAdd("nickname = '" . trim($nickname) . "'", 'AND'); if ($recipient->find(true)) { // XXX: should probably differentiate between profiles with // the same name by date of most recent update @@ -670,29 +717,48 @@ function common_relative_profile($sender, $nickname, $dt=null) return null; } -function common_local_url($action, $args=null, $fragment=null) +function common_local_url($action, $args=null, $params=null, $fragment=null) { - common_debug("Action = $action, args = " . (($args) ? '(' . implode($args, ',') . ')' : $args) . ", fragment = $fragment"); + static $sensitive = array('login', 'register', 'passwordsettings', + 'twittersettings', 'finishopenidlogin', + 'finishaddopenid', 'api'); + $r = Router::get(); - $start = microtime(); - $path = $r->build($action, $args, $fragment); - $end = microtime(); - common_debug("Pathbuilding took " . ($end - $start)); - if ($path) { - } + $path = $r->build($action, $args, $params, $fragment); + + $ssl = in_array($action, $sensitive); + if (common_config('site','fancy')) { - $url = common_path(mb_substr($path, 1)); + $url = common_path(mb_substr($path, 1), $ssl); } else { - $url = common_path('index.php'.$path); + if (mb_strpos($path, '/index.php') === 0) { + $url = common_path(mb_substr($path, 1), $ssl); + } else { + $url = common_path('index.php'.$path, $ssl); + } } return $url; } -function common_path($relative) +function common_path($relative, $ssl=false) { - global $config; - $pathpart = ($config['site']['path']) ? $config['site']['path']."/" : ''; - return "http://".$config['site']['server'].'/'.$pathpart.$relative; + $pathpart = (common_config('site', 'path')) ? common_config('site', 'path')."/" : ''; + + if (($ssl && (common_config('site', 'ssl') === 'sometimes')) + || common_config('site', 'ssl') === 'always') { + $proto = 'https'; + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $serverpart = common_config('site', 'sslserver'); + } else { + $serverpart = common_config('site', 'server'); + } + } else { + $proto = 'http'; + $serverpart = common_config('site', 'server'); + } + + return $proto.'://'.$serverpart.'/'.$pathpart.$relative; } function common_date_string($dt) @@ -782,7 +848,7 @@ function common_redirect($url, $code=307) 303 => "See Other", 307 => "Temporary Redirect"); - header("Status: ${code} $status[$code]"); + header('HTTP/1.1 '.$code.' '.$status[$code]); header("Location: $url"); $xo = new XMLOutputter(); @@ -796,24 +862,6 @@ function common_redirect($url, $code=307) function common_broadcast_notice($notice, $remote=false) { - - // Check to see if notice should go to Twitter - $flink = Foreign_link::getByUserID($notice->profile_id, 1); // 1 == Twitter - if (($flink->noticesync & FOREIGN_NOTICE_SEND) == FOREIGN_NOTICE_SEND) { - - // If it's not a Twitter-style reply, or if the user WANTS to send replies... - - if (!preg_match('/^@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || - (($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) == FOREIGN_NOTICE_SEND_REPLY)) { - - $result = common_twitter_broadcast($notice, $flink); - - if (!$result) { - common_debug('Unable to send notice: ' . $notice->id . ' to Twitter.', __FILE__); - } - } - } - if (common_config('queue', 'enabled')) { // Do it later! return common_enqueue_notice($notice); @@ -822,73 +870,11 @@ function common_broadcast_notice($notice, $remote=false) } } -function common_twitter_broadcast($notice, $flink) -{ - global $config; - $success = true; - $fuser = $flink->getForeignUser(); - $twitter_user = $fuser->nickname; - $twitter_password = $flink->credentials; - $uri = 'http://www.twitter.com/statuses/update.json'; - - // XXX: Hack to get around PHP cURL's use of @ being a a meta character - $statustxt = preg_replace('/^@/', ' @', $notice->content); - - $options = array( - CURLOPT_USERPWD => "$twitter_user:$twitter_password", - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => array( - 'status' => $statustxt, - 'source' => $config['integration']['source'] - ), - CURLOPT_RETURNTRANSFER => true, - CURLOPT_FAILONERROR => true, - CURLOPT_HEADER => false, - CURLOPT_FOLLOWLOCATION => true, - CURLOPT_USERAGENT => "Laconica", - CURLOPT_CONNECTTIMEOUT => 120, // XXX: Scary!!!! How long should this be? - CURLOPT_TIMEOUT => 120, - - # Twitter is strict about accepting invalid "Expect" headers - CURLOPT_HTTPHEADER => array('Expect:') - ); - - $ch = curl_init($uri); - curl_setopt_array($ch, $options); - $data = curl_exec($ch); - $errmsg = curl_error($ch); - - if ($errmsg) { - common_debug("cURL error: $errmsg - trying to send notice for $twitter_user.", - __FILE__); - $success = false; - } - - curl_close($ch); - - if (!$data) { - common_debug("No data returned by Twitter's API trying to send update for $twitter_user", - __FILE__); - $success = false; - } - - // Twitter should return a status - $status = json_decode($data); - - if (!$status->id) { - common_debug("Unexpected data returned by Twitter API trying to send update for $twitter_user", - __FILE__); - $success = false; - } - - return $success; -} - // Stick the notice on the queue function common_enqueue_notice($notice) { - foreach (array('jabber', 'omb', 'sms', 'public') as $transport) { + foreach (array('jabber', 'omb', 'sms', 'public', 'twitter', 'facebook', 'ping') as $transport) { $qi = new Queue_item(); $qi->notice_id = $notice->id; $qi->transport = $transport; @@ -935,6 +921,15 @@ function common_real_broadcast($notice, $remote=false) common_log(LOG_ERR, 'Error in public broadcast for notice ' . $notice->id); } } + if ($success) { + $success = broadcast_twitter($notice); + if (!$success) { + common_log(LOG_ERR, 'Error in Twitter broadcast for notice ' . $notice->id); + } + } + + // XXX: Do a real-time FB broadcast here? + // XXX: broadcast notices to other IM return $success; } @@ -955,9 +950,9 @@ function common_profile_url($nickname) // Should make up a reasonable root URL -function common_root_url() +function common_root_url($ssl=false) { - return common_path(''); + return common_path('', $ssl); } // returns $bytes bytes of random data as a hexadecimal string @@ -1016,8 +1011,7 @@ function common_ensure_syslog() { static $initialized = false; if (!$initialized) { - global $config; - openlog($config['syslog']['appname'], 0, LOG_USER); + openlog(common_config('syslog', 'appname'), 0, LOG_USER); $initialized = true; } } @@ -1327,3 +1321,16 @@ function common_compatible_license($from, $to) // XXX: better compatibility check needed here! return ($from == $to); } + +/** + * returns a quoted table name, if required according to config + */ +function common_database_tablename($tablename) +{ + + if(common_config('db','quote_identifiers')) { + $tablename = '"'. $tablename .'"'; + } + //table prefixes could be added here later + return $tablename; +}
\ No newline at end of file diff --git a/lib/xmlstringer.php b/lib/xmlstringer.php new file mode 100644 index 000000000..951b13b67 --- /dev/null +++ b/lib/xmlstringer.php @@ -0,0 +1,68 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Generator for in-memory XML + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Output + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @copyright 2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +/** + * Create in-memory XML + * + * @category Output + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * @see Action + * @see HTMLOutputter + */ + +class XMLStringer extends XMLOutputter +{ + function __construct($indent=false) + { + $this->xw = new XMLWriter(); + $this->xw->openMemory(); + $this->xw->setIndent($indent); + } + + function getString() + { + return $this->xw->outputMemory(); + } + + // utility for quickly creating XML-strings + + static function estring($tag, $attrs=null, $content=null) + { + $xs = new XMLStringer(); + $xs->element($tag, $attrs, $content); + return $xs->getString(); + } +}
\ No newline at end of file diff --git a/local/.gitignore b/local/.gitignore new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/local/.gitignore diff --git a/locale/de_DE/LC_MESSAGES/laconica.mo b/locale/de_DE/LC_MESSAGES/laconica.mo Binary files differindex 54db03dff..2084eb579 100644 --- a/locale/de_DE/LC_MESSAGES/laconica.mo +++ b/locale/de_DE/LC_MESSAGES/laconica.mo diff --git a/locale/de_DE/LC_MESSAGES/laconica.po b/locale/de_DE/LC_MESSAGES/laconica.po index aadde3208..dffce3775 100644 --- a/locale/de_DE/LC_MESSAGES/laconica.po +++ b/locale/de_DE/LC_MESSAGES/laconica.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-29 15:47+0000\n" -"Last-Translator: Mathias <mathias.reinhardt@web.de>\n" +"PO-Revision-Date: 2009-03-12 16:13+0000\n" +"Last-Translator: Evan Prodromou <evan@controlyourself.ca>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -99,11 +99,9 @@ msgstr "" "\n" "%6$s\n" "\n" -"Wenn nicht, ignoriere diese Nachricht. Danke für Deine Geduld und Deine " -"Zeit\n" +"Wenn nicht, ignoriere diese Nachricht. Danke für Deine Geduld und Deine Zeit\n" "\n" "Schöne Grüße von %2$s\n" -" " #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 #, php-format @@ -131,7 +129,7 @@ msgstr "" #: actions/twitapistatuses.php:350 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "" +msgstr "Nachrichten von %1$, die auf Nachrichten von %2$ / %3$ antworten." #: ../actions/shownotice.php:45 actions/shownotice.php:45 #: actions/shownotice.php:161 @@ -397,7 +395,7 @@ msgstr "Abonnement bestätigen" #: ../actions/login.php:104 ../actions/register.php:178 #: actions/register.php:192 msgid "Automatically login in the future; not for shared computers!" -msgstr "Automatisch einloggen; Nicht bei gemeinsam genutzten PCs einsetzen!" +msgstr "Automatisch einloggen; nicht bei gemeinsam genutzten PCs einsetzen!" #: ../actions/profilesettings.php:65 actions/profilesettings.php:98 msgid "" @@ -441,9 +439,8 @@ msgid "Awaiting confirmation on this phone number." msgstr "Warte auf die Bestätigung dieser Telefonnummer." #: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy msgid "Before »" -msgstr "Früher »" +msgstr "Ältere »" #: ../actions/profilesettings.php:49 ../actions/register.php:170 #: actions/profilesettings.php:82 actions/register.php:184 @@ -585,7 +582,7 @@ msgstr "" "* deine [Profildaten ergänzen](%%%%action.profilesettings%%%%) um mehr über " "dich zu veröffentlichen\n" "* die [Dokumentation](%%%%doc.help%%%%) lesen um mehr über weitere Features " -"zu erfahren\n" +"zu erfahren" #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 #: actions/finishopenidlogin.php:119 lib/action.php:330 @@ -634,7 +631,6 @@ msgid "Could not save new profile info" msgstr "Neue Profildaten konnten nicht gespeichert werden." #: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72 -#, fuzzy msgid "Could not subscribe other to you." msgstr "Die Gegenseite konnte Dich nicht abonnieren." @@ -993,9 +989,8 @@ msgstr "Homepage ist kein gültiger URL." #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 #: actions/emailsettings.php:173 -#, fuzzy msgid "I want to post notices by email." -msgstr "Ich möchte Einträge per E-Mail posten." +msgstr "Ich möchte Einträge per E-Mail veröffentlichen." #: ../lib/settingsaction.php:102 lib/settingsaction.php:96 #: lib/connectsettingsaction.php:104 @@ -1413,7 +1408,6 @@ msgstr "Keine ID." #: ../actions/emailsettings.php:271 actions/emailsettings.php:289 #: actions/emailsettings.php:430 -#, fuzzy msgid "No incoming email address." msgstr "Keine Eingangs-Emailadresse" @@ -1785,9 +1779,8 @@ msgstr "Leute" #: ../actions/opensearch.php:33 actions/opensearch.php:33 #: actions/opensearch.php:64 -#, fuzzy msgid "People Search" -msgstr "Suchen von Personen" +msgstr "Suche nach Nutzern" #: ../actions/peoplesearch.php:33 actions/peoplesearch.php:33 #: actions/peoplesearch.php:58 @@ -2100,7 +2093,6 @@ msgid "Send me notices through Jabber/GTalk." msgstr "Schicke mir Nachrichten mittels Jabber/GTalk." #: ../actions/smssettings.php:97 actions/smssettings.php:97 -#, fuzzy msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." @@ -2109,7 +2101,6 @@ msgstr "" "meinem Netzbetreiber entstehen können." #: ../actions/imsettings.php:76 actions/imsettings.php:77 -#, fuzzy msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Schicke mir Antworten von Leuten, die ich nicht abonniert habe, mit " @@ -2353,7 +2344,6 @@ msgid "These are the people whose notices you listen to." msgstr "Dies sind die Leute, deren Nachrichten du liest." #: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128 -#, fuzzy msgid "" "These people are already users and you were automatically subscribed to them:" msgstr "" @@ -2388,7 +2378,6 @@ msgstr "" #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 -#, fuzzy msgid "This method requires a POST or DELETE." msgstr "Diese Methode benötigt ein POST oder DELETE." @@ -2398,7 +2387,6 @@ msgstr "Diese Methode benötigt ein POST oder DELETE." #: actions/twitapistatuses.php:303 actions/twitapiaccount.php:53 #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 #: actions/twitapistatuses.php:244 -#, fuzzy msgid "This method requires a POST." msgstr "Diese Methode benötigt ein POST." @@ -2431,7 +2419,7 @@ msgstr "" #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 msgid "Two user ids or screen_names must be supplied." -msgstr "" +msgstr "Zwei IDs oder Benutzernamen müssen angegeben werden." #: ../actions/profilesettings.php:48 ../actions/register.php:169 #: actions/profilesettings.php:81 actions/register.php:183 @@ -2596,7 +2584,7 @@ msgstr "In welcher Zeitzone befinden Sie sich üblicherweise?" #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 #, php-format msgid "What's up, %s?" -msgstr "Was ist los, %s?\n" +msgstr "Was ist los, %s?" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 @@ -2621,7 +2609,7 @@ msgstr "Falsche Bildgröße bei '%s'" #: actions/block.php:148 actions/deletenotice.php:122 #: actions/deletenotice.php:141 msgid "Yes" -msgstr "" +msgstr "Ja" #: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64 #: actions/finishaddopenid.php:112 @@ -2633,6 +2621,8 @@ msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Du bist gerade dabei eine Nachricht unwiderruflich zu löschen. Diese Aktion " +"ist irreversibel." #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 @@ -2646,7 +2636,7 @@ msgstr "Du hast diese Benutzer bereits abonniert:" #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "" +msgstr "Der angebene Benutzer gehört nicht zu Deinem Freunde-Netzwerk" #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" diff --git a/locale/en_GB/LC_MESSAGES/laconica.mo b/locale/en_GB/LC_MESSAGES/laconica.mo Binary files differindex daeebef56..1459714e8 100644 --- a/locale/en_GB/LC_MESSAGES/laconica.mo +++ b/locale/en_GB/LC_MESSAGES/laconica.mo diff --git a/locale/en_GB/LC_MESSAGES/laconica.po b/locale/en_GB/LC_MESSAGES/laconica.po index 02ad09331..ec910d6e2 100644 --- a/locale/en_GB/LC_MESSAGES/laconica.po +++ b/locale/en_GB/LC_MESSAGES/laconica.po @@ -4,50 +4,50 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2009-03-12 16:15+0000\n" +"Last-Translator: Evan Prodromou <evan@controlyourself.ca>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# laconica.pot (laconica) #-#-#-#-#\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"X-Generator: Pootle 1.1.0\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 #, php-format msgid " Search Stream for \"%s\"" -msgstr "Search Stream for ‘%s’" +msgstr "Search Stream for \"%s\"" +# Adjusted for grammar. #: ../actions/finishopenidlogin.php:82 ../actions/register.php:191 #: actions/finishopenidlogin.php:88 actions/register.php:205 #: actions/finishopenidlogin.php:110 msgid "" " except this private data: password, email address, IM address, phone number." msgstr "" -"except this private data: password, e-mail address, IM address, phone number." +"except for the following private data: password, e-mail address, Instant " +"Messenger address and phone number." #: ../actions/showstream.php:400 ../lib/stream.php:109 #: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76 msgid " from " -msgstr "" +msgstr "from" #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 #: actions/twitapistatuses.php:347 #, php-format msgid "%1$s / Updates replying to %2$s" -msgstr "" +msgstr "%1$s / Updates replying to %2$s" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s has invited you to join them on %2$s" #: ../actions/invite.php:170 #, php-format @@ -79,6 +79,31 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" +"%1$s has invited you to join them on %2$s (%3$s).\n" +"\n" +"%2$s is a micro-blogging service that lets you keep up-to-date with people " +"you know and people who interest you.\n" +"\n" +"You can also share news about yourself, your thoughts, or your life online " +"with people who know about you. It's also great for meeting new people who " +"share your interests.\n" +"\n" +"%1$s said:\n" +"\n" +"%4$s\n" +"\n" +"You can see %1$s's profile page on %2$s here:\n" +"\n" +"%5$s\n" +"\n" +"If you'd like to try the service, click on the link below to accept the " +"invitation.\n" +"\n" +"%6$s\n" +"\n" +"If not, you can ignore this message. Thanks for your patience and your time.\n" +"\n" +"Sincerely, %2$s\n" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 #, php-format @@ -95,24 +120,30 @@ msgid "" "Faithfully yours,\n" "%4$s.\n" msgstr "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"Faithfully yours,\n" +"%4$s.\n" #: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415 #: actions/twitapistatuses.php:350 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "" +msgstr "%1$s updates that reply to updates from %2$s / %3$s." #: ../actions/shownotice.php:45 actions/shownotice.php:45 #: actions/shownotice.php:161 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1$s’s status on %2$s" +msgstr "%1$s's status on %2$s" #: ../actions/invite.php:84 ../actions/invite.php:92 actions/invite.php:91 #: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131 #, php-format msgid "%s (%s)" -msgstr "" +msgstr "%s (%s)" #: ../actions/publicrss.php:62 actions/publicrss.php:48 #: actions/publicrss.php:90 @@ -133,30 +164,32 @@ msgstr "%s and friends" #: actions/twitapistatuses.php:33 #, php-format msgid "%s public timeline" -msgstr "" +msgstr "%s public timeline" #: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 #, php-format msgid "%s status" -msgstr "" +msgstr "%s status" #: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265 #: actions/twitapistatuses.php:199 #, php-format msgid "%s timeline" -msgstr "" +msgstr "%s timeline" #: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52 #: actions/twitapistatuses.php:36 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "%s updates from everyone!" #: ../actions/register.php:213 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" +"(You should receive an e-mail message in a moment, containing instructions " +"on how to confirm your e-mail address.)" #: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 #, php-format @@ -164,24 +197,24 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -"**%%site.name%%** is a microblogging service brought to you by [%%site." -"broughtby%%](%%site.broughtbyurl%%)" +"**%%site.name%%** is a microblogging service brought to you by " +"[%%site.broughtby%%](%%site.broughtbyurl%%). " #: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 #, php-format msgid "**%%site.name%%** is a microblogging service. " -msgstr "**%%site.name%%** is a microblogging service." +msgstr "**%%site.name%%** is a microblogging service. " #: ../lib/util.php:274 lib/util.php:290 msgid ". Contributors should be attributed by full name or nickname." -msgstr ". Contributors should be attributed by full name or nickname." +msgstr "" #: ../actions/finishopenidlogin.php:73 ../actions/profilesettings.php:43 #: actions/finishopenidlogin.php:79 actions/profilesettings.php:76 #: actions/finishopenidlogin.php:101 actions/profilesettings.php:100 #: lib/groupeditform.php:139 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" #: ../actions/register.php:152 actions/register.php:166 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." @@ -190,7 +223,7 @@ msgstr "" #: ../actions/password.php:42 actions/profilesettings.php:181 #: actions/passwordsettings.php:102 msgid "6 or more characters" -msgstr "6 or more characters" +msgstr "" #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 @@ -208,20 +241,22 @@ msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"A confirmation code was sent to the IM address you added. You must approve %" -"s for sending messages to you." #: ../actions/emailsettings.php:213 actions/emailsettings.php:231 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" +"A confirmation code was sent to the e-mail address you added. Check your in-" +"box (and spam box!) for the code and instructions on how to use it." #: ../actions/smssettings.php:216 actions/smssettings.php:224 msgid "" "A confirmation code was sent to the phone number you added. Check your inbox " "(and spam box!) for the code and instructions on how to use it." msgstr "" +"A confirmation code was sent to the phone number you added. Check your in-" +"box (and spam box!) for the code and instructions on how to use it." #: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45 #: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259 @@ -270,12 +305,12 @@ msgstr "" #: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 msgid "About" -msgstr "About" +msgstr "" #: ../actions/userauthorization.php:119 actions/userauthorization.php:126 #: actions/userauthorization.php:143 msgid "Accept" -msgstr "Accept" +msgstr "" #: ../actions/emailsettings.php:62 ../actions/imsettings.php:63 #: ../actions/openidsettings.php:57 ../actions/smssettings.php:71 @@ -285,12 +320,12 @@ msgstr "Accept" #: actions/imsettings.php:127 actions/openidsettings.php:111 #: actions/smssettings.php:133 actions/twittersettings.php:163 msgid "Add" -msgstr "Add" +msgstr "" #: ../actions/openidsettings.php:43 actions/openidsettings.php:44 #: actions/openidsettings.php:93 msgid "Add OpenID" -msgstr "Add OpenID" +msgstr "" #: ../lib/settingsaction.php:97 lib/settingsaction.php:91 #: lib/accountsettingsaction.php:117 @@ -303,7 +338,7 @@ msgstr "" #: actions/emailsettings.php:94 actions/imsettings.php:94 #: actions/smssettings.php:92 msgid "Address" -msgstr "Address" +msgstr "" #: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176 msgid "Addresses of friends to invite (one per line)" @@ -312,13 +347,13 @@ msgstr "" #: ../actions/showstream.php:273 actions/showstream.php:288 #: actions/showstream.php:422 msgid "All subscriptions" -msgstr "All subscriptions" +msgstr "" #: ../actions/publicrss.php:64 actions/publicrss.php:50 #: actions/publicrss.php:92 #, php-format msgid "All updates for %s" -msgstr "All updates for %s" +msgstr "" #: ../actions/noticesearchrss.php:66 actions/noticesearchrss.php:70 #: actions/noticesearchrss.php:90 @@ -333,7 +368,7 @@ msgstr "All updates matching search term ‘%s’" #: actions/finishopenidlogin.php:34 actions/login.php:77 #: actions/openidlogin.php:30 actions/register.php:92 msgid "Already logged in." -msgstr "Already logged in." +msgstr "" #: ../lib/subs.php:42 lib/subs.php:42 lib/subs.php:49 msgid "Already subscribed!." @@ -368,7 +403,7 @@ msgstr "" #: ../actions/avatar.php:113 actions/profilesettings.php:350 #: actions/avatarsettings.php:395 msgid "Avatar updated." -msgstr "Avatar updated." +msgstr "" #: ../actions/imsettings.php:55 actions/imsettings.php:56 #, php-format @@ -376,14 +411,14 @@ msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" -"Awaiting confirmation on this address. Check your Jabber/GTalk account for a " -"message with further instructions. (Did you add %s to your buddy list?)" #: ../actions/emailsettings.php:54 actions/emailsettings.php:55 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" +"Awaiting confirmation on this address. Check your in-box (and spam box!) for " +"a message with further instructions." #: ../actions/smssettings.php:58 actions/smssettings.php:58 #: actions/smssettings.php:111 @@ -392,7 +427,6 @@ msgstr "" # erm, not sure what to do here, » is recognised as a quotation mark. #: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy msgid "Before »" msgstr "Before →" @@ -412,7 +446,7 @@ msgstr "Bio is too long (max 140 chars)" #: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69 msgid "Can't delete this notice." -msgstr "" +msgstr "Can’t delete this notice." #: ../actions/updateprofile.php:119 actions/updateprofile.php:120 #: actions/updateprofile.php:123 @@ -432,11 +466,11 @@ msgstr "Can’t save new password." #: actions/emailsettings.php:111 actions/imsettings.php:114 #: actions/smssettings.php:114 msgid "Cancel" -msgstr "Cancel" +msgstr "" #: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130 msgid "Cannot instantiate OpenID consumer object." -msgstr "Cannot instantiate OpenID consumer object." +msgstr "Cannot create OpenID consumer object." #: ../actions/imsettings.php:163 actions/imsettings.php:171 #: actions/imsettings.php:286 @@ -446,22 +480,22 @@ msgstr "Cannot normalise Jabber ID" #: ../actions/emailsettings.php:181 actions/emailsettings.php:199 #: actions/emailsettings.php:311 msgid "Cannot normalize that email address" -msgstr "" +msgstr "Cannot normalise that e-mail address" #: ../actions/password.php:45 actions/profilesettings.php:184 #: actions/passwordsettings.php:110 msgid "Change" -msgstr "Change" +msgstr "" #: ../lib/settingsaction.php:88 lib/settingsaction.php:88 #: lib/accountsettingsaction.php:114 msgid "Change email handling" -msgstr "" +msgstr "Change e-mail handling" #: ../actions/password.php:32 actions/profilesettings.php:36 #: actions/passwordsettings.php:58 msgid "Change password" -msgstr "Change password" +msgstr "" #: ../lib/settingsaction.php:94 lib/accountsettingsaction.php:111 msgid "Change your password" @@ -479,12 +513,12 @@ msgstr "" #: actions/passwordsettings.php:105 actions/recoverpassword.php:221 #: actions/register.php:376 actions/smssettings.php:122 msgid "Confirm" -msgstr "Confirm" +msgstr "" #: ../actions/confirmaddress.php:90 actions/confirmaddress.php:90 #: actions/confirmaddress.php:144 msgid "Confirm Address" -msgstr "Confirm Address" +msgstr "" #: ../actions/emailsettings.php:238 ../actions/imsettings.php:222 #: ../actions/smssettings.php:245 actions/emailsettings.php:256 @@ -492,7 +526,7 @@ msgstr "Confirm Address" #: actions/emailsettings.php:379 actions/imsettings.php:361 #: actions/smssettings.php:374 msgid "Confirmation cancelled." -msgstr "Confirmation cancelled." +msgstr "" #: ../actions/smssettings.php:63 actions/smssettings.php:63 #: actions/smssettings.php:118 @@ -502,7 +536,7 @@ msgstr "" #: ../actions/confirmaddress.php:38 actions/confirmaddress.php:38 #: actions/confirmaddress.php:80 msgid "Confirmation code not found." -msgstr "Confirmation code not found." +msgstr "" #: ../actions/register.php:202 #, php-format @@ -526,12 +560,12 @@ msgstr "" #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 #: actions/finishopenidlogin.php:119 lib/action.php:330 msgid "Connect" -msgstr "Connect" +msgstr "" #: ../actions/finishopenidlogin.php:86 actions/finishopenidlogin.php:92 #: actions/finishopenidlogin.php:114 msgid "Connect existing account" -msgstr "Connect existing account" +msgstr "" #: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 msgid "Contact" @@ -558,17 +592,17 @@ msgstr "" #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 #, php-format msgid "Could not redirect to server: %s" -msgstr "Could not redirect to server: %s" +msgstr "" #: ../actions/updateprofile.php:162 actions/updateprofile.php:163 #: actions/updateprofile.php:166 msgid "Could not save avatar info" -msgstr "Could not save avatar info" +msgstr "" #: ../actions/updateprofile.php:155 actions/updateprofile.php:156 #: actions/updateprofile.php:159 msgid "Could not save new profile info" -msgstr "Could not save new profile info" +msgstr "" #: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72 msgid "Could not subscribe other to you." @@ -581,7 +615,7 @@ msgstr "" #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Couldn’t update user with confirmed e-mail address." #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 @@ -604,7 +638,7 @@ msgstr "Couldn’t delete subscription." #: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98 #: actions/twitapistatuses.php:84 msgid "Couldn't find any statuses." -msgstr "" +msgstr "Couldn’t find any statuses." #: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136 #: actions/remotesubscribe.php:178 @@ -633,13 +667,13 @@ msgstr "Couldn’t save profile." #: ../actions/profilesettings.php:161 actions/profilesettings.php:276 #: actions/profilesettings.php:279 msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "Couldn’t update user for auto-subscribe." #: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294 #: actions/emailsettings.php:298 actions/emailsettings.php:312 #: actions/emailsettings.php:440 actions/emailsettings.php:462 msgid "Couldn't update user record." -msgstr "" +msgstr "Couldn’t update user record." #: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156 #: ../actions/emailsettings.php:259 ../actions/imsettings.php:138 @@ -660,27 +694,27 @@ msgstr "Couldn’t update user." #: ../actions/finishopenidlogin.php:84 actions/finishopenidlogin.php:90 #: actions/finishopenidlogin.php:112 msgid "Create" -msgstr "Create" +msgstr "" #: ../actions/finishopenidlogin.php:70 actions/finishopenidlogin.php:76 #: actions/finishopenidlogin.php:98 msgid "Create a new user with this nickname." -msgstr "Create a new user with this nickname." +msgstr "" #: ../actions/finishopenidlogin.php:68 actions/finishopenidlogin.php:74 #: actions/finishopenidlogin.php:96 msgid "Create new account" -msgstr "Create new account" +msgstr "" #: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197 #: actions/finishopenidlogin.php:231 msgid "Creating new account for OpenID that already has a user." -msgstr "Creating new account for OpenID that already has a user." +msgstr "" #: ../actions/imsettings.php:45 actions/imsettings.php:46 #: actions/imsettings.php:100 msgid "Current confirmed Jabber/GTalk address." -msgstr "Current confirmed Jabber/GTalk address." +msgstr "" #: ../actions/smssettings.php:46 actions/smssettings.php:46 #: actions/smssettings.php:100 @@ -690,11 +724,11 @@ msgstr "" #: ../actions/emailsettings.php:44 actions/emailsettings.php:45 #: actions/emailsettings.php:99 msgid "Current confirmed email address." -msgstr "" +msgstr "Current confirmed e-mail address." #: ../actions/showstream.php:356 actions/showstream.php:367 msgid "Currently" -msgstr "Currently" +msgstr "" #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 #, php-format @@ -704,7 +738,7 @@ msgstr "" #: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698 #, php-format msgid "DB error inserting reply: %s" -msgstr "DB error inserting reply: %s" +msgstr "" #: ../actions/deletenotice.php:41 actions/deletenotice.php:41 #: actions/deletenotice.php:79 @@ -715,24 +749,24 @@ msgstr "" #: actions/profilesettings.php:84 actions/register.php:186 #: actions/profilesettings.php:114 msgid "Describe yourself and your interests in 140 chars" -msgstr "Describe yourself and your interests in 140 chars" +msgstr "" #: ../actions/register.php:158 ../actions/register.php:161 #: ../lib/settingsaction.php:87 actions/register.php:172 #: actions/register.php:175 lib/settingsaction.php:87 actions/register.php:381 #: actions/register.php:385 lib/accountsettingsaction.php:113 msgid "Email" -msgstr "" +msgstr "E-mail" #: ../actions/emailsettings.php:59 actions/emailsettings.php:60 #: actions/emailsettings.php:115 msgid "Email Address" -msgstr "" +msgstr "E-mail Address" #: ../actions/emailsettings.php:32 actions/emailsettings.php:32 #: actions/emailsettings.php:60 msgid "Email Settings" -msgstr "" +msgstr "E-mail Settings" #: ../actions/register.php:73 actions/register.php:80 actions/register.php:163 msgid "Email address already exists." @@ -745,11 +779,11 @@ msgstr "E-mail address confirmation" #: ../actions/emailsettings.php:61 actions/emailsettings.php:62 #: actions/emailsettings.php:117 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "E-mail address, like ‘UserName@example.org’" #: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174 msgid "Email addresses" -msgstr "" +msgstr "E-mail addresses" #: ../actions/recoverpassword.php:191 actions/recoverpassword.php:197 #: actions/recoverpassword.php:231 @@ -769,50 +803,50 @@ msgstr "Error authorising token." #: ../actions/finishopenidlogin.php:253 actions/finishopenidlogin.php:259 #: actions/finishopenidlogin.php:297 msgid "Error connecting user to OpenID." -msgstr "Error connecting user to OpenID." +msgstr "" #: ../actions/finishaddopenid.php:78 actions/finishaddopenid.php:78 #: actions/finishaddopenid.php:126 msgid "Error connecting user." -msgstr "Error connecting user." +msgstr "" #: ../actions/finishremotesubscribe.php:151 #: actions/finishremotesubscribe.php:153 actions/finishremotesubscribe.php:166 msgid "Error inserting avatar" -msgstr "Error inserting avatar" +msgstr "Error inserting avatar." #: ../actions/finishremotesubscribe.php:143 #: actions/finishremotesubscribe.php:145 actions/finishremotesubscribe.php:158 msgid "Error inserting new profile" -msgstr "Error inserting new profile" +msgstr "Error inserting new profile." #: ../actions/finishremotesubscribe.php:167 #: actions/finishremotesubscribe.php:169 actions/finishremotesubscribe.php:182 msgid "Error inserting remote profile" -msgstr "Error inserting remote profile" +msgstr "Error inserting remote profile." #: ../actions/recoverpassword.php:240 actions/recoverpassword.php:246 #: actions/recoverpassword.php:280 msgid "Error saving address confirmation." -msgstr "Error saving address confirmation." +msgstr "" #: ../actions/userauthorization.php:140 actions/userauthorization.php:147 #: actions/userauthorization.php:164 msgid "Error saving remote profile" -msgstr "Error saving remote profile" +msgstr "Error saving remote profile." #: ../lib/openid.php:226 lib/openid.php:226 lib/openid.php:235 msgid "Error saving the profile." -msgstr "Error saving the profile." +msgstr "" #: ../lib/openid.php:237 lib/openid.php:237 lib/openid.php:246 msgid "Error saving the user." -msgstr "Error saving the user." +msgstr "" #: ../actions/password.php:80 actions/profilesettings.php:399 #: actions/passwordsettings.php:164 msgid "Error saving user; invalid." -msgstr "Error saving user; invalid." +msgstr "Error saving user - invalid." #: ../actions/login.php:47 ../actions/login.php:73 #: ../actions/recoverpassword.php:307 ../actions/register.php:98 @@ -820,7 +854,7 @@ msgstr "Error saving user; invalid." #: actions/register.php:108 actions/login.php:112 actions/login.php:138 #: actions/recoverpassword.php:354 actions/register.php:198 msgid "Error setting user." -msgstr "Error setting user." +msgstr "" # Added full stop #: ../actions/finishaddopenid.php:83 actions/finishaddopenid.php:83 @@ -837,12 +871,12 @@ msgstr "Error updating remote profile." #: ../actions/recoverpassword.php:80 actions/recoverpassword.php:80 #: actions/recoverpassword.php:86 msgid "Error with confirmation code." -msgstr "Error with confirmation code." +msgstr "" #: ../actions/finishopenidlogin.php:89 actions/finishopenidlogin.php:95 #: actions/finishopenidlogin.php:117 msgid "Existing nickname" -msgstr "Existing nickname" +msgstr "" #: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 msgid "FAQ" @@ -857,14 +891,14 @@ msgstr "Failed to update avatar." #: actions/allrss.php:64 actions/all.php:75 actions/allrss.php:107 #, php-format msgid "Feed for friends of %s" -msgstr "Feed for friends of %s" +msgstr "" #: ../actions/replies.php:65 ../actions/repliesrss.php:80 #: actions/replies.php:65 actions/repliesrss.php:66 actions/replies.php:134 #: actions/repliesrss.php:71 #, php-format msgid "Feed for replies to %s" -msgstr "Feed for replies to %s" +msgstr "" #: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61 #, php-format @@ -886,8 +920,6 @@ msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" -"For security reasons, please re-enter your user name and password before " -"changing your settings." #: ../actions/profilesettings.php:44 ../actions/register.php:164 #: actions/profilesettings.php:77 actions/register.php:178 @@ -895,7 +927,7 @@ msgstr "" #: actions/showgroup.php:235 actions/showstream.php:262 #: actions/tagother.php:105 lib/groupeditform.php:142 msgid "Full name" -msgstr "Full name" +msgstr "" #: ../actions/profilesettings.php:98 ../actions/register.php:79 #: ../actions/updateprofile.php:93 actions/profilesettings.php:213 @@ -904,52 +936,52 @@ msgstr "Full name" #: actions/profilesettings.php:202 actions/register.php:171 #: actions/updateprofile.php:97 msgid "Full name is too long (max 255 chars)." -msgstr "Full name is too long (max 255 chars)." +msgstr "" #: ../lib/util.php:322 lib/util.php:338 lib/action.php:344 lib/action.php:566 msgid "Help" -msgstr "Help" +msgstr "" #: ../lib/util.php:298 lib/util.php:314 lib/action.php:322 #: lib/facebookaction.php:200 msgid "Home" -msgstr "Home" +msgstr "" #: ../actions/profilesettings.php:46 ../actions/register.php:167 #: actions/profilesettings.php:79 actions/register.php:181 #: actions/profilesettings.php:107 actions/register.php:396 #: lib/groupeditform.php:146 msgid "Homepage" -msgstr "Homepage" +msgstr "" #: ../actions/profilesettings.php:95 ../actions/register.php:76 #: actions/profilesettings.php:210 actions/register.php:83 #: actions/editgroup.php:192 actions/newgroup.php:143 #: actions/profilesettings.php:199 actions/register.php:168 msgid "Homepage is not a valid URL." -msgstr "Homepage is not a valid URL." +msgstr "" #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 #: actions/emailsettings.php:173 msgid "I want to post notices by email." -msgstr "" +msgstr "I want to post notices by e-mail." #: ../lib/settingsaction.php:102 lib/settingsaction.php:96 #: lib/connectsettingsaction.php:104 msgid "IM" -msgstr "" +msgstr "I.M." # possibly use I.M. #: ../actions/imsettings.php:60 actions/imsettings.php:61 #: actions/imsettings.php:118 msgid "IM Address" -msgstr "IM Address" +msgstr "I.M. Address" # requires full stops? #: ../actions/imsettings.php:33 actions/imsettings.php:33 #: actions/imsettings.php:59 msgid "IM Settings" -msgstr "IM Settings" +msgstr "I.M. Settings" #: ../actions/finishopenidlogin.php:88 actions/finishopenidlogin.php:94 #: actions/finishopenidlogin.php:116 @@ -968,32 +1000,35 @@ msgstr "" "If you want to add an OpenID to your account, enter it in the box below and " "click ‘Add’." +# double space here #: ../actions/recoverpassword.php:137 msgid "" "If you've forgotten or lost your password, you can get a new one sent to the " "email address you have stored in your account." msgstr "" +"If you’ve forgotten or lost your password, you can get a new one sent to the " +"e-mail address you have stored in your account." #: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 #: actions/emailsettings.php:68 actions/smssettings.php:76 #: actions/emailsettings.php:127 actions/smssettings.php:140 msgid "Incoming email" -msgstr "" +msgstr "Incoming e-mail" #: ../actions/emailsettings.php:283 actions/emailsettings.php:301 #: actions/emailsettings.php:443 msgid "Incoming email address removed." -msgstr "" +msgstr "Incoming e-mail address removed." #: ../actions/password.php:69 actions/profilesettings.php:388 #: actions/passwordsettings.php:153 msgid "Incorrect old password" -msgstr "Incorrect old password" +msgstr "" #: ../actions/login.php:67 actions/login.php:67 actions/facebookhome.php:131 #: actions/login.php:132 msgid "Incorrect username or password." -msgstr "Incorrect username or password." +msgstr "" #: ../actions/recoverpassword.php:265 msgid "" @@ -1013,7 +1048,7 @@ msgstr "Invalid avatar URL ‘%s’" #: ../actions/invite.php:55 actions/invite.php:62 actions/invite.php:70 #, php-format msgid "Invalid email address: %s" -msgstr "" +msgstr "Invalid e-mail address: ‘%s’" #: ../actions/updateprofile.php:98 actions/updateprofile.php:99 #: actions/updateprofile.php:102 @@ -1030,13 +1065,14 @@ msgstr "Invalid licence URL ‘%s’" #: ../actions/postnotice.php:61 actions/postnotice.php:62 #: actions/postnotice.php:66 msgid "Invalid notice content" -msgstr "Invalid notice content" +msgstr "" #: ../actions/postnotice.php:67 actions/postnotice.php:68 #: actions/postnotice.php:72 msgid "Invalid notice uri" msgstr "Invalid notice URI" +# URL case #: ../actions/postnotice.php:72 actions/postnotice.php:73 #: actions/postnotice.php:77 msgid "Invalid notice url" @@ -1051,17 +1087,17 @@ msgstr "Invalid profile URL ‘%s’." #: ../actions/remotesubscribe.php:96 actions/remotesubscribe.php:105 #: actions/remotesubscribe.php:135 msgid "Invalid profile URL (bad format)" -msgstr "Invalid profile URL (bad format)" +msgstr "" #: ../actions/finishremotesubscribe.php:77 #: actions/finishremotesubscribe.php:79 actions/finishremotesubscribe.php:80 msgid "Invalid profile URL returned by server." -msgstr "Invalid profile URL returned by server." +msgstr "" #: ../actions/avatarbynickname.php:37 actions/avatarbynickname.php:37 #: actions/avatarbynickname.php:69 msgid "Invalid size." -msgstr "Invalid size." +msgstr "" #: ../actions/finishopenidlogin.php:235 ../actions/register.php:93 #: ../actions/register.php:111 actions/finishopenidlogin.php:241 @@ -1069,7 +1105,7 @@ msgstr "Invalid size." #: actions/finishopenidlogin.php:279 actions/register.php:193 #: actions/register.php:211 msgid "Invalid username or password." -msgstr "Invalid username or password." +msgstr "" #: ../actions/invite.php:79 actions/invite.php:86 actions/invite.php:102 msgid "Invitation(s) sent" @@ -1102,7 +1138,7 @@ msgstr "" #: ../actions/imsettings.php:173 actions/imsettings.php:181 #: actions/imsettings.php:296 msgid "Jabber ID already belongs to another user." -msgstr "Jabber ID already belongs to another user." +msgstr "" #: ../actions/imsettings.php:62 actions/imsettings.php:63 #, php-format @@ -1130,7 +1166,7 @@ msgstr "" #: actions/tagother.php:113 lib/groupeditform.php:156 lib/grouplist.php:126 #: lib/profilelist.php:125 msgid "Location" -msgstr "Location" +msgstr "" #: ../actions/profilesettings.php:104 ../actions/register.php:85 #: ../actions/updateprofile.php:108 actions/profilesettings.php:219 @@ -1139,7 +1175,7 @@ msgstr "Location" #: actions/profilesettings.php:208 actions/register.php:177 #: actions/updateprofile.php:112 msgid "Location is too long (max 255 chars)." -msgstr "Location is too long (max 255 chars)." +msgstr "" #: ../actions/login.php:97 ../actions/login.php:106 #: ../actions/openidlogin.php:68 ../lib/util.php:310 actions/login.php:97 @@ -1174,33 +1210,33 @@ msgstr "Log out" #: ../actions/register.php:166 actions/register.php:180 #: actions/register.php:393 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "Longer name, preferably your ‘real’ name" #: ../actions/login.php:110 actions/login.php:110 actions/login.php:245 #: lib/facebookaction.php:320 msgid "Lost or forgotten password?" -msgstr "Lost or forgotten password?" +msgstr "" #: ../actions/emailsettings.php:80 ../actions/smssettings.php:89 #: actions/emailsettings.php:81 actions/smssettings.php:89 msgid "Make a new email address for posting to; cancels the old one." -msgstr "" +msgstr "Make a new e-mail address for posting to - cancels the old one." #: ../actions/emailsettings.php:27 actions/emailsettings.php:27 #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "Manage how you get e-mail from %%site.name%%." #: ../actions/showstream.php:300 actions/showstream.php:315 #: actions/showstream.php:480 msgid "Member since" -msgstr "Member since" +msgstr "" #: ../actions/userrss.php:70 actions/userrss.php:67 actions/userrss.php:72 #, php-format msgid "Microblog by %s" -msgstr "Microblog by %s" +msgstr "" #: ../actions/smssettings.php:304 #, php-format @@ -1208,12 +1244,14 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" +"Mobile carrier for your phone. If you know a carrier that accepts SMS over " +"email but isn’t listed here, send e-mail to let us know at %s." #: ../actions/finishopenidlogin.php:79 ../actions/register.php:188 #: actions/finishopenidlogin.php:85 actions/register.php:202 #: actions/finishopenidlogin.php:107 actions/register.php:429 msgid "My text and files are available under " -msgstr "My text and files are available under" +msgstr "" #: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 #: actions/emailsettings.php:83 actions/smssettings.php:91 @@ -1224,32 +1262,32 @@ msgstr "" #: ../lib/mail.php:144 lib/mail.php:144 lib/mail.php:286 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "New e-mail address for posting to %s" #: ../actions/emailsettings.php:297 actions/emailsettings.php:315 #: actions/emailsettings.php:465 msgid "New incoming email address added." -msgstr "" +msgstr "New incoming e-mail address added." #: ../actions/finishopenidlogin.php:71 actions/finishopenidlogin.php:77 #: actions/finishopenidlogin.php:99 msgid "New nickname" -msgstr "New nickname" +msgstr "" #: ../actions/newnotice.php:87 actions/newnotice.php:96 #: actions/newnotice.php:68 msgid "New notice" -msgstr "New notice" +msgstr "" #: ../actions/password.php:41 ../actions/recoverpassword.php:179 #: actions/profilesettings.php:180 actions/recoverpassword.php:185 #: actions/passwordsettings.php:101 actions/recoverpassword.php:219 msgid "New password" -msgstr "New password" +msgstr "" #: ../actions/recoverpassword.php:314 msgid "New password successfully saved. You are now logged in." -msgstr "New password successfully saved. You are now logged in." +msgstr "" #: ../actions/login.php:101 ../actions/profilesettings.php:41 #: ../actions/register.php:151 actions/login.php:101 @@ -1259,7 +1297,7 @@ msgstr "New password successfully saved. You are now logged in." #: actions/showstream.php:251 actions/tagother.php:95 #: lib/facebookaction.php:308 lib/groupeditform.php:137 msgid "Nickname" -msgstr "Nickname" +msgstr "" #: ../actions/finishopenidlogin.php:175 ../actions/profilesettings.php:110 #: ../actions/register.php:69 actions/finishopenidlogin.php:181 @@ -1268,7 +1306,7 @@ msgstr "Nickname" #: actions/newgroup.php:134 actions/profilesettings.php:214 #: actions/register.php:159 msgid "Nickname already in use. Try another one." -msgstr "Nickname already in use. Try another one." +msgstr "" #: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:88 #: ../actions/register.php:67 ../actions/updateprofile.php:77 @@ -1277,17 +1315,17 @@ msgstr "Nickname already in use. Try another one." #: actions/finishopenidlogin.php:205 actions/profilesettings.php:192 #: actions/updateprofile.php:81 msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Nickname must have only lowercase letters and numbers, and no spaces." #: ../actions/finishopenidlogin.php:170 actions/finishopenidlogin.php:176 #: actions/finishopenidlogin.php:210 msgid "Nickname not allowed." -msgstr "Nickname not allowed." +msgstr "" #: ../actions/remotesubscribe.php:72 actions/remotesubscribe.php:81 #: actions/remotesubscribe.php:106 msgid "Nickname of the user you want to follow" -msgstr "Nickname of the user you want to follow" +msgstr "" #: ../actions/recoverpassword.php:162 actions/recoverpassword.php:167 #: actions/recoverpassword.php:186 @@ -1302,12 +1340,12 @@ msgstr "" #: ../actions/imsettings.php:156 actions/imsettings.php:164 #: actions/imsettings.php:279 msgid "No Jabber ID." -msgstr "No Jabber ID." +msgstr "" #: ../actions/userauthorization.php:129 actions/userauthorization.php:136 #: actions/userauthorization.php:153 msgid "No authorization request!" -msgstr "" +msgstr "No authorisation request!" #: ../actions/smssettings.php:181 actions/smssettings.php:189 #: actions/smssettings.php:299 @@ -1322,37 +1360,37 @@ msgstr "" #: ../actions/confirmaddress.php:33 actions/confirmaddress.php:33 #: actions/confirmaddress.php:75 msgid "No confirmation code." -msgstr "No confirmation code." +msgstr "" #: ../actions/newnotice.php:44 actions/newmessage.php:53 #: actions/newnotice.php:44 classes/Command.php:197 actions/newmessage.php:109 #: actions/newnotice.php:126 classes/Command.php:223 msgid "No content!" -msgstr "No content!" +msgstr "" #: ../actions/emailsettings.php:174 actions/emailsettings.php:192 #: actions/emailsettings.php:304 msgid "No email address." -msgstr "" +msgstr "No e-mail address." #: ../actions/userbyid.php:32 actions/userbyid.php:32 actions/userbyid.php:70 msgid "No id." -msgstr "No id." +msgstr "" #: ../actions/emailsettings.php:271 actions/emailsettings.php:289 #: actions/emailsettings.php:430 msgid "No incoming email address." -msgstr "" +msgstr "No incoming e-mail address." #: ../actions/finishremotesubscribe.php:65 #: actions/finishremotesubscribe.php:67 actions/finishremotesubscribe.php:68 msgid "No nickname provided by remote server." -msgstr "No nickname provided by remote server." +msgstr "" #: ../actions/avatarbynickname.php:27 actions/avatarbynickname.php:27 #: actions/avatarbynickname.php:59 actions/leavegroup.php:81 msgid "No nickname." -msgstr "No nickname." +msgstr "" #: ../actions/emailsettings.php:222 ../actions/imsettings.php:206 #: ../actions/smssettings.php:229 actions/emailsettings.php:240 @@ -1360,7 +1398,7 @@ msgstr "No nickname." #: actions/emailsettings.php:363 actions/imsettings.php:345 #: actions/smssettings.php:358 msgid "No pending confirmation to cancel." -msgstr "No pending confirmation to cancel." +msgstr "" #: ../actions/smssettings.php:176 actions/smssettings.php:184 #: actions/smssettings.php:294 @@ -1370,7 +1408,7 @@ msgstr "" #: ../actions/finishremotesubscribe.php:72 #: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75 msgid "No profile URL returned by server." -msgstr "No profile URL returned by server." +msgstr "" #: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232 #: actions/recoverpassword.php:266 @@ -1380,19 +1418,19 @@ msgstr "No registered e-mail address for that user." #: ../actions/userauthorization.php:49 actions/userauthorization.php:55 #: actions/userauthorization.php:57 msgid "No request found!" -msgstr "No request found!" +msgstr "" #: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64 #: actions/noticesearch.php:69 actions/peoplesearch.php:69 #: actions/groupsearch.php:81 actions/noticesearch.php:104 #: actions/peoplesearch.php:85 msgid "No results" -msgstr "No results" +msgstr "" #: ../actions/avatarbynickname.php:32 actions/avatarbynickname.php:32 #: actions/avatarbynickname.php:64 msgid "No size." -msgstr "No size." +msgstr "" #: ../actions/twitapistatuses.php:595 actions/twitapifavorites.php:136 #: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112 @@ -1408,28 +1446,28 @@ msgstr "" #: ../actions/openidsettings.php:135 actions/openidsettings.php:144 #: actions/openidsettings.php:222 msgid "No such OpenID." -msgstr "No such OpenID." +msgstr "" #: ../actions/doc.php:29 actions/doc.php:29 actions/doc.php:64 msgid "No such document." -msgstr "No such document." +msgstr "" #: ../actions/shownotice.php:32 ../actions/shownotice.php:83 #: ../lib/deleteaction.php:30 actions/shownotice.php:32 #: actions/shownotice.php:83 lib/deleteaction.php:30 actions/shownotice.php:87 #: lib/deleteaction.php:51 msgid "No such notice." -msgstr "No such notice." +msgstr "" #: ../actions/recoverpassword.php:56 actions/recoverpassword.php:56 #: actions/recoverpassword.php:62 msgid "No such recovery code." -msgstr "No such recovery code." +msgstr "" #: ../actions/postnotice.php:56 actions/postnotice.php:57 #: actions/postnotice.php:60 msgid "No such subscription" -msgstr "No such subscription" +msgstr "" #: ../actions/all.php:34 ../actions/allrss.php:35 #: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40 @@ -1457,21 +1495,21 @@ msgstr "No such subscription" #: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82 #: lib/subs.php:34 lib/subs.php:109 msgid "No such user." -msgstr "No such user." +msgstr "" #: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217 #: actions/recoverpassword.php:251 msgid "No user with that email address or username." -msgstr "" +msgstr "No user with that e-mail address or username." #: ../lib/gallery.php:80 lib/gallery.php:85 msgid "Nobody to show!" -msgstr "Nobody to show!" +msgstr "" #: ../actions/recoverpassword.php:60 actions/recoverpassword.php:60 #: actions/recoverpassword.php:66 msgid "Not a recovery code." -msgstr "Not a recovery code." +msgstr "" #: ../scripts/maildaemon.php:50 scripts/maildaemon.php:50 #: scripts/maildaemon.php:53 @@ -1488,16 +1526,17 @@ msgstr "" #: ../actions/imsettings.php:167 actions/imsettings.php:175 #: actions/imsettings.php:290 msgid "Not a valid Jabber ID" -msgstr "Not a valid Jabber ID" +msgstr "" #: ../lib/openid.php:131 lib/openid.php:131 lib/openid.php:140 msgid "Not a valid OpenID." -msgstr "Not a valid OpenID." +msgstr "" +# Missing full stop, needs to merge with: actions/register.php:63 actions/register.php:70 actions/register.php:152 #: ../actions/emailsettings.php:185 actions/emailsettings.php:203 #: actions/emailsettings.php:315 msgid "Not a valid email address" -msgstr "" +msgstr "Not a valid e-mail address." #: ../actions/register.php:63 actions/register.php:70 actions/register.php:152 msgid "Not a valid email address." @@ -1508,27 +1547,27 @@ msgstr "Not a valid e-mail address." #: actions/editgroup.php:186 actions/newgroup.php:137 #: actions/profilesettings.php:195 actions/register.php:161 msgid "Not a valid nickname." -msgstr "Not a valid nickname." +msgstr "" #: ../actions/remotesubscribe.php:120 actions/remotesubscribe.php:129 #: actions/remotesubscribe.php:159 msgid "Not a valid profile URL (incorrect services)." -msgstr "Not a valid profile URL (incorrect services)." +msgstr "" #: ../actions/remotesubscribe.php:113 actions/remotesubscribe.php:122 #: actions/remotesubscribe.php:152 msgid "Not a valid profile URL (no XRDS defined)." -msgstr "Not a valid profile URL (no XRDS defined)." +msgstr "" #: ../actions/remotesubscribe.php:104 actions/remotesubscribe.php:113 #: actions/remotesubscribe.php:143 msgid "Not a valid profile URL (no YADIS document)." -msgstr "Not a valid profile URL (no YADIS document)." +msgstr "" #: ../actions/avatar.php:95 actions/profilesettings.php:332 #: lib/imagefile.php:87 msgid "Not an image or corrupt file." -msgstr "Not an image or corrupt file." +msgstr "" #: ../actions/finishremotesubscribe.php:51 #: actions/finishremotesubscribe.php:53 actions/finishremotesubscribe.php:54 @@ -1538,7 +1577,7 @@ msgstr "Not authorised." #: ../actions/finishremotesubscribe.php:38 #: actions/finishremotesubscribe.php:38 actions/finishremotesubscribe.php:40 msgid "Not expecting this response!" -msgstr "Not expecting this response!" +msgstr "" #: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361 #: actions/twitapistatuses.php:309 @@ -1559,8 +1598,9 @@ msgstr "" #: actions/unsubscribe.php:27 lib/deleteaction.php:66 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Not logged in." +msgstr "" +# removed full stop #: ../lib/subs.php:91 lib/subs.php:104 lib/subs.php:122 msgid "Not subscribed!." msgstr "Not subscribed!" @@ -1575,18 +1615,18 @@ msgstr "" #: actions/showstream.php:192 #, php-format msgid "Notice feed for %s" -msgstr "Notice feed for %s" +msgstr "" #: ../actions/shownotice.php:39 actions/shownotice.php:39 #: actions/shownotice.php:94 msgid "Notice has no profile" -msgstr "Notice has no profile" +msgstr "" #: ../actions/showstream.php:316 actions/showstream.php:331 #: actions/showstream.php:504 lib/facebookaction.php:477 lib/mailbox.php:116 #: lib/noticelist.php:87 msgid "Notices" -msgstr "Notices" +msgstr "" #: ../actions/tag.php:35 ../actions/tag.php:81 actions/tag.php:35 #: actions/tag.php:81 actions/tag.php:41 @@ -1597,7 +1637,7 @@ msgstr "" #: ../actions/password.php:39 actions/profilesettings.php:178 #: actions/passwordsettings.php:97 msgid "Old password" -msgstr "Old password" +msgstr "" #: ../lib/settingsaction.php:96 ../lib/util.php:314 lib/settingsaction.php:90 #: lib/util.php:330 lib/accountsettingsaction.php:116 lib/action.php:341 @@ -1608,11 +1648,11 @@ msgstr "" #: ../actions/finishopenidlogin.php:61 actions/finishopenidlogin.php:66 #: actions/finishopenidlogin.php:73 msgid "OpenID Account Setup" -msgstr "OpenID Account Setup" +msgstr "" #: ../lib/openid.php:180 lib/openid.php:180 lib/openid.php:266 msgid "OpenID Auto-Submit" -msgstr "OpenID Auto-Submit" +msgstr "" #: ../actions/finishaddopenid.php:99 ../actions/finishopenidlogin.php:140 #: ../actions/openidlogin.php:60 actions/finishaddopenid.php:99 @@ -1625,35 +1665,35 @@ msgstr "OpenID Log-in" #: actions/openidlogin.php:74 actions/openidsettings.php:50 #: actions/openidlogin.php:102 actions/openidsettings.php:101 msgid "OpenID URL" -msgstr "OpenID URL" +msgstr "" #: ../actions/finishaddopenid.php:42 ../actions/finishopenidlogin.php:103 #: actions/finishaddopenid.php:42 actions/finishopenidlogin.php:109 #: actions/finishaddopenid.php:88 actions/finishopenidlogin.php:130 msgid "OpenID authentication cancelled." -msgstr "OpenID authentication cancelled." +msgstr "" #: ../actions/finishaddopenid.php:46 ../actions/finishopenidlogin.php:107 #: actions/finishaddopenid.php:46 actions/finishopenidlogin.php:113 #: actions/finishaddopenid.php:92 actions/finishopenidlogin.php:134 #, php-format msgid "OpenID authentication failed: %s" -msgstr "OpenID authentication failed: %s" +msgstr "" #: ../lib/openid.php:133 lib/openid.php:133 lib/openid.php:142 #, php-format msgid "OpenID failure: %s" -msgstr "OpenID failure: %s" +msgstr "" #: ../actions/openidsettings.php:144 actions/openidsettings.php:153 #: actions/openidsettings.php:231 msgid "OpenID removed." -msgstr "OpenID removed." +msgstr "" #: ../actions/openidsettings.php:37 actions/openidsettings.php:37 #: actions/openidsettings.php:59 msgid "OpenID settings" -msgstr "OpenID settings" +msgstr "" #: ../actions/invite.php:135 actions/invite.php:143 actions/invite.php:180 msgid "Optionally add a personal message to the invitation." @@ -1662,7 +1702,7 @@ msgstr "" #: ../actions/avatar.php:84 actions/profilesettings.php:321 #: lib/imagefile.php:75 msgid "Partial upload." -msgstr "Partial upload." +msgstr "" #: ../actions/finishopenidlogin.php:90 ../actions/login.php:102 #: ../actions/register.php:153 ../lib/settingsaction.php:93 @@ -1671,23 +1711,23 @@ msgstr "Partial upload." #: actions/login.php:231 actions/register.php:372 #: lib/accountsettingsaction.php:110 lib/facebookaction.php:311 msgid "Password" -msgstr "Password" +msgstr "" #: ../actions/recoverpassword.php:288 actions/recoverpassword.php:301 #: actions/recoverpassword.php:335 msgid "Password and confirmation do not match." -msgstr "Password and confirmation do not match." +msgstr "" #: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297 #: actions/recoverpassword.php:331 msgid "Password must be 6 chars or more." -msgstr "Password must be 6 chars or more." +msgstr "" #: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263 #: actions/recoverpassword.php:267 actions/recoverpassword.php:269 #: actions/recoverpassword.php:199 actions/recoverpassword.php:301 msgid "Password recovery requested" -msgstr "Password recovery requested" +msgstr "" #: ../actions/password.php:89 ../actions/recoverpassword.php:313 #: actions/profilesettings.php:408 actions/recoverpassword.php:326 @@ -1714,7 +1754,7 @@ msgstr "" #: ../actions/peoplesearch.php:33 actions/peoplesearch.php:33 #: actions/peoplesearch.php:58 msgid "People search" -msgstr "People search" +msgstr "People Search" #: ../lib/stream.php:50 lib/personal.php:50 lib/personalgroupnav.php:98 msgid "Personal" @@ -1741,7 +1781,7 @@ msgstr "" #: ../actions/imsettings.php:73 actions/imsettings.php:74 #: actions/imsettings.php:142 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "Post a notice when my Jabber/GTalk status changes." +msgstr "" #: ../actions/emailsettings.php:85 ../actions/imsettings.php:67 #: ../actions/smssettings.php:94 actions/emailsettings.php:86 @@ -1750,7 +1790,7 @@ msgstr "Post a notice when my Jabber/GTalk status changes." #: actions/imsettings.php:133 actions/smssettings.php:157 #: actions/twittersettings.php:134 msgid "Preferences" -msgstr "Preferences" +msgstr "" #: ../actions/emailsettings.php:162 ../actions/imsettings.php:144 #: ../actions/smssettings.php:163 actions/emailsettings.php:180 @@ -1758,7 +1798,7 @@ msgstr "Preferences" #: actions/emailsettings.php:286 actions/imsettings.php:258 #: actions/othersettings.php:168 actions/smssettings.php:272 msgid "Preferences saved." -msgstr "Preferences saved." +msgstr "" #: ../actions/profilesettings.php:57 actions/profilesettings.php:90 #: actions/profilesettings.php:129 @@ -1767,43 +1807,43 @@ msgstr "" #: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 msgid "Privacy" -msgstr "Privacy" +msgstr "" #: ../classes/Notice.php:95 ../classes/Notice.php:106 classes/Notice.php:109 #: classes/Notice.php:119 classes/Notice.php:145 classes/Notice.php:155 msgid "Problem saving notice." -msgstr "Problem saving notice." +msgstr "" #: ../lib/settingsaction.php:84 ../lib/stream.php:60 lib/personal.php:60 #: lib/settingsaction.php:84 lib/accountsettingsaction.php:104 #: lib/personalgroupnav.php:108 msgid "Profile" -msgstr "Profile" +msgstr "" #: ../actions/remotesubscribe.php:73 actions/remotesubscribe.php:82 #: actions/remotesubscribe.php:109 msgid "Profile URL" -msgstr "Profile URL" +msgstr "" #: ../actions/profilesettings.php:34 actions/profilesettings.php:32 #: actions/profilesettings.php:58 msgid "Profile settings" -msgstr "Profile settings" +msgstr "" #: ../actions/postnotice.php:51 ../actions/updateprofile.php:52 #: actions/postnotice.php:52 actions/updateprofile.php:53 #: actions/postnotice.php:55 actions/updateprofile.php:56 msgid "Profile unknown" -msgstr "Unknown profile" +msgstr "" #: ../actions/public.php:54 actions/public.php:54 actions/public.php:124 msgid "Public Stream Feed" -msgstr "Public Stream Feed" +msgstr "" #: ../actions/public.php:33 actions/public.php:33 actions/public.php:109 #: lib/publicgroupnav.php:77 msgid "Public timeline" -msgstr "Public timeline" +msgstr "" #: ../actions/imsettings.php:79 actions/imsettings.php:80 #: actions/imsettings.php:153 @@ -1813,7 +1853,7 @@ msgstr "" #: ../actions/emailsettings.php:94 actions/emailsettings.php:101 #: actions/emailsettings.php:178 msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "Publish a MicroID for my e-mail address." #: ../actions/tag.php:75 ../actions/tag.php:76 actions/tag.php:75 #: actions/tag.php:76 @@ -1823,24 +1863,24 @@ msgstr "" #: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171 #: actions/recoverpassword.php:190 msgid "Recover" -msgstr "Recover" +msgstr "" #: ../actions/recoverpassword.php:156 actions/recoverpassword.php:161 #: actions/recoverpassword.php:198 msgid "Recover password" -msgstr "Recover password" +msgstr "" #: ../actions/recoverpassword.php:67 actions/recoverpassword.php:67 #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "Recovery code for unknown user." +msgstr "" #: ../actions/register.php:142 ../actions/register.php:193 ../lib/util.php:312 #: actions/register.php:152 actions/register.php:207 lib/util.php:328 #: actions/register.php:69 actions/register.php:436 lib/action.php:338 #: lib/facebookaction.php:277 lib/logingroupnav.php:78 msgid "Register" -msgstr "Register" +msgstr "" #: ../actions/register.php:28 actions/register.php:28 #: actions/finishopenidlogin.php:196 actions/register.php:90 @@ -1896,6 +1936,8 @@ msgid "" "Removing your only OpenID would make it impossible to log in! If you need to " "remove it, add another OpenID first." msgstr "" +"Removing your only OpenID would make it impossible to log-in! If you need to " +"remove it, add another OpenID first." #: ../lib/stream.php:55 lib/personal.php:55 lib/personalgroupnav.php:103 msgid "Replies" @@ -1978,6 +2020,8 @@ msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" +"Search for notices on %%site.name%% by their contents. Separate search terms " +"by spaces - they must be 3 characters or more." #: ../actions/peoplesearch.php:28 #, php-format @@ -1985,6 +2029,8 @@ msgid "" "Search for people on %%site.name%% by their name, location, or interests. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" +"Search for people on %%site.name%% by their name, location, or interests. " +"Separate the terms by spaces - they must be 3 characters or more." #: ../actions/smssettings.php:296 actions/smssettings.php:304 #: actions/smssettings.php:457 @@ -2001,12 +2047,12 @@ msgstr "" #: actions/emailsettings.php:74 actions/smssettings.php:82 #: actions/emailsettings.php:132 actions/smssettings.php:145 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "Send e-mail to this address to post new notices." #: ../actions/emailsettings.php:88 actions/emailsettings.php:89 #: actions/emailsettings.php:152 msgid "Send me notices of new subscriptions through email." -msgstr "" +msgstr "Send me notices of new subscriptions through e-mail." #: ../actions/imsettings.php:70 actions/imsettings.php:71 #: actions/imsettings.php:137 @@ -2021,7 +2067,7 @@ msgstr "" #: ../actions/imsettings.php:76 actions/imsettings.php:77 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." -msgstr "" +msgstr "Send me replies through Jabber/GTalk from people I’m not subscribed to." #: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215 msgid "Settings" @@ -2050,12 +2096,12 @@ msgstr "" #: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58 #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "Sorry, no incoming e-mail allowed." #: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54 #: scripts/maildaemon.php:57 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Sorry, that is not your incoming e-mail address." #: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 msgid "Source" @@ -2090,12 +2136,12 @@ msgstr "" #: ../actions/userauthorization.php:310 actions/userauthorization.php:322 #: actions/userauthorization.php:338 msgid "Subscription authorized" -msgstr "" +msgstr "Subscription authorised" #: ../actions/userauthorization.php:320 actions/userauthorization.php:332 #: actions/userauthorization.php:349 msgid "Subscription rejected" -msgstr "Subscription rejected" +msgstr "" #: ../actions/showstream.php:230 ../actions/showstream.php:307 #: ../actions/subscriptions.php:27 actions/showstream.php:240 @@ -2103,12 +2149,12 @@ msgstr "Subscription rejected" #: actions/showstream.php:407 actions/showstream.php:489 #: lib/subgroupnav.php:80 msgid "Subscriptions" -msgstr "Subscriptions" +msgstr "" #: ../actions/avatar.php:87 actions/profilesettings.php:324 #: lib/imagefile.php:78 msgid "System error uploading file." -msgstr "System error uploading file." +msgstr "" #: ../actions/tag.php:41 ../lib/util.php:301 actions/tag.php:41 #: lib/util.php:317 actions/profilesettings.php:122 actions/showstream.php:297 @@ -2129,7 +2175,7 @@ msgstr "" #: ../actions/openidsettings.php:140 actions/openidsettings.php:149 #: actions/openidsettings.php:227 msgid "That OpenID does not belong to you." -msgstr "That OpenID does not belong to you." +msgstr "" #: ../actions/confirmaddress.php:52 actions/confirmaddress.php:52 #: actions/confirmaddress.php:94 @@ -2143,7 +2189,7 @@ msgstr "" #: ../actions/emailsettings.php:191 actions/emailsettings.php:209 msgid "That email address already belongs to another user." -msgstr "" +msgstr "That e-mail address already belongs to another user." #: ../actions/avatar.php:80 actions/profilesettings.php:317 #: lib/imagefile.php:71 @@ -2158,7 +2204,7 @@ msgstr "" #: ../actions/emailsettings.php:188 actions/emailsettings.php:206 #: actions/emailsettings.php:318 msgid "That is already your email address." -msgstr "" +msgstr "That is already your e-mail address." #: ../actions/smssettings.php:188 actions/smssettings.php:196 #: actions/smssettings.php:306 @@ -2173,7 +2219,7 @@ msgstr "" #: ../actions/emailsettings.php:249 actions/emailsettings.php:267 #: actions/emailsettings.php:397 msgid "That is not your email address." -msgstr "" +msgstr "That is not your e-mail address." #: ../actions/smssettings.php:257 actions/smssettings.php:265 #: actions/smssettings.php:393 @@ -2184,7 +2230,7 @@ msgstr "" #: actions/emailsettings.php:244 actions/imsettings.php:218 #: actions/emailsettings.php:367 actions/imsettings.php:349 msgid "That is the wrong IM address." -msgstr "" +msgstr "That is the wrong I.M. address." #: ../actions/smssettings.php:233 actions/smssettings.php:241 #: actions/smssettings.php:362 @@ -2200,17 +2246,17 @@ msgstr "" #: actions/newnotice.php:49 actions/twitapistatuses.php:330 #: actions/facebookhome.php:243 actions/twitapistatuses.php:276 msgid "That's too long. Max notice size is 140 chars." -msgstr "" +msgstr "That’s too long. Max notice size is 140 chars." #: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72 #: actions/twitapiaccount.php:62 msgid "That's too long. Max notice size is 255 chars." -msgstr "" +msgstr "That’s too long. Max notice size is 255 chars." #: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92 #, php-format msgid "The address \"%s\" has been confirmed for your account." -msgstr "" +msgstr "The address ‘%s’ has been confirmed for your account." #: ../actions/emailsettings.php:264 ../actions/imsettings.php:250 #: ../actions/smssettings.php:274 actions/emailsettings.php:282 @@ -2226,6 +2272,9 @@ msgid "" "with the site's instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" +"The subscription has been authorised, but no callback URL was given. Check " +"with the site’s instructions for details on how to authorise the " +"subscription. Your subscription token is:" #: ../actions/userauthorization.php:322 msgid "" @@ -2233,6 +2282,9 @@ msgid "" "with the site's instructions for details on how to fully reject the " "subscription." msgstr "" +"The subscription has been rejected, but no callback URL was given. Check " +"with the site’s instructions for details on how to fully reject the " +"subscription." #: ../actions/subscribers.php:35 actions/subscribers.php:35 #, php-format @@ -2275,6 +2327,9 @@ msgid "" "to a local account. You can either create a new account, or connect with " "your existing account, if you have one." msgstr "" +"This is the first time you’ve logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." #: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586 #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 @@ -2306,6 +2361,7 @@ msgstr "" msgid "Timezone not selected." msgstr "" +# double space. #: ../actions/remotesubscribe.php:43 #, php-format msgid "" @@ -2313,6 +2369,10 @@ msgid "" "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" +"To subscribe, you can [log-in](%%action.login%%), or " +"[register](%%action.register%%) a new account. If you already have an " +"account on a [compatible microblogging site](%%doc.openmublog%%), enter your " +"profile URL below." #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 @@ -2365,7 +2425,7 @@ msgstr "" #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" -msgstr "" +msgstr "Unrecognised address type %s" #: ../actions/showstream.php:209 actions/showstream.php:219 #: lib/unsubscribeform.php:137 @@ -2391,7 +2451,7 @@ msgstr "" #: ../lib/settingsaction.php:103 lib/settingsaction.php:97 #: lib/connectsettingsaction.php:105 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Updates by instant messenger (I.M.)" #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 #: actions/twitapistatuses.php:129 @@ -2417,6 +2477,10 @@ msgid "" "site license, also. Use a picture that belongs to you and that you want to " "share." msgstr "" +"Upload a new ‘avatar’ (user image) here. You can’t edit the picture after " +"you upload it, so make sure it’s more or less square. It must be under the " +"site licence, also. Use a picture that belongs to you and that you want to " +"share." #: ../lib/settingsaction.php:91 msgid "Upload a new profile image" @@ -2435,7 +2499,7 @@ msgstr "" #: ../actions/finishremotesubscribe.php:86 #: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 msgid "User being listened to doesn't exist." -msgstr "" +msgstr "User being listened to doesn’t exist." #: ../actions/all.php:41 ../actions/avatarbynickname.php:48 #: ../actions/foaf.php:47 ../actions/replies.php:41 @@ -2467,30 +2531,30 @@ msgstr "" #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:139 msgid "What timezone are you normally in?" -msgstr "" +msgstr "In which timezone are you?" #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 #, php-format msgid "What's up, %s?" -msgstr "" +msgstr "What’s up, %s?" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 #: actions/profilesettings.php:119 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "" +msgstr "Where you are, like ‘City, State (or Region), Country’" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 #: actions/updateprofile.php:132 #, php-format msgid "Wrong image type for '%s'" -msgstr "" +msgstr "Wrong image type for ‘%s’" #: ../actions/updateprofile.php:123 actions/updateprofile.php:124 #: actions/updateprofile.php:127 #, php-format msgid "Wrong size image at '%s'" -msgstr "" +msgstr "Wrong size image at ‘%s’" #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 #: actions/deletenotice.php:64 actions/deletenotice.php:79 @@ -2536,13 +2600,15 @@ msgstr "" #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "You can receive SMS messages through e-mail from %%site.name%%." #: ../actions/openidsettings.php:86 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." msgstr "" +"You can remove an OpenID from your account by clicking the button marked " +"‘Remove’." #: ../actions/imsettings.php:28 actions/imsettings.php:28 #, php-format @@ -2567,7 +2633,7 @@ msgstr "" #: actions/finishopenidlogin.php:38 actions/register.php:68 #: actions/finishopenidlogin.php:43 msgid "You can't register if you don't agree to the license." -msgstr "" +msgstr "You can’t register if you don’t agree to the licence." #: ../actions/updateprofile.php:63 actions/updateprofile.php:64 #: actions/updateprofile.php:67 @@ -2586,11 +2652,19 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"You have a new posting address on %1$s.\n" +"\n" +"Send e-mail to %2$s to post new messages.\n" +"\n" +"More e-mail instructions at %3$s.\n" +"\n" +"Faithfully yours,\n" +"%4$s" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 #: actions/twitapistatuses.php:463 msgid "You may not delete another user's status." -msgstr "" +msgstr "You may not delete another user’s status." #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 #, php-format @@ -2603,9 +2677,10 @@ msgid "" "on the site. Thanks for growing the community!" msgstr "" +# extra spaces. #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " -msgstr "" +msgstr "You’ve been identified. Enter a new password below." #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 #: actions/openidlogin.php:104 @@ -2614,14 +2689,17 @@ msgstr "" #: ../actions/recoverpassword.php:164 msgid "Your nickname on this server, or your registered email address." -msgstr "" +msgstr "Your nickname on this server, or your registered e-mail address." +# extra spaces. #: ../actions/openidsettings.php:28 #, php-format msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." #: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 msgid "a few seconds ago" @@ -2676,7 +2754,7 @@ msgstr "" #: ../lib/stream.php:117 actions/noticesearch.php:136 #: actions/showstream.php:426 lib/stream.php:84 actions/noticesearch.php:187 msgid "in reply to..." -msgstr "" +msgstr "in reply to…" #: ../actions/noticesearch.php:137 ../actions/showstream.php:415 #: ../lib/stream.php:124 actions/noticesearch.php:143 @@ -2696,7 +2774,6 @@ msgstr "" # erm, not sure what to do here, « is recognised as a quotation mark. #: ../lib/util.php:1309 lib/util.php:1443 -#, fuzzy msgid "« After" msgstr "↠After" @@ -2718,63 +2795,63 @@ msgstr "" #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "This notice is not a favourite!" #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Could not delete favourite." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Favour" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Send me e-mail when someone adds my notice as a favourite." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Send me e-mail when someone sends me a private message." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" +msgstr "This notice is already a favourite!" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "Could not create favourite." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "Disfavour" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "%s favourite notices" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "Feed of favourite notices of %s" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "In-box for %s - page %d" #: actions/inbox.php:30 actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "In-box for %s" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "This is your in-box, which lists your incoming private messages." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2783,10 +2860,11 @@ msgid "" "\n" msgstr "" +# extra space? #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Automatically log-in in the future - " #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " @@ -2794,12 +2872,12 @@ msgstr "" #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Log-in with your username and password. " #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "That’s too long. Max message size is 140 chars." #: actions/newmessage.php:65 actions/newmessage.php:128 msgid "No recipient specified." @@ -2809,7 +2887,7 @@ msgstr "" #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "You can’t send a message to this user." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 @@ -2817,6 +2895,7 @@ msgstr "" msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" +"Don’t send a message to yourself - just say it to yourself quietly instead." #: actions/newmessage.php:108 actions/microsummary.php:62 #: actions/newmessage.php:163 @@ -2834,7 +2913,7 @@ msgstr "" #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[OpenID](%%doc.openid%%) lets you log-in to many sites " #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " @@ -2842,7 +2921,7 @@ msgstr "" #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "Removing your only OpenID would make it impossible to log-in! " #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " @@ -2886,11 +2965,11 @@ msgstr "" #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "If you’ve forgotten or lost your" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "You’ve been identified. Enter a " #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " @@ -2914,25 +2993,27 @@ msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." msgstr "" +"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " +"want to…" #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(You should receive a message by e-mail in a moment, with " #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "To subscribe, you can [log-in](%%action.login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "Feed for favourites of %s" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Could not retrieve favourite notices." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." @@ -2973,7 +3054,7 @@ msgstr "" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "Direct Messages You’ve Sent" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 #, php-format @@ -2993,23 +3074,23 @@ msgstr "" #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "Can’t send direct messages to users who aren’t your friend." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / Favourites from %s" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s updates favourited by %s / %s." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s added your notice as a favourite" #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3018,6 +3099,8 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s just added your notice from %2$s as one of their favourites.\n" +"\n" #: actions/twittersettings.php:27 msgid "" @@ -3054,7 +3137,7 @@ msgstr "" #: actions/twittersettings.php:75 actions/twittersettings.php:146 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "Send local ‘@’ replies to Twitter." #: actions/twittersettings.php:78 actions/twittersettings.php:153 msgid "Subscribe to my Twitter friends here." @@ -3073,7 +3156,7 @@ msgstr "" #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "Unable to retrieve account information for ‘%s’ from Twitter." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 @@ -3091,7 +3174,7 @@ msgstr "" #: actions/twittersettings.php:200 actions/twittersettings.php:208 #: actions/twittersettings.php:403 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "Couldn’t remove Twitter user." #: actions/twittersettings.php:212 actions/twittersettings.php:407 msgid "Twitter account removed." @@ -3101,7 +3184,7 @@ msgstr "" #: actions/twittersettings.php:428 actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "Couldn’t save Twitter preferences." #: actions/twittersettings.php:245 actions/twittersettings.php:461 msgid "Twitter preferences saved." @@ -3113,7 +3196,7 @@ msgstr "" #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "The subscription has been authorised, but no " #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " @@ -3157,7 +3240,7 @@ msgstr "" #: classes/Command.php:169 classes/Command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "Full name: %s" #: classes/Command.php:172 classes/Command.php:195 #, php-format @@ -3217,7 +3300,7 @@ msgstr "" #: classes/Command.php:315 classes/Command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "Can’t turn off notification." #: classes/Command.php:333 classes/Command.php:379 msgid "Notification on." @@ -3225,7 +3308,7 @@ msgstr "" #: classes/Command.php:335 classes/Command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "Can’t turn on notification." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" @@ -3272,12 +3355,12 @@ msgstr "" #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Favourites" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "%s’s favourite notices" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" @@ -3285,7 +3368,7 @@ msgstr "" #: lib/personal.php:75 lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "In-box" #: lib/personal.php:76 lib/personalgroupnav.php:124 msgid "Your incoming messages" @@ -3316,9 +3399,9 @@ msgid "Could not parse message." msgstr "" #: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#, php-format msgid "%s and friends, page %d" -msgstr "%s and friends" +msgstr "" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." @@ -3327,9 +3410,8 @@ msgstr "" # requires full stops? #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "IM Settings" +msgstr "" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 @@ -3367,9 +3449,8 @@ msgstr "" #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 -#, fuzzy msgid "Lost our file." -msgstr "No such notice." +msgstr "" #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 @@ -3387,9 +3468,8 @@ msgid "No profile with that ID." msgstr "" #: actions/block.php:111 -#, fuzzy msgid "Block user" -msgstr "No such user." +msgstr "" #: actions/block.php:129 msgid "Are you sure you want to block this user? " @@ -3406,7 +3486,7 @@ msgstr "" #: actions/confirmaddress.php:159 #, php-format msgid "The address \"%s\" has been " -msgstr "" +msgstr "The address ‘%s’ has been " #: actions/deletenotice.php:73 msgid "You are about to permanently delete a notice. " @@ -3414,7 +3494,7 @@ msgstr "" #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Add to favourites" #: actions/editgroup.php:54 #, php-format @@ -3424,7 +3504,7 @@ msgstr "" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "In-boxes must be enabled for groups to work" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 msgid "You must be logged in to create a group." @@ -3433,16 +3513,14 @@ msgstr "" #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "No nickname." +msgstr "" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 #: actions/showgroup.php:128 -#, fuzzy msgid "No such group" -msgstr "No such notice." +msgstr "" #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 @@ -3454,56 +3532,49 @@ msgid "Use this form to edit the group." msgstr "" #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" #: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy msgid "description is too long (max 140 chars)." -msgstr "Bio is too long (max 140 chars)" +msgstr "" #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Couldn’t update user." +msgstr "" #: actions/editgroup.php:226 msgid "Options saved." msgstr "" #: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "Error with confirmation code." +msgstr "" #: actions/emailsettings.php:139 actions/smssettings.php:150 msgid "Make a new email address for posting to; " -msgstr "" +msgstr "Make a new e-mail address for posting to - " #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "Send me e-mail when someone " #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Allow friends to nudge me and send me an e-mail." #: actions/emailsettings.php:321 -#, fuzzy msgid "That email address already belongs " -msgstr "E-mail address already exists." +msgstr "That e-mail address already belongs " #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " -msgstr "" -"A confirmation code was sent to the IM address you added. You must approve %" -"s for sending messages to you." +msgstr "A confirmation code was sent to the e-mail address you added. " #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "Server error - couldn’t get user!" #: actions/facebookhome.php:196 #, php-format @@ -3520,9 +3591,8 @@ msgid "Skip" msgstr "" #: actions/facebookhome.php:235 -#, fuzzy msgid "No notice content!" -msgstr "No content!" +msgstr "" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" @@ -3530,15 +3600,13 @@ msgstr "" # erm, not sure what to do here, « is recognised as a quotation mark. #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 -#, fuzzy msgid "After" -msgstr "↠After" +msgstr "" # erm, not sure what to do here, » is recognised as a quotation mark. #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy msgid "Before" -msgstr "Before →" +msgstr "" #: actions/facebookinvite.php:70 #, php-format @@ -3555,9 +3623,9 @@ msgid "You have been invited to %s" msgstr "" #: actions/facebookinvite.php:105 -#, fuzzy, php-format +#, php-format msgid "Invite your friends to use %s" -msgstr "Feed for friends of %s" +msgstr "" #: actions/facebookinvite.php:113 #, php-format @@ -3570,18 +3638,16 @@ msgid "Send invitations" msgstr "" #: actions/facebookremove.php:56 -#, fuzzy msgid "Couldn't remove Facebook user." -msgstr "Couldn’t update user." +msgstr "Couldn’t remove Facebook user." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" msgstr "" #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." -msgstr "Preferences saved." +msgstr "" #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." @@ -3589,12 +3655,11 @@ msgstr "" #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "Send ‘@’ replies to Facebook." #: actions/facebooksettings.php:106 -#, fuzzy msgid "Prefix" -msgstr "Profile" +msgstr "" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." @@ -3606,24 +3671,22 @@ msgid "If you would like %s to automatically update " msgstr "" #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" -msgstr "Preferences" +msgstr "" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Disfavor favourite" #: actions/favorited.php:65 lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 -#, fuzzy msgid "Popular notices" -msgstr "No such notice." +msgstr "" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "No such notice." +msgstr "" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." @@ -3661,14 +3724,12 @@ msgid "You can upload a logo image for your group." msgstr "" #: actions/grouplogo.php:448 -#, fuzzy msgid "Logo updated." -msgstr "Avatar updated." +msgstr "" #: actions/grouplogo.php:450 -#, fuzzy msgid "Failed updating logo." -msgstr "Failed to update avatar." +msgstr "Failed to update logo." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format @@ -3700,9 +3761,8 @@ msgid "%%%%site.name%%%% groups let you find and talk with " msgstr "" #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 -#, fuzzy msgid "Create a new group" -msgstr "Create new account" +msgstr "" #: actions/groupsearch.php:57 #, php-format @@ -3711,9 +3771,8 @@ msgid "" msgstr "" #: actions/groupsearch.php:63 -#, fuzzy msgid "Group search" -msgstr "People search" +msgstr "" #: actions/imsettings.php:70 msgid "You can send and receive notices through " @@ -3729,9 +3788,9 @@ msgid "Send me replies through Jabber/GTalk " msgstr "" #: actions/imsettings.php:321 -#, fuzzy, php-format +#, php-format msgid "A confirmation code was sent " -msgstr "No confirmation code." +msgstr "" #: actions/joingroup.php:65 msgid "You must be logged in to join a group." @@ -3742,9 +3801,9 @@ msgid "You are already a member of that group" msgstr "" #: actions/joingroup.php:128 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Could not redirect to server: %s" +msgstr "" #: actions/joingroup.php:135 #, php-format @@ -3753,16 +3812,15 @@ msgstr "" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "In-boxes must be enabled for groups to work." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." msgstr "" #: actions/leavegroup.php:88 -#, fuzzy msgid "No such group." -msgstr "No such notice." +msgstr "" #: actions/leavegroup.php:95 msgid "You are not a member of that group." @@ -3778,9 +3836,9 @@ msgstr "" # Thought form was incorrect #: actions/leavegroup.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Could not create OpenID from: %s" +msgstr "" #: actions/leavegroup.php:145 #, php-format @@ -3789,7 +3847,7 @@ msgstr "" #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "Log-in to site" #: actions/microsummary.php:69 msgid "No current status" @@ -3804,27 +3862,24 @@ msgid "Use this form to create a new group." msgstr "" #: actions/newgroup.php:177 -#, fuzzy msgid "Could not create group." -msgstr "Could not save avatar info" +msgstr "Couldn’t create group." #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." -msgstr "Couldn’t create subscription." +msgstr "Couldn’t set group membership." #: actions/newmessage.php:119 actions/newnotice.php:132 msgid "That's too long. " -msgstr "" +msgstr "That’s too long." #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "Don’t send a message to yourself - " #: actions/newnotice.php:166 -#, fuzzy msgid "Notice posted" -msgstr "Notices" +msgstr "" #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" @@ -3834,6 +3889,7 @@ msgstr "" msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"This user doesn’t allow nudges or hasn’t confirmed or set his e-mail yet." #: actions/nudge.php:94 msgid "Nudge sent" @@ -3844,9 +3900,8 @@ msgid "Nudge sent!" msgstr "" #: actions/openidlogin.php:97 -#, fuzzy msgid "OpenID login" -msgstr "OpenID Log-in" +msgstr "OpenID log-in" #: actions/openidsettings.php:128 msgid "Removing your only OpenID " @@ -3854,9 +3909,8 @@ msgstr "" # requires full stops? #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "IM Settings" +msgstr "" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -3875,24 +3929,21 @@ msgid "Automatic shortening service to use." msgstr "" #: actions/othersettings.php:144 -#, fuzzy msgid "URL shortening service is too long (max 50 chars)." -msgstr "Location is too long (max 255 chars)." +msgstr "" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Change password" +msgstr "" #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" -msgstr "Password" +msgstr "" #: actions/peopletag.php:35 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s" -msgstr "Not a valid e-mail address." +msgstr "" #: actions/peopletag.php:47 #, php-format @@ -3902,12 +3953,11 @@ msgstr "" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "These are users who have tagged themselves ‘%s’ " #: actions/profilesettings.php:91 -#, fuzzy msgid "Profile information" -msgstr "Unknown profile" +msgstr "" #: actions/profilesettings.php:124 msgid "" @@ -3919,19 +3969,18 @@ msgid "Automatically subscribe to whoever " msgstr "" #: actions/profilesettings.php:229 actions/tagother.php:176 -#, fuzzy, php-format +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "Invalid homepage ‘%s’" +msgstr "" #: actions/profilesettings.php:311 -#, fuzzy msgid "Couldn't save tags." -msgstr "Couldn’t save profile." +msgstr "Couldn’t save tags." #: actions/public.php:107 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "Public timeline" +msgstr "" #: actions/public.php:173 msgid "Could not retrieve public stream." @@ -3945,9 +3994,8 @@ msgid "" msgstr "" #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Public Stream Feed" +msgstr "" #: actions/publictagcloud.php:63 #, php-format @@ -3964,16 +4012,15 @@ msgstr "" #: actions/register.php:149 msgid "You can't register if you don't " -msgstr "" +msgstr "You can’t register if you don’t " #: actions/register.php:286 msgid "With this form you can create " msgstr "" #: actions/register.php:368 -#, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" #: actions/register.php:382 actions/register.php:386 msgid "Used only for updates, announcements, " @@ -3984,19 +4031,16 @@ msgid "URL of your homepage, blog, " msgstr "" #: actions/register.php:404 -#, fuzzy msgid "Describe yourself and your " -msgstr "Describe yourself and your interests in 140 chars" +msgstr "" #: actions/register.php:410 msgid "Where you are, like \"City, " -msgstr "" +msgstr "Where you are, like ‘City, " #: actions/register.php:432 -#, fuzzy msgid " except this private data: password, " msgstr "" -"except this private data: password, e-mail address, IM address, phone number." #: actions/register.php:471 #, php-format @@ -4005,11 +4049,11 @@ msgstr "" #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(You should receive a message by e-mail " #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "That’s a local profile! Log-in to subscribe." #: actions/replies.php:118 #, php-format @@ -4019,7 +4063,7 @@ msgstr "" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "%s favourite notices, page %d" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format @@ -4032,9 +4076,8 @@ msgid "%s group, page %d" msgstr "" #: actions/showgroup.php:206 -#, fuzzy msgid "Group profile" -msgstr "No such notice." +msgstr "" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 @@ -4043,23 +4086,21 @@ msgstr "" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy msgid "Note" -msgstr "Notices" +msgstr "" #: actions/showgroup.php:270 msgid "Group actions" msgstr "" #: actions/showgroup.php:323 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group" -msgstr "Notice feed for %s" +msgstr "" #: actions/showgroup.php:357 lib/groupnav.php:90 -#, fuzzy msgid "Members" -msgstr "Member since" +msgstr "" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 @@ -4088,14 +4129,12 @@ msgid "%s, page %d" msgstr "" #: actions/showstream.php:143 -#, fuzzy msgid "'s profile" -msgstr "Profile" +msgstr "’s profile" #: actions/showstream.php:236 actions/tagother.php:77 -#, fuzzy msgid "User profile" -msgstr "No such notice." +msgstr "" #: actions/showstream.php:240 actions/tagother.php:81 msgid "Photo" @@ -4114,9 +4153,8 @@ msgid "Message" msgstr "" #: actions/showstream.php:451 -#, fuzzy msgid "All subscribers" -msgstr "All subscriptions" +msgstr "" #: actions/showstream.php:533 msgid "All groups" @@ -4130,20 +4168,16 @@ msgid "" msgstr "" #: actions/smssettings.php:128 -#, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" #: actions/smssettings.php:162 msgid "Send me notices through SMS; " msgstr "" #: actions/smssettings.php:335 -#, fuzzy msgid "A confirmation code was sent to the phone number you added. " msgstr "" -"A confirmation code was sent to the IM address you added. You must approve %" -"s for sending messages to you." #: actions/smssettings.php:453 msgid "Mobile carrier" @@ -4154,24 +4188,21 @@ msgid "You are not subscribed to that profile." msgstr "" #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "Couldn’t create subscription." +msgstr "Couldn’t save subscription." #: actions/subscribe.php:55 -#, fuzzy msgid "Not a local user." -msgstr "No such user." +msgstr "" #: actions/subscribe.php:69 -#, fuzzy msgid "Subscribed" -msgstr "Not subscribed!" +msgstr "" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "Not subscribed!" +msgstr "" #: actions/subscribers.php:52 #, php-format @@ -4179,59 +4210,54 @@ msgid "%s subscribers, page %d" msgstr "" #: actions/subscribers.php:63 -#, fuzzy msgid "These are the people who listen to " -msgstr "These are the people who listen to %s’s notices." +msgstr "" #: actions/subscribers.php:67 -#, fuzzy, php-format +#, php-format msgid "These are the people who " -msgstr "These are the people who listen to %s’s notices." +msgstr "" #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "All subscriptions" +msgstr "" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "All subscriptions" +msgstr "" #: actions/subscriptions.php:65 -#, fuzzy msgid "These are the people whose notices " -msgstr "These are the people who listen to %s’s notices." +msgstr "" #: actions/subscriptions.php:69 -#, fuzzy, php-format +#, php-format msgid "These are the people whose " -msgstr "These are the people who listen to %s’s notices." +msgstr "" #: actions/subscriptions.php:122 -#, fuzzy msgid "Jabber" -msgstr "No Jabber ID." +msgstr "" #: actions/tag.php:43 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "Microblog by %s" +msgstr "" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "Messages tagged ‘%s’, most recent first" #: actions/tagother.php:33 -#, fuzzy msgid "Not logged in" -msgstr "Not logged in." +msgstr "" #: actions/tagother.php:39 -#, fuzzy msgid "No id argument." -msgstr "No such document." +msgstr "" #: actions/tagother.php:65 #, php-format @@ -4258,23 +4284,21 @@ msgid "" msgstr "" #: actions/tagother.php:198 -#, fuzzy msgid "Could not save tags." -msgstr "Could not save avatar info" +msgstr "" #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "No such notice." +msgstr "" #: actions/tagrss.php:66 -#, fuzzy, php-format +#, php-format msgid "Microblog tagged with %s" -msgstr "Microblog by %s" +msgstr "" #: actions/twitapiblocks.php:47 msgid "Block user failed." @@ -4285,9 +4309,8 @@ msgid "Unblock user failed." msgstr "" #: actions/twitapiusers.php:48 -#, fuzzy msgid "Not found." -msgstr "No request found!" +msgstr "" #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " @@ -4298,9 +4321,8 @@ msgid "Twitter user name" msgstr "" #: actions/twittersettings.php:126 -#, fuzzy msgid "Twitter password" -msgstr "New password" +msgstr "" #: actions/twittersettings.php:228 msgid "Twitter Friends" @@ -4311,28 +4333,25 @@ msgid "Username must have only numbers, " msgstr "" #: actions/twittersettings.php:341 -#, fuzzy, php-format +#, php-format msgid "Unable to retrieve account information " -msgstr "Couldn’t delete e-mail confirmation." +msgstr "" #: actions/unblock.php:108 -#, fuzzy msgid "Error removing the block." -msgstr "Error saving the user." +msgstr "" #: actions/unsubscribe.php:50 -#, fuzzy msgid "No profile id in request." -msgstr "No profile URL returned by server." +msgstr "" #: actions/unsubscribe.php:57 msgid "No profile with that id." msgstr "" #: actions/unsubscribe.php:71 -#, fuzzy msgid "Unsubscribed" -msgstr "Not subscribed!" +msgstr "" #: actions/usergroups.php:63 #, php-format @@ -4345,23 +4364,23 @@ msgid "%s groups, page %d" msgstr "" #: classes/Notice.php:104 -#, fuzzy msgid "Problem saving notice. Unknown user." -msgstr "Problem saving notice." +msgstr "" #: classes/Notice.php:109 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Too many notices, too fast - take a breather and post again in a few " +"minutes." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." msgstr "" #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "Failed to update avatar." +msgstr "" #: lib/accountsettingsaction.php:119 msgid "Other" @@ -4393,63 +4412,56 @@ msgid "Search for people or text" msgstr "" #: lib/action.php:328 -#, fuzzy msgid "Account" -msgstr "About" +msgstr "" #: lib/action.php:328 msgid "Change your email, avatar, password, profile" -msgstr "" +msgstr "Change your e-mail, avatar, password, profile" #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "Connect to I.M., SMS, Twitter" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Log out from the site" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Log-in to the site" #: lib/action.php:338 -#, fuzzy msgid "Create an account" -msgstr "Create new account" +msgstr "" #: lib/action.php:341 -#, fuzzy msgid "Login with OpenID" -msgstr "No such OpenID." +msgstr "" #: lib/action.php:344 -#, fuzzy msgid "Help me!" -msgstr "Help" +msgstr "" #: lib/action.php:362 -#, fuzzy msgid "Site notice" -msgstr "New notice" +msgstr "" #: lib/action.php:417 msgid "Local views" msgstr "" #: lib/action.php:472 -#, fuzzy msgid "Page notice" -msgstr "New notice" +msgstr "" #: lib/action.php:562 -#, fuzzy msgid "Secondary site navigation" -msgstr "Subscriptions" +msgstr "" #: lib/action.php:602 lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "Laconica software licence" #: lib/action.php:630 msgid "All " @@ -4457,12 +4469,11 @@ msgstr "" #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "licence." #: lib/blockform.php:123 lib/blockform.php:153 -#, fuzzy msgid "Block this user" -msgstr "No such user." +msgstr "" #: lib/blockform.php:153 msgid "Block" @@ -4470,26 +4481,24 @@ msgstr "" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "Disfavour this notice" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "To use the %s Facebook Application you need to log-in " #: lib/facebookaction.php:271 -#, fuzzy msgid " a new account." -msgstr "Create new account" +msgstr "" #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 msgid "Published" msgstr "" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" -msgstr "No such notice." +msgstr "Favour this notice" #: lib/feedlist.php:64 msgid "Export data" @@ -4520,19 +4529,17 @@ msgid "URL of the homepage or blog of the group or topic" msgstr "" #: lib/groupeditform.php:151 -#, fuzzy msgid "Description" -msgstr "Subscriptions" +msgstr "" #: lib/groupeditform.php:153 -#, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Describe yourself and your interests in 140 chars" +msgstr "" #: lib/groupeditform.php:158 msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "" +msgstr "Location for the group, if any, like ‘City, State (or Region), Country’" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" @@ -4548,9 +4555,8 @@ msgid "Edit %s group properties" msgstr "" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "Log out" +msgstr "" #: lib/groupnav.php:107 #, php-format @@ -4571,32 +4577,28 @@ msgid "Tags in %s group's notices" msgstr "" #: lib/htmloutputter.php:104 -#, fuzzy msgid "This page is not available in a " -msgstr "Homepage is not a valid URL." +msgstr "" #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Log-in" +msgstr "" #: lib/leaveform.php:114 msgid "Leave" msgstr "" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "Invalid username or password." +msgstr "Log-in with a username and password" #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" -msgstr "Create new account" +msgstr "" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Log-in or register with OpenID" #: lib/mail.php:175 #, php-format @@ -4606,19 +4608,19 @@ msgid "" msgstr "" #: lib/mail.php:236 -#, fuzzy, php-format +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s is now listening to your notices on %2$s." +msgstr "" #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "Location" +msgstr "" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Homepage" +msgstr "" #: lib/mail.php:258 #, php-format @@ -4630,7 +4632,7 @@ msgstr "" #: lib/mail.php:461 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "You’ve been nudged by %s" #: lib/mail.php:465 #, php-format @@ -4638,9 +4640,9 @@ msgid "%1$s (%2$s) is wondering what you are up to " msgstr "" #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s is now listening to your notices on %2$s." +msgstr "" #: lib/mailbox.php:229 lib/noticelist.php:380 msgid "From" @@ -4651,14 +4653,12 @@ msgid "Send a direct notice" msgstr "" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" -msgstr "New notice" +msgstr "" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" -msgstr "6 or more characters" +msgstr "" #: lib/noticelist.php:426 msgid "in reply to" @@ -4695,7 +4695,7 @@ msgstr "" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Tags in %s’s notices" #: lib/profilelist.php:182 msgid "(none)" @@ -4718,14 +4718,12 @@ msgid "Featured" msgstr "" #: lib/publicgroupnav.php:90 -#, fuzzy msgid "Popular" -msgstr "People search" +msgstr "" #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" -msgstr "Notices" +msgstr "" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" @@ -4736,14 +4734,14 @@ msgid "Untitled section" msgstr "" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "No such subscription" +msgstr "" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Not subscribed!" +msgstr "" #: lib/subgroupnav.php:97 #, php-format @@ -4772,9 +4770,8 @@ msgid "Top posters" msgstr "" #: lib/unblockform.php:120 lib/unblockform.php:150 -#, fuzzy msgid "Unblock this user" -msgstr "No such user." +msgstr "" #: lib/unblockform.php:150 msgid "Unblock" diff --git a/locale/es/LC_MESSAGES/laconica.mo b/locale/es/LC_MESSAGES/laconica.mo Binary files differindex a74ae65c4..0cde057a0 100644 --- a/locale/es/LC_MESSAGES/laconica.mo +++ b/locale/es/LC_MESSAGES/laconica.mo diff --git a/locale/es/LC_MESSAGES/laconica.po b/locale/es/LC_MESSAGES/laconica.po index fdad2814e..1d1955dc5 100644 --- a/locale/es/LC_MESSAGES/laconica.po +++ b/locale/es/LC_MESSAGES/laconica.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-29 17:57+0000\n" +"PO-Revision-Date: 2009-01-30 19:59+0000\n" "Last-Translator: Paula Salazar <psalazar@cmet.net>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" @@ -43,7 +43,7 @@ msgid "%1$s / Updates replying to %2$s" msgstr "%1$s / Actualizaciones en respuesta a %2$s" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 -#, fuzzy, php-format +#, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s te ha invitado a unirte a ellos en %2$s" @@ -646,7 +646,7 @@ msgstr "No se pudo actualizar el usuario con la dirección de correo confirmada. #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 msgid "Couldn't convert request tokens to access tokens." -msgstr "No se pudieron convertir las señales de petición a señales de acceso." +msgstr "No se pudieron convertir las clavesde petición a claves de acceso." #: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234 #: ../actions/imsettings.php:218 ../actions/smssettings.php:241 @@ -825,7 +825,7 @@ msgstr "Ingrese el código recibido en su teléfono" #: ../actions/userauthorization.php:137 actions/userauthorization.php:144 #: actions/userauthorization.php:161 msgid "Error authorizing token" -msgstr "Error al autorizar código" +msgstr "Error al autorizar clave" #: ../actions/finishopenidlogin.php:253 actions/finishopenidlogin.php:259 #: actions/finishopenidlogin.php:297 @@ -972,21 +972,21 @@ msgstr "Ayuda" #: ../lib/util.php:298 lib/util.php:314 lib/action.php:322 #: lib/facebookaction.php:200 msgid "Home" -msgstr "Portada" +msgstr "Inicio" #: ../actions/profilesettings.php:46 ../actions/register.php:167 #: actions/profilesettings.php:79 actions/register.php:181 #: actions/profilesettings.php:107 actions/register.php:396 #: lib/groupeditform.php:146 msgid "Homepage" -msgstr "Página personal" +msgstr "Página de inicio" #: ../actions/profilesettings.php:95 ../actions/register.php:76 #: actions/profilesettings.php:210 actions/register.php:83 #: actions/editgroup.php:192 actions/newgroup.php:143 #: actions/profilesettings.php:199 actions/register.php:168 msgid "Homepage is not a valid URL." -msgstr "La página personal no es un URL válido." +msgstr "La página de inicio no es un URL válido." #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 #: actions/emailsettings.php:173 @@ -1077,7 +1077,7 @@ msgstr "Dirección de correo electrónico inválida: %s" #: actions/updateprofile.php:102 #, php-format msgid "Invalid homepage '%s'" -msgstr "El sitio '%s' es inválido" +msgstr "La página de incicio '%s' no es válida" #: ../actions/updateprofile.php:82 actions/updateprofile.php:83 #: actions/updateprofile.php:86 @@ -1268,9 +1268,9 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" -"Carrier de celular para tu teléfono. Si conoces un carrier que acepte SMS " +"Operador móvil para tu teléfono. Si conoces un operador móvil que acepte SMS " "sobre correo electrónico pero no está listado aquÃ, envÃanos un correo para " -"hacérnoslo saber a %s." +"informarnos al %s." #: ../actions/finishopenidlogin.php:79 ../actions/register.php:188 #: actions/finishopenidlogin.php:85 actions/register.php:202 @@ -1377,7 +1377,7 @@ msgstr "¡Ninguna petición de autorización!" #: ../actions/smssettings.php:181 actions/smssettings.php:189 #: actions/smssettings.php:299 msgid "No carrier selected." -msgstr "Ningún carrier seleccionado." +msgstr "No se seleccionó un operador móvil." #: ../actions/smssettings.php:316 actions/smssettings.php:324 #: actions/smssettings.php:486 @@ -1562,7 +1562,7 @@ msgstr "La cuenta OpenID no es válida." #: ../actions/emailsettings.php:185 actions/emailsettings.php:203 #: actions/emailsettings.php:315 msgid "Not a valid email address" -msgstr "No es una dirección de correo electrónica válida" +msgstr "No es una dirección de correo electrónico válida" #: ../actions/register.php:63 actions/register.php:70 actions/register.php:152 msgid "Not a valid email address." @@ -1758,7 +1758,7 @@ msgstr "Recuperación de contraseña solicitada" #: actions/profilesettings.php:408 actions/recoverpassword.php:326 #: actions/passwordsettings.php:173 actions/recoverpassword.php:200 msgid "Password saved." -msgstr "Contraseña guardada" +msgstr "Se guardó Contraseña." #: ../actions/password.php:61 ../actions/register.php:88 #: actions/profilesettings.php:380 actions/register.php:98 @@ -2060,7 +2060,7 @@ msgstr "" #: ../actions/smssettings.php:296 actions/smssettings.php:304 #: actions/smssettings.php:457 msgid "Select a carrier" -msgstr "Seleccione un operador" +msgstr "Seleccione un operador móvil" #: ../actions/invite.php:137 ../lib/util.php:1172 actions/invite.php:145 #: lib/util.php:1306 lib/util.php:1731 actions/invite.php:182 @@ -2090,12 +2090,12 @@ msgid "" "from my carrier." msgstr "" "Enviarme avisos por SMS; Yo acepto que puede incurrir en grandes cobros por " -"mi operador de telefonÃa " +"mi operador móvil" #: ../actions/imsettings.php:76 actions/imsettings.php:77 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -"Envirame replicas por medio de Jabber/GTalk de gente a la cual no sigo." +"Envirame respuestas por medio de Jabber/GTalk de gente a la cual no sigo." #: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215 msgid "Settings" @@ -2104,7 +2104,7 @@ msgstr "Configuración" #: ../actions/profilesettings.php:192 actions/profilesettings.php:307 #: actions/profilesettings.php:319 msgid "Settings saved." -msgstr "Configuración guardada." +msgstr "Se guardó configuración." #: ../actions/tag.php:60 actions/tag.php:60 msgid "Showing most popular tags from the last week" @@ -2124,12 +2124,12 @@ msgstr "Algo raro pasó." #: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58 #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "Lo sentimos, pero el email de entrada no está permitido" +msgstr "Lo sentimos, pero no se permite correos entrantes" #: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54 #: scripts/maildaemon.php:57 msgid "Sorry, that is not your incoming email address." -msgstr "Lo sentimos, pero este no es su email de entrada." +msgstr "Lo sentimos, pero este no es su dirección de correo entrante." #: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 msgid "Source" @@ -2189,7 +2189,7 @@ msgstr "Error del sistema al cargar el archivo." #: actions/tagother.php:147 actions/tagother.php:207 lib/profilelist.php:162 #: lib/profilelist.php:164 msgid "Tags" -msgstr "Etiquetas" +msgstr "Tags" #: ../lib/searchaction.php:104 lib/searchaction.php:104 msgid "Text" @@ -2232,12 +2232,12 @@ msgstr "Ese ya es tu Jabber ID." #: ../actions/emailsettings.php:188 actions/emailsettings.php:206 #: actions/emailsettings.php:318 msgid "That is already your email address." -msgstr "Esa ya es su dirección de correo electrónico" +msgstr "Esa ya es tu dirección de correo electrónico" #: ../actions/smssettings.php:188 actions/smssettings.php:196 #: actions/smssettings.php:306 msgid "That is already your phone number." -msgstr "Ese ya es su número telefónico" +msgstr "Ese ya es tu número telefónico" #: ../actions/imsettings.php:233 actions/imsettings.php:241 #: actions/imsettings.php:381 @@ -2247,12 +2247,12 @@ msgstr "Ese no es tu Jabber ID." #: ../actions/emailsettings.php:249 actions/emailsettings.php:267 #: actions/emailsettings.php:397 msgid "That is not your email address." -msgstr "Esa no es su dirección de correo electrónico" +msgstr "Esa no es tu dirección de correo electrónico" #: ../actions/smssettings.php:257 actions/smssettings.php:265 #: actions/smssettings.php:393 msgid "That is not your phone number." -msgstr "Ese no es su número telefónico" +msgstr "Ese no es tu número telefónico" #: ../actions/emailsettings.php:226 ../actions/imsettings.php:210 #: actions/emailsettings.php:244 actions/imsettings.php:218 @@ -2268,7 +2268,7 @@ msgstr "Ese no es el número de confirmación" #: ../actions/smssettings.php:191 actions/smssettings.php:199 #: actions/smssettings.php:309 msgid "That phone number already belongs to another user." -msgstr "Ese número telefónico pertenece ya a otro usuario" +msgstr "Ese número telefónico ya pertenece a otro usuario" #: ../actions/newnotice.php:49 ../actions/twitapistatuses.php:408 #: actions/newnotice.php:49 actions/twitapistatuses.php:330 @@ -2326,11 +2326,11 @@ msgstr "Estas son las personas que escuchan tus avisos." #: ../actions/subscriptions.php:35 actions/subscriptions.php:35 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "Estas son las personas que %s escucha." +msgstr "Estas son las personas que %s escucha sus avisos." #: ../actions/subscriptions.php:33 actions/subscriptions.php:33 msgid "These are the people whose notices you listen to." -msgstr "Estas son las personas que escuchas." +msgstr "Estas son las personas que escuchas sus avisos." #: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128 msgid "" @@ -2368,7 +2368,7 @@ msgstr "" #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 msgid "This method requires a POST or DELETE." -msgstr "Este método requiere un POST o DELETE" +msgstr "Este método requiere un PUBLICAR O ELIMINAR" #: ../actions/twitapiaccount.php:65 ../actions/twitapifriendships.php:44 #: ../actions/twitapistatuses.php:381 actions/twitapiaccount.php:63 @@ -2377,11 +2377,11 @@ msgstr "Este método requiere un POST o DELETE" #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 #: actions/twitapistatuses.php:244 msgid "This method requires a POST." -msgstr "" +msgstr "Este método requiere PUBLICAR" #: ../lib/util.php:164 lib/util.php:246 msgid "This page is not available in a media type you accept" -msgstr "Esta página no está disponible en un tipo de media que aceptes." +msgstr "Esta página no está disponible en el tipo de medio que aceptas." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:138 @@ -2401,7 +2401,7 @@ msgid "" "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" "Para suscribirte, puedes [iniciar una sesión](%%action.login%%), o " -"[registrar](%%action.register%%) una nueva cuenta. Si ya tienes una en un " +"[registrar](%%action.register%%) una cuenta nueva. Si ya tienes una en un " "[servicio de microblogueo compatible](%%doc.openmublog%%), escribe el URL de " "tu perfil debajo." @@ -2414,7 +2414,7 @@ msgstr "Deben proveerse dos identificaciones de usuario o nombres en pantalla." #: actions/profilesettings.php:81 actions/register.php:183 #: actions/profilesettings.php:109 msgid "URL of your homepage, blog, or profile on another site" -msgstr "El URL de tu página personal, blog o perfil en otro sitio" +msgstr "El URL de tu página de inicio, blog o perfil en otro sitio" #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 @@ -2490,13 +2490,13 @@ msgstr "Actualizaciones por mensajerÃa instantánea" #: actions/twitapistatuses.php:129 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "¡Actualizaciones de %1$s y amigos en %2$s!" #: ../actions/twitapistatuses.php:341 actions/twitapistatuses.php:268 #: actions/twitapistatuses.php:202 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "¡Actualizaciones de %1$s en %2$s!" #: ../actions/avatar.php:68 actions/profilesettings.php:161 #: actions/avatarsettings.php:162 actions/grouplogo.php:232 @@ -2530,7 +2530,7 @@ msgstr "" #: actions/register.php:173 actions/register.php:176 msgid "Used only for updates, announcements, and password recovery" msgstr "" -"Usado sólo para actualizaciones, anuncios y recuperación de contraseñas" +"Se usa sólo para actualizaciones, anuncios y recuperación de contraseñas" #: ../actions/finishremotesubscribe.php:86 #: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 @@ -2597,7 +2597,7 @@ msgstr "Tamaño de imagen incorrecto para '%s'" #: actions/block.php:148 actions/deletenotice.php:122 #: actions/deletenotice.php:141 msgid "Yes" -msgstr "" +msgstr "SÃ" #: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64 #: actions/finishaddopenid.php:112 @@ -2609,6 +2609,8 @@ msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Estás a punto de eliminar permanentemente un aviso. Si lo hace, no se podrá " +"deshacer" #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 @@ -2617,12 +2619,12 @@ msgstr "¡Ya te has conectado!" #: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "Ya estás suscrito a estos usuarios:" #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "" +msgstr "No eres amigo del usuario especificado." #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" @@ -2636,7 +2638,7 @@ msgstr "Puedes crear una nueva cuenta y empezar a enviar avisos." #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Puedes recibir mensajes SMS por correo electrónico desde %%site.name%%." #: ../actions/openidsettings.php:86 msgid "" @@ -2653,7 +2655,7 @@ msgid "" "doc.im%%). Configure your address and settings below." msgstr "" "Puedes enviar y recibir avisos vÃa [mensajes instantáneos](%%doc.im%%) de " -"Jabber/GTalk. Configura tu dirección y opciones debajo." +"Jabber/GTalk. Configura tu dirección y opciones abajo." #: ../actions/profilesettings.php:27 msgid "" @@ -2692,22 +2694,32 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"You have a new posting address on %1$s.\n" +"\n" +"Enviar correo a %2$s para publicar nuevos mensajes. \n" +"\n" +"Más instrucciones de correo en %3$s.\n" +"\n" +"Attentamente, \n" +"%4$s" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 #: actions/twitapistatuses.php:463 msgid "You may not delete another user's status." -msgstr "" +msgstr "No puedes borrar el estado de otro usuario." #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "" +msgstr "Debes estar conectado para invitar otros usuarios a usar %s" #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Recibirás un mensaje cuando tus invitados acepten tu invitacion y se " +"registren en el sitio. ¡Gracias por extender la comunidad! " #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " @@ -2802,7 +2814,7 @@ msgstr "repita la contraseña anterior" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 #: actions/twitapistatuses.php:555 msgid "unsupported file type" -msgstr "tipo de fichero no soportado" +msgstr "tipo de archivo soportado" #: ../lib/util.php:1309 lib/util.php:1443 #, fuzzy @@ -2824,66 +2836,70 @@ msgstr "« Después" #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 msgid "There was a problem with your session token. Try again, please." msgstr "" +"Hubo un problema con tu clave de sesión. Por favor, intenta nuevamente." #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "¡Este aviso no es un favorito!" #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "No se pudo borrar favorito." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Aceptar" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." msgstr "" +"Enviarme un correo electrónico cuando alguien agrega mi aviso a favoritos." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." msgstr "" +"Enviarme un correo electrónico cuando alguien me envÃa un mensaje privado." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" +msgstr "¡Este aviso ya está en favoritos!" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "No se pudo crear favorito." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "Sacar" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "%s avisos favoritos" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "Feed de avisos favoritos de %s" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "Bandeja de entrada para %s - página %d" #: actions/inbox.php:30 actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Bandeja de entrada para %s" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." msgstr "" +"Ésta es tu bandeja de entrada, incluye lista de mensajes privados entrantes." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2891,95 +2907,99 @@ msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" msgstr "" +"%1$s te invitó a unirte a ellos en %2$s (%3$s).\n" +"\n" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Conectarte automáticamente en el futuro;" #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "Por razones de seguridad, por favor volver a ingresar tu " #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Entrar con nombre y contraseña de usuario." #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "Demasiado largo. Máximo 140 caracteres. " #: actions/newmessage.php:65 actions/newmessage.php:128 msgid "No recipient specified." -msgstr "" +msgstr "No se especificó receptor." #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "No puedes enviar mensaje a este usuario." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 #: classes/Command.php:240 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgstr "No te auto envÃes un mensaje; dÃcetelo a ti mismo." #: actions/newmessage.php:108 actions/microsummary.php:62 #: actions/newmessage.php:163 msgid "No such user" -msgstr "" +msgstr "No existe el usuario." #: actions/newmessage.php:117 actions/newmessage.php:67 msgid "New message" -msgstr "" +msgstr "Nuevo Mensaje " #: actions/noticesearch.php:95 actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "Aviso sin perfil equivalente" #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[OpenID](%%doc.openid%%) te permite entrar a muchos sitios" #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "Si quieres agregar un OpenID a tu cuenta," #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "¡Eliminar tu único OpenID significa que no podrás conectarte!" #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "Puedes eliminar un OpenID de tu cuenta" #: actions/outbox.php:28 actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "Bandeja de salida para %s - página %d" #: actions/outbox.php:30 actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Bandeja de salida para %s" #: actions/outbox.php:53 actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" +"Ésta es tu bandeja de salida, incluye la lista de mensajes privados " +"enviados." #: actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " -msgstr "" +msgstr "Buscar personas en %%site.name%% por nombre, lugar o intereses." #: actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" +msgstr "Puedes actualizar aquà tu información de perfil personal" #: actions/profilesettings.php:115 actions/remotesubscribe.php:320 #: actions/userauthorization.php:159 actions/userrss.php:76 @@ -2987,35 +3007,35 @@ msgstr "" #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 msgid "User without matching profile" -msgstr "" +msgstr "Usuario sin perfil equivalente" #: actions/recoverpassword.php:91 actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "Éste código de confirmación es demasiado antiguo." #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "Si olvidaste o perdiste tu" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "Has sido identificado. Ingresar a " #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "Tu apodo en este servidor," #: actions/recoverpassword.php:271 actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "Instrucciones para recuperar tu contraseña" #: actions/recoverpassword.php:327 actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "Se guardo exitosamente la nueva contraseña." #: actions/register.php:95 actions/register.php:180 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Cotrnaseña debe tener 6 o más caracteres." #: actions/register.php:216 #, php-format @@ -3023,102 +3043,104 @@ msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." msgstr "" +"¡Felicitaciones, %s! Y bienvenido a %%%%site.name%%%%. Desde aquÃ, quizás " +"quieras..." #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(Debieras recibir un mensaje por correo electrónico en un momento, con" #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "Para suscribirse, puedes [login](%%action.login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "Feed para favoritos de %s" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "No se pudo recibir avisos favoritos." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "No existe el mensaje." #: actions/showmessage.php:42 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Sólo el remitente y el receptor pueden leer este mensaje." #: actions/showmessage.php:61 actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Mensaje a %1$s en %2$s" #: actions/showmessage.php:66 actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Mensaje de %1$s en %2$s" #: actions/showstream.php:154 msgid "Send a message" -msgstr "" +msgstr "Enviar un mensaje" #: actions/smssettings.php:312 actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "Operador móvil para tu teléfono." #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "Mensajes directos a %s" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Todos los mensajes directos enviados a %s" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "Mensajes directos que has enviado" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Todos los mensajes directos enviados desde %s" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 msgid "No message text!" -msgstr "" +msgstr "¡Sin texto de mensaje!" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 msgid "Recipient user not found." -msgstr "" +msgstr "No se encuentra usuario receptor." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "No se puede enviar mensajes directos a usuarios que no son tu amigo." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / Favoritos desde %s" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s actualizaciones favoritas por %s / %s." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s agregó tu aviso a favoritos" #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3127,230 +3149,235 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s recién agregó tu aviso desde %2$s como uno de sus favoritos. \n" +"\n" #: actions/twittersettings.php:27 msgid "" "Add your Twitter account to automatically send your notices to Twitter, " msgstr "" +"Agregar tu cuenta Twitter para enviar automáticamente tus avisos a Twitter, " #: actions/twittersettings.php:41 actions/twittersettings.php:60 msgid "Twitter settings" -msgstr "" +msgstr "Configuración de Twitter" #: actions/twittersettings.php:48 actions/twittersettings.php:105 msgid "Twitter Account" -msgstr "" +msgstr "Cuenta Twitter" #: actions/twittersettings.php:56 actions/twittersettings.php:113 msgid "Current verified Twitter account." -msgstr "" +msgstr "Cuenta Twitter actual verificada." #: actions/twittersettings.php:63 msgid "Twitter Username" -msgstr "" +msgstr "Nombre de usuario Twitter" #: actions/twittersettings.php:65 actions/twittersettings.php:123 msgid "No spaces, please." -msgstr "" +msgstr "Sin espacios, por favor." #: actions/twittersettings.php:67 msgid "Twitter Password" -msgstr "" +msgstr "Contraseña Twitter" #: actions/twittersettings.php:72 actions/twittersettings.php:139 msgid "Automatically send my notices to Twitter." -msgstr "" +msgstr "Enviar automáticamente mis avisos a Twitter." #: actions/twittersettings.php:75 actions/twittersettings.php:146 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "Enviar respuestas \"@\" locales a Twitter." #: actions/twittersettings.php:78 actions/twittersettings.php:153 msgid "Subscribe to my Twitter friends here." -msgstr "" +msgstr "Suscribir a mis amigos Twitter aquÃ." #: actions/twittersettings.php:122 msgid "" "Username must have only numbers, upper- and lowercase letters, and " "underscore (_). 15 chars max." msgstr "" +"Nombre de usuario sólo debe tener números, letras en mayúscula y minúscula, " +"y subrayadas (_). Máx. 15 caracteres." #: actions/twittersettings.php:128 actions/twittersettings.php:334 msgid "Could not verify your Twitter credentials!" -msgstr "" +msgstr "¡No se pudo verificar tus credenciales Twitter!" #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "No se pudo obtener tu información de cuenta para \"%s% desde Twitter." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "¡No se pudo guardar tu configuración de Twitter!" #: actions/twittersettings.php:174 actions/twittersettings.php:376 msgid "Twitter settings saved." -msgstr "" +msgstr "Se guardó configuración de Twitter." #: actions/twittersettings.php:192 actions/twittersettings.php:395 msgid "That is not your Twitter account." -msgstr "" +msgstr "No es tu cuenta Twitter." #: actions/twittersettings.php:200 actions/twittersettings.php:208 #: actions/twittersettings.php:403 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "No se pudo eliminar usuario Twitter." #: actions/twittersettings.php:212 actions/twittersettings.php:407 msgid "Twitter account removed." -msgstr "" +msgstr "Se eliminó cuenta Twitter." #: actions/twittersettings.php:225 actions/twittersettings.php:239 #: actions/twittersettings.php:428 actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "No se pudo guardar preferencias de Twitter." #: actions/twittersettings.php:245 actions/twittersettings.php:461 msgid "Twitter preferences saved." -msgstr "" +msgstr "Se guardó preferencias de Twitter." #: actions/userauthorization.php:84 actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "Por favor revisa esta información para verificar" #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "Se autorizó la suscripción, pero no" #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "Se rechazó la suscripción, pero no" #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 msgid "Command results" -msgstr "" +msgstr "Resultados de comando" #: classes/Channel.php:148 classes/Channel.php:204 msgid "Command complete" -msgstr "" +msgstr "Comando completo" #: classes/Channel.php:158 classes/Channel.php:215 msgid "Command failed" -msgstr "" +msgstr "Comando falló" #: classes/Command.php:39 classes/Command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Disculpa, todavÃa no se implementa este comando." #: classes/Command.php:96 classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "" +msgstr "Suscripciones: %1$s\n" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 #: classes/Command.php:276 msgid "User has no last notice" -msgstr "" +msgstr "Usuario no tiene último aviso" #: classes/Command.php:146 classes/Command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "Aviso marcado como favorito." #: classes/Command.php:166 classes/Command.php:189 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" #: classes/Command.php:169 classes/Command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "Nombre completo: %s" #: classes/Command.php:172 classes/Command.php:195 #, php-format msgid "Location: %s" -msgstr "" +msgstr "Lugar: %s" #: classes/Command.php:175 classes/Command.php:198 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Página de inicio: %s" #: classes/Command.php:178 classes/Command.php:201 #, php-format msgid "About: %s" -msgstr "" +msgstr "Sobre: %s" #: classes/Command.php:200 classes/Command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "Mensaje muy largo - máximo 140 caracteres, enviaste %d" #: classes/Command.php:214 classes/Command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "Se envió mensaje directo a %s" #: classes/Command.php:216 classes/Command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "Error al enviar mensaje directo." #: classes/Command.php:263 classes/Command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "Especificar el nombre del usuario a suscribir" #: classes/Command.php:270 classes/Command.php:307 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "Suscrito a %s" #: classes/Command.php:288 classes/Command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "Especificar el nombre del usuario para desuscribirse de" #: classes/Command.php:295 classes/Command.php:335 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "Desuscrito de %s" #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 #: classes/Command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "TodavÃa no se implementa comando." #: classes/Command.php:313 classes/Command.php:356 msgid "Notification off." -msgstr "" +msgstr "Notificación no activa." #: classes/Command.php:315 classes/Command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "No se puede desactivar notificación." #: classes/Command.php:333 classes/Command.php:379 msgid "Notification on." -msgstr "" +msgstr "Notificación activada." #: classes/Command.php:335 classes/Command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "No se puede activar notificación." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" -msgstr "" +msgstr "Comandos:\n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "No se pudo insertar mensaje." #: classes/Message.php:63 classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "No se pudo actualizar mensaje con nuevo URI." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "Usuario sin perfil equivalente en sistema." #: lib/mail.php:147 lib/mail.php:289 #, php-format @@ -3358,11 +3385,13 @@ msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"Tienes nueva dirección para publicar en %1$s.\n" +"\n" #: lib/mail.php:249 lib/mail.php:508 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Nuevo mensaje privado de %s" #: lib/mail.php:253 lib/mail.php:512 #, php-format @@ -3370,88 +3399,90 @@ msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"%1$s (%2$s) te envió un mensaje privado:\n" +"\n" #: lib/mailbox.php:43 lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Sólo el usuario puede leer sus bandejas de correo." #: lib/openid.php:195 lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "Este formulario deberÃa enviarse automáticamente." #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Favoritos" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "Avisos favoritos de %s" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" -msgstr "" +msgstr "Usuario" #: lib/personal.php:75 lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "Bandeja de Entrada" #: lib/personal.php:76 lib/personalgroupnav.php:124 msgid "Your incoming messages" -msgstr "" +msgstr "Mensajes entrantes" #: lib/personal.php:80 lib/personalgroupnav.php:128 msgid "Outbox" -msgstr "" +msgstr "Bandeja de Salida" #: lib/personal.php:81 lib/personalgroupnav.php:129 msgid "Your sent messages" -msgstr "" +msgstr "Mensajes enviados" #: lib/settingsaction.php:99 lib/connectsettingsaction.php:110 msgid "Twitter" -msgstr "" +msgstr "Twitter" #: lib/settingsaction.php:100 lib/connectsettingsaction.php:111 msgid "Twitter integration options" -msgstr "" +msgstr "Opciones de integración de Twitter" #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 msgid "To" -msgstr "" +msgstr "Para" #: scripts/maildaemon.php:45 scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "No se pudo analizar sintácticamente mensaje." #: actions/all.php:63 actions/facebookhome.php:162 #, fuzzy, php-format msgid "%s and friends, page %d" -msgstr "%s y amigos" +msgstr "%s y amigos, página %d" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "Puedes cargar tu avatar personal." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 #, fuzzy msgid "Avatar settings" -msgstr "Configuración" +msgstr "Configuración de Avatar" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "Original" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "Vista previa" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 msgid "Crop" -msgstr "" +msgstr "Cortar" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3463,83 +3494,83 @@ msgstr "" #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "Hubo problemas con tu clave de sessión." #: actions/avatarsettings.php:303 actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Elige un área cuadrada de la imagen para que sea tu avatar" #: actions/avatarsettings.php:327 actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "Se perdió nuestros datos de archivo." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 #, fuzzy msgid "Lost our file." -msgstr "No existe ese aviso." +msgstr "Se perdió nuestro archivo" #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 #: classes/User_group.php:129 classes/User_group.php:161 #, fuzzy msgid "Unknown file type" -msgstr "tipo de fichero no soportado" +msgstr "tipo de archivo desconocido" #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 msgid "No profile specified." -msgstr "" +msgstr "No se especificó perfil." #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 #: actions/unblock.php:75 msgid "No profile with that ID." -msgstr "" +msgstr "No existe perfil con ese ID" #: actions/block.php:111 #, fuzzy msgid "Block user" -msgstr "No existe ese usuario." +msgstr "Bloquear usuario." #: actions/block.php:129 msgid "Are you sure you want to block this user? " -msgstr "" +msgstr "¿Seguro de que quieres bloquear este usuario?" #: actions/block.php:162 #, fuzzy msgid "You have already blocked this user." -msgstr "¡Ya te has conectado!" +msgstr "Ya bloqueaste este usuario." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "No se guardó información de bloqueo." #: actions/confirmaddress.php:159 #, fuzzy, php-format msgid "The address \"%s\" has been " -msgstr "La dirección fue eliminada." +msgstr "La dirección \"%s\" fue " #: actions/deletenotice.php:73 #, fuzzy msgid "You are about to permanently delete a notice. " -msgstr "¿Estás seguro de que quieres eliminar este aviso?" +msgstr "¿Estás seguro de que quieres eliminar permanentemente este aviso?" #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Agregar a favoritos" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "Editar grupo %s" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "Se debe habilitar las bandejas de entrada para grupos" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Debes estar conectado para crear un grupo" #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 @@ -3553,55 +3584,53 @@ msgstr "Ningún apodo." #: actions/showgroup.php:128 #, fuzzy msgid "No such group" -msgstr "No existe ese aviso." +msgstr "No existe ese grupo" #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "Debes ser un admin para editar el grupo" #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "Usa este formulario para editar el grupo." #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 #, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "" -"El apodo debe tener solamente letras minúsculas y números y no puede tener " -"espacios. " +msgstr "El apodo sólo debe tener letras en minúscula" #: actions/editgroup.php:198 actions/newgroup.php:149 #, fuzzy msgid "description is too long (max 140 chars)." -msgstr "La biografÃa es demasiado larga (máx. 140 caracteres)." +msgstr "Descripción es demasiado larga (máx. 140 caracteres)." #: actions/editgroup.php:218 #, fuzzy msgid "Could not update group." -msgstr "No se pudo actualizar el usuario." +msgstr "No se pudo actualizar el grupo." #: actions/editgroup.php:226 #, fuzzy msgid "Options saved." -msgstr "Configuración guardada." +msgstr "Se guardó configuración de Opciones." #: actions/emailsettings.php:107 actions/imsettings.php:108 #, fuzzy, php-format msgid "Awaiting confirmation on this address. " -msgstr "Esperando confirmación de este número de teléfono." +msgstr "Esperando confirmación de esta dirección." #: actions/emailsettings.php:139 actions/smssettings.php:150 msgid "Make a new email address for posting to; " -msgstr "" +msgstr "Crear una nueva dirección de correo electrónico para publicar;" #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "Enviarme un correo cuando alguien" #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Permitir que amigos me contacten y envién un correo." #: actions/emailsettings.php:321 #, fuzzy @@ -3612,36 +3641,35 @@ msgstr "La dirección de correo electrónico ya existe." #, fuzzy msgid "A confirmation code was sent to the email address you added. " msgstr "" -"Un código de confirmación fue enviado a la dirección de mensajerÃa " -"instantánea que agregaste. Debes aprobar a %s para que pueda enviarte " -"mensajes." +"Un código de confirmación fue enviado a la dirección de correo electrónico " +"que agreaste. " #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "¡Error de servidor - no se pudo acceder a usuario!" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "Si quieres que la aplicación %s se actualice automáticamente" #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Permitir que %s actualice mi estado de Facebook" #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "Saltar" #: actions/facebookhome.php:235 #, fuzzy msgid "No notice content!" -msgstr "¡Ningún contenido!" +msgstr "¡Aviso sin contenido!" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "Paginación" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 #, fuzzy @@ -3656,309 +3684,309 @@ msgstr "Antes" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "Gracias por invitar a tus amigos a usar %s" #: actions/facebookinvite.php:72 #, fuzzy msgid "Invitations have been sent to the following users:" -msgstr "Invitacion(es) enviada(s) a las siguientes personas:" +msgstr "Se enviarón invitaciones a los siguientes usuarios: " #: actions/facebookinvite.php:96 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "Te invitaron a %s" #: actions/facebookinvite.php:105 #, fuzzy, php-format msgid "Invite your friends to use %s" -msgstr "Feed de los amigos de %s" +msgstr "Invita a tus amigos a usar %s" #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Amigos que ya usan %s:" #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "Enviar invitaciones" #: actions/facebookremove.php:56 #, fuzzy msgid "Couldn't remove Facebook user." -msgstr "No se pudo actualizar el usuario." +msgstr "No se pudo eliminar al usuario de Facebook." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "¡Hubo problemas al guardar tus preferencias de sincronización!" #: actions/facebooksettings.php:67 #, fuzzy msgid "Sync preferences saved." -msgstr "Preferencias guardadas." +msgstr "Preferencias de sincronización guardadas." #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." -msgstr "" +msgstr "Automáticamente actualizar mi estado de Facebook con mis avisos." #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "Enviar respuestas \"@\" a Facebook." #: actions/facebooksettings.php:106 #, fuzzy msgid "Prefix" -msgstr "Perfil" +msgstr "Prefijo" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Una serie para prefijar avisos. " #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "Si quieres que %s se actualice automáticamente" #: actions/facebooksettings.php:147 #, fuzzy msgid "Sync preferences" -msgstr "Preferencias" +msgstr "Preferencias de sincronización" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Sacar favorito" #: actions/favorited.php:65 lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 #, fuzzy msgid "Popular notices" -msgstr "No existe ese aviso." +msgstr "Avisos populares" #: actions/favorited.php:67 #, fuzzy, php-format msgid "Popular notices, page %d" -msgstr "No existe ese aviso." +msgstr "Avisos populares, página %d" #: actions/favorited.php:79 #, fuzzy msgid "The most popular notices on the site right now." -msgstr "Mostrando los tags más populares de la última semana" +msgstr "Ahora se muestran los avisos más populares en el sitio." #: actions/featured.php:69 lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 msgid "Featured users" -msgstr "" +msgstr "Usuarios que figuran" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Usuarios que figuran, página %d" #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "Una selección de algunos de los grandes usuarios en %s" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Ese usuario te ha bloqueado la suscripción." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "Sin ID" #: actions/grouplogo.php:138 actions/grouplogo.php:191 msgid "Group logo" -msgstr "" +msgstr "Logo de grupo" #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "Puedes cargar una imagen de logo para tu grupo." #: actions/grouplogo.php:448 #, fuzzy msgid "Logo updated." -msgstr "Avatar actualizado" +msgstr "SE actualizó logo." #: actions/grouplogo.php:450 #, fuzzy msgid "Failed updating logo." -msgstr "Error al actualizar avatar." +msgstr "Error al actualizar logo." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "Miembros del grupo %s" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "Miembros del grupo %s, página %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "Lista de los usuarios en este grupo." #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "Grupos" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Grupos, página %d" #: actions/groups.php:90 #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " -msgstr "" +msgstr "Los grupos %%%%site.name%%%% dejan que los encuentres y les hables " #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 #, fuzzy msgid "Create a new group" -msgstr "Crear una nueva cuenta" +msgstr "Crear un grupo nuevo" #: actions/groupsearch.php:57 #, fuzzy, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " -msgstr "" -"Buscar personas en %%site.name%% por nombre, ubicación o intereses. Separa " -"los términos con espacios; deben tener una longitud mÃnima de 3 caracteres." +msgstr "Buscar grupos en %%site.name%% por nombre, lugar o descripción." #: actions/groupsearch.php:63 #, fuzzy msgid "Group search" -msgstr "Buscador de gente" +msgstr "Buscador de grupos" #: actions/imsettings.php:70 msgid "You can send and receive notices through " -msgstr "" +msgstr "Puedes enviar y recibir avisos a través de " #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "Dirección Jabber o GTalk," #: actions/imsettings.php:147 #, fuzzy msgid "Send me replies through Jabber/GTalk " -msgstr "Enviarme avisos por Jabber/GTalk" +msgstr "Enviarme avisos a través de Jabber/GTalk" #: actions/imsettings.php:321 #, fuzzy, php-format msgid "A confirmation code was sent " -msgstr "Ningún código de confirmación." +msgstr "Se envió un código de confirmación." #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Debes estar conectado para unirte a un grupo." #: actions/joingroup.php:95 #, fuzzy msgid "You are already a member of that group" -msgstr "¡Ya te has conectado!" +msgstr "Ya eres miembro de ese grupo" #: actions/joingroup.php:128 #, fuzzy, php-format msgid "Could not join user %s to group %s" -msgstr "No puede seguir al usuario. Usuario no encontrado" +msgstr "No se puede unir usuario %s a grupo %s" #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s se unió a grupo %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "Se debe habilitar bandejas de entrada para que funcionen grupos." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Debes estar conectado para dejar un grupo." #: actions/leavegroup.php:88 #, fuzzy msgid "No such group." -msgstr "No existe ese aviso." +msgstr "No existe ese grupo." #: actions/leavegroup.php:95 #, fuzzy msgid "You are not a member of that group." -msgstr "No nos enviaste ese perfil" +msgstr "No eres miembro de ese grupo" #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "No puedes dejar un grupo mientras seas su administrador." #: actions/leavegroup.php:130 #, fuzzy msgid "Could not find membership record." -msgstr "No se pudo actualizar información de usuario" +msgstr "No se pudo encontrar registro de miembro" #: actions/leavegroup.php:138 #, fuzzy, php-format msgid "Could not remove user %s to group %s" -msgstr "No puede seguir al usuario. Usuario no encontrado" +msgstr "No se pudo eliminar a usuario %s de grupo %s" #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s dejó grupo %s" #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "Ingresar a sitio" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "No existe estado actual" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Grupo nuevo " #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "Usa este formulario para crear un grupo nuevo." #: actions/newgroup.php:177 #, fuzzy msgid "Could not create group." -msgstr "No se pudo guardar la información del avatar" +msgstr "No se pudo crear grupo." #: actions/newgroup.php:191 #, fuzzy msgid "Could not set group membership." -msgstr "No se pudo crear la suscripción." +msgstr "No se pudo configurar miembros de grupo." #: actions/newmessage.php:119 actions/newnotice.php:132 #, fuzzy msgid "That's too long. " -msgstr "Ese archivo es demasiado grande." +msgstr "Ese demasiado largo." #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "No te auto envÃes un mensaje;" #: actions/newnotice.php:166 #, fuzzy msgid "Notice posted" -msgstr "Avisos" +msgstr "Aviso publicado" #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" -msgstr "" +msgstr "Error de Ajax" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"Este usuario no permite zumbidos o todavÃa no confirma o configura su correo " +"electrónico." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Se envió zumbido" # ¿zumbido? creo que asà lo traduce msn #: actions/nudge.php:97 @@ -3969,100 +3997,98 @@ msgstr "¡Zumbido enviado!" #: actions/openidlogin.php:97 #, fuzzy msgid "OpenID login" -msgstr "Ingreso desde una cuenta OpenID" +msgstr "Ingreso de OpenID" #: actions/openidsettings.php:128 #, fuzzy msgid "Removing your only OpenID " -msgstr "Eliminar OpenID" +msgstr "Eliminar único OpenID" #: actions/othersettings.php:60 #, fuzzy msgid "Other Settings" -msgstr "Configuración" +msgstr "Otras configuraciones" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "Manejo de varias opciones adicionales." #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "Acorte automático de URL" #: actions/othersettings.php:112 #, fuzzy msgid "Service" -msgstr "Buscar" +msgstr "Servicio" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "Servicio de acorte automático a usar." #: actions/othersettings.php:144 #, fuzzy msgid "URL shortening service is too long (max 50 chars)." -msgstr "La ubicación es demasiado larga (máx. 255 caracteres)." +msgstr "Servicio de acorte de URL demasiado largo (máx. 50 caracteres)." #: actions/passwordsettings.php:69 #, fuzzy msgid "Change your password." -msgstr "Cambia tu contraseña" +msgstr "Cambia tu contraseña." #: actions/passwordsettings.php:89 #, fuzzy msgid "Password change" -msgstr "Contraseña guardada" +msgstr "Cambio de contraseña " #: actions/peopletag.php:35 #, fuzzy, php-format msgid "Not a valid people tag: %s" -msgstr "Correo electrónico no válido" +msgstr "No es un tag de personas válido: %s" #: actions/peopletag.php:47 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "Usuarios auto marcados con %s - página %d" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "Estos usuarios se han marcado \"%s\"" #: actions/profilesettings.php:91 #, fuzzy msgid "Profile information" -msgstr "Perfil desconocido" +msgstr "Información de perfil " #: actions/profilesettings.php:124 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "" +msgstr "Tags para ti (letras, números, -, ., y _), coma - o espacio - separado" #: actions/profilesettings.php:144 #, fuzzy msgid "Automatically subscribe to whoever " -msgstr "" -"Suscribirse automáticamente a quien quiera que se suscriba a mà (es mejor " -"para no-humanos)" +msgstr "Suscribirse automáticamente a quien quiera " #: actions/profilesettings.php:229 actions/tagother.php:176 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" -msgstr "El sitio '%s' es inválido" +msgstr "Tag no válido: '%s' " #: actions/profilesettings.php:311 #, fuzzy msgid "Couldn't save tags." -msgstr "No se pudo guardar el perfil." +msgstr "No se pudo guardar tags." #: actions/public.php:107 #, fuzzy, php-format msgid "Public timeline, page %d" -msgstr "LÃnea temporal pública" +msgstr "LÃnea de tiempo pública, página %d" #: actions/public.php:173 msgid "Could not retrieve public stream." -msgstr "" +msgstr "No se pudo acceder a corriente pública." #: actions/public.php:220 #, php-format @@ -4070,140 +4096,138 @@ msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service " msgstr "" +"Es un %%site.name%%, un servicio [micro-" +"blogging](http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/publictagcloud.php:57 #, fuzzy msgid "Public tag cloud" -msgstr "Feed del flujo público" +msgstr "Nube de tags pública" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Éstos son los tags recientes más populares en %s" #: actions/publictagcloud.php:119 msgid "Tag cloud" -msgstr "" +msgstr "Nube de tags" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Disculpa, sólo personas invitadas pueden registrarse." #: actions/register.php:149 #, fuzzy msgid "You can't register if you don't " -msgstr "No puedes registrarte si no estás de acuerdo con la licencia." +msgstr "No puedes registrarte si no " #: actions/register.php:286 msgid "With this form you can create " -msgstr "" +msgstr "Con este formulario puedes crear" #: actions/register.php:368 #, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "" -"1-64 letras en minúscula o números, sin signos de puntuación o espacios" +msgstr "1-64 letras en minúscula o números" #: actions/register.php:382 actions/register.php:386 #, fuzzy msgid "Used only for updates, announcements, " -msgstr "" -"Usado sólo para actualizaciones, anuncios y recuperación de contraseñas" +msgstr "Usado sólo para actualizaciones, anuncios," #: actions/register.php:398 #, fuzzy msgid "URL of your homepage, blog, " -msgstr "El URL de tu página personal, blog o perfil en otro sitio" +msgstr "El URL de tu página de inicio, blog " #: actions/register.php:404 #, fuzzy msgid "Describe yourself and your " -msgstr "Cuéntanos algo sobre ti y tus intereses en 140 caracteres" +msgstr "DescrÃbete y cuenta de tus " #: actions/register.php:410 #, fuzzy msgid "Where you are, like \"City, " -msgstr "Dónde estás, por ejemplo \"Ciudad, Estado (o Región), PaÃs\"" +msgstr "Dónde estás, por ejemplo \"Ciudad, " #: actions/register.php:432 #, fuzzy msgid " except this private data: password, " -msgstr "" -"excepto los siguientes datos privados: contraseña, dirección de correo " -"electrónico, dirección de mensajerÃa instantánea, número de teléfono." +msgstr "excepto los siguientes datos privados: contraseña, " #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "¡Felicitaciones, %s! Y bienvenido a %%%%site.name%%%%." #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(Debieras recibir un mensaje por correo" #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "¡Es un perfil local! Ingresa para suscribirte" #: actions/replies.php:118 #, fuzzy, php-format msgid "Replies to %s, page %d" -msgstr "Respuestas a %s" +msgstr "Respuestas a %s, página %d" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "%s avisos favoritos, página %d" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "Grupo %s" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "Grupo %s, página %d" #: actions/showgroup.php:206 #, fuzzy msgid "Group profile" -msgstr "No existe ese aviso." +msgstr "Perfil de grupo" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 msgid "URL" -msgstr "" +msgstr "URL" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 #, fuzzy msgid "Note" -msgstr "Avisos" +msgstr "Nota" #: actions/showgroup.php:270 msgid "Group actions" -msgstr "" +msgstr "Acciones del grupo" #: actions/showgroup.php:323 #, fuzzy, php-format msgid "Notice feed for %s group" -msgstr "Feed de avisos de %s" +msgstr "Feed de avisos de grupo %s" #: actions/showgroup.php:357 lib/groupnav.php:90 #, fuzzy msgid "Members" -msgstr "Miembro desde" +msgstr "Miembros" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(Ninguno)" #: actions/showgroup.php:370 msgid "All members" -msgstr "" +msgstr "Todos los miembros" #: actions/showgroup.php:378 #, php-format @@ -4211,51 +4235,53 @@ msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** es un grupo de usuarios en %%%%site.name%%%%, un servicio [micro-" +"blogging](http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/showmessage.php:98 msgid "Only the sender and recipient " -msgstr "" +msgstr "Sólo el remitente y el receptor" #: actions/showstream.php:73 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s, página %d" #: actions/showstream.php:143 #, fuzzy msgid "'s profile" -msgstr "Perfil" +msgstr "Perfil de" #: actions/showstream.php:236 actions/tagother.php:77 #, fuzzy msgid "User profile" -msgstr "El usuario no tiene un perfil." +msgstr "Perfil de usuario" #: actions/showstream.php:240 actions/tagother.php:81 msgid "Photo" -msgstr "" +msgstr "Foto" #: actions/showstream.php:317 #, fuzzy msgid "User actions" -msgstr "Acción desconocida" +msgstr "Acciones de usuario" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "Enviar un mensaje directo a este usuario" #: actions/showstream.php:343 msgid "Message" -msgstr "" +msgstr "Mensaje" #: actions/showstream.php:451 #, fuzzy msgid "All subscribers" -msgstr "Suscriptores" +msgstr "Todos los suscriptores" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "Todos los grupos" #: actions/showstream.php:542 #, php-format @@ -4263,101 +4289,103 @@ msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** tiene una cuenta en %%%%site.name%%%%, un servicio [micro-" +"blogging](http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/smssettings.php:128 #, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "Número telefónico, sin puntuación ni espacios, incluya código de área" +msgstr "Número telefónico, sin puntuación ni espacios, " #: actions/smssettings.php:162 #, fuzzy msgid "Send me notices through SMS; " -msgstr "Enviarme avisos por Jabber/GTalk" +msgstr "Enviarme avisos por SMS;" #: actions/smssettings.php:335 #, fuzzy msgid "A confirmation code was sent to the phone number you added. " -msgstr "Esperando confirmación de este número de teléfono." +msgstr "Se envió un código de confirmación al número de teléfono que agregaste." #: actions/smssettings.php:453 #, fuzzy msgid "Mobile carrier" -msgstr "Seleccione un operador" +msgstr "Operador móvil" #: actions/subedit.php:70 #, fuzzy msgid "You are not subscribed to that profile." -msgstr "No nos enviaste ese perfil" +msgstr "No estás suscrito a ese perfil." #: actions/subedit.php:83 #, fuzzy msgid "Could not save subscription." -msgstr "No se pudo crear la suscripción." +msgstr "No se pudo guardar suscripción." #: actions/subscribe.php:55 #, fuzzy msgid "Not a local user." -msgstr "No existe ese usuario." +msgstr "No es usuario local." #: actions/subscribe.php:69 #, fuzzy msgid "Subscribed" -msgstr "Suscribirse" +msgstr "Suscrito" #: actions/subscribers.php:50 #, fuzzy, php-format msgid "%s subscribers" -msgstr "Suscriptores" +msgstr "Suscriptores %s" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "Suscriptores, página %d" #: actions/subscribers.php:63 #, fuzzy msgid "These are the people who listen to " -msgstr "Estas son las personas que escuchan los avisos de %s." +msgstr "Estas son las personas que escuchan" #: actions/subscribers.php:67 #, fuzzy, php-format msgid "These are the people who " -msgstr "Estas son las personas que escuchan los avisos de %s." +msgstr "Estas son las personas que " #: actions/subscriptions.php:52 #, fuzzy, php-format msgid "%s subscriptions" -msgstr "Todas las suscripciones" +msgstr "Suscripciones %s" #: actions/subscriptions.php:54 #, fuzzy, php-format msgid "%s subscriptions, page %d" -msgstr "Todas las suscripciones" +msgstr "Suscripciones, página %d" #: actions/subscriptions.php:65 #, fuzzy msgid "These are the people whose notices " -msgstr "Estas son las personas que %s escucha." +msgstr "Estas son las personas cuyos avisos" #: actions/subscriptions.php:69 #, fuzzy, php-format msgid "These are the people whose " -msgstr "Estas son las personas que escuchan los avisos de %s." +msgstr "Estas son las personas cuyos" #: actions/subscriptions.php:122 #, fuzzy msgid "Jabber" -msgstr "Ningún Jabber ID." +msgstr "Jabber " #: actions/tag.php:43 #, fuzzy, php-format msgid "Notices tagged with %s, page %d" -msgstr "Avisos marcados con %s" +msgstr "Avisos marcados con %s, página %d" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "Mensajes marcados \"%s\", el más reciente primero" #: actions/tagother.php:33 #, fuzzy @@ -4367,240 +4395,246 @@ msgstr "No conectado." #: actions/tagother.php:39 #, fuzzy msgid "No id argument." -msgstr "No existe ese documento." +msgstr "No existe argumento de Id." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "%s tag" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Usuario de tag" #: actions/tagother.php:149 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Tags de este usuario (letras, números, -, ., y _), coma- o espacio- separado" #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "Hubo problemas con tu clave de sesión." #: actions/tagother.php:191 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Sólo puedes marcar a las personas a quienes estás suscrito o que están " +"suscritas a ti." #: actions/tagother.php:198 #, fuzzy msgid "Could not save tags." -msgstr "No se pudo guardar la información del avatar" +msgstr "No se pudo guardar tags." #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"Usar este formulario para agregar tags a tus suscriptores o suscripciones." #: actions/tagrss.php:35 #, fuzzy msgid "No such tag." -msgstr "No existe ese aviso." +msgstr "No existe ese tag." #: actions/tagrss.php:66 #, fuzzy, php-format msgid "Microblog tagged with %s" -msgstr "Microblog por %s" +msgstr "Microblog marcado con %s" #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "Falló bloquear usuario." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "Falló desbloquear usuario." #: actions/twitapiusers.php:48 #, fuzzy msgid "Not found." -msgstr "¡Ninguna petición encontrada!" +msgstr "No se encontró." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "Agregar tu cuenta Twitter a enviar automáticamente" #: actions/twittersettings.php:119 msgid "Twitter user name" -msgstr "" +msgstr "Nombre de usuario de Twitter" #: actions/twittersettings.php:126 #, fuzzy msgid "Twitter password" -msgstr "Nueva contraseña" +msgstr "Contraseña de Twitter" #: actions/twittersettings.php:228 msgid "Twitter Friends" -msgstr "" +msgstr "Amigos en Twitter" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "Nombre de usuario sólo debe tener números, " #: actions/twittersettings.php:341 #, fuzzy, php-format msgid "Unable to retrieve account information " -msgstr "No se pudo eliminar la confirmación de correo electrónico." +msgstr "No se pudo acceder a información de cuenta" #: actions/unblock.php:108 #, fuzzy msgid "Error removing the block." -msgstr "Error al guardar el usuario." +msgstr "Error al sacar bloqueo." #: actions/unsubscribe.php:50 #, fuzzy msgid "No profile id in request." -msgstr "Ningun URL de perfil devuelto por el servidor." +msgstr "Ningún perfil de Id en solicitud." #: actions/unsubscribe.php:57 #, fuzzy msgid "No profile with that id." -msgstr "Perfil remoto sin perfil coincidente" +msgstr "Ninfún perfil con ese Id." #: actions/unsubscribe.php:71 #, fuzzy msgid "Unsubscribed" -msgstr "Cancelar suscripción" +msgstr "Desuscrito" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "Grupos %s" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "Grupos %s, página %d" #: classes/Notice.php:104 #, fuzzy msgid "Problem saving notice. Unknown user." -msgstr "Hubo un problema al guardar el aviso." +msgstr "Hubo problemas al guardar el aviso. Usuario desconocido." #: classes/Notice.php:109 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Demasiados avisos demasiado rápido; para y publicar nuevamente en unos " +"minutos." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Tienes prohibido publicar avisos en este sitio." #: lib/accountsettingsaction.php:108 #, fuzzy msgid "Upload an avatar" -msgstr "Error al actualizar avatar." +msgstr "Cargar un avatar." #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "Otro" #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "Otras opciones" #: lib/action.php:130 #, fuzzy, php-format msgid "%s - %s" -msgstr "%s (%s)" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "Página sin tÃtulo" #: lib/action.php:316 msgid "Primary site navigation" -msgstr "" +msgstr "Navegación de sitio primario" #: lib/action.php:322 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Perfil personal y lÃnea de tiempo de amigos" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "Buscar personas o texto" #: lib/action.php:328 #, fuzzy msgid "Account" -msgstr "Acerca de" +msgstr "Cuenta" #: lib/action.php:328 #, fuzzy msgid "Change your email, avatar, password, profile" -msgstr "Cambia tu contraseña" +msgstr "Cambia tu correo electrónico, avatar, contraseña, perfil" #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "Conectarse a IM, SMS, Twitter" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Salir de sitio" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Ingresar a sitio" #: lib/action.php:338 #, fuzzy msgid "Create an account" -msgstr "Crear una nueva cuenta" +msgstr "Crear una cuenta" #: lib/action.php:341 #, fuzzy msgid "Login with OpenID" -msgstr "No existe esa cuenta OpenID." +msgstr "Ingresar con OpenID." #: lib/action.php:344 #, fuzzy msgid "Help me!" -msgstr "Ayuda" +msgstr "¡Ayúdame!" #: lib/action.php:362 #, fuzzy msgid "Site notice" -msgstr "Nuevo aviso" +msgstr "Aviso de sitio" #: lib/action.php:417 msgid "Local views" -msgstr "" +msgstr "Vistas locales" #: lib/action.php:472 #, fuzzy msgid "Page notice" -msgstr "Nuevo aviso" +msgstr "Aviso de página" #: lib/action.php:562 #, fuzzy msgid "Secondary site navigation" -msgstr "Suscripciones" +msgstr "Navegación de sitio secundario" #: lib/action.php:602 lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "Licencia de software de Laconica" #: lib/action.php:630 msgid "All " -msgstr "" +msgstr "Todo" #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "Licencia." #: lib/blockform.php:123 lib/blockform.php:153 #, fuzzy msgid "Block this user" -msgstr "No existe ese usuario." +msgstr "Bloquear este usuario." #: lib/blockform.php:153 msgid "Block" @@ -4608,137 +4642,138 @@ msgstr "Bloquear" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "Sacar este aviso" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "Para usar la Aplicación de Facebook %s debes ingresar" #: lib/facebookaction.php:271 #, fuzzy msgid " a new account." -msgstr "Crear una nueva cuenta" +msgstr "una cuenta nueva. " #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 #, fuzzy msgid "Published" -msgstr "Público" +msgstr "Publicado" #: lib/favorform.php:114 lib/favorform.php:140 #, fuzzy msgid "Favor this notice" -msgstr "No existe ese aviso." +msgstr "Aceptar este aviso" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Exportar datos" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "Filtrar tags" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Todo" #: lib/galleryaction.php:137 msgid "Tag" -msgstr "" +msgstr "Tag" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Elegir tag para reducir lista" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "Ir" #: lib/groupeditform.php:148 #, fuzzy msgid "URL of the homepage or blog of the group or topic" -msgstr "El URL de tu página personal, blog o perfil en otro sitio" +msgstr "El URL de página de inicio o blog del grupo or tema" #: lib/groupeditform.php:151 #, fuzzy msgid "Description" -msgstr "Suscripciones" +msgstr "Descripción" #: lib/groupeditform.php:153 #, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Cuéntanos algo sobre ti y tus intereses en 140 caracteres" +msgstr "Describir al grupo o tema en 140 caracteres" #: lib/groupeditform.php:158 #, fuzzy msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Dónde estás, por ejemplo \"Ciudad, Estado (o Región), PaÃs\"" +msgstr "" +"Lugar del grupo, si existe, por ejemplo \"Ciudad, Estado (o Región), PaÃs\"" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" -msgstr "" +msgstr "Grupo" #: lib/groupnav.php:100 msgid "Admin" -msgstr "" +msgstr "Admin" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Editar propiedades del grupo %s" #: lib/groupnav.php:106 #, fuzzy msgid "Logo" -msgstr "Salir" +msgstr "Logo" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Agregar o editar el logo de %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Grupos con más miembros" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Grupos con más publicaciones" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Tags en avisos del grupo %s" #: lib/htmloutputter.php:104 #, fuzzy msgid "This page is not available in a " -msgstr "Esta página no está disponible en un tipo de media que aceptes." +msgstr "Esta página no está disponible en un " #: lib/joinform.php:114 #, fuzzy msgid "Join" -msgstr "Inicio de sesión" +msgstr "Unirse" #: lib/leaveform.php:114 #, fuzzy msgid "Leave" -msgstr "Guardar" +msgstr "Dejar" #: lib/logingroupnav.php:76 #, fuzzy msgid "Login with a username and password" -msgstr "Usuario o contraseña inválidos." +msgstr "Ingresar con un nombre de usuario y contraseña." #: lib/logingroupnav.php:79 #, fuzzy msgid "Sign up for a new account" -msgstr "Crear una nueva cuenta" +msgstr "Registrar una cuenta nueva " #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Ingresar o registrar con OpenID" #: lib/mail.php:175 #, php-format @@ -4746,21 +4781,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Hola, %s.\n" +"\n" #: lib/mail.php:236 #, fuzzy, php-format msgid "%1$s is now listening to " -msgstr "%1$s ahora está escuchando tus avisos en %2$s" +msgstr "%1$s ahora está escuchando " #: lib/mail.php:254 #, fuzzy, php-format msgid "Location: %s\n" -msgstr "Ubicación" +msgstr "Lugar: %s\n" #: lib/mail.php:256 #, fuzzy, php-format msgid "Homepage: %s\n" -msgstr "Página personal" +msgstr "Página de inicio: %s\n" #: lib/mail.php:258 #, php-format @@ -4768,94 +4805,87 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"Bio: %s\n" +"\n" #: lib/mail.php:461 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "%s te mandó un zumbido " #: lib/mail.php:465 #, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" +msgstr "%1$s (%2$s) quiere saber qué estás haciendo" #: lib/mail.php:555 #, fuzzy, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s ahora está escuchando tus avisos en %2$s" +msgstr "%1$s recién agregó tu aviso de %2$s" #: lib/mailbox.php:229 lib/noticelist.php:380 #, fuzzy msgid "From" -msgstr "desde" +msgstr "Desde" #: lib/messageform.php:110 -#, fuzzy msgid "Send a direct notice" -msgstr "Borrar estado" +msgstr "Enviar un aviso directo" # ¿zumbido? creo que asà lo traduce msn #: lib/noticeform.php:125 #, fuzzy msgid "Send a notice" -msgstr "Enviar un zumbido" +msgstr "Enviar un aviso" #: lib/noticeform.php:152 #, fuzzy msgid "Available characters" -msgstr "6 o más caracteres" +msgstr "Caracteres disponibles" #: lib/noticelist.php:426 -#, fuzzy msgid "in reply to" msgstr "en respuesta a..." #: lib/noticelist.php:447 lib/noticelist.php:450 -#, fuzzy msgid "Reply to this notice" -msgstr "No se puede eliminar este aviso." +msgstr "Responder este aviso." #: lib/noticelist.php:451 -#, fuzzy msgid "Reply" -msgstr "responder" +msgstr "Responder" #: lib/noticelist.php:471 lib/noticelist.php:474 -#, fuzzy msgid "Delete this notice" -msgstr "Borrar estado" +msgstr "Borrar este aviso" #: lib/noticelist.php:474 -#, fuzzy msgid "Delete" -msgstr "borrar" +msgstr "Borrar" # ¿zumbido? creo que asà lo traduce msn #: lib/nudgeform.php:116 -#, fuzzy msgid "Nudge this user" -msgstr "¡Zumbido enviado!" +msgstr "Enviar zumbido a este usuario" # ¿zumbido? creo que asà lo traduce msn #: lib/nudgeform.php:128 -#, fuzzy msgid "Nudge" -msgstr "¡Zumbido enviado!" +msgstr "Zumbido " # ¿zumbido? creo que asà lo traduce msn #: lib/nudgeform.php:128 -#, fuzzy msgid "Send a nudge to this user" -msgstr "Enviar un zumbido" +msgstr "Enviar zumbido a este usuario" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Tags en avisos de %s" #: lib/profilelist.php:182 msgid "(none)" -msgstr "" +msgstr "(ninguno)" #: lib/publicgroupnav.php:76 msgid "Public" @@ -4863,11 +4893,11 @@ msgstr "Público" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Grupos de usuario" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 msgid "Recent tags" -msgstr "Etiquetas recientes" +msgstr "Tags recientes" #: lib/publicgroupnav.php:86 msgid "Featured" @@ -4880,10 +4910,9 @@ msgstr "Popular" #: lib/searchgroupnav.php:82 #, fuzzy msgid "Notice" -msgstr "Avisos" +msgstr "Aviso" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" msgstr "Encontrar grupos en este sitio" @@ -4894,12 +4923,12 @@ msgstr "Sección sin tÃtulo" #: lib/subgroupnav.php:81 #, fuzzy, php-format msgid "People %s subscribes to" -msgstr "Personas a las que %s está suscripto" +msgstr "Personas a las que %s está suscrito" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Personas suscriptas a %s" +msgstr "Personas suscritas a %s" #: lib/subgroupnav.php:97 #, php-format @@ -4913,7 +4942,7 @@ msgstr "Invita a amigos y colegas a unirse a %s" #: lib/subs.php:53 msgid "User has blocked you." -msgstr "El usuario lo ha bloqueado." +msgstr "El usuario te ha bloqueado." #: lib/subscribeform.php:115 lib/subscribeform.php:139 #, fuzzy @@ -4931,7 +4960,7 @@ msgstr "Principales posteadores" #: lib/unblockform.php:120 lib/unblockform.php:150 #, fuzzy msgid "Unblock this user" -msgstr "No existe ese usuario." +msgstr "Desbloquear este usuario" #: lib/unblockform.php:150 msgid "Unblock" diff --git a/locale/fi/LC_MESSAGES/laconica.mo b/locale/fi/LC_MESSAGES/laconica.mo Binary files differindex 315f81a7b..afbe91f21 100644 --- a/locale/fi/LC_MESSAGES/laconica.mo +++ b/locale/fi/LC_MESSAGES/laconica.mo diff --git a/locale/fi/LC_MESSAGES/laconica.po b/locale/fi/LC_MESSAGES/laconica.po index 626bf9210..aadccd9a0 100644 --- a/locale/fi/LC_MESSAGES/laconica.po +++ b/locale/fi/LC_MESSAGES/laconica.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-28 09:33+0000\n" -"Last-Translator: Jaakko Rajaniemi <juicyburger@gmail.com>\n" +"PO-Revision-Date: 2009-02-28 01:41+0000\n" +"Last-Translator: Antti Salminen <antti.salminen@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -34,7 +34,7 @@ msgstr "" #: ../actions/showstream.php:400 ../lib/stream.php:109 #: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76 msgid " from " -msgstr " lähetetty " +msgstr " lähteestä " # Onko päivitys hyvä sana? #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 @@ -46,7 +46,7 @@ msgstr "%1$s / Vastaukset päivitykseen %2$s" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s on kutsunut sinut %2$s" +msgstr "%1$s on kutsunut sinut liittymään palveluun %2$s" #: ../actions/invite.php:170 #, php-format @@ -78,22 +78,24 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s on kutsunut sinut %2$s (%3$s)\n" +"%1$s on kutsunut sinut %2$s (%3$s) mikroblogipalveluun.\n" "\n" -"%2$s on mikro-bloggauspalvelu, joka auttaa sinua pysymään ajantasalla " -"tuttujen ja kiinnostavien ihmisisten kanssa.\n" +"%2$s mikroblogipalvelu auttaa sinua pysymään ajantasalla tuttujen ja " +"kiinnostavien ihmisten kanssa.\n" "\n" -"Voit myös jakaa uutisia itsestäsi ja ajatuksiasi verkossa tuntemasi ihmisten " -"kanssa.\n" +"Voit myös jakaa uutisia itsestäsi ja ajatuksiasi verkossa ihmisten, jotka " +"tuntevat sinut, kanssa. Se on myös kätevä tapa tutustua uusiin ihmisiin " +"jotka ovat kiinnostuneet samanlaisista asioista, kuin sinä.\n" "\n" -"%1$s on sanonut:\n" +"%1$s sanoi:\n" "\n" "%4$s\n" -"Voit nähdä henkilön %1$s profiilisivulta %2$s:\n" +"Voit nähdä henkilön %1$s profiilisivun %2$s-palvelussa täältä:\n" "\n" "%5$s\n" "\n" -"Jos haluat kokeilla palvelu klikkaa alla olveasta linkistä.\n" +"Jos haluat kokeilla palvelua, klikkaa alla olevaa linkkiä hyväksyäksesi " +"kutsun.\n" "\n" "%6$s\n" "\n" @@ -105,7 +107,7 @@ msgstr "" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s kuuntelee nyt sinun viestejäsi palvelussa %2$s." +msgstr "%1$s seuraa nyt päivityksiäsi palvelussa %2$s." #: ../lib/mail.php:126 #, php-format @@ -117,7 +119,7 @@ msgid "" "Faithfully yours,\n" "%4$s.\n" msgstr "" -"%1$s kuuntelee nyt sinun viestejäsi palvelussa %2$s.\n" +"%1$s seuraa nyt päivityksiäsi palvelussa %2$s.\n" "\n" "\t%3$s\n" "\n" @@ -129,13 +131,13 @@ msgstr "" #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -"%1$s päivitti statuksen joka on vastaus päivitykseen palvelussa %2$s / %3$s." +"%1$s -päivitykset, jotka on vastauksia käyttäjän %2$s / %3$s päivityksiin." #: ../actions/shownotice.php:45 actions/shownotice.php:45 #: actions/shownotice.php:161 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1$s status %2$s" +msgstr "Käyttäjän %1$s päivitys %2$s" #: ../actions/invite.php:84 ../actions/invite.php:92 actions/invite.php:91 #: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131 @@ -147,7 +149,7 @@ msgstr "%s (%s)" #: actions/publicrss.php:90 #, php-format msgid "%s Public Stream" -msgstr "Julkinen syöte" +msgstr "%s julkinen syöte" #: ../actions/all.php:47 ../actions/allrss.php:60 #: ../actions/twitapistatuses.php:238 ../lib/stream.php:51 actions/all.php:47 @@ -162,24 +164,24 @@ msgstr "%s ja kaverit" #: actions/twitapistatuses.php:33 #, php-format msgid "%s public timeline" -msgstr "%s julkiset päivitykset" +msgstr "%s julkinen aikajana" #: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 #, php-format msgid "%s status" -msgstr "%s status" +msgstr "%s päivitys" #: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265 #: actions/twitapistatuses.php:199 #, php-format msgid "%s timeline" -msgstr "%s päivitykset" +msgstr "%s aikajana" #: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52 #: actions/twitapistatuses.php:36 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "%s päivitykset kaikilta!" #: ../actions/register.php:213 msgid "" @@ -195,47 +197,50 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -"**%%site.name%%** on mikro-bloggauspalvelu, jonka tarjoaa [%%site.broughtby%" -"%](%%site.broughtbyurl%%). " +"**%%site.name%%** on mikroblogipalvelu, jonka tarjoaa " +"[%%site.broughtby%%](%%site.broughtbyurl%%). " #: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 #, php-format msgid "**%%site.name%%** is a microblogging service. " -msgstr "**%%site.name%%** on mikro-bloggauspalvelu. " +msgstr "**%%site.name%%** on mikroblogipalvelu. " #: ../lib/util.php:274 lib/util.php:290 msgid ". Contributors should be attributed by full name or nickname." msgstr "" -". Tunnustus kontribuoijien tulee antaa joko koko nimelle tai käyttäjä " -"tunnukselle." +". Tunnustus osallistujille tulee antaa joko koko nimelle tai " +"käyttäjätunnukselle." +# näissä ei tueta tällä hetkellä myöskään ääkkösiä #: ../actions/finishopenidlogin.php:73 ../actions/profilesettings.php:43 #: actions/finishopenidlogin.php:79 actions/profilesettings.php:76 #: actions/finishopenidlogin.php:101 actions/profilesettings.php:100 #: lib/groupeditform.php:139 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 pientä kirjainta tai numeroa, ei välimerkkejä tai välilyöntejä" +msgstr "" +"1-64 pientä kirjainta tai numeroa, ei ääkkösiä eikä välimerkkejä tai " +"välilyöntejä" #: ../actions/register.php:152 actions/register.php:166 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -"1-64 pientä kirjainta tai numeroa, ei välimerkkejä tai välilyöntejä. " -"Pakollinen." +"1-64 pientä kirjainta tai numeroa, ei ääkkösiä eikä välimerkkejä tai " +"välilyöntejä. Pakollinen." #: ../actions/password.php:42 actions/profilesettings.php:181 #: actions/passwordsettings.php:102 msgid "6 or more characters" -msgstr "6 tai useampi merkki" +msgstr "6 tai useampia merkkejä" #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 msgid "6 or more characters, and don't forget it!" -msgstr "6 tai useampi merkki ja älä unohda niitä!" +msgstr "6 tai useampia merkkejä äläkä unohda mitä kirjoitit!" #: ../actions/register.php:154 actions/register.php:168 #: actions/register.php:373 msgid "6 or more characters. Required." -msgstr "6 tai useampi merkki. Pakollinen." +msgstr "6 tai useampia merkkejä. Pakollinen." #: ../actions/imsettings.php:197 actions/imsettings.php:205 #, php-format @@ -243,8 +248,8 @@ msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"Vahvistuskoodi lähetettiin antamaasi IM osoitteeseen. Sinun täytyy antaa " -"oikeus lähettäjälle %s lähettää viestejä sinulle." +"Vahvistuskoodi lähetettiin antamaasi pikaviestinosoitteeseen. Sinun täytyy " +"antaa osoitteelle %s oikeus lähettää viestejä sinulle." #: ../actions/emailsettings.php:213 actions/emailsettings.php:231 msgid "" @@ -377,7 +382,7 @@ msgstr "Olet jo kirjautunut sisään." #: ../lib/subs.php:42 lib/subs.php:42 lib/subs.php:49 msgid "Already subscribed!." -msgstr "Olet jo tilannut!" +msgstr "Tilaat jo!" #: ../actions/deletenotice.php:54 actions/deletenotice.php:55 #: actions/deletenotice.php:113 @@ -388,32 +393,33 @@ msgstr "Oletko varma että haluat poistaa tämän päivityksen?" #: ../actions/userauthorization.php:77 actions/userauthorization.php:83 #: actions/userauthorization.php:81 msgid "Authorize subscription" -msgstr "Valtuuuta tilaus" +msgstr "Valtuuta tilaus" #: ../actions/login.php:104 ../actions/register.php:178 #: actions/register.php:192 msgid "Automatically login in the future; not for shared computers!" msgstr "" -"Kirjaudu sisään automaattisesti tulevaisuudessa; ei tietokoneille joissa " +"Kirjaudu sisään automaattisesti tulevaisuudessa; ei tietokoneille joilla " "useampi käyttäjä!" #: ../actions/profilesettings.php:65 actions/profilesettings.php:98 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -"Tilaa automaattisesti kaikki, jotka tilaavat minun päivitykset (ei sovi " -"hyvin ihmiskäyttäjille)" +"Tilaa automaattisesti kaikki, jotka tilaavat päivitykseni (ei sovi hyvin " +"ihmiskäyttäjille)" +# Avatar ei ole laajalti käytössä minun tietääkseni missään suomenkielisessä sivustossa tai ohjelmistossa, "kuva" tai silloin kuin täsmennystä tarvitaan "profiilikuva" tai "käyttäjäkuva" on selkeämpi. #: ../actions/avatar.php:32 ../lib/settingsaction.php:90 #: actions/profilesettings.php:34 actions/avatarsettings.php:65 #: actions/showgroup.php:209 lib/accountsettingsaction.php:107 msgid "Avatar" -msgstr "Avatar" +msgstr "Kuva" #: ../actions/avatar.php:113 actions/profilesettings.php:350 #: actions/avatarsettings.php:395 msgid "Avatar updated." -msgstr "Avatar päivitetty" +msgstr "Kuva päivitetty." #: ../actions/imsettings.php:55 actions/imsettings.php:56 #, php-format @@ -421,9 +427,9 @@ msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" -"Odotetaan vahvistusta tälle osoitteelle. Tarkista Jabber/GTalk " -"käyttäjätilisi viestistä, jossa on lisäohjeet. (Did you add %s to your buddy " -"list?)" +"Odotetaan vahvistusta tälle osoitteelle. Katso Jabber/GTalk " +"käyttäjätililtäsi viesti, jossa on lisäohjeet. (Lisäsitkö %s:n " +"ystävälistaasi?)" #: ../actions/emailsettings.php:54 actions/emailsettings.php:55 msgid "" @@ -431,7 +437,8 @@ msgid "" "a message with further instructions." msgstr "" "Odotetaan vahvistusta tälle sähköpostiosoitteelle. Katso " -"sähköpostilaatikostasi (ja roskapostiluukku!) viestiä jossa on lisäohjeita. " +"sähköpostilaatikostasi (ja roskapostikansiosta!) viesti, jossa on " +"lisäohjeita. " #: ../actions/smssettings.php:58 actions/smssettings.php:58 #: actions/smssettings.php:111 @@ -440,13 +447,14 @@ msgstr "Odotetaan vahvistusta tälle puhelinnumerolle." #: ../lib/util.php:1318 lib/util.php:1452 msgid "Before »" -msgstr "Ennen »" +msgstr "Aiemmin »" +# Biolle ei oikein suoranaista käännöstä taida suomeksi olla (pl. elämäkerta, joka ei nyt ihan ole 140-merkkistä infokenttää vastaava), tietoja on varmaan kohtuullinen käännös. #: ../actions/profilesettings.php:49 ../actions/register.php:170 #: actions/profilesettings.php:82 actions/register.php:184 #: actions/profilesettings.php:112 actions/register.php:402 msgid "Bio" -msgstr "Bio" +msgstr "Tietoja" #: ../actions/profilesettings.php:101 ../actions/register.php:82 #: ../actions/updateprofile.php:103 actions/profilesettings.php:216 @@ -454,7 +462,7 @@ msgstr "Bio" #: actions/profilesettings.php:205 actions/register.php:174 #: actions/updateprofile.php:107 msgid "Bio is too long (max 140 chars)." -msgstr "Bio on liian pitkä (max 140 merkkiä)." +msgstr "\"Tietoja\" on liian pitkä (max 140 merkkiä)." #: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69 msgid "Can't delete this notice." @@ -464,13 +472,13 @@ msgstr "Tätä päivitystä ei voi poistaa." #: actions/updateprofile.php:123 #, php-format msgid "Can't read avatar URL '%s'" -msgstr "Täsä avatar URL '%s' osoitetta ei voi avata." +msgstr "Kuvan URL-osoitetta '%s' ei voi avata." #: ../actions/password.php:85 ../actions/recoverpassword.php:300 #: actions/profilesettings.php:404 actions/recoverpassword.php:313 #: actions/passwordsettings.php:169 actions/recoverpassword.php:347 msgid "Can't save new password." -msgstr "Uutta salasanaa ei voida tallettaa." +msgstr "Uutta salasanaa ei voida tallentaa." #: ../actions/emailsettings.php:57 ../actions/imsettings.php:58 #: ../actions/smssettings.php:62 actions/emailsettings.php:58 @@ -482,12 +490,12 @@ msgstr "Peruuta" #: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130 msgid "Cannot instantiate OpenID consumer object." -msgstr "Ei voi luoda OpenID käyttäjä objektia." +msgstr "Ei voitu luoda OpenID Consumer-oliota." #: ../actions/imsettings.php:163 actions/imsettings.php:171 #: actions/imsettings.php:286 msgid "Cannot normalize that Jabber ID" -msgstr "Ei voida normalisoida Jabber ID:tä" +msgstr "Ei voida normalisoida Jabber ID -tunnusta" #: ../actions/emailsettings.php:181 actions/emailsettings.php:199 #: actions/emailsettings.php:311 @@ -502,7 +510,7 @@ msgstr "Vaihda" #: ../lib/settingsaction.php:88 lib/settingsaction.php:88 #: lib/accountsettingsaction.php:114 msgid "Change email handling" -msgstr "Vaihda sähköpostin käsittely" +msgstr "Muuta sähköpostin käsittelyasetuksia." #: ../actions/password.php:32 actions/profilesettings.php:36 #: actions/passwordsettings.php:58 @@ -530,7 +538,7 @@ msgstr "Vahvista" #: ../actions/confirmaddress.php:90 actions/confirmaddress.php:90 #: actions/confirmaddress.php:144 msgid "Confirm Address" -msgstr "Vahvista Osoite" +msgstr "Vahvista osoite" #: ../actions/emailsettings.php:238 ../actions/imsettings.php:222 #: ../actions/smssettings.php:245 actions/emailsettings.php:256 @@ -571,16 +579,17 @@ msgstr "" "Onnittelut, %s! Tervetuloa palveluun %%%%site.name%%%%. Täältä voit " "jatkaa...\n" "\n" -"* Mene [profiilisi](%s) ja lähetä ensimmäinen päivityksesi.\n" -"* Lisää [Jabber/GTalk osoite ](%%%%action.imsettings%%%%) jotta saat " +"* [Profiiliisi](%s) ja lähettää ensimmäisen päivityksesi.\n" +"* Lisäämään [Jabber/GTalk osoitteen](%%%%action.imsettings%%%%), jotta saat " "lähetettyä päivitykset pikaviestimen kautta.\n" -"* [Hae ihmisiä](%%%%action.peoplesearch%%%%) joita tunnet tai joilla on " -"samanlaisia kiinnostuksen kohteita. \n" -"* Päivitä [profiiliasi](%%%%action.profilesettings%%%%) jotta muut tietävät " -"enemmän sinusta \n" -"* Lue [manuaalista](%%%%doc.help%%%%) lisäohjeita. \n" +"* [Hakemaan ihmisiä](%%%%action.peoplesearch%%%%), jotka tunnet tai joilla " +"on samanlaisia kiinnostuksen kohteita. \n" +"* Päivittämään [profiiliasi](%%%%action.profilesettings%%%%), jotta muut " +"tietävät enemmän sinusta.\n" +"* Lukemaan [ohjeista](%%%%doc.help%%%%) muista ominaisuuksista, joista et " +"vielä tiedä. \n" "\n" -"kiitokset rekisteröitymisestäsi ja toivomme että pidät palvelustamme." +"Kiitokset rekisteröitymisestäsi ja toivomme että pidät palvelustamme." #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 #: actions/finishopenidlogin.php:119 lib/action.php:330 @@ -594,9 +603,9 @@ msgstr "Yhdistä olemassa oleva käyttäjätunnus" #: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 msgid "Contact" -msgstr "Kontakti" +msgstr "Ota yhteyttä" -# onko tuo form vai from +# on lomake #: ../lib/openid.php:178 lib/openid.php:178 lib/openid.php:187 #, php-format msgid "Could not create OpenID form: %s" @@ -617,35 +626,35 @@ msgstr "Ei voitu tilata käyttäjää: Käyttäjää ei löytynyt." #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 #, php-format msgid "Could not redirect to server: %s" -msgstr "Ei voitu tilata siirtyä palvelimelle: %s" +msgstr "Ei voitu uudelleenohjata palvelimelle: %s" #: ../actions/updateprofile.php:162 actions/updateprofile.php:163 #: actions/updateprofile.php:166 msgid "Could not save avatar info" -msgstr "Ei voitu tallentaa avatar tietoa" +msgstr "Ei voitu tallentaa profiilikuvan tietoja" #: ../actions/updateprofile.php:155 actions/updateprofile.php:156 #: actions/updateprofile.php:159 msgid "Could not save new profile info" -msgstr "Ei voitu tallentaa uutta profiili tietoa" +msgstr "Ei voitu tallentaa uutta profiilitietoa" #: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72 msgid "Could not subscribe other to you." -msgstr "Ei voitu tilata toista" +msgstr "Toista ei voitu asettaa tilaamaan sinua." #: ../lib/subs.php:46 lib/subs.php:46 lib/subs.php:57 msgid "Could not subscribe." -msgstr "Ei voitu tilata" +msgstr "Ei voitu tilata." #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "Ei voitu päivittää käyttäjää jolla vahvistettu sähköpostiosoite" +msgstr "Ei voitu päivittää käyttäjälle vahvistettua sähköpostiosoitetta." #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 msgid "Couldn't convert request tokens to access tokens." -msgstr "Ei voitu muuttaa request tokenia access tokeniksi." +msgstr "Ei voitu muuttaa request tokeneita access tokeneiksi." #: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234 #: ../actions/imsettings.php:218 ../actions/smssettings.php:241 @@ -654,7 +663,7 @@ msgstr "Ei voitu muuttaa request tokenia access tokeniksi." #: actions/confirmaddress.php:126 actions/emailsettings.php:375 #: actions/imsettings.php:357 actions/smssettings.php:370 msgid "Couldn't delete email confirmation." -msgstr "Ei voitu poistaa sähköposti vahvistusta." +msgstr "Ei voitu poistaa sähköpostivahvistusta." #: ../lib/subs.php:103 lib/subs.php:116 lib/subs.php:134 msgid "Couldn't delete subscription." @@ -687,7 +696,7 @@ msgstr "Ei voitu lisätä uutta tilausta." #: actions/profilesettings.php:299 actions/twitapiaccount.php:94 #: actions/profilesettings.php:302 actions/twitapiaccount.php:81 msgid "Couldn't save profile." -msgstr "Ei voitu tallettaa profiilia." +msgstr "Ei voitu tallentaa profiilia." #: ../actions/profilesettings.php:161 actions/profilesettings.php:276 #: actions/profilesettings.php:279 @@ -731,16 +740,18 @@ msgstr "Luo uusi käyttäjä tällä käyttäjätunnuksella." msgid "Create new account" msgstr "Luo uusi käyttäjätili" -# Eli siis OpenID:tä kohti voi olla useampia käyttäjätili palvelussa. +# Koodista selviää, että tämä on virhetilanne jossa on yritetty luoda tuollaista. #: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197 #: actions/finishopenidlogin.php:231 msgid "Creating new account for OpenID that already has a user." -msgstr "Luo uusi käyttäjätili OpenID tunnukselle, jolla on jo käyttäjätili." +msgstr "" +"Yritettiin luoda uusi käyttäjätili OpenID tunnukselle, jolla on jo " +"käyttäjätili." #: ../actions/imsettings.php:45 actions/imsettings.php:46 #: actions/imsettings.php:100 msgid "Current confirmed Jabber/GTalk address." -msgstr "Tämän hetken vahvistettu Jabber/GTalk osoite." +msgstr "Tämän hetken vahvistettu Jabber/GTalk -osoite." #: ../actions/smssettings.php:46 actions/smssettings.php:46 #: actions/smssettings.php:100 @@ -759,12 +770,12 @@ msgstr "Tällä hetkellä" #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 #, php-format msgid "DB error inserting hashtag: %s" -msgstr "Tietokantavirhe tallennettaessa hashtagiä: %s" +msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" #: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698 #, php-format msgid "DB error inserting reply: %s" -msgstr "Tietokantavirhe tallennettaessa vastusta: %s" +msgstr "Tietokantavirhe tallennettaessa vastausta: %s" #: ../actions/deletenotice.php:41 actions/deletenotice.php:41 #: actions/deletenotice.php:79 @@ -775,7 +786,7 @@ msgstr "Poista päivitys" #: actions/profilesettings.php:84 actions/register.php:186 #: actions/profilesettings.php:114 msgid "Describe yourself and your interests in 140 chars" -msgstr "Kuvaile itseäsi ja kiinnostuksia 140 merkillä" +msgstr "Kuvaile itseäsi ja kiinnostuksiasi 140 merkillä" #: ../actions/register.php:158 ../actions/register.php:161 #: ../lib/settingsaction.php:87 actions/register.php:172 @@ -805,7 +816,7 @@ msgstr "Sähköpostiosoitteen vahvistus" #: ../actions/emailsettings.php:61 actions/emailsettings.php:62 #: actions/emailsettings.php:117 msgid "Email address, like \"UserName@example.org\"" -msgstr "Sähköpostiosoite kuten \"käyttäjätunnus@example.org\"" +msgstr "Sähköpostiosoite, esimerkiksi \"käyttäjätunnus@example.org\"" #: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174 msgid "Email addresses" @@ -839,7 +850,7 @@ msgstr "Virhe tapahtui käyttäjän yhdistämisessä." #: ../actions/finishremotesubscribe.php:151 #: actions/finishremotesubscribe.php:153 actions/finishremotesubscribe.php:166 msgid "Error inserting avatar" -msgstr "Virhe tapahtui avatarin lisäämisessä" +msgstr "Virhe tapahtui profiilikuvan lisäämisessä" #: ../actions/finishremotesubscribe.php:143 #: actions/finishremotesubscribe.php:145 actions/finishremotesubscribe.php:158 @@ -849,7 +860,7 @@ msgstr "Virhe tapahtui uuden profiilin lisäämisessä" #: ../actions/finishremotesubscribe.php:167 #: actions/finishremotesubscribe.php:169 actions/finishremotesubscribe.php:182 msgid "Error inserting remote profile" -msgstr "Virhe tapahtui uuden ulkoisen profiilin lisäämisessä" +msgstr "Virhe tapahtui uuden etäprofiilin lisäämisessä" #: ../actions/recoverpassword.php:240 actions/recoverpassword.php:246 #: actions/recoverpassword.php:280 @@ -859,7 +870,7 @@ msgstr "Virhe tapahtui osoitevahvistuksen tallentamisessa" #: ../actions/userauthorization.php:140 actions/userauthorization.php:147 #: actions/userauthorization.php:164 msgid "Error saving remote profile" -msgstr "Virhe tapahtui ulkoisen profiilin tallentamissa" +msgstr "Virhe tapahtui etäprofiilin tallentamisessa" #: ../lib/openid.php:226 lib/openid.php:226 lib/openid.php:235 msgid "Error saving the profile." @@ -890,40 +901,44 @@ msgstr "Virhe tapahtui profiilin päivittämisessä" #: ../actions/finishremotesubscribe.php:161 #: actions/finishremotesubscribe.php:163 actions/finishremotesubscribe.php:176 msgid "Error updating remote profile" -msgstr "Virhe tapahtui ulkopuolisen profiilin päivittämisessä" +msgstr "Virhe tapahtui etäprofiilin päivittämisessä" #: ../actions/recoverpassword.php:80 actions/recoverpassword.php:80 #: actions/recoverpassword.php:86 msgid "Error with confirmation code." -msgstr "Virhe vahvistuskoodissa" +msgstr "Virhe vahvistuskoodin kanssa." +# openid-tunnuksen liittämisessä omaan olemassaolevaan tunnukseen. #: ../actions/finishopenidlogin.php:89 actions/finishopenidlogin.php:95 #: actions/finishopenidlogin.php:117 msgid "Existing nickname" -msgstr "Käyttäjätunnus on jo käytössä" +msgstr "Käytetty tunnus" +# Ei tämäkään kauheasti kerro, mutta ehkä silti englanninkielisiin sivustoihin tutustumattomalle edes lievästi selkeämpi. #: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 msgid "FAQ" -msgstr "FAQ" +msgstr "UKK" #: ../actions/avatar.php:115 actions/profilesettings.php:352 #: actions/avatarsettings.php:397 msgid "Failed updating avatar." -msgstr "Avatarin päivittäminen epäonnistui." +msgstr "Profiilikuvan päivittäminen epäonnistui." +# Tämä on otsikko käyttäjän Personal-sivun feedille jossa näkyy käyttäjän ja tämän tilausten päivitykset. #: ../actions/all.php:61 ../actions/allrss.php:64 actions/all.php:61 #: actions/allrss.php:64 actions/all.php:75 actions/allrss.php:107 -#, fuzzy, php-format +#, php-format msgid "Feed for friends of %s" -msgstr "Syöte käyttäjän %s kavereista" +msgstr "Syöte käyttäjän %s kavereille" #: ../actions/replies.php:65 ../actions/repliesrss.php:80 #: actions/replies.php:65 actions/repliesrss.php:66 actions/replies.php:134 #: actions/repliesrss.php:71 #, php-format msgid "Feed for replies to %s" -msgstr "Syöte käyttäjän %s vastauksista" +msgstr "Syöte käyttäjän %s saamista vastauksista" +# tägille vai tagille? #: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61 #, php-format msgid "Feed for tag %s" @@ -944,7 +959,7 @@ msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" -"Turvallisuus syistä, syötä käyttäjätunnuksesi ja salasanasi uudelleen enne " +"Syötä turvallisuussyistä käyttäjätunnuksesi ja salasanasi uudelleen ennen " "asetuksiesi muuttamista." #: ../actions/profilesettings.php:44 ../actions/register.php:164 @@ -968,10 +983,11 @@ msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." msgid "Help" msgstr "Ohjeet" +# Tämä teksti tulee linkkiin, joka vie käyttäjän omalle sivulle. #: ../lib/util.php:298 lib/util.php:314 lib/action.php:322 #: lib/facebookaction.php:200 msgid "Home" -msgstr "Etusivu" +msgstr "Koti" #: ../actions/profilesettings.php:46 ../actions/register.php:167 #: actions/profilesettings.php:79 actions/register.php:181 @@ -990,22 +1006,23 @@ msgstr "Kotisivun verkko-osoite ei ole toimiva." #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 #: actions/emailsettings.php:173 msgid "I want to post notices by email." -msgstr "Haluan lähettää päivitykseni sähköpostilla." +msgstr "Haluan lähettää päivityksiä sähköpostilla." +# IM ei ole suomessa käytössä ollenkaan, pikaviestimistä puhutaan ainakin jossain... surullista kyllä ainoa suosittu termi olisi varmaan joku "mese", mutta se ei taida sentään olla yleistynyt tarkoittamaan muuta kuin MS:n tuotetta. #: ../lib/settingsaction.php:102 lib/settingsaction.php:96 #: lib/connectsettingsaction.php:104 msgid "IM" -msgstr "IM" +msgstr "Pikaviestin" #: ../actions/imsettings.php:60 actions/imsettings.php:61 #: actions/imsettings.php:118 msgid "IM Address" -msgstr "IM Osoite" +msgstr "Pikaviestiosoite" #: ../actions/imsettings.php:33 actions/imsettings.php:33 #: actions/imsettings.php:59 msgid "IM Settings" -msgstr "IM Asetukset" +msgstr "Pikaviestiasetukset" #: ../actions/finishopenidlogin.php:88 actions/finishopenidlogin.php:94 #: actions/finishopenidlogin.php:116 @@ -1029,21 +1046,20 @@ msgid "" "If you've forgotten or lost your password, you can get a new one sent to the " "email address you have stored in your account." msgstr "" -"Jos olet unohtanut tai hukannut salasanasi, voit saa uuden sähköpostiisi, " +"Jos olet unohtanut tai hukannut salasanasi, voit saada uuden sähköpostiisi, " "jonka olet tallettanut käyttäjätunnuksellesi." +# Saapuva on ehkä vakiintuneempi sana kun sitä näkee kaikissa sp-ohjelmissa #: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 #: actions/emailsettings.php:68 actions/smssettings.php:76 #: actions/emailsettings.php:127 actions/smssettings.php:140 -#, fuzzy msgid "Incoming email" -msgstr "Tuleva sähköposti" +msgstr "Saapuva sähköposti" #: ../actions/emailsettings.php:283 actions/emailsettings.php:301 #: actions/emailsettings.php:443 -#, fuzzy msgid "Incoming email address removed." -msgstr "Sähköposti osoite poistettu." +msgstr "Saapuvan sähköpostin osoite poistettu." #: ../actions/password.php:69 actions/profilesettings.php:388 #: actions/passwordsettings.php:153 @@ -1067,7 +1083,7 @@ msgstr "" #: actions/updateprofile.php:118 #, php-format msgid "Invalid avatar URL '%s'" -msgstr "Avatar URL-verkkosoite '%s' ei kelpaa" +msgstr "Kuvan URL-verkkosoite '%s' ei kelpaa" #: ../actions/invite.php:55 actions/invite.php:62 actions/invite.php:70 #, php-format @@ -1084,20 +1100,19 @@ msgstr "Kotisivun osoite '%s' ei kelpaa" #: actions/updateprofile.php:86 #, php-format msgid "Invalid license URL '%s'" -msgstr "Lisenssi verkko-osoite '%s' ei kelpaa" +msgstr "Lisenssin verkko-osoite '%s' ei kelpaa" # status päivitys, päivitys, tätä ei ole vielä päätetty #: ../actions/postnotice.php:61 actions/postnotice.php:62 #: actions/postnotice.php:66 -#, fuzzy msgid "Invalid notice content" -msgstr "Status päivitys ei kelpaa" +msgstr "Päivityksen sisältö ei kelpaa" +# URL ja URI ilmeisesti OMB:ssä eri asiat. #: ../actions/postnotice.php:67 actions/postnotice.php:68 #: actions/postnotice.php:72 -#, fuzzy msgid "Invalid notice uri" -msgstr "Päivityksen osoite ei kelpaa" +msgstr "Päivityksen URI ei kelpaa" #: ../actions/postnotice.php:72 actions/postnotice.php:73 #: actions/postnotice.php:77 @@ -1108,17 +1123,17 @@ msgstr "Päivityksen URL ei kelpaa" #: actions/updateprofile.php:91 #, php-format msgid "Invalid profile URL '%s'." -msgstr "Profiilin URL osoite '%s' ei kelpaa." +msgstr "Profiilin URL-osoite '%s' ei kelpaa." #: ../actions/remotesubscribe.php:96 actions/remotesubscribe.php:105 #: actions/remotesubscribe.php:135 msgid "Invalid profile URL (bad format)" -msgstr "Profiilin URL osoite '%s' ei kelpaa (huono formaatti)." +msgstr "Profiilin URL-osoite '%s' ei kelpaa (virheellinen muoto)." #: ../actions/finishremotesubscribe.php:77 #: actions/finishremotesubscribe.php:79 actions/finishremotesubscribe.php:80 msgid "Invalid profile URL returned by server." -msgstr "Profiilin URL-osoite ei kelpaa palvelimelle." +msgstr "Palvelin palautti kelvottoman URL-osoitteen." #: ../actions/avatarbynickname.php:37 actions/avatarbynickname.php:37 #: actions/avatarbynickname.php:69 @@ -1157,9 +1172,9 @@ msgid "" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"Sivusto toimii [Laconica](http://laconi.ca/) mikroobloggauohjelmassa, " -"versiolla %s, joka on saatavilla [GNU Affero General Public License](http://" -"www.fsf.org/licensing/licenses/agpl-3.0.html)." +"Sivusto käyttää [Laconica](http://laconi.ca/) mikroblogausohjelmistoa, " +"versio %s, saatavilla lisenssillä [GNU Affero General Public " +"License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #: ../actions/imsettings.php:173 actions/imsettings.php:181 #: actions/imsettings.php:296 @@ -1172,8 +1187,9 @@ msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " "add %s to your buddy list in your IM client or on GTalk." msgstr "" -"Jabber ja GTalk osoite kuten \"käyttäjätunnus@esimerkki.org\". Varmista että " -"olet lisännyt %s kaverilistaasi IM ohjelmassasi tai GTalk:ssa." +"Jabber ja GTalk -osoite, esimerkiksi \"käyttäjätunnus@esimerkki.org\". " +"Varmista että olet lisännyt %s kaverilistaasi pikaviestiohjelmassasi tai " +"GTalkissa." #: ../actions/profilesettings.php:57 actions/profilesettings.php:90 #: actions/profilesettings.php:128 @@ -1183,7 +1199,6 @@ msgstr "Kieli" # heh #: ../actions/profilesettings.php:113 actions/profilesettings.php:228 #: actions/profilesettings.php:217 -#, fuzzy msgid "Language is too long (max 50 chars)." msgstr "Kieli on liian pitkä (max 50 merkkiä)." @@ -1228,9 +1243,9 @@ msgid "" "(%%action.register%%) a new account, or try [OpenID](%%action.openidlogin%" "%). " msgstr "" -"Kirjaud sisään käyttäjätunnuksella ja salasanalla. Ei ole käyttäjätunnusta " -"vielä? [Rekisteröi](%%action.register%%) käyttäjätunnus tai kokeile [OpenID]" -"(%%action.openidlogin%%)-tunnuksella sisään kirjautumista. " +"Kirjaud sisään käyttäjätunnuksella ja salasanalla. Ei vielä " +"käyttäjätunnusta? [Rekisteröi](%%action.register%%) käyttäjätunnus tai " +"kokeile [OpenID](%%action.openidlogin%%)-tunnuksella sisään kirjautumista. " #: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 msgid "Logout" @@ -1257,17 +1272,17 @@ msgstr "" #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "Hallinnoi miten saat saat sähköpostin palvelusta %%site.name%%." +msgstr "Määritä miten saat sähköpostin palvelusta %%site.name%%." #: ../actions/showstream.php:300 actions/showstream.php:315 #: actions/showstream.php:480 msgid "Member since" -msgstr "Käyttäjä alkaen" +msgstr "Käyttäjänä alkaen" #: ../actions/userrss.php:70 actions/userrss.php:67 actions/userrss.php:72 #, php-format msgid "Microblog by %s" -msgstr "Käyttäjän %s mikro-blog" +msgstr "Käyttäjän %s mikroblogi" #: ../actions/smssettings.php:304 #, php-format @@ -1275,7 +1290,7 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" -"Matkapuhelinoperaattorisi. Jos tiedät operaattorin, joka ottaa vastaa SMS " +"Matkapuhelinoperaattorisi. Jos tiedät operaattorin, joka ottaa vastaan SMS " "viestilähetyksiä sähköpostilla, mutta ei ole listattu tänne, lähetä " "sähköpostia meille osoitteeseen %s." @@ -1285,7 +1300,7 @@ msgstr "" msgid "My text and files are available under " msgstr "" "Minun tekstini ja tiedostoni ovat käytettävissä seuraavan lisenssin " -"mukaisesti " +"mukaisesti " #: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 #: actions/emailsettings.php:83 actions/smssettings.php:91 @@ -1296,12 +1311,12 @@ msgstr "Uusi" #: ../lib/mail.php:144 lib/mail.php:144 lib/mail.php:286 #, php-format msgid "New email address for posting to %s" -msgstr "Uusi sähköpostiosoite päivityksien lähettämiseen on %s" +msgstr "Uusi sähköpostiosoite päivityksien lähettämiseen palveluun %s" #: ../actions/emailsettings.php:297 actions/emailsettings.php:315 #: actions/emailsettings.php:465 msgid "New incoming email address added." -msgstr "Uusi sähköpostiosoite lisätty." +msgstr "Uusi saapuvan sähköpostin osoite lisätty." #: ../actions/finishopenidlogin.php:71 actions/finishopenidlogin.php:77 #: actions/finishopenidlogin.php:99 @@ -1310,7 +1325,6 @@ msgstr "Uusi käyttäjätunnus" #: ../actions/newnotice.php:87 actions/newnotice.php:96 #: actions/newnotice.php:68 -#, fuzzy msgid "New notice" msgstr "Uusi päivitys" @@ -1325,6 +1339,7 @@ msgid "New password successfully saved. You are now logged in." msgstr "" "Uusi salasana tallennettiin onnistuneesti. Olet nyt kirjautunut sisään." +# samaa stringiä käytetään sekä ryhmän nimessä, että käyttäjätunnuksessa ->"tunnus" #: ../actions/login.php:101 ../actions/profilesettings.php:41 #: ../actions/register.php:151 actions/login.php:101 #: actions/profilesettings.php:74 actions/register.php:165 @@ -1333,7 +1348,7 @@ msgstr "" #: actions/showstream.php:251 actions/tagother.php:95 #: lib/facebookaction.php:308 lib/groupeditform.php:137 msgid "Nickname" -msgstr "Käyttäjätunnus" +msgstr "Tunnus" #: ../actions/finishopenidlogin.php:175 ../actions/profilesettings.php:110 #: ../actions/register.php:69 actions/finishopenidlogin.php:181 @@ -1342,7 +1357,7 @@ msgstr "Käyttäjätunnus" #: actions/newgroup.php:134 actions/profilesettings.php:214 #: actions/register.php:159 msgid "Nickname already in use. Try another one." -msgstr "Käyttäjätunnus on jo käytössä. Yritä uutta käyttäjätunnusta." +msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." #: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:88 #: ../actions/register.php:67 ../actions/updateprofile.php:77 @@ -1363,7 +1378,7 @@ msgstr "Käyttäjätunnus ei ole sallittu." #: ../actions/remotesubscribe.php:72 actions/remotesubscribe.php:81 #: actions/remotesubscribe.php:106 msgid "Nickname of the user you want to follow" -msgstr "Käyttätunnus käyttäjälle jota haluat seurata" +msgstr "Käyttäjän, jota haluat seurata, käyttäjätunnus" #: ../actions/recoverpassword.php:162 actions/recoverpassword.php:167 #: actions/recoverpassword.php:186 @@ -1378,7 +1393,7 @@ msgstr "Ei" #: ../actions/imsettings.php:156 actions/imsettings.php:164 #: actions/imsettings.php:279 msgid "No Jabber ID." -msgstr "Ei Jabber ID:tä" +msgstr "Ei Jabber ID -osoitetta" #: ../actions/userauthorization.php:129 actions/userauthorization.php:136 #: actions/userauthorization.php:153 @@ -1413,12 +1428,12 @@ msgstr "Sähköpostiosoitetta ei ole." #: ../actions/userbyid.php:32 actions/userbyid.php:32 actions/userbyid.php:70 msgid "No id." -msgstr "Tunnusta ei ole." +msgstr "Id puuttuu." #: ../actions/emailsettings.php:271 actions/emailsettings.php:289 #: actions/emailsettings.php:430 msgid "No incoming email address." -msgstr "Sähköpostiosoitetta ei ole." +msgstr "Saapuvan sähköpostin osoitetta ei ole." #: ../actions/finishremotesubscribe.php:65 #: actions/finishremotesubscribe.php:67 actions/finishremotesubscribe.php:68 @@ -1428,7 +1443,7 @@ msgstr "Käyttäjätunnusta ei saatu etäpalvelimelta." #: ../actions/avatarbynickname.php:27 actions/avatarbynickname.php:27 #: actions/avatarbynickname.php:59 actions/leavegroup.php:81 msgid "No nickname." -msgstr "Käyttäjätunnusta ei ole." +msgstr "Tunnusta ei ole." #: ../actions/emailsettings.php:222 ../actions/imsettings.php:206 #: ../actions/smssettings.php:229 actions/emailsettings.php:240 @@ -1474,38 +1489,38 @@ msgstr "Kokoa ei ole." #: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112 #: actions/twitapistatuses.php:446 msgid "No status found with that ID." -msgstr "Käyttäjätunnukselle ei löytynyt statustaviestiä." +msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä." #: ../actions/twitapistatuses.php:555 actions/twitapistatuses.php:478 #: actions/twitapistatuses.php:418 msgid "No status with that ID found." -msgstr "Käyttäjätunnukselle ei löytynyt statustaviestiä." +msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä." #: ../actions/openidsettings.php:135 actions/openidsettings.php:144 #: actions/openidsettings.php:222 msgid "No such OpenID." -msgstr "Tuota OpenID-tunnusta ei ole." +msgstr "Annettua OpenID-tunnusta ei ole." #: ../actions/doc.php:29 actions/doc.php:29 actions/doc.php:64 msgid "No such document." -msgstr "Tuota dokumenttia ei ole." +msgstr "Dokumenttia ei ole." #: ../actions/shownotice.php:32 ../actions/shownotice.php:83 #: ../lib/deleteaction.php:30 actions/shownotice.php:32 #: actions/shownotice.php:83 lib/deleteaction.php:30 actions/shownotice.php:87 #: lib/deleteaction.php:51 msgid "No such notice." -msgstr "Tuota päivitystä ei ole." +msgstr "Päivitystä ei ole." #: ../actions/recoverpassword.php:56 actions/recoverpassword.php:56 #: actions/recoverpassword.php:62 msgid "No such recovery code." -msgstr "Tuota palautuskoodia ei ole." +msgstr "Palautuskoodia ei ole." #: ../actions/postnotice.php:56 actions/postnotice.php:57 #: actions/postnotice.php:60 msgid "No such subscription" -msgstr "Tuota tilausta ei ole." +msgstr "Tilausta ei ole." #: ../actions/all.php:34 ../actions/allrss.php:35 #: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40 @@ -1533,7 +1548,7 @@ msgstr "Tuota tilausta ei ole." #: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82 #: lib/subs.php:34 lib/subs.php:109 msgid "No such user." -msgstr "Tuota käyttäjää ei ole." +msgstr "Käyttäjää ei ole." #: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217 #: actions/recoverpassword.php:251 @@ -1584,7 +1599,7 @@ msgstr "Tuo ei ole kelvollinen sähköpostiosoite." #: actions/editgroup.php:186 actions/newgroup.php:137 #: actions/profilesettings.php:195 actions/register.php:161 msgid "Not a valid nickname." -msgstr "Tuo ei ole kelvollinen käyttäjätunnus." +msgstr "Tuo ei ole kelvollinen tunnus." #: ../actions/remotesubscribe.php:120 actions/remotesubscribe.php:129 #: actions/remotesubscribe.php:159 @@ -1616,9 +1631,8 @@ msgstr "Ei valtuutusta." #: ../actions/finishremotesubscribe.php:38 #: actions/finishremotesubscribe.php:38 actions/finishremotesubscribe.php:40 -#, fuzzy msgid "Not expecting this response!" -msgstr "Odottamaton vastaus!" +msgstr "Odottamaton vastaus saatu!" #: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361 #: actions/twitapistatuses.php:309 @@ -1639,7 +1653,7 @@ msgstr "Ei löytynyt" #: actions/unsubscribe.php:27 lib/deleteaction.php:66 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Et ole sisään kirjautunut." +msgstr "Et ole kirjautunut sisään." #: ../lib/subs.php:91 lib/subs.php:104 lib/subs.php:122 msgid "Not subscribed!." @@ -1648,9 +1662,8 @@ msgstr "Ei ole tilattu!." # Vaihtoehtoja noticelle löytyy: päivitys, nootti, status, viesti, päivitys, tilapäivitys, mikropostaus, tilaviesti, status #: ../actions/opensearch.php:35 actions/opensearch.php:35 #: actions/opensearch.php:67 -#, fuzzy msgid "Notice Search" -msgstr "Päivitys Haku" +msgstr "Etsi Päivityksistä" #: ../actions/showstream.php:82 actions/showstream.php:82 #: actions/showstream.php:180 actions/showstream.php:187 @@ -1661,7 +1674,6 @@ msgstr "Päivityksien syöte käyttäjälle %s" #: ../actions/shownotice.php:39 actions/shownotice.php:39 #: actions/shownotice.php:94 -#, fuzzy msgid "Notice has no profile" msgstr "Päivitykselle ei ole profiilia" @@ -1669,16 +1681,15 @@ msgstr "Päivitykselle ei ole profiilia" #: ../actions/showstream.php:316 actions/showstream.php:331 #: actions/showstream.php:504 lib/facebookaction.php:477 lib/mailbox.php:116 #: lib/noticelist.php:87 -#, fuzzy msgid "Notices" msgstr "Päivitykset" # tagi, tägätty, tagätty, tagatty, tagitetty, #: ../actions/tag.php:35 ../actions/tag.php:81 actions/tag.php:35 #: actions/tag.php:81 actions/tag.php:41 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s" -msgstr "Päivitykset joilla on tägi %s" +msgstr "Päivitykset joilla on tagi %s" #: ../actions/password.php:39 actions/profilesettings.php:178 #: actions/passwordsettings.php:97 @@ -1694,30 +1705,30 @@ msgstr "OpenID" #: ../actions/finishopenidlogin.php:61 actions/finishopenidlogin.php:66 #: actions/finishopenidlogin.php:73 msgid "OpenID Account Setup" -msgstr "OpenID tunnuksen asetukset" +msgstr "OpenID-tunnuksen asetukset" #: ../lib/openid.php:180 lib/openid.php:180 lib/openid.php:266 msgid "OpenID Auto-Submit" -msgstr "" +msgstr "OpenID automaattilähetys" #: ../actions/finishaddopenid.php:99 ../actions/finishopenidlogin.php:140 #: ../actions/openidlogin.php:60 actions/finishaddopenid.php:99 #: actions/finishopenidlogin.php:146 actions/openidlogin.php:68 #: actions/finishaddopenid.php:170 actions/openidlogin.php:80 msgid "OpenID Login" -msgstr "OpenID Sisäänkirjautuminen" +msgstr "OpenID-sisäänkirjautuminen" #: ../actions/openidlogin.php:65 ../actions/openidsettings.php:49 #: actions/openidlogin.php:74 actions/openidsettings.php:50 #: actions/openidlogin.php:102 actions/openidsettings.php:101 msgid "OpenID URL" -msgstr "OpenID Verkko-osoite" +msgstr "OpenID-osoite" #: ../actions/finishaddopenid.php:42 ../actions/finishopenidlogin.php:103 #: actions/finishaddopenid.php:42 actions/finishopenidlogin.php:109 #: actions/finishaddopenid.php:88 actions/finishopenidlogin.php:130 msgid "OpenID authentication cancelled." -msgstr "OpenID tunnistautuminen peruutettiin." +msgstr "OpenID tunnistautuminen peruttiin." #: ../actions/finishaddopenid.php:46 ../actions/finishopenidlogin.php:107 #: actions/finishaddopenid.php:46 actions/finishopenidlogin.php:113 @@ -1767,13 +1778,13 @@ msgstr "Salasana ja salasanan vahvistus eivät täsmää." #: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297 #: actions/recoverpassword.php:331 msgid "Password must be 6 chars or more." -msgstr "Salasanassa pitää olla 6 tai useampi merkkiä." +msgstr "Salasanassa pitää olla 6 tai useampia merkkejä." #: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263 #: actions/recoverpassword.php:267 actions/recoverpassword.php:269 #: actions/recoverpassword.php:199 actions/recoverpassword.php:301 msgid "Password recovery requested" -msgstr "Salasanan takaisinsaantipyyntö lähetetty." +msgstr "Salasanan palautuspyyntö lähetetty." #: ../actions/password.php:89 ../actions/recoverpassword.php:313 #: actions/profilesettings.php:408 actions/recoverpassword.php:326 @@ -1790,21 +1801,22 @@ msgstr "Salasanat eivät täsmää." #: ../lib/searchaction.php:100 lib/searchaction.php:100 #: lib/searchgroupnav.php:80 msgid "People" -msgstr "Ihmiset" +msgstr "Henkilö" #: ../actions/opensearch.php:33 actions/opensearch.php:33 #: actions/opensearch.php:64 msgid "People Search" -msgstr "Etsi Ihmisiä" +msgstr "Etsi ihmisiä" #: ../actions/peoplesearch.php:33 actions/peoplesearch.php:33 #: actions/peoplesearch.php:58 msgid "People search" msgstr "Etsi ihmisiä" +# Tämä on otsikko käyttäjän sivun välilehdelle, jossa näkyy omat ja tilausten viestit. Omat on ehkä paremmin kuvaava, kuin henkilökohtainen. Saa kyllä muutakin ehdottaa. #: ../lib/stream.php:50 lib/personal.php:50 lib/personalgroupnav.php:98 msgid "Personal" -msgstr "Henkilökohtainen" +msgstr "Omat" #: ../actions/invite.php:133 actions/invite.php:141 actions/invite.php:178 msgid "Personal message" @@ -1812,7 +1824,7 @@ msgstr "Henkilökohtainen viesti" #: ../actions/smssettings.php:69 actions/smssettings.php:69 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "Puhelinnumero, ei välimerkkejä tai välilyöntejä" +msgstr "Puhelinnumero, ei välimerkkejä tai välilyöntejä, suuntanumerollinen" #: ../actions/userauthorization.php:78 msgid "" @@ -1820,11 +1832,14 @@ msgid "" "user's notices. If you didn't just ask to subscribe to someone's notices, " "click \"Cancel\"." msgstr "" +"Tarkista nämä tiedot varmistaaksesi, että haluat tilata tämän käyttäjän " +"päivitykset. Jos et valinnut haluavasi tilata jonkin käyttäjän päivityksiä, " +"paina \"Peruuta\"." #: ../actions/imsettings.php:73 actions/imsettings.php:74 #: actions/imsettings.php:142 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "Lähetä päivitys kun minun Jabber/GTalk tilatieto vaihtuu." +msgstr "Lähetä päivitys kun Jabber/GTalk -tilatietoni vaihtuu." #: ../actions/emailsettings.php:85 ../actions/imsettings.php:67 #: ../actions/smssettings.php:94 actions/emailsettings.php:86 @@ -1866,12 +1881,12 @@ msgstr "Profiili" #: ../actions/remotesubscribe.php:73 actions/remotesubscribe.php:82 #: actions/remotesubscribe.php:109 msgid "Profile URL" -msgstr "Profiili URL" +msgstr "Profiilin URL" #: ../actions/profilesettings.php:34 actions/profilesettings.php:32 #: actions/profilesettings.php:58 msgid "Profile settings" -msgstr "Profiili asetukset" +msgstr "Profiiliasetukset" #: ../actions/postnotice.php:51 ../actions/updateprofile.php:52 #: actions/postnotice.php:52 actions/updateprofile.php:53 @@ -1881,7 +1896,7 @@ msgstr "Tuntematon profiili." #: ../actions/public.php:54 actions/public.php:54 actions/public.php:124 msgid "Public Stream Feed" -msgstr "" +msgstr "Julkinen syöte" # Suorakäännös voisi sopia. Tähän voisi jotain suomenkielistä termiä hakea tai ottaa tuollainen vähän erikoisempi suora käännös. #: ../actions/public.php:33 actions/public.php:33 actions/public.php:109 @@ -1892,23 +1907,24 @@ msgstr "Julkinen aikajana" #: ../actions/imsettings.php:79 actions/imsettings.php:80 #: actions/imsettings.php:153 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "Julkaise minun Jabber/GTalk osoite MicroID:nä." +msgstr "Julkaise MicroID Jabber/GTalk-osoitteelleni." #: ../actions/emailsettings.php:94 actions/emailsettings.php:101 #: actions/emailsettings.php:178 msgid "Publish a MicroID for my email address." -msgstr "Julkaise minun sähköpostiosoite MicroID:nä." +msgstr "Julkaise MicroID sähköpostiosoitteelleni." # Tagi, tägi,... #: ../actions/tag.php:75 ../actions/tag.php:76 actions/tag.php:75 #: actions/tag.php:76 msgid "Recent Tags" -msgstr "Viimeaikaiset Tagit" +msgstr "Tuoreet tagit" +# Palautuslomakkeen toimintonappi #: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171 #: actions/recoverpassword.php:190 msgid "Recover" -msgstr "Palautus" +msgstr "Palauta" #: ../actions/recoverpassword.php:156 actions/recoverpassword.php:161 #: actions/recoverpassword.php:198 @@ -1951,12 +1967,12 @@ msgstr "Muista minut" #: ../actions/updateprofile.php:70 actions/updateprofile.php:71 #: actions/updateprofile.php:74 msgid "Remote profile with no matching profile" -msgstr "" +msgstr "Etäprofiilille ei löytynyt vastaavaa profiilia" #: ../actions/remotesubscribe.php:65 actions/remotesubscribe.php:73 #: actions/remotesubscribe.php:88 msgid "Remote subscribe" -msgstr "" +msgstr "Etätilaus" #: ../actions/emailsettings.php:47 ../actions/emailsettings.php:75 #: ../actions/imsettings.php:48 ../actions/openidsettings.php:106 @@ -1994,16 +2010,14 @@ msgstr "Vastaukset" #: actions/replies.php:116 actions/repliesrss.php:67 #: lib/personalgroupnav.php:104 #, php-format -#, fuzzy msgid "Replies to %s" -msgstr "Vastaukset päivitykseen %s" +msgstr "Vastaukset käyttäjälle %s" # Palauta, aseta uudelleen, uudelleenasetus, nollaus, tyhjää #: ../actions/recoverpassword.php:183 actions/recoverpassword.php:189 #: actions/recoverpassword.php:223 -#, fuzzy msgid "Reset" -msgstr "Palauta" +msgstr "Vaihda" #: ../actions/recoverpassword.php:173 actions/recoverpassword.php:178 #: actions/recoverpassword.php:197 @@ -2023,7 +2037,7 @@ msgstr "SMS puhelinnumero" #: ../actions/smssettings.php:33 actions/smssettings.php:33 #: actions/smssettings.php:58 msgid "SMS Settings" -msgstr "SMS Asetukset" +msgstr "SMS-asetukset" #: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 msgid "SMS confirmation" @@ -2060,7 +2074,7 @@ msgstr "Haku" #: ../actions/noticesearch.php:80 actions/noticesearch.php:85 #: actions/noticesearch.php:127 msgid "Search Stream Feed" -msgstr "" +msgstr "Hakusyöte" #: ../actions/noticesearch.php:30 actions/noticesearch.php:30 #: actions/noticesearch.php:57 @@ -2070,7 +2084,7 @@ msgid "" "by spaces; they must be 3 characters or more." msgstr "" "Hae päivityksiä palvelun %%site.name%% sisällöistä. Erota hakutermit " -"välilyönnillä; hakutermien pitää olla 3 tai useamman merkin pituinen." +"välilyönnillä; hakutermien pitää olla 3 tai useamman merkin pituisia." #: ../actions/peoplesearch.php:28 #, php-format @@ -2080,7 +2094,7 @@ msgid "" msgstr "" "Hae ihmisiä palvelun %%site.name%% käyttäjien nimistä, paikoista ja " "kiinnostuksen kohteista. Erota hakutermit välilyönnillä; hakutermien pitää " -"olla 3 tai useamman merkin pituinen." +"olla 3 tai useamman merkin pituisia." #: ../actions/smssettings.php:296 actions/smssettings.php:304 #: actions/smssettings.php:457 @@ -2097,7 +2111,7 @@ msgstr "Lähetä" #: actions/emailsettings.php:74 actions/smssettings.php:82 #: actions/emailsettings.php:132 actions/smssettings.php:145 msgid "Send email to this address to post new notices." -msgstr "Teet uuden päivityksen lähettämällä sähköpostin tähän osoitteeseen." +msgstr "Lähetä sähköpostia tähän osoitteeseen tehdäksesi päivityksiä." #: ../actions/emailsettings.php:88 actions/emailsettings.php:89 #: actions/emailsettings.php:152 @@ -2107,17 +2121,21 @@ msgstr "Lähetä sähköpostilla tieto uusista tilaajista." #: ../actions/imsettings.php:70 actions/imsettings.php:71 #: actions/imsettings.php:137 msgid "Send me notices through Jabber/GTalk." -msgstr "Lähetä päivitykset Jabber/GTalk:lla." +msgstr "Lähetä minulle päivityksiä Jabberilla/GTalkilla." #: ../actions/smssettings.php:97 actions/smssettings.php:97 msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." -msgstr "Lähetä päivitykset SMS:llä; tämä voi aiheuttaa kustannuksia sinulle." +msgstr "" +"Lähetä päivityksiä SMS:llä; Ymmärrän, että voin saada kohtuuttomia laskuja " +"tästä matkapuhelinoperaattoriltani." #: ../actions/imsettings.php:76 actions/imsettings.php:77 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." -msgstr "Lähetä vastaukset Jabber/GTalk:lla ihmisiltä, joita en ole tilannut. " +msgstr "" +"Lähetä Jabberilla/GTalkilla sellaistenkin ihmisten vastaukset, joita en ole " +"tilannut. " #: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215 msgid "Settings" @@ -2146,16 +2164,16 @@ msgstr "Jotain erikoista tapahtui." #: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58 #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "Valitettavasti sähköpostipäivityksiä eivät ole sallittuja." +msgstr "Valitettavasti päivitysten teko sähköpostilla ei ole sallittua." #: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54 #: scripts/maildaemon.php:57 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Valitettavasti tuo ei ole oikea osoite sähköpostipäivityksille." #: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 msgid "Source" -msgstr "Lähde" +msgstr "Lähdekoodi" #: ../actions/showstream.php:296 actions/showstream.php:311 #: actions/showstream.php:476 @@ -2204,7 +2222,7 @@ msgstr "Tilaukset" #: ../actions/avatar.php:87 actions/profilesettings.php:324 #: lib/imagefile.php:78 msgid "System error uploading file." -msgstr "Tiedoston lähetyksessä tapahtui systeemivirhe." +msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe." #: ../actions/tag.php:41 ../lib/util.php:301 actions/tag.php:41 #: lib/util.php:317 actions/profilesettings.php:122 actions/showstream.php:297 @@ -2249,38 +2267,38 @@ msgstr "Tämä tiedosto on liian iso." #: ../actions/imsettings.php:170 actions/imsettings.php:178 #: actions/imsettings.php:293 msgid "That is already your Jabber ID." -msgstr "Tämä on jo sinun Jabber ID." +msgstr "Tämä on jo Jabber ID -tunnuksesi." #: ../actions/emailsettings.php:188 actions/emailsettings.php:206 #: actions/emailsettings.php:318 msgid "That is already your email address." -msgstr "Tämä on jo sinun sähköpostiosoitteesi." +msgstr "Tämä on jo sähköpostiosoitteesi." #: ../actions/smssettings.php:188 actions/smssettings.php:196 #: actions/smssettings.php:306 msgid "That is already your phone number." -msgstr "Tämä on jo sinun puhelinnumerosi." +msgstr "Tämä on jo puhelinnumerosi." #: ../actions/imsettings.php:233 actions/imsettings.php:241 #: actions/imsettings.php:381 msgid "That is not your Jabber ID." -msgstr "Tämä ei ole sinun Jabber ID." +msgstr "Tämä ei ole Jabber ID-tunnuksesi." #: ../actions/emailsettings.php:249 actions/emailsettings.php:267 #: actions/emailsettings.php:397 msgid "That is not your email address." -msgstr "Tämä ei ole sinun sähköpostiosoitteesi." +msgstr "Tämä ei ole sähköpostiosoitteesi." #: ../actions/smssettings.php:257 actions/smssettings.php:265 #: actions/smssettings.php:393 msgid "That is not your phone number." -msgstr "Tämä ei ole sinun puhelinnumerosi." +msgstr "Tämä ei ole puhelinnumerosi." #: ../actions/emailsettings.php:226 ../actions/imsettings.php:210 #: actions/emailsettings.php:244 actions/imsettings.php:218 #: actions/emailsettings.php:367 actions/imsettings.php:349 msgid "That is the wrong IM address." -msgstr "Tämä on väärä IM osoite." +msgstr "Tämä on väärä pikaviestiosoite." #: ../actions/smssettings.php:233 actions/smssettings.php:241 #: actions/smssettings.php:362 @@ -2296,12 +2314,12 @@ msgstr "Tämä puhelinnumero kuuluu jo toiselle käyttäjälle." #: actions/newnotice.php:49 actions/twitapistatuses.php:330 #: actions/facebookhome.php:243 actions/twitapistatuses.php:276 msgid "That's too long. Max notice size is 140 chars." -msgstr "Päivityksen koko on liian pitkä. Maksimi pituus on 140 merkkiä." +msgstr "Päivitys on liian pitkä. Maksimipituus on 140 merkkiä." #: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72 #: actions/twitapiaccount.php:62 msgid "That's too long. Max notice size is 255 chars." -msgstr "Päivityksen koko on liian pitkä. Maksimi pituus on 255 merkkiä." +msgstr "Päivitys on liian pitkä. Maksimipituus on 255 merkkiä." #: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92 #, php-format @@ -2316,29 +2334,26 @@ msgstr "Osoite \"%s\" on vahvistettu sinun käyttäjätunnuksellesi." msgid "The address was removed." msgstr "Osoite on poistettu." -# En nyt ihan tarkkaan tiedä milloin tämä virhe tulee. Pitää vielä tarkistaa. +# Ilmeisesti jotain etäprofiilin tilausvirheitä nämä on. Laitoin callbackin tuohon ettei huku tietoa virheestä... #: ../actions/userauthorization.php:312 -#, fuzzy msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site's instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -"Päivityksen tilaus on hyväksytty, mutta vaadittavaa verkko-osoitetta " -"palveluun ei ole saatu. Tarkista sivun ohjeet miten päivityksen tilaus " -"hyväksytään. Sinun tilauskoodi on:" +"Päivityksen tilaus on hyväksytty, mutta callback-osoitetta palveluun ei ole " +"saatu. Tarkista sivuston ohjeet miten päivityksen tilaus hyväksytään. " +"Tilauskoodisi on:" -# En nyt ihan tarkkaan tiedä milloin tämä virhe tulee. Pitää vielä tarkistaa. +# Etäprofiilin tilausjuttua. #: ../actions/userauthorization.php:322 -#, fuzzy msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site's instructions for details on how to fully reject the " "subscription." msgstr "" -"Päivityksen tilaus on hylätty, mutta vaadittavaa verkko-osoitetta palveluun " -"ei ole saatu. Tarkista sivun ohjeista miten päivityksen tilaus hylätään " -"kokonaan." +"Päivityksen tilaus on hylätty, mutta callback-osoitetta palveluun ei ole " +"saatu. Tarkista sivuston ohjeet miten päivityksen tilaus hylätään kokonaan." #: ../actions/subscribers.php:35 actions/subscribers.php:35 #, php-format @@ -2347,7 +2362,7 @@ msgstr "Nämä ihmiset seuraavat käyttäjän %s päivityksiä." #: ../actions/subscribers.php:33 actions/subscribers.php:33 msgid "These are the people who listen to your notices." -msgstr "Nämä ihmiset seuraavat sinun päivityksiä." +msgstr "Nämä ihmiset seuraavat sinun päivityksiäsi." #: ../actions/subscriptions.php:35 actions/subscriptions.php:35 #, php-format @@ -2363,7 +2378,7 @@ msgid "" "These people are already users and you were automatically subscribed to them:" msgstr "" "Nämä ihmiset ovat jo käyttäjiä ja sinä olet automaattisesti tilannut heidän " -"päivitykset:" +"päivityksensä:" #: ../actions/recoverpassword.php:88 msgid "This confirmation code is too old. Please start again." @@ -2374,7 +2389,7 @@ msgid "" "This form should automatically submit itself. If not, click the submit " "button to go to your OpenID provider." msgstr "" -"Lomake pitäisi lähettää automaattisesti tiedot. Jos kuitenkin näin ei " +"Lomakkeen pitäisi lähettää automaattisesti tiedot. Jos kuitenkaan näin ei " "tapahdu, paina lähetä painiketta mennäksesi OpenID-palveluntajoajalle." #: ../actions/finishopenidlogin.php:56 actions/finishopenidlogin.php:61 @@ -2385,10 +2400,10 @@ msgid "" "to a local account. You can either create a new account, or connect with " "your existing account, if you have one." msgstr "" -"Tämä on ensimmäinen kerta kun olet sisäänkirjautunut käyttäjän %s, joten " -"sinun OpenID-tunnus pitää yhdistää johonkin tämän palvelun " -"käyttäjätunnukseen. Tätä varten voit luoda uuden käyttäjätunnuksen tai " -"yhdistää olemassa olevaan käyttäjätunnukseen, jos sinulla sellainen jo on." +"Tämä on ensimmäinen kerta kun olet sisäänkirjautunut %s -palveluun, joten " +"OpenID-tunnuksesi pitää yhdistää johonkin tämän palvelun käyttäjätunnukseen. " +"Tätä varten voit luoda uuden käyttäjätunnuksen tai yhdistää OpenID-" +"tunnuksen olemassa olevaan käyttäjätunnukseen, jos sinulla sellainen jo on." #: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586 #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 @@ -2405,11 +2420,11 @@ msgstr "Tämä metodi edellyttää joko POST tai DELETE sanoman." #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 #: actions/twitapistatuses.php:244 msgid "This method requires a POST." -msgstr "Tämä metodi edellyttää joko POST sanoman." +msgstr "Tämä metodi edellyttää POST sanoman." #: ../lib/util.php:164 lib/util.php:246 msgid "This page is not available in a media type you accept" -msgstr "Tämä sivu ei ole saatavilla sinulle sopivassa media tyypissä." +msgstr "Tämä sivu ei ole saatavilla sinulle sopivassa mediatyypissä." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:138 @@ -2419,7 +2434,7 @@ msgstr "Aikavyöhyke" #: ../actions/profilesettings.php:107 actions/profilesettings.php:222 #: actions/profilesettings.php:211 msgid "Timezone not selected." -msgstr "Aikavyöhyke ei ole valittu." +msgstr "Aikavyöhykettä ei ole valittu." #: ../actions/remotesubscribe.php:43 #, php-format @@ -2430,9 +2445,9 @@ msgid "" msgstr "" "Tilataksesi päivitykset, voit [kirjautua sisään](%%action.login%%), tai " "[rekisteröidä](%%action.register%%) uuden käyttäjätunnuksen. Jos sinulla on " -"jo käyttäjätunnus jollain [yhteensopivalla mikro-" -"bloggauspalvelussa](%%doc.openmublog%%), syötä profiilisi URL-osoite alla " -"olevaan kenttään." +"jo käyttäjätunnus jossain [yhteensopivassa " +"mikroblogauspalvelussa](%%doc.openmublog%%), syötä profiilisi URL-osoite " +"alla olevaan kenttään." #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 @@ -2443,12 +2458,12 @@ msgstr "Kaksi käyttäjätunnusta tai nimeä täytyy antaa." #: actions/profilesettings.php:81 actions/register.php:183 #: actions/profilesettings.php:109 msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL-osoite kotivulle, blogiin tai toisen sivuston profiilin" +msgstr "Kotisivusi, blogisi tai toisella sivustolla olevan profiilisi osoite." #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 msgid "URL of your profile on another compatible microblogging service" -msgstr "URL-osoite toiseen yhteensopivaan mikro-bloggauspalvelun profiilin" +msgstr "Profiilisi URL-osoite toisessa yhteensopivassa mikroblogauspalvelussa" #: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 #: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 @@ -2468,29 +2483,27 @@ msgstr "Odottamaton salasanan uudelleenasetus." #: ../index.php:57 index.php:57 actions/recoverpassword.php:202 msgid "Unknown action" -msgstr "Tuntematon toiminta" +msgstr "Tuntematon toiminto" #: ../actions/finishremotesubscribe.php:58 #: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61 msgid "Unknown version of OMB protocol." -msgstr "Tuntematon OMB protokollan versio." +msgstr "Tuntematon OMB-protokollan versio." #: ../lib/util.php:269 lib/util.php:285 -#, fuzzy msgid "" "Unless otherwise specified, contents of this site are copyright by the " "contributors and available under the " msgstr "" -"Jos muuten ei ole määritelty, tämän palvelun sisältöjen tekijänoikeudet " -"kuuluvat niiden kirjoittajille ja ovat saatavilla seuraavan lisenssin " -"mukaisesti " +"Ellei toisin ilmoitettu, tämän palvelun sisältöjen tekijänoikeudet kuuluvat " +"niiden kirjoittajille ja ovat saatavilla seuraavalla lisenssillä " # formaatti/tyyppi #: ../actions/confirmaddress.php:48 actions/confirmaddress.php:48 #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" -msgstr "Tuntematon osoiteformaatti %s " +msgstr "Tuntematon osoitetyyppi %s " #: ../actions/showstream.php:209 actions/showstream.php:219 #: lib/unsubscribeform.php:137 @@ -2543,9 +2556,11 @@ msgid "" "site license, also. Use a picture that belongs to you and that you want to " "share." msgstr "" -"Lataa uusi \"avatar\" (kuva käyttäjästa) tästä. Voit editoida kuvaa lataamisen " -"jälkeen. Kuvan pitää olla palvelun tekijänoikeuslisenssin mukainen. Käytä " -"sellaista kuvaa, joka kuulu sinulle ja jonka haluat näkyvän muille." +"Lataa uusi käyttäjäkuva tästä. Et voi muokata kuvaa lataamisen jälkeen, " +"joten varmista sen olevan suurinpiirtein neliön muotoinen. Kuvan pitää olla " +"palvelun tekijänoikeuslisenssin mukainen. Sen täytyy myös olla sivuston " +"lisenssin alla saatavilla. Käytä sellaista kuvaa, joka kuulu sinulle ja " +"jonka haluat näkyvän muille." #: ../lib/settingsaction.php:91 msgid "Upload a new profile image" @@ -2568,7 +2583,7 @@ msgstr "" #: ../actions/finishremotesubscribe.php:86 #: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 msgid "User being listened to doesn't exist." -msgstr "Käyttäjä jota seurataan ei ole olemassa." +msgstr "Käyttäjää jota seurataan ei ole olemassa." #: ../actions/all.php:41 ../actions/avatarbynickname.php:48 #: ../actions/foaf.php:47 ../actions/replies.php:41 @@ -2612,19 +2627,19 @@ msgstr "Mitä teet juuri nyt, %s?" #: actions/profilesettings.php:87 actions/register.php:189 #: actions/profilesettings.php:119 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "Asuinpaikka kuten \"Kaupunki, Maakunta (tai Lääni), Maa\"" +msgstr "Olinpaikka kuten \"Kaupunki, Maakunta (tai Lääni), Maa\"" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 #: actions/updateprofile.php:132 #, php-format msgid "Wrong image type for '%s'" -msgstr "Väärä kuvatyyppi käyttäjälle '%s'" +msgstr "Kuvan '%s' tyyppi on väärä" #: ../actions/updateprofile.php:123 actions/updateprofile.php:124 #: actions/updateprofile.php:127 #, php-format msgid "Wrong size image at '%s'" -msgstr "Väärä kuvakoko käyttäjälle '%s'" +msgstr "Kuvan '%s' koko on väärä" #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 #: actions/deletenotice.php:64 actions/deletenotice.php:79 @@ -2658,7 +2673,7 @@ msgstr "Olet jos tilannut seuraavien käyttäjien päivitykset:" #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "Ette ole kavereita tämän henkilön kanssa." +msgstr "Et ole määritellyn käyttäjän kaveri." #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" @@ -2673,7 +2688,7 @@ msgstr "Voit luoda uuden käyttäjätunnuksen ja aloittaa päivityksien tekemise #, php-format msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" -"Voit saada SMS viestit sähköpostin välityksellä %%site.name%% palvelussa." +"Voit saada SMS viestit sähköpostin välityksellä %%site.name%% -palvelusta." #: ../actions/openidsettings.php:86 msgid "" @@ -2687,16 +2702,16 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"Voit lähettää ja vastaanottaa päivityksiä Jabber/GTalk " -"[pikaviestintä](%%doc.im%%) käyttäen. Alla voit määrittää sinun osoitteen ja " -"asetukset. " +"Voit lähettää ja vastaanottaa päivityksiä " +"Jabber/GTalk-[pikaviestintä](%%doc.im%%) käyttäen. Alla voit määrittää " +"osoitteesi ja asetuksesi. " #: ../actions/profilesettings.php:27 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -"Voit päivittää täällä sinun henkilötietojasi, jotta muut voivat tietää " -"enemmän sinusta." +"Voit päivittää täällä henkilötietojasi, jotta muut saavat tietää sinusta " +"enemmän." #: ../actions/finishremotesubscribe.php:31 ../actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:31 actions/remotesubscribe.php:31 @@ -2730,9 +2745,9 @@ msgid "" msgstr "" "Sinulla on uusi päivityksien lähetysosoite palvelussa %1$s.\n" "\n" -"Lähetä sähköposti osoitteeseen %2$s tehdessäsi uusi päivitys.\n" +"Lähetä sähköposti osoitteeseen %2$s tehdäksesi uuden päivityksen.\n" "\n" -"Lisää sähköpostiksen ohjeista voit lukea täältä %3$s.\n" +"Lisää sähköpostin käyttöohjeita voit lukea osoitteesta %3$s.\n" "\n" "Terveisin,\n" "%4$s" @@ -2746,27 +2761,30 @@ msgstr "Et voi poistaa toisen käyttäjän päivitystä." #, php-format msgid "You must be logged in to invite other users to use %s" msgstr "" -"Sinun pitää olla kirjautunut sisään, jos haluat kutsua uusia käyttäjiä " -"palveluun %s" +"Sinun täytyy olla kirjautuneena sisään kutsuaksesi uusia käyttäjiä palveluun " +"%s" #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Lähetämme sinulle ilmoituksen, kun joku kutsumistasi henkilöistä hyväksyy " +"kutsun ja rekisteröityy palveluun. Kiitoksia yhteisön kasvattamisesta!" #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " -msgstr "" +msgstr "Sinut on tunnistettu. Syötä uusi salasana alle. " #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 #: actions/openidlogin.php:104 msgid "Your OpenID URL" -msgstr "" +msgstr "OpenID URL-osoitteesi" #: ../actions/recoverpassword.php:164 msgid "Your nickname on this server, or your registered email address." msgstr "" +"Käyttäjätunnuksesi tässä palvelussa tai rekisteröity sähköpostiosoitteesi." #: ../actions/openidsettings.php:28 #, php-format @@ -2774,81 +2792,83 @@ msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" +"[OpenID](%%doc.openid%%) mahdollistaa kirjautumisen sisään useaan palveluun " +"yhdellä tunnuksella. Voit hallinnoida OpenID-tunnuksiasi täällä." #: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 msgid "a few seconds ago" -msgstr "" +msgstr "muutama sekunti sitten" #: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 #, php-format msgid "about %d days ago" -msgstr "" +msgstr "noin %d päivää sitten" #: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 #, php-format msgid "about %d hours ago" -msgstr "" +msgstr "noin %d tuntia sitten" #: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 #, php-format msgid "about %d minutes ago" -msgstr "" +msgstr "noin %d minuuttia sitten" #: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 #, php-format msgid "about %d months ago" -msgstr "" +msgstr "noin %d kuukautta sitten" #: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 msgid "about a day ago" -msgstr "" +msgstr "noin päivä sitten" #: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 msgid "about a minute ago" -msgstr "" +msgstr "noin minuutti sitten" #: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 msgid "about a month ago" -msgstr "" +msgstr "noin kuukausi sitten" #: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 msgid "about a year ago" -msgstr "" +msgstr "noin vuosi sitten" #: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 msgid "about an hour ago" -msgstr "" +msgstr "noin tunti sitten" #: ../actions/showstream.php:423 ../lib/stream.php:132 #: actions/showstream.php:441 lib/stream.php:99 msgid "delete" -msgstr "" +msgstr "poista" #: ../actions/noticesearch.php:130 ../actions/showstream.php:408 #: ../lib/stream.php:117 actions/noticesearch.php:136 #: actions/showstream.php:426 lib/stream.php:84 actions/noticesearch.php:187 msgid "in reply to..." -msgstr "" +msgstr "vastaus viestiin..." #: ../actions/noticesearch.php:137 ../actions/showstream.php:415 #: ../lib/stream.php:124 actions/noticesearch.php:143 #: actions/showstream.php:433 lib/stream.php:91 actions/noticesearch.php:194 msgid "reply" -msgstr "" +msgstr "vastaus" #: ../actions/password.php:44 actions/profilesettings.php:183 #: actions/passwordsettings.php:106 msgid "same as password above" -msgstr "" +msgstr "sama salasana kuin yllä" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 #: actions/twitapistatuses.php:555 msgid "unsupported file type" -msgstr "" +msgstr "tiedoston tyyppi ei ole tuettu" #: ../lib/util.php:1309 lib/util.php:1443 msgid "« After" -msgstr "" +msgstr "« Myöhemmin" #: actions/deletenotice.php:74 actions/disfavor.php:43 #: actions/emailsettings.php:127 actions/favor.php:45 @@ -2865,66 +2885,68 @@ msgstr "" #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 msgid "There was a problem with your session token. Try again, please." msgstr "" +"Istuntosi avaimen kanssa oli ongelmia. Olisitko ystävällinen ja kokeilisit " +"uudelleen." #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Tämä päivitys ei ole suosikki!" #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Ei voitu poistaa suosikkia." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Lisää suosikiksi" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Lähetä sähköpostia, jos joku lisää päivitykseni suosikiksi." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Lähetä sähköpostia, jos joku lähettää minulle yksityisviestin." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Tämä päivitys on jo suosikki!" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "Ei voitu lisätä suosikiksi." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "Poista suosikeista" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "Käyttäjän %s suosikkipäivitykset" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "Käyttäjän %s suosikkipäivityksien syöte" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "Saapuneet viestit käyttäjälle %s - sivu %d" #: actions/inbox.php:30 actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Saapuneet viestit käyttäjälle %s" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "Tämä on postilaatikkosi, jossa on sinulle saapuneet yksityisviestit." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2932,95 +2954,103 @@ msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" msgstr "" +"%1$s on kutsunut sinut liittymään palveluun %2$s (%3$s).\n" +"\n" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Kirjaudu sisään automaattisesti tulevaisuudessa; " #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "Ole hyvä ja turvallisuussyistä syötä uudelleen " #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Kirjaudu sisään käyttäjätunnuksella ja salasanalla. " #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "Liian pitkä päivitys. Maksimikoko päivitykselle on 140 merkkiä." #: actions/newmessage.php:65 actions/newmessage.php:128 msgid "No recipient specified." -msgstr "" +msgstr "Vastaanottajaa ei ole määritelty." #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "Et voi lähettää viestiä tälle käyttäjälle." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 #: classes/Command.php:240 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgstr "Älä lähetä viestiä itsellesi, vaan kuiskaa se vain hiljaa itsellesi." #: actions/newmessage.php:108 actions/microsummary.php:62 #: actions/newmessage.php:163 msgid "No such user" -msgstr "" +msgstr "Tuota käyttäjää ei ole." #: actions/newmessage.php:117 actions/newmessage.php:67 msgid "New message" -msgstr "" +msgstr "Uusi viesti" #: actions/noticesearch.php:95 actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "Päivitys ilman vastaavaa profiilia" #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " msgstr "" +"[OpenID](%%doc.openid%%) mahdollistaa sisäänkirjautumisen useaan palveluun " #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "Jos haluat lisätä OpenID-tunnuksen käyttäjätiliisi, " +# pitäisi olla ehkä et voi OpenID:llä kirjautua sisään. #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " msgstr "" +"Et voisi enää kirjautua palveluun, jos poistaisit ainoan OpenID-tunnuksesi! " #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "Voit poistaa OpenID-tunnuksen käyttäjätililtäsi " #: actions/outbox.php:28 actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "Käyttäjän %s lähetetyt viestit - sivu %d" #: actions/outbox.php:30 actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Käyttäjän %s lähetetyt viestit" #: actions/outbox.php:53 actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "Tämä on postilaatikkosi, jossa on lähettämäsi yksityisviestit." +# olikos se näin aiemminkin #: actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " msgstr "" +"Etsi ihmisiä palvelussa %%site.name%% heidän nimensä, paikkansa tai " +"kiinnostustensa perusteella. " #: actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" +msgstr "Voit päivittää täällä henkilökohtaista profiiliasi " #: actions/profilesettings.php:115 actions/remotesubscribe.php:320 #: actions/userauthorization.php:159 actions/userrss.php:76 @@ -3028,35 +3058,35 @@ msgstr "" #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 msgid "User without matching profile" -msgstr "" +msgstr "Käyttäjälle ei löydy profiilia" #: actions/recoverpassword.php:91 actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "Tämä vahvistuskoodi on liian vanha. " #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "Jos olet unohtanut tai hukannut" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "Sinut on tunnistettu. Syötä " #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "Käyttäjätunnuksesi tässä palvelussa, " #: actions/recoverpassword.php:271 actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "Ohjeet salasanan palauttamiseksi " #: actions/recoverpassword.php:327 actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "Uuden salasanan tallennus onnistui. " #: actions/register.php:95 actions/register.php:180 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Salasanassa pitää olla 6 tai useampia merkkejä." #: actions/register.php:216 #, php-format @@ -3064,102 +3094,109 @@ msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." msgstr "" +"Onneksi olkoon, %s! tervetuloa %%%%site.name%%%% palveluun. Tästä haluat " +"ehkä jatkaa..." #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "Saat pian sähköpostilla viestin, jossa on " #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "Tilataksesi päivitykset, voit [kirjautua sisään](%%action.login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "Käyttäjän %s suosikkien syöte" +# suosikkipäivitystä? #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Ei saatu haettua suosikkipäivityksiä." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "Tuota viestiä ei ole." #: actions/showmessage.php:42 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Vain lähettäjä ja vastaanottaja voivat lukea tämän viestin." #: actions/showmessage.php:61 actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Viesti käyttäjälle %1$s, %2$s" +# Ei välttämättä kovin hyvä tuo päiväysosa. #: actions/showmessage.php:66 actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Viesti käyttäjältä %1$s, %2$s" #: actions/showstream.php:154 msgid "Send a message" -msgstr "" +msgstr "Lähetä viesti" #: actions/smssettings.php:312 actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "Matkapuhelinoperaattorisi" #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "Suorat viestit käyttäjälle %s" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Kaikki suorat viestit käyttäjälle %s" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "Suorat viestit, jotka sinä olet lähettänyt" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Kaikki suorat viestit käytäjältä %s" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 msgid "No message text!" -msgstr "" +msgstr "Viestissä ei ole tekstiä!" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 msgid "Recipient user not found." -msgstr "" +msgstr "Vastaanottajaa ei löytynyt." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." msgstr "" +"Et voi lähettää suoraa viestiä käyttäjälle, jonka kanssa et ole vielä " +"kaveri." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / Käyttäjän %s suosikit" +# ensimmäinen on sivuston/palvelun nimi sorsasta päätellen. #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr " Palvelun %s päivitykset, jotka %s / %s on merkinnyt suosikikseen." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s lisäsi päivityksesi suosikkeihinsa" #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3168,230 +3205,238 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s lisäsi päivityksesi ajalta %2$s suosikkeihinsa.\n" +"\n" #: actions/twittersettings.php:27 msgid "" "Add your Twitter account to automatically send your notices to Twitter, " msgstr "" +"Lisää Twitter käyttäjätunnuksesi lähettääksesi päivitykset automaattisesti " +"myös Twitteriin, " #: actions/twittersettings.php:41 actions/twittersettings.php:60 msgid "Twitter settings" -msgstr "" +msgstr "Twitter-asetukset" #: actions/twittersettings.php:48 actions/twittersettings.php:105 msgid "Twitter Account" -msgstr "" +msgstr "Twitter käyttäjätili" #: actions/twittersettings.php:56 actions/twittersettings.php:113 msgid "Current verified Twitter account." -msgstr "" +msgstr "Tämänhetkinen vahvistettu Twitter käyttäjätilisi." #: actions/twittersettings.php:63 msgid "Twitter Username" -msgstr "" +msgstr "Twitter-käyttäjätunnus" #: actions/twittersettings.php:65 actions/twittersettings.php:123 msgid "No spaces, please." -msgstr "" +msgstr "Ei välilyöntejä, kiitos." #: actions/twittersettings.php:67 msgid "Twitter Password" -msgstr "" +msgstr "Twitter-salasana" #: actions/twittersettings.php:72 actions/twittersettings.php:139 msgid "Automatically send my notices to Twitter." -msgstr "" +msgstr "Lähetä päivitykseni automaattisesti Twitteriin." #: actions/twittersettings.php:75 actions/twittersettings.php:146 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "Lähetä paikalliset \"@\"-vastaukset Twitteriin." #: actions/twittersettings.php:78 actions/twittersettings.php:153 msgid "Subscribe to my Twitter friends here." -msgstr "" +msgstr "Tilaa kavereitteni Twitter päivitykset täällä." #: actions/twittersettings.php:122 msgid "" "Username must have only numbers, upper- and lowercase letters, and " "underscore (_). 15 chars max." msgstr "" +"Käyttäjätunnuksessa voi olla vain numeroita, isoja ja pieniä kirjaimia ja " +"alaviiva (_). 15 merkkiä maksimissaan." #: actions/twittersettings.php:128 actions/twittersettings.php:334 msgid "Could not verify your Twitter credentials!" -msgstr "" +msgstr "Twitter-tunnustasi ei voitu vahvistaa!" #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "Ei pystytty hakemaan käyttäjän \"%s\" tietoja Twitteristä." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "Twitter-asetuksia ei voitu tallentaa!" #: actions/twittersettings.php:174 actions/twittersettings.php:376 msgid "Twitter settings saved." -msgstr "" +msgstr "Twitter-asetukset tallennettu." #: actions/twittersettings.php:192 actions/twittersettings.php:395 msgid "That is not your Twitter account." -msgstr "" +msgstr "Tämä ei ole sinun Twitter käyttäjätilisi." #: actions/twittersettings.php:200 actions/twittersettings.php:208 #: actions/twittersettings.php:403 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "Twitter käyttäjää ei onnistuttu poistamaan." #: actions/twittersettings.php:212 actions/twittersettings.php:407 msgid "Twitter account removed." -msgstr "" +msgstr "Twitter käyttäjätili poistettu." #: actions/twittersettings.php:225 actions/twittersettings.php:239 #: actions/twittersettings.php:428 actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "Twitter-asetuksia ei voitu tallentaa." #: actions/twittersettings.php:245 actions/twittersettings.php:461 msgid "Twitter preferences saved." -msgstr "" +msgstr "Twitter-asetukset tallennettu." #: actions/userauthorization.php:84 actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "Tarkista näistä tiedoista haluatko " +# koodissa jatkuu "but no callback url was passed"... #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "Tilausta ei ole hyväksytty, mutta" +# koodissa jatkuu "but no callback url was passed" #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "Tilaus on hylätty, mutta " #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 msgid "Command results" -msgstr "" +msgstr "Komennon tulos" #: classes/Channel.php:148 classes/Channel.php:204 msgid "Command complete" -msgstr "" +msgstr "Komento suoritettu" #: classes/Channel.php:158 classes/Channel.php:215 msgid "Command failed" -msgstr "" +msgstr "Komento epäonnistui" #: classes/Command.php:39 classes/Command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Valitettavasti tätä komentoa ei ole vielä toteutettu." #: classes/Command.php:96 classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "" +msgstr "Tilaukset: %1$s\n" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 #: classes/Command.php:276 msgid "User has no last notice" -msgstr "" +msgstr "Käyttäjällä ei ole viimeistä päivitystä" #: classes/Command.php:146 classes/Command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "Päivitys on merkitty suosikiksi." #: classes/Command.php:166 classes/Command.php:189 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" #: classes/Command.php:169 classes/Command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "Koko nimi: %s" #: classes/Command.php:172 classes/Command.php:195 #, php-format msgid "Location: %s" -msgstr "" +msgstr "Kotipaikka: %s" #: classes/Command.php:175 classes/Command.php:198 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Kotisivu: %s" #: classes/Command.php:178 classes/Command.php:201 #, php-format msgid "About: %s" -msgstr "" +msgstr "Tietoa: %s" #: classes/Command.php:200 classes/Command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" #: classes/Command.php:214 classes/Command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "Suora viesti käyttäjälle %s lähetetty" #: classes/Command.php:216 classes/Command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "Tapahtui virhe suoran viestin lähetyksessä." #: classes/Command.php:263 classes/Command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "Anna käyttäjätunnus, jonka päivitykset haluat tilata" #: classes/Command.php:270 classes/Command.php:307 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "Käyttäjän %s päivitykset tilattu" #: classes/Command.php:288 classes/Command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "Anna käyttäjätunnus, jonka päivityksien tilauksen haluat lopettaa" #: classes/Command.php:295 classes/Command.php:335 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "Käyttäjän %s päivitysten tilaus lopetettu" #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 #: classes/Command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "Komentoa ei ole vielä toteutettu." #: classes/Command.php:313 classes/Command.php:356 msgid "Notification off." -msgstr "" +msgstr "Ilmoitukset pois päältä." #: classes/Command.php:315 classes/Command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "Ilmoituksia ei voi pistää pois päältä." #: classes/Command.php:333 classes/Command.php:379 msgid "Notification on." -msgstr "" +msgstr "Ilmoitukset päällä." #: classes/Command.php:335 classes/Command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "Ilmoituksia ei voi pistää päälle." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" -msgstr "" +msgstr "Komennot:\n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "Viestin tallennus ei onnistunut." #: classes/Message.php:63 classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "Viestin päivittäminen uudella URI-osoitteella ei onnistunut." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "Käyttäjälle ei löydy vastaavaa profiilia palvelussa." #: lib/mail.php:147 lib/mail.php:289 #, php-format @@ -3399,11 +3444,13 @@ msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"Sinulla on uusi lähetysosoite palvelussa %1$s.\n" +"\n" #: lib/mail.php:249 lib/mail.php:508 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Uusi yksityisviesti käyttäjältä %s" #: lib/mail.php:253 lib/mail.php:512 #, php-format @@ -3411,88 +3458,89 @@ msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"%1$s (%2$s) lähetti sinulle yksityisviestin:\n" +"\n" #: lib/mailbox.php:43 lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Vain käyttäjä voi lukea omaa postilaatikkoaan." #: lib/openid.php:195 lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "Tämän lomakkeen pitäisi automaattisesti lähettää tiedot. " #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Suosikit" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "Käyttäjän %s suosikkipäivitykset" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" -msgstr "" +msgstr "Käyttäjä" #: lib/personal.php:75 lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "Saapuneet" #: lib/personal.php:76 lib/personalgroupnav.php:124 msgid "Your incoming messages" -msgstr "" +msgstr "Sinulle saapuneet viestit" #: lib/personal.php:80 lib/personalgroupnav.php:128 msgid "Outbox" -msgstr "" +msgstr "Lähetetyt" #: lib/personal.php:81 lib/personalgroupnav.php:129 msgid "Your sent messages" -msgstr "" +msgstr "Lähettämäsi viestit" #: lib/settingsaction.php:99 lib/connectsettingsaction.php:110 msgid "Twitter" -msgstr "" +msgstr "Twitter" #: lib/settingsaction.php:100 lib/connectsettingsaction.php:111 msgid "Twitter integration options" -msgstr "" +msgstr "Twitter yhdistämisen asetukset" #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 msgid "To" -msgstr "" +msgstr "Vastaanottaja" #: scripts/maildaemon.php:45 scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "Ei voitu lukea viestiä." #: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#, php-format msgid "%s and friends, page %d" -msgstr "%s ja kaverit" +msgstr "%s ja kaverit, sivu %d" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "Voit ladata oman profiilikuvasi." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "Sähköpostiasetukset" +msgstr "Profiilikuva-asetukset" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "Alkuperäinen" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "Esikatselu" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 msgid "Crop" -msgstr "" +msgstr "Rajaa" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3504,577 +3552,557 @@ msgstr "" #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "Istuntoavaimesi kanssa oli ongelma." #: actions/avatarsettings.php:303 actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Valitse neliön muotoinen alue kuvasta profiilikuvaksi" #: actions/avatarsettings.php:327 actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "Tiedoston data hävisi." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 msgid "Lost our file." -msgstr "" +msgstr "Tiedosto hävisi." #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 #: classes/User_group.php:129 classes/User_group.php:161 msgid "Unknown file type" -msgstr "" +msgstr "Tunnistamaton tiedoston tyyppi" #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 msgid "No profile specified." -msgstr "" +msgstr "Profiilia ei ole määritelty." #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 #: actions/unblock.php:75 msgid "No profile with that ID." -msgstr "" +msgstr "Ei profiilia tuolle ID:lle." #: actions/block.php:111 msgid "Block user" -msgstr "" +msgstr "Estä käyttäjä" #: actions/block.php:129 msgid "Are you sure you want to block this user? " -msgstr "" +msgstr "Oletko varma että haluat estää tämän käyttäjän?" #: actions/block.php:162 msgid "You have already blocked this user." -msgstr "" +msgstr "Sinä olet jo estänyt tämän käyttäjän." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "Käyttäjän estotiedon tallennus epäonnistui." #: actions/confirmaddress.php:159 #, php-format msgid "The address \"%s\" has been " -msgstr "" +msgstr "Osoite \"%s\" on " #: actions/deletenotice.php:73 -#, fuzzy msgid "You are about to permanently delete a notice. " -msgstr "Oletko varma että haluat poistaa tämän päivityksen?" +msgstr "Olet poistamassa pysyvästi tämän päivityksen. " #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Lisää suosikkeihin" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "Muokkaa ryhmää %s" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "Toimiakseen postilaatikkojen pitää olla käytössä ryhmille" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Sinun pitää olla kirjautunut sisään jotta voit luoda ryhmän." #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "Käyttäjätunnusta ei ole." +msgstr "Tunnusta ei ole." #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 #: actions/showgroup.php:128 -#, fuzzy msgid "No such group" -msgstr "Tuota käyttäjää ei ole." +msgstr "Tuota ryhmää ei ole." #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "Sinun pitää olla ylläpitäjä, jotta voit muokata ryhmää" #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "Käytä tätä lomaketta muokataksesi ryhmää." #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "" -"Käyttäjätunnuksessa voi olla ainoastaan pieniä kirjaimia ja numeroita ilman " -"välilyöntiä." +msgstr "Tunnuksessa voi olla ainoastaan pieniä kirjaimia " #: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy msgid "description is too long (max 140 chars)." -msgstr "Bio on liian pitkä (max 140 merkkiä)." +msgstr "kuvaus on liian pitkä (max 140 merkkiä)." #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Ei voitu päivittää käyttäjää." +msgstr "Ei voitu päivittää ryhmää." #: actions/editgroup.php:226 msgid "Options saved." -msgstr "" +msgstr "Asetukset tallennettu." #: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "Odotetaan vahvistusta tälle puhelinnumerolle." +msgstr "Odotetaan vahvistusta tälle osoitteelle." #: actions/emailsettings.php:139 actions/smssettings.php:150 -#, fuzzy msgid "Make a new email address for posting to; " -msgstr "Uusi sähköpostiosoite päivityksien lähettämiseen on %s" +msgstr "Tee uusi sähköpostiosoite päivityksien lähettämiseen; " #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "Lähetä sähköpostia kun joku " #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Salli kavereiden tönäistä minua ja lähetä sähköpostilla ilmoitus." #: actions/emailsettings.php:321 -#, fuzzy msgid "That email address already belongs " -msgstr "Sähköpostiosoite on jo käytössä." +msgstr "Sähköpostiosoite on jo käytössä " #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " -msgstr "" -"Vahvistuskoodi lähetettiin antamaasi IM osoitteeseen. Sinun täytyy antaa " -"oikeus lähettäjälle %s lähettää viestejä sinulle." +msgstr "Vahvistuskoodi lähetettiin lisäämääsi sähköpostiosoitteeseen. " #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "Palvelinvirhe - käyttäjän tietoja ei saatu!" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "Jos haluat %s-sovelluksen automaattisesti päivittävän " #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Salli palvelun %s päivittää Facebook-tilani" #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "Ohita" #: actions/facebookhome.php:235 -#, fuzzy msgid "No notice content!" -msgstr "Ei sisältöä!" +msgstr "Päivityksellä ei ole sisältöä!" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "Sivutus" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 msgid "After" -msgstr "" +msgstr "Myöhemmin" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy msgid "Before" -msgstr "Ennen »" +msgstr "Aiemmin" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "Kiitos, kun kutsuit kavereitasi käyttämään palvelua %s" #: actions/facebookinvite.php:72 -#, fuzzy msgid "Invitations have been sent to the following users:" -msgstr "Kutsu(t) lähetettiin seuraaville henkilöille:" +msgstr "Kutsu lähetettiin seuraaville henkilöille:" #: actions/facebookinvite.php:96 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "Sinut on kutsuttu palveluun %s" #: actions/facebookinvite.php:105 -#, fuzzy, php-format +#, php-format msgid "Invite your friends to use %s" -msgstr "Syöte käyttäjän %s kavereista" +msgstr "Kutsu kavereitasi käyttämään %s palvelua" #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Kaverisi jotka käyttävät jo %s palvelua:" #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "Lähetä kutsut" #: actions/facebookremove.php:56 msgid "Couldn't remove Facebook user." -msgstr "" +msgstr "Facebook käyttäjää ei voitu poistaa." +# Pitää tarkistaa mitä nuo sync on! #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "Synkronointiasetusten tallennus epäonnistui!" #: actions/facebooksettings.php:67 msgid "Sync preferences saved." -msgstr "" +msgstr "Synkronointiasetukset tallennettiin." #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." -msgstr "" +msgstr "Päivitä Facebook-tilani automaattisesti." #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "Lähetä \"@\" vastaukset Facebookiin." #: actions/facebooksettings.php:106 msgid "Prefix" -msgstr "" +msgstr "Etuliite" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Etuliite päivityksille." #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "Jos haluat että %s päivittää automaattisesti " #: actions/facebooksettings.php:147 msgid "Sync preferences" -msgstr "" +msgstr "Synkronointiasetukset" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Poista suosikeista" #: actions/favorited.php:65 lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 msgid "Popular notices" -msgstr "" +msgstr "Suosituimmat päivitykset" #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" -msgstr "" +msgstr "Suosituimmat päivitykset, sivu %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "Suosituimmat päivitykset sivustolla juuri nyt." #: actions/featured.php:69 lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 msgid "Featured users" -msgstr "" +msgstr "Esittelyssä olevat käyttäjät" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Esittelyssä olevat käyttäjät, sivu %d" +# Valikoima, joukko #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "Valikoima joitakin loistavia palvelun %s käyttäjiä" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Käyttäjä on estänyt sinua tilaamasta päivityksiä." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "ID-tunnusta ei ole" #: actions/grouplogo.php:138 actions/grouplogo.php:191 msgid "Group logo" -msgstr "" +msgstr "Ryhmän logo" #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "Voit ladata ryhmälle logon." #: actions/grouplogo.php:448 -#, fuzzy msgid "Logo updated." -msgstr "Avatar päivitetty" +msgstr "Logo päivitetty." #: actions/grouplogo.php:450 -#, fuzzy msgid "Failed updating logo." -msgstr "Avatarin päivittäminen epäonnistui." +msgstr "Logon päivittäminen epäonnistui." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "Ryhmän %s jäsenet" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "Ryhmän %s jäsenet, sivu %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "Lista ryhmän käyttäjistä." #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "Ryhmät" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Ryhmät, sivu %d" #: actions/groups.php:90 #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " -msgstr "" +msgstr "%%%%site.name%%%%-ryhmissä voit löytää ja keskustella " #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 -#, fuzzy msgid "Create a new group" -msgstr "Luo uusi käyttäjätili" +msgstr "Luo uusi ryhmä" #: actions/groupsearch.php:57 #, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " msgstr "" +"Hae %%site.name%% ryhmiä niiden nimen, paikan tai kuvauksen perusteella. " #: actions/groupsearch.php:63 msgid "Group search" -msgstr "" +msgstr "Ryhmähaku" #: actions/imsettings.php:70 msgid "You can send and receive notices through " -msgstr "" +msgstr "Voit lähettää ja vastaaottaa päivityksiä " #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "Jabber tai GTalk -osoite, " #: actions/imsettings.php:147 msgid "Send me replies through Jabber/GTalk " -msgstr "" +msgstr "Lähetä minulle vastaukset Jabberin/GTalkin kautta " #: actions/imsettings.php:321 -#, fuzzy, php-format +#, php-format msgid "A confirmation code was sent " -msgstr "Varmistuskoodia ei ole annettu." +msgstr "Varmistuskoodi lähetettiin " #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Sinun pitää olla kirjautunut sisään, jos haluat liittyä ryhmään." #: actions/joingroup.php:95 msgid "You are already a member of that group" -msgstr "" +msgstr "Sinä kuulut jo tähän ryhmään " #: actions/joingroup.php:128 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Ei voitu tilata käyttäjää: Käyttäjää ei löytynyt." +msgstr "Käyttäjää %s ei voinut liittää ryhmään %s" #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s liittyi ryhmään %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." msgstr "" +"Postilaatikkojen täytyy olla otettu käyttöön, jotta ryhmäominaisuus toimii." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." #: actions/leavegroup.php:88 -#, fuzzy msgid "No such group." -msgstr "Tuota käyttäjää ei ole." +msgstr "Tuota ryhmää ei ole." #: actions/leavegroup.php:95 msgid "You are not a member of that group." -msgstr "" +msgstr "Sinä et kuulu tähän ryhmään." #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "Et voi erota ryhmästä, kun olet sen ylläpitäjä." #: actions/leavegroup.php:130 -#, fuzzy msgid "Could not find membership record." -msgstr "Ei voitu päivittää käyttäjätietoja." +msgstr "Ei löydetty käyttäjän jäsenyystietoja." #: actions/leavegroup.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Ei voitu tilata käyttäjää: Käyttäjää ei löytynyt." +msgstr "Ei voitu poistaa käyttäjää %s ryhmästä %s" #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s erosi ryhmästä %s" #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "Kirjaudu sisään" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "Ei nykyistä tilatietoa" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Uusi ryhmä" #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "Käytä tätä lomaketta luodaksesi ryhmän." #: actions/newgroup.php:177 -#, fuzzy msgid "Could not create group." -msgstr "Ei voitu tilata toista" +msgstr "Ryhmän luonti ei onnistunut." #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." -msgstr "Ei voitu tilata" +msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." #: actions/newmessage.php:119 actions/newnotice.php:132 msgid "That's too long. " -msgstr "" +msgstr "Liikaa merkkejä. " #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "Älä lähetä viestiä itsellesi; " #: actions/newnotice.php:166 msgid "Notice posted" -msgstr "" +msgstr "Päivitys lähetetty" #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" -msgstr "" +msgstr "Ajax-virhe" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"Käyttäjä ei ole sallinut tönäisyjä tai ei ole vahvistanut " +"sähköpostiosoitettaan." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Tönäisy lähetetty" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Tönäisy lähetetty!" #: actions/openidlogin.php:97 -#, fuzzy msgid "OpenID login" -msgstr "OpenID Sisäänkirjautuminen" +msgstr "OpenID sisäänkirjautuminen" #: actions/openidsettings.php:128 msgid "Removing your only OpenID " -msgstr "" +msgstr "Viimeisen OpenID-tunnuksesi poistaminen " #: actions/othersettings.php:60 msgid "Other Settings" -msgstr "" +msgstr "Muita Asetuksia" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "Hallinnoi muita asetuksia." #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "URL-osoitteen automaattinen lyhennys" #: actions/othersettings.php:112 msgid "Service" -msgstr "" +msgstr "Palvelu" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "Käytettävä automaattinen lyhennyspalvelu." #: actions/othersettings.php:144 msgid "URL shortening service is too long (max 50 chars)." -msgstr "" +msgstr "URL-lyhennyspalvelun nimi on liian pitkä (max 50 merkkiä)." #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Vaihda salasanasi" +msgstr "Vaihda salasanasi." #: actions/passwordsettings.php:89 msgid "Password change" -msgstr "" +msgstr "Salasanan vaihto" #: actions/peopletag.php:35 #, php-format msgid "Not a valid people tag: %s" -msgstr "" +msgstr "Ei sallittu henkilötagi: %s" #: actions/peopletag.php:47 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "Käyttäjät joilla henkilötagi %s - sivu %d" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "Näillä käyttäjillä on henkilötagi \"%s\" " #: actions/profilesettings.php:91 msgid "Profile information" -msgstr "" +msgstr "Profiilitieto" #: actions/profilesettings.php:124 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" +"Kuvaa itseäsi henkilötageilla (sanoja joissa voi olla muita kirjaimia kuin " +"ääkköset, numeroita, -, ., ja _), pilkulla tai välilyönnillä erotettuna" #: actions/profilesettings.php:144 -#, fuzzy msgid "Automatically subscribe to whoever " -msgstr "" -"Tilaa automaattisesti kaikki, jotka tilaavat minun päivitykset (ei sovi " -"hyvin ihmiskäyttäjille)" +msgstr "Tilaa automaattisesti kaikki, jotka " #: actions/profilesettings.php:229 actions/tagother.php:176 #, php-format msgid "Invalid tag: \"%s\"" -msgstr "" +msgstr "Virheellinen tagi: \"%s\"" #: actions/profilesettings.php:311 msgid "Couldn't save tags." -msgstr "" +msgstr "Tageja ei voitu tallentaa." #: actions/public.php:107 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "%s julkiset päivitykset" +msgstr "Julkinen aikajana, sivu %d" #: actions/public.php:173 msgid "Could not retrieve public stream." -msgstr "" +msgstr "Julkista päivitysvirtaa ei saatu." #: actions/public.php:220 #, php-format @@ -4082,134 +4110,132 @@ msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service " msgstr "" +"Tämä on %%site.name%%, [mikroblogaus](http://en.wikipedia.org/wiki/Micro-" +"blogging)palvelu " #: actions/publictagcloud.php:57 msgid "Public tag cloud" -msgstr "" +msgstr "Julkinen tagipilvi" +# ssa pääte ensimmäistä kertaa #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Nämä ovat suosituimmat viimeaikaiset tagit %s -palvelussa" #: actions/publictagcloud.php:119 msgid "Tag cloud" -msgstr "" +msgstr "Tagipilvi" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Valitettavasti vain kutsutut ihmiset voivat rekisteröityä." #: actions/register.php:149 msgid "You can't register if you don't " -msgstr "" +msgstr "Et voi rekisteröityä, jos sinulla ei ole " #: actions/register.php:286 msgid "With this form you can create " -msgstr "" +msgstr "Tällä lomakkeella voit luoda " #: actions/register.php:368 -#, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "1-64 pientä kirjainta tai numeroa, ei välimerkkejä tai välilyöntejä" +msgstr "1-64 pientä kirjainta tai numeroa, ei ääkkösiä" #: actions/register.php:382 actions/register.php:386 msgid "Used only for updates, announcements, " -msgstr "" +msgstr "Käytetään ainoastaan päivityksiin, ilmoituksiin, " #: actions/register.php:398 msgid "URL of your homepage, blog, " -msgstr "" +msgstr "Verkko-osoite kotivullesi, blogiin, " #: actions/register.php:404 -#, fuzzy msgid "Describe yourself and your " -msgstr "Kuvaile itseäsi ja kiinnostuksia 140 merkillä" +msgstr "Kuvaile itseäsi ja" #: actions/register.php:410 msgid "Where you are, like \"City, " -msgstr "" +msgstr "Missä olet, kuten \"Kaupunki, " #: actions/register.php:432 -#, fuzzy msgid " except this private data: password, " -msgstr "" -" poislukien yksityinen tieto: salasana, sähköpostiosoite, IM osoite, " -"puhelinnumero." +msgstr " poislukien yksityinen tieto: salasana, " #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "Onnittelut, %s! Ja tervetuloa palveluun %%%%site.name%%%%. " #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(Sinun pitäisi saada viesti sähköpostilla " #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." msgstr "" +"Tämä on paikallinen profiili. Kirjaudu sisään, jotta voit tilata " +"päivitykset." #: actions/replies.php:118 #, php-format msgid "Replies to %s, page %d" -msgstr "" +msgstr "Vastaukset käyttäjälle %s, sivu %d" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "Käyttäjän %s suosikkipäivitykset, sivu %d" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "Ryhmä %s" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "Ryhmä %s, sivu %d" #: actions/showgroup.php:206 -#, fuzzy msgid "Group profile" -msgstr "Virhe tapahtui profiilin päivittämisessä" +msgstr "Ryhmän profiili" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 msgid "URL" -msgstr "" +msgstr "URL" -# Notice suomennos vielä hakusessa +# Missähän yhteydessä tämä oikein on. pitää tarkistaa vielä #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy msgid "Note" -msgstr "Päivitykset" +msgstr "Huomaa" +# Pitää tarkistaa #: actions/showgroup.php:270 msgid "Group actions" -msgstr "" +msgstr "Ryhmän toiminnot" #: actions/showgroup.php:323 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Päivityssyöte ryhmälle %s" #: actions/showgroup.php:357 lib/groupnav.php:90 -#, fuzzy msgid "Members" -msgstr "Käyttäjä alkaen" +msgstr "Jäsenet" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(Tyhjä)" #: actions/showgroup.php:370 msgid "All members" -msgstr "" +msgstr "Kaikki jäsenet" #: actions/showgroup.php:378 #, php-format @@ -4217,49 +4243,49 @@ msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** on ryhmä palvelussa %%%%site.name%%%%, joka on " +"[mikroblogauspalvelu](http://en.wikipedia.org/wiki/Micro-blogging)" #: actions/showmessage.php:98 msgid "Only the sender and recipient " -msgstr "" +msgstr "Vain lähettäjä ja vastaanottaja " #: actions/showstream.php:73 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s, sivu %d" #: actions/showstream.php:143 -#, fuzzy msgid "'s profile" -msgstr "Ei voitu tallettaa profiilia." +msgstr "nimisen käyttäjän profiili" #: actions/showstream.php:236 actions/tagother.php:77 msgid "User profile" -msgstr "" +msgstr "Käyttäjän profiili" #: actions/showstream.php:240 actions/tagother.php:81 msgid "Photo" -msgstr "" +msgstr "Kuva" #: actions/showstream.php:317 msgid "User actions" -msgstr "" +msgstr "Käyttäjän toiminnot" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "Lähetä suora viesti tälle käyttäjälle" #: actions/showstream.php:343 msgid "Message" -msgstr "" +msgstr "Viesti" #: actions/showstream.php:451 -#, fuzzy msgid "All subscribers" -msgstr "Kaikki tilaukset" +msgstr "Kaikki tilaajat" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "Kaikki ryhmät" #: actions/showstream.php:542 #, php-format @@ -4267,457 +4293,451 @@ msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"Käyttäjällä **%s** on käyttäjätili palvelussa %%%%site.name%%%%, joka on " +"[mikroblogauspalvelu](http://en.wikipedia.org/wiki/Micro-blogging)" #: actions/smssettings.php:128 -#, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "1-64 pientä kirjainta tai numeroa, ei välimerkkejä tai välilyöntejä" +msgstr "Puhelinnumero, ei välimerkkejä tai välilyöntejä, " #: actions/smssettings.php:162 msgid "Send me notices through SMS; " -msgstr "" +msgstr "Lähetä minulle päivitykset SMS:n välityksellä; " #: actions/smssettings.php:335 -#, fuzzy msgid "A confirmation code was sent to the phone number you added. " -msgstr "Odotetaan vahvistusta tälle puhelinnumerolle." +msgstr "Vahvistuskoodi on lähetetty antamaasi puhelinnumeroon. " #: actions/smssettings.php:453 msgid "Mobile carrier" -msgstr "" +msgstr "Matkapuhelinoperaattori" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." -msgstr "" +msgstr "Et ole tilannut tämän käyttäjän päivityksiä." #: actions/subedit.php:83 msgid "Could not save subscription." -msgstr "" +msgstr "Tilausta ei onnistuttu tallentamaan." #: actions/subscribe.php:55 msgid "Not a local user." -msgstr "" +msgstr "Käyttäjä ei ole rekisteröitynyt tähän palveluun." #: actions/subscribe.php:69 msgid "Subscribed" -msgstr "" +msgstr "Tilattu" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "Ei ole tilattu!." +msgstr "Käyttäjän %s tilaajat" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "Käyttäjän %s tilaajat, sivu %d" #: actions/subscribers.php:63 msgid "These are the people who listen to " -msgstr "" +msgstr "Tässä ovat ihmiset, jotka seuraavat " #: actions/subscribers.php:67 #, php-format msgid "These are the people who " -msgstr "" +msgstr "Tässä ovat ihmiset, jotka " #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "Kaikki tilaukset" +msgstr "Käyttäjän %s tilaukset" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "Kaikki tilaukset" +msgstr "Käyttäjän %s tilaukset, sivu %d" #: actions/subscriptions.php:65 msgid "These are the people whose notices " -msgstr "" +msgstr "Tässä ovat ihmiset, joiden päivityksiä " #: actions/subscriptions.php:69 #, php-format msgid "These are the people whose " -msgstr "" +msgstr "Tässä ovat ihmiset, joiden " #: actions/subscriptions.php:122 msgid "Jabber" -msgstr "" +msgstr "Jabber" # tagi, tägätty, tagätty, tagatty, tagitetty, #: actions/tag.php:43 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "Päivitykset joilla on tägi %s" +msgstr "Päivitykset joissa on tagi %s, sivu %d" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "Viestit joissa on tagi %s, uusimmat ensin" #: actions/tagother.php:33 msgid "Not logged in" -msgstr "" +msgstr "Et ole kirjautunut sisään" #: actions/tagother.php:39 msgid "No id argument." -msgstr "" +msgstr "Ei id parametria." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "Tagi %s" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Tagaa käyttäjä" #: actions/tagother.php:149 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Käyttäjän tagit (kirjaimet, numerot, -, ., ja _), pilkulla tai välilyönnillä " +"erotettuna" #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "Istuntoavaimesi kanssa oli ongelma." #: actions/tagother.php:191 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Voit tagata ainoastaan ihmisiä, joita tilaat tai jotka tilaavat sinun " +"päivityksiäsi." #: actions/tagother.php:198 msgid "Could not save tags." -msgstr "" +msgstr "Tagien tallennus epäonnistui." #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"Käytä tätä lomaketta lisätäksesi tageja tilaajillesi ja käyttäjille jotka " +"tilaavat päivityksiäsi." #: actions/tagrss.php:35 msgid "No such tag." -msgstr "" +msgstr "Tuota tagia ei ole." #: actions/tagrss.php:66 #, php-format msgid "Microblog tagged with %s" -msgstr "" +msgstr "Mikroblogi merkitty tageillä %s" #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "Käyttäjän esto epäonnistui." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "Käyttäjän eston poisto epäonnistui." #: actions/twitapiusers.php:48 msgid "Not found." -msgstr "" +msgstr "Ei löytynyt." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "Lisää Twitter käyttäjätilisi lähettääksesi automaattisesti " #: actions/twittersettings.php:119 msgid "Twitter user name" -msgstr "" +msgstr "Twitter käyttäjätunnus" #: actions/twittersettings.php:126 msgid "Twitter password" -msgstr "" +msgstr "Twitter salasana" #: actions/twittersettings.php:228 msgid "Twitter Friends" -msgstr "" +msgstr "Twitter kaverit" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "Käyttäjätunnuksessa voi olla ainoastaan numeroita, " #: actions/twittersettings.php:341 #, php-format msgid "Unable to retrieve account information " -msgstr "" +msgstr "Käyttäjätietoa ei saatu " #: actions/unblock.php:108 msgid "Error removing the block." -msgstr "" +msgstr "Tapahtui virhe, kun estoa poistettiin." #: actions/unsubscribe.php:50 msgid "No profile id in request." -msgstr "" +msgstr "Ei profiili id:tä kyselyssä." #: actions/unsubscribe.php:57 msgid "No profile with that id." -msgstr "" +msgstr "Ei profiilia tuolla id:llä." #: actions/unsubscribe.php:71 msgid "Unsubscribed" -msgstr "" +msgstr "Tilaus lopetettu" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "Käyttäjän %s ryhmät" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "Käyttäjän %s ryhmät, sivu %d" #: classes/Notice.php:104 msgid "Problem saving notice. Unknown user." -msgstr "" +msgstr "Virhe tapahtui päivityksen tallennuksessa. Tuntematon käyttäjä." #: classes/Notice.php:109 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Liian monta päivitystä liian nopeasti; pidä pieni hengähdystauko ja jatka " +"päivityksien lähettämista muutaman minuutin päästä." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Päivityksesi tähän palveluun on estetty." #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "Avatarin päivittäminen epäonnistui." +msgstr "Lataa kuva" #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "Muut" #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "Muita asetuksia" #: lib/action.php:130 -#, fuzzy, php-format +#, php-format msgid "%s - %s" -msgstr "%s (%s)" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "Nimetön sivu" #: lib/action.php:316 msgid "Primary site navigation" -msgstr "" +msgstr "Ensisijainen sivunavigointi" #: lib/action.php:322 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Henkilökohtainen profiili ja kavereiden aikajana" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "Hae ihmisiä tai tekstiä" #: lib/action.php:328 -#, fuzzy msgid "Account" -msgstr "Tietoa" +msgstr "Käyttäjätili" #: lib/action.php:328 -#, fuzzy msgid "Change your email, avatar, password, profile" -msgstr "Vaihda salasanasi" +msgstr "Muuta sähköpostiosoitettasi, kuvaasi, salasanaasi, profiiliasi" #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "Yhdistä pikaviestimeen, SMS, Twitteriin" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Kirjaudu ulos palvelusta" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Kirjaudu sisään palveluun" #: lib/action.php:338 -#, fuzzy msgid "Create an account" msgstr "Luo uusi käyttäjätili" #: lib/action.php:341 -#, fuzzy msgid "Login with OpenID" -msgstr "Tuota OpenID-tunnusta ei ole." +msgstr "Kirjaudu sisään OpenID-tunnuksella" #: lib/action.php:344 -#, fuzzy msgid "Help me!" -msgstr "Ohjeet" +msgstr "Auta minua!" #: lib/action.php:362 -#, fuzzy msgid "Site notice" -msgstr "Uusi päivitys" +msgstr "Palvelun ilmoitus" #: lib/action.php:417 msgid "Local views" -msgstr "" +msgstr "Paikalliset näkymät" #: lib/action.php:472 -#, fuzzy msgid "Page notice" -msgstr "Uusi päivitys" +msgstr "Sivuilmoitus" #: lib/action.php:562 msgid "Secondary site navigation" -msgstr "" +msgstr "Toissijainen sivunavigointi" #: lib/action.php:602 lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "Laconica-ohjelmiston lisenssi" #: lib/action.php:630 msgid "All " -msgstr "" +msgstr "Kaikki " #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "lisenssi." #: lib/blockform.php:123 lib/blockform.php:153 msgid "Block this user" -msgstr "" +msgstr "Estä tämä käyttäjä" #: lib/blockform.php:153 msgid "Block" -msgstr "" +msgstr "Estä" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "Poista tämä päivitys suosikeista" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "Käyttääksesi %s Facebook-sovellusta sinun pitää kirjautua sisään " #: lib/facebookaction.php:271 -#, fuzzy msgid " a new account." -msgstr "Luo uusi käyttäjätili" +msgstr " uusi käyttäjätili." #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 msgid "Published" -msgstr "" +msgstr "Julkaistu" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" -msgstr "Tuota päivitystä ei ole." +msgstr "Merkitse päivitys suosikkeihin" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Vie tietoja" +# Filtteröi, erota,... #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "Suodata tagien perusteella" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Kaikki" #: lib/galleryaction.php:137 msgid "Tag" -msgstr "" +msgstr "Tagi" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Valitse tagi lyhentääksesi listaa" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "Mene" #: lib/groupeditform.php:148 msgid "URL of the homepage or blog of the group or topic" -msgstr "" +msgstr "Ryhmän tai aiheen kotisivun tai blogin osoite" #: lib/groupeditform.php:151 -#, fuzzy msgid "Description" -msgstr "Kaikki tilaukset" +msgstr "Kuvaus" #: lib/groupeditform.php:153 -#, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Kuvaile itseäsi ja kiinnostuksia 140 merkillä" +msgstr "Kuvaile ryhmää tai aihetta 140 merkillä" #: lib/groupeditform.php:158 msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" msgstr "" +"Ryhmän paikka, jos sellainen on, kuten \"Kaupunki, Maakunta (tai Lääni), Maa\"" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" -msgstr "" +msgstr "Ryhmä" +# Hallinnointi, ylläpitäjä #: lib/groupnav.php:100 msgid "Admin" -msgstr "" +msgstr "Ylläpito" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Muokkaa %s ryhmän ominaisuuksia" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "Kirjaudu ulos" +msgstr "Logo" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Lisää ryhmälle %s logo tai muokkaa sitä " #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Ryhmät, joissa eniten jäseniä" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Ryhmät, joissa eniten päivityksiä" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Tagit ryhmän %s päivityksissä" #: lib/htmloutputter.php:104 -#, fuzzy msgid "This page is not available in a " -msgstr "Kotisivun verkko-osoite ei ole toimiva." +msgstr "Tämä sivu ei ole saatavilla " #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Kirjaudu sisään" +msgstr "Liity" #: lib/leaveform.php:114 msgid "Leave" -msgstr "" +msgstr "Eroa" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "Käyttäjätunnus tai salasana ei kelpaa." +msgstr "Kirjaudu sisään käyttäjätunnuksella ja salasanalla" #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" msgstr "Luo uusi käyttäjätili" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Kirjaudu sisään tai rekisteröidy OpenID-tunnuksella" #: lib/mail.php:175 #, php-format @@ -4725,21 +4745,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Hei, %s.\n" +"\n" #: lib/mail.php:236 -#, fuzzy, php-format +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s kuuntelee nyt sinun viestejäsi palvelussa %2$s." +msgstr "%1$s seuraa nyt käyttäjää" #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "Kotipaikka" +msgstr "Kotipaikka: %s\n" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Kotisivu" +msgstr "Kotisivu: %s\n" #: lib/mail.php:258 #, php-format @@ -4747,166 +4769,159 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"Tietoja: %s\n" +"\n" #: lib/mail.php:461 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "%s tönäisi sinua" +# joo, vähän hämärä #: lib/mail.php:465 #, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" +msgstr "%1$s (%2$s) miettii mitä hommailet " #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s kuuntelee nyt sinun viestejäsi palvelussa %2$s." +msgstr "%1$s lisäsi juuri päivityksesi ajalta %2$s" #: lib/mailbox.php:229 lib/noticelist.php:380 -#, fuzzy msgid "From" -msgstr " lähetetty " +msgstr "Lähettäjä" #: lib/messageform.php:110 -#, fuzzy msgid "Send a direct notice" -msgstr "Poista päivitys" +msgstr "Lähetä suora viesti" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" -msgstr "Uusi päivitys" +msgstr "Lähetä päivitys" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" -msgstr "6 tai useampi merkki" +msgstr "Sallitut merkit" #: lib/noticelist.php:426 msgid "in reply to" -msgstr "" +msgstr "vastaus viestiin" #: lib/noticelist.php:447 lib/noticelist.php:450 -#, fuzzy msgid "Reply to this notice" -msgstr "Tätä päivitystä ei voi poistaa." +msgstr "Vastaa tähän päivitykseen" #: lib/noticelist.php:451 msgid "Reply" -msgstr "" +msgstr "Vastaus" #: lib/noticelist.php:471 lib/noticelist.php:474 -#, fuzzy msgid "Delete this notice" -msgstr "Poista päivitys" +msgstr "Poista tämä päivitys" #: lib/noticelist.php:474 -#, fuzzy msgid "Delete" -msgstr "Poista päivitys" +msgstr "Poista" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Tönäise tätä käyttäjää" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Tönäise" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "" +msgstr "Lähetä tönäisy tälle käyttäjälle" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Tagit käyttäjän %s päivityksissä" #: lib/profilelist.php:182 msgid "(none)" -msgstr "" +msgstr "(tyhjä)" #: lib/publicgroupnav.php:76 msgid "Public" -msgstr "" +msgstr "Julkinen" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Käyttäjäryhmät" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 msgid "Recent tags" -msgstr "" +msgstr "Viimeaikaiset tagit" #: lib/publicgroupnav.php:86 msgid "Featured" -msgstr "" +msgstr "Esittelyssä" #: lib/publicgroupnav.php:90 msgid "Popular" -msgstr "" +msgstr "Suosituimmat" # Notice suomennos vielä hakusessa #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" -msgstr "Päivitykset" +msgstr "Päivitys" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" -msgstr "Hae ihmisiä tältä sivustolta" +msgstr "Etsi ryhmiä tästä palvelusta" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Nimetön osa" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Ei voitu tilata" +msgstr "Ihmiset joiden tilaaja %s on" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Ei ole tilattu!." +msgstr "Ihmiset jotka ovat käyttäjän %s tilaajia" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "Ryhmät, joiden jäsen %s on" #: lib/subgroupnav.php:104 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Kutsu kavereita ja työkavereita liittymään palveluun %s" #: lib/subs.php:53 msgid "User has blocked you." -msgstr "" +msgstr "Käyttäjä on asettanut eston sinulle." #: lib/subscribeform.php:115 lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "" +msgstr "Tilaa tämä käyttäjä" #: lib/tagcloudsection.php:56 -#, fuzzy msgid "None" -msgstr "Ei" +msgstr "Ei mitään" #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Eniten päivityksiä" #: lib/unblockform.php:120 lib/unblockform.php:150 msgid "Unblock this user" -msgstr "" +msgstr "Poista esto tältä käyttäjältä" #: lib/unblockform.php:150 msgid "Unblock" -msgstr "" +msgstr "Poista esto" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" -msgstr "" +msgstr "Peruuta tämän käyttäjän tilaus" diff --git a/locale/fr_FR/LC_MESSAGES/laconica.mo b/locale/fr_FR/LC_MESSAGES/laconica.mo Binary files differindex 612d3ade1..8945fe44a 100644 --- a/locale/fr_FR/LC_MESSAGES/laconica.mo +++ b/locale/fr_FR/LC_MESSAGES/laconica.mo diff --git a/locale/fr_FR/LC_MESSAGES/laconica.po b/locale/fr_FR/LC_MESSAGES/laconica.po index 6a90a53cb..756b49605 100644 --- a/locale/fr_FR/LC_MESSAGES/laconica.po +++ b/locale/fr_FR/LC_MESSAGES/laconica.po @@ -4,23 +4,23 @@ # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the Laconica package. # Florian Birée <florian@biree.name>, 2008. -# # For translation choices and other informations, please read # <http://dev.filyb.info/laconica/wiki/french-translation> -# # #-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-# # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-26 23:40+0000\n" -"Last-Translator: Pierre-Luc Daoust <courriel@pierrelucdaoust.com>\n" +"PO-Revision-Date: 2009-03-07 19:21+0000\n" +"Last-Translator: Anarcat <anarcat@anarcat.ath.cx>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,48 +28,52 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 1.1.0\n" -#: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 +#: ../actions/noticesearchrss.php:64 +#: actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 #, php-format msgid " Search Stream for \"%s\"" msgstr " Flux de recherche pour « %s »" -#: ../actions/finishopenidlogin.php:82 ../actions/register.php:191 -#: actions/finishopenidlogin.php:88 actions/register.php:205 +# à l'exception de ces données personnelles : mot de passe, adresse e-mail, adresse de messagerie instantanée, numéro de téléphone. +#: ../actions/finishopenidlogin.php:82 +#: ../actions/register.php:191 +#: actions/finishopenidlogin.php:88 +#: actions/register.php:205 #: actions/finishopenidlogin.php:110 -msgid "" -" except this private data: password, email address, IM address, phone number." -msgstr "" -"sauf ces données privées : mot de passe, adresse email, adresse de " -"messagerie instantanée, numéro de télephone" - -#: ../actions/showstream.php:400 ../lib/stream.php:109 -#: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76 +msgid " except this private data: password, email address, IM address, phone number." +msgstr "à l'exception de ces données personnelles : mot de passe, adresse e-mail, adresse de messagerie instantanée, numéro de téléphone. " + +#: ../actions/showstream.php:400 +#: ../lib/stream.php:109 +#: actions/showstream.php:418 +#: lib/mailbox.php:164 +#: lib/stream.php:76 msgid " from " msgstr "de" -#: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 +#: ../actions/twitapistatuses.php:478 +#: actions/twitapistatuses.php:412 #: actions/twitapistatuses.php:347 #, php-format msgid "%1$s / Updates replying to %2$s" -msgstr "%1$s / Mises à jour répondant à %2$s" +msgstr "%1$s / Réponses à %2$s" -#: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 +#: ../actions/invite.php:168 +#: actions/invite.php:176 +#: actions/invite.php:211 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s vous a invité à le joindre sur %2$s" +msgstr "%1$s vous invite à vous inscrire à %2$s" #: ../actions/invite.php:170 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" -"%2$s is a micro-blogging service that lets you keep up-to-date with people " -"you know and people who interest you.\n" +"%2$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n" "\n" -"You can also share news about yourself, your thoughts, or your life online " -"with people who know about you. It's also great for meeting new people who " -"share your interests.\n" +"You can also share news about yourself, your thoughts, or your life online with people who know about you. It's also great for meeting new people who share your interests.\n" "\n" "%1$s said:\n" "\n" @@ -79,47 +83,43 @@ msgid "" "\n" "%5$s\n" "\n" -"If you'd like to try the service, click on the link below to accept the " -"invitation.\n" +"If you'd like to try the service, click on the link below to accept the invitation.\n" "\n" "%6$s\n" "\n" -"If not, you can ignore this message. Thanks for your patience and your " -"time.\n" +"If not, you can ignore this message. Thanks for your patience and your time.\n" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s vous a invité à le joindre sur %2$s (%3$s).\n" +"%1$s vous invite à vous inscrire à %2$s (%3$s).\n" "\n" -"%2$s est un service de micro-blogging qui vous laisse garder contact avec " -"des personnes que vous connaissez et des personnes qui vous intéressent.\n" +"%2$s est un service de micro-blogging qui vous laisse garder contact avec des personnes que vous connaissez et des personnes qui vous intéressent.\n" "\n" -"Vous pouvez aussi partager des nouvelles à propos de vous, vos pensées, ou " -"votre vie en ligne avec les personnes qui vous connaissent. C'est également " -"génial pour rencontrer de nouvelles personnes qui partagent vos intérêts.\n" +"Vous pouvez aussi partager des nouvelles à propos de vous, vos pensées, ou votre vie en ligne avec les personnes qui vous connaissent. C'est également un outil utile pour rencontrer de nouvelles personnes qui partagent vos intérêts.\n" "\n" "%1$s dit:\n" "\n" "%4$s\n" "\n" -"Vous pouvez voir la page du profil de %1$s sur %2$s ici:\n" +"Vous pouvez voir le profil de %1$s sur %2$s ici:\n" "\n" "%5$s\n" "\n" -"Si vous souhaitez essayez ce service, cliquez sur le lien si dessous pour " -"accepter l'invitation\n" +"Si vous souhaitez essayez ce service, cliquez sur le lien si dessous pour accepter l'invitation\n" "\n" "%6$s\n" "\n" -"Sinon vous pouvez ignorer ce message. Merci de votre patience et votre " -"temps.\n" +"Sinon, vous pouvez ignorer ce message. Merci pour votre patience et votre temps.\n" "\n" "Cordialement, %2$s\n" -#: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 +#: ../lib/mail.php:124 +#: lib/mail.php:124 +#: lib/mail.php:126 +#: lib/mail.php:241 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s est occupé d'écouter vos notifications dans %2$s." +msgstr "%1$s suit maintenant vos statuts dans %2$s." #: ../lib/mail.php:126 #, php-format @@ -131,435 +131,545 @@ msgid "" "Faithfully yours,\n" "%4$s.\n" msgstr "" -"%1$s est occupé d'écouter vos notifications dans %2$s.\n" +"%1$s suit maintenant vos statuts dans %2$s.\n" "\n" "\t%3$s\n" "\n" "Cordialement,\n" "%4$s.\n" -#: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415 +#: ../actions/twitapistatuses.php:482 +#: actions/twitapistatuses.php:415 #: actions/twitapistatuses.php:350 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "%1$s mises à jour qui répondent aux mises à jour de %2$s / %3$s." +msgstr "%1$s statuts en réponses aux statuts de %2$s / %3$s." -#: ../actions/shownotice.php:45 actions/shownotice.php:45 +#: ../actions/shownotice.php:45 +#: actions/shownotice.php:45 #: actions/shownotice.php:161 #, php-format msgid "%1$s's status on %2$s" msgstr "Statut de %1$s sur %2$s" -#: ../actions/invite.php:84 ../actions/invite.php:92 actions/invite.php:91 -#: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131 +#: ../actions/invite.php:84 +#: ../actions/invite.php:92 +#: actions/invite.php:91 +#: actions/invite.php:99 +#: actions/invite.php:123 +#: actions/invite.php:131 #, php-format msgid "%s (%s)" msgstr "%s (%s)" -#: ../actions/publicrss.php:62 actions/publicrss.php:48 +#: ../actions/publicrss.php:62 +#: actions/publicrss.php:48 #: actions/publicrss.php:90 #, php-format msgid "%s Public Stream" msgstr "Flux public de %s" -#: ../actions/all.php:47 ../actions/allrss.php:60 -#: ../actions/twitapistatuses.php:238 ../lib/stream.php:51 actions/all.php:47 -#: actions/allrss.php:60 actions/twitapistatuses.php:155 lib/personal.php:51 -#: actions/all.php:65 actions/allrss.php:103 actions/facebookhome.php:164 -#: actions/twitapistatuses.php:126 lib/personalgroupnav.php:99 +#: ../actions/all.php:47 +#: ../actions/allrss.php:60 +#: ../actions/twitapistatuses.php:238 +#: ../lib/stream.php:51 +#: actions/all.php:47 +#: actions/allrss.php:60 +#: actions/twitapistatuses.php:155 +#: lib/personal.php:51 +#: actions/all.php:65 +#: actions/allrss.php:103 +#: actions/facebookhome.php:164 +#: actions/twitapistatuses.php:126 +#: lib/personalgroupnav.php:99 #, php-format msgid "%s and friends" msgstr "%s et ses amis" -#: ../actions/twitapistatuses.php:49 actions/twitapistatuses.php:49 +#: ../actions/twitapistatuses.php:49 +#: actions/twitapistatuses.php:49 #: actions/twitapistatuses.php:33 #, php-format msgid "%s public timeline" -msgstr "%s tableau public" +msgstr "Activité publique %s" -#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 +#: ../lib/mail.php:206 +#: lib/mail.php:212 +#: lib/mail.php:411 #, php-format msgid "%s status" msgstr "Statut de %s" -#: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265 +#: ../actions/twitapistatuses.php:338 +#: actions/twitapistatuses.php:265 #: actions/twitapistatuses.php:199 #, php-format msgid "%s timeline" -msgstr "%s tableaux" +msgstr "Activité de %s" -#: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52 +#: ../actions/twitapistatuses.php:52 +#: actions/twitapistatuses.php:52 #: actions/twitapistatuses.php:36 #, php-format msgid "%s updates from everyone!" -msgstr "%s mises à jour de tout le monde" +msgstr "%s statuts " #: ../actions/register.php:213 -msgid "" -"(You should receive a message by email momentarily, with instructions on how " -"to confirm your email address.)" -msgstr "" -"(Vous devriez recevoir un message par e-mail dans un moment, avec les " -"instructions pour confirmer votre adresse e-mail.)" +msgid "(You should receive a message by email momentarily, with instructions on how to confirm your email address.)" +msgstr "(Vous recevrez bientôt un courriel contenant les instructions pour confirmer votre adresse.)" -#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 +#: ../lib/util.php:257 +#: lib/util.php:273 +#: lib/action.php:605 #, php-format -msgid "" -"**%%site.name%%** is a microblogging service brought to you by [%%site." -"broughtby%%](%%site.broughtbyurl%%). " -msgstr "" -"**%%site.name%%** est un service de microblogging qui vous est proposé par " -"[%%site.broughtby%%](%%site.broughtbyurl%%)." +msgid "**%%site.name%%** is a microblogging service brought to you by [%%site.broughtby%%](%%site.broughtbyurl%%). " +msgstr "**%%site.name%%** est un service de microblogging qui vous est proposé par [%%site.broughtby%%](%%site.broughtbyurl%%)." -#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 +#: ../lib/util.php:259 +#: lib/util.php:275 +#: lib/action.php:607 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** est un service de micro-blogging." -#: ../lib/util.php:274 lib/util.php:290 +#: ../lib/util.php:274 +#: lib/util.php:290 msgid ". Contributors should be attributed by full name or nickname." -msgstr "" -"Les contributeurs doivent être désignés par leur nom complet ou leur pseudo." - -#: ../actions/finishopenidlogin.php:73 ../actions/profilesettings.php:43 -#: actions/finishopenidlogin.php:79 actions/profilesettings.php:76 -#: actions/finishopenidlogin.php:101 actions/profilesettings.php:100 +msgstr "Les utilisateurs doivent être désignés par leur nom complet ou leur pseudo." + +#: ../actions/finishopenidlogin.php:73 +#: ../actions/profilesettings.php:43 +#: actions/finishopenidlogin.php:79 +#: actions/profilesettings.php:76 +#: actions/finishopenidlogin.php:101 +#: actions/profilesettings.php:100 #: lib/groupeditform.php:139 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 lettres minuscules ou chiffres, pas de ponctuation ou d'espaces" +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" -#: ../actions/register.php:152 actions/register.php:166 +#: ../actions/register.php:152 +#: actions/register.php:166 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -"1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces\n" -"Requis." +"1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces. Requis." -#: ../actions/password.php:42 actions/profilesettings.php:181 +#: ../actions/password.php:42 +#: actions/profilesettings.php:181 #: actions/passwordsettings.php:102 msgid "6 or more characters" msgstr "6 caractères ou plus" -#: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 +#: ../actions/recoverpassword.php:180 +#: actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 msgid "6 or more characters, and don't forget it!" msgstr "6 caractères ou plus, et ne l'oubliez pas !" -#: ../actions/register.php:154 actions/register.php:168 +#: ../actions/register.php:154 +#: actions/register.php:168 #: actions/register.php:373 msgid "6 or more characters. Required." msgstr "6 caractères ou plus. Requis." -#: ../actions/imsettings.php:197 actions/imsettings.php:205 -#, php-format -msgid "" -"A confirmation code was sent to the IM address you added. You must approve %" -"s for sending messages to you." -msgstr "" -"Un code de confirmation a été envoyé à votre adresse de messagerie " -"instantanée. Vous devez approuvez %s pour vous envoyer des messages." - -#: ../actions/emailsettings.php:213 actions/emailsettings.php:231 -msgid "" -"A confirmation code was sent to the email address you added. Check your " -"inbox (and spam box!) for the code and instructions on how to use it." -msgstr "" -"Un code de confirmation a été envoyé à l'adresse e-mail que vous avez " -"ajouté. Vérifiez votre boite de réception (peut-être dans les spams) pour " -"récupérer le code et les instructions." - -#: ../actions/smssettings.php:216 actions/smssettings.php:224 -#, fuzzy -msgid "" -"A confirmation code was sent to the phone number you added. Check your inbox " -"(and spam box!) for the code and instructions on how to use it." -msgstr "" -"Un code de confirmation a été envoyé au numéro de téléphone que vous avez " -"ajouté. Vérifiez votre boite de réception pour récupérer le code et les " -"instructions." - -#: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45 -#: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259 -#: ../actions/twitapistatuses.php:370 ../actions/twitapistatuses.php:532 -#: ../actions/twitapiusers.php:122 actions/twitapiaccount.php:49 -#: actions/twitapidirect_messages.php:104 actions/twitapifavorites.php:111 -#: actions/twitapifavorites.php:120 actions/twitapifriendships.php:156 -#: actions/twitapihelp.php:46 actions/twitapistatuses.php:93 -#: actions/twitapistatuses.php:176 actions/twitapistatuses.php:288 -#: actions/twitapistatuses.php:298 actions/twitapistatuses.php:454 -#: actions/twitapistatuses.php:463 actions/twitapistatuses.php:504 -#: actions/twitapiusers.php:55 actions/twitapiaccount.php:37 -#: actions/twitapidirect_messages.php:111 actions/twitapifavorites.php:85 -#: actions/twitapifavorites.php:102 actions/twitapifriendships.php:121 -#: actions/twitapihelp.php:44 actions/twitapilaconica.php:82 -#: actions/twitapilaconica.php:151 actions/twitapistatuses.php:79 -#: actions/twitapistatuses.php:147 actions/twitapistatuses.php:228 -#: actions/twitapistatuses.php:239 actions/twitapistatuses.php:392 -#: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429 +#: ../actions/imsettings.php:197 +#: actions/imsettings.php:205 +#, php-format +msgid "A confirmation code was sent to the IM address you added. You must approve %s for sending messages to you." +msgstr "Un code de confirmation a été envoyé à votre adresse de messagerie instantanée. Vous devez approuver %s pour recevoir des messages." + +#: ../actions/emailsettings.php:213 +#: actions/emailsettings.php:231 +msgid "A confirmation code was sent to the email address you added. Check your inbox (and spam box!) for the code and instructions on how to use it." +msgstr "Un code de confirmation a été envoyé à l'adresse courriel indiquée. Vérifiez votre boite de réception pour récupérer le code et les instructions." + +#: ../actions/smssettings.php:216 +#: actions/smssettings.php:224 +msgid "A confirmation code was sent to the phone number you added. Check your inbox (and spam box!) for the code and instructions on how to use it." +msgstr "Un code de confirmation a été envoyé au numéro de téléphone indiqué. Vérifiez votre boite de réception pour récupérer le code et les instructions." + +#: ../actions/twitapiaccount.php:49 +#: ../actions/twitapihelp.php:45 +#: ../actions/twitapistatuses.php:88 +#: ../actions/twitapistatuses.php:259 +#: ../actions/twitapistatuses.php:370 +#: ../actions/twitapistatuses.php:532 +#: ../actions/twitapiusers.php:122 +#: actions/twitapiaccount.php:49 +#: actions/twitapidirect_messages.php:104 +#: actions/twitapifavorites.php:111 +#: actions/twitapifavorites.php:120 +#: actions/twitapifriendships.php:156 +#: actions/twitapihelp.php:46 +#: actions/twitapistatuses.php:93 +#: actions/twitapistatuses.php:176 +#: actions/twitapistatuses.php:288 +#: actions/twitapistatuses.php:298 +#: actions/twitapistatuses.php:454 +#: actions/twitapistatuses.php:463 +#: actions/twitapistatuses.php:504 +#: actions/twitapiusers.php:55 +#: actions/twitapiaccount.php:37 +#: actions/twitapidirect_messages.php:111 +#: actions/twitapifavorites.php:85 +#: actions/twitapifavorites.php:102 +#: actions/twitapifriendships.php:121 +#: actions/twitapihelp.php:44 +#: actions/twitapilaconica.php:82 +#: actions/twitapilaconica.php:151 +#: actions/twitapistatuses.php:79 +#: actions/twitapistatuses.php:147 +#: actions/twitapistatuses.php:228 +#: actions/twitapistatuses.php:239 +#: actions/twitapistatuses.php:392 +#: actions/twitapistatuses.php:402 +#: actions/twitapistatuses.php:429 #: actions/twitapiusers.php:32 msgid "API method not found!" -msgstr "Méthode API non trouvée!" - -#: ../actions/twitapiaccount.php:57 ../actions/twitapiaccount.php:113 -#: ../actions/twitapiaccount.php:119 ../actions/twitapiblocks.php:28 -#: ../actions/twitapiblocks.php:34 ../actions/twitapidirect_messages.php:43 +msgstr "Méthode API non trouvée !" + +#: ../actions/twitapiaccount.php:57 +#: ../actions/twitapiaccount.php:113 +#: ../actions/twitapiaccount.php:119 +#: ../actions/twitapiblocks.php:28 +#: ../actions/twitapiblocks.php:34 +#: ../actions/twitapidirect_messages.php:43 #: ../actions/twitapidirect_messages.php:49 #: ../actions/twitapidirect_messages.php:56 -#: ../actions/twitapidirect_messages.php:62 ../actions/twitapifavorites.php:41 -#: ../actions/twitapifavorites.php:47 ../actions/twitapifavorites.php:53 -#: ../actions/twitapihelp.php:52 ../actions/twitapinotifications.php:29 -#: ../actions/twitapinotifications.php:35 ../actions/twitapistatuses.php:768 -#: actions/twitapiaccount.php:56 actions/twitapiaccount.php:109 -#: actions/twitapiaccount.php:114 actions/twitapiblocks.php:28 -#: actions/twitapiblocks.php:33 actions/twitapidirect_messages.php:170 -#: actions/twitapifavorites.php:168 actions/twitapihelp.php:53 -#: actions/twitapinotifications.php:29 actions/twitapinotifications.php:34 -#: actions/twitapistatuses.php:690 actions/twitapiaccount.php:45 -#: actions/twitapiaccount.php:97 actions/twitapiaccount.php:103 -#: actions/twitapidirect_messages.php:184 actions/twitapifavorites.php:143 -#: actions/twitapihelp.php:52 actions/twitapilaconica.php:172 -#: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37 +#: ../actions/twitapidirect_messages.php:62 +#: ../actions/twitapifavorites.php:41 +#: ../actions/twitapifavorites.php:47 +#: ../actions/twitapifavorites.php:53 +#: ../actions/twitapihelp.php:52 +#: ../actions/twitapinotifications.php:29 +#: ../actions/twitapinotifications.php:35 +#: ../actions/twitapistatuses.php:768 +#: actions/twitapiaccount.php:56 +#: actions/twitapiaccount.php:109 +#: actions/twitapiaccount.php:114 +#: actions/twitapiblocks.php:28 +#: actions/twitapiblocks.php:33 +#: actions/twitapidirect_messages.php:170 +#: actions/twitapifavorites.php:168 +#: actions/twitapihelp.php:53 +#: actions/twitapinotifications.php:29 +#: actions/twitapinotifications.php:34 +#: actions/twitapistatuses.php:690 +#: actions/twitapiaccount.php:45 +#: actions/twitapiaccount.php:97 +#: actions/twitapiaccount.php:103 +#: actions/twitapidirect_messages.php:184 +#: actions/twitapifavorites.php:143 +#: actions/twitapihelp.php:52 +#: actions/twitapilaconica.php:172 +#: actions/twitapinotifications.php:31 +#: actions/twitapinotifications.php:37 #: actions/twitapistatuses.php:562 msgid "API method under construction." msgstr "Méthode API en construction." -#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 +#: ../lib/util.php:324 +#: lib/util.php:340 +#: lib/action.php:568 msgid "About" msgstr "À propos" -#: ../actions/userauthorization.php:119 actions/userauthorization.php:126 +#: ../actions/userauthorization.php:119 +#: actions/userauthorization.php:126 #: actions/userauthorization.php:143 msgid "Accept" msgstr "Accepter" -#: ../actions/emailsettings.php:62 ../actions/imsettings.php:63 -#: ../actions/openidsettings.php:57 ../actions/smssettings.php:71 -#: actions/emailsettings.php:63 actions/imsettings.php:64 -#: actions/openidsettings.php:58 actions/smssettings.php:71 -#: actions/twittersettings.php:85 actions/emailsettings.php:120 -#: actions/imsettings.php:127 actions/openidsettings.php:111 -#: actions/smssettings.php:133 actions/twittersettings.php:163 +#: ../actions/emailsettings.php:62 +#: ../actions/imsettings.php:63 +#: ../actions/openidsettings.php:57 +#: ../actions/smssettings.php:71 +#: actions/emailsettings.php:63 +#: actions/imsettings.php:64 +#: actions/openidsettings.php:58 +#: actions/smssettings.php:71 +#: actions/twittersettings.php:85 +#: actions/emailsettings.php:120 +#: actions/imsettings.php:127 +#: actions/openidsettings.php:111 +#: actions/smssettings.php:133 +#: actions/twittersettings.php:163 msgid "Add" msgstr "Ajouter" -#: ../actions/openidsettings.php:43 actions/openidsettings.php:44 +#: ../actions/openidsettings.php:43 +#: actions/openidsettings.php:44 #: actions/openidsettings.php:93 msgid "Add OpenID" -msgstr "Ajouter un OpenID" +msgstr "Ajouter un identifiant OpenID" -#: ../lib/settingsaction.php:97 lib/settingsaction.php:91 +#: ../lib/settingsaction.php:97 +#: lib/settingsaction.php:91 #: lib/accountsettingsaction.php:117 msgid "Add or remove OpenIDs" -msgstr "Ajouter ou supprimer vos OpenIDs" - -#: ../actions/emailsettings.php:38 ../actions/imsettings.php:39 -#: ../actions/smssettings.php:39 actions/emailsettings.php:39 -#: actions/imsettings.php:40 actions/smssettings.php:39 -#: actions/emailsettings.php:94 actions/imsettings.php:94 +msgstr "Ajouter ou supprimer des identifiants OpenIDs" + +#: ../actions/emailsettings.php:38 +#: ../actions/imsettings.php:39 +#: ../actions/smssettings.php:39 +#: actions/emailsettings.php:39 +#: actions/imsettings.php:40 +#: actions/smssettings.php:39 +#: actions/emailsettings.php:94 +#: actions/imsettings.php:94 #: actions/smssettings.php:92 msgid "Address" msgstr "Adresse" -#: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176 +#: ../actions/invite.php:131 +#: actions/invite.php:139 +#: actions/invite.php:176 msgid "Addresses of friends to invite (one per line)" msgstr "Adresses d'amis à inviter (un par ligne)" -#: ../actions/showstream.php:273 actions/showstream.php:288 +#: ../actions/showstream.php:273 +#: actions/showstream.php:288 #: actions/showstream.php:422 msgid "All subscriptions" -msgstr "Toutes les inscriptions" +msgstr "Tous les abonnements" -#: ../actions/publicrss.php:64 actions/publicrss.php:50 +#: ../actions/publicrss.php:64 +#: actions/publicrss.php:50 #: actions/publicrss.php:92 #, php-format msgid "All updates for %s" -msgstr "Toutes les mises à jour pour %s" +msgstr "Tous les statuts de %s" -#: ../actions/noticesearchrss.php:66 actions/noticesearchrss.php:70 +#: ../actions/noticesearchrss.php:66 +#: actions/noticesearchrss.php:70 #: actions/noticesearchrss.php:90 #, php-format msgid "All updates matching search term \"%s\"" -msgstr "Toutes les mises à jour correspondantes au terme cherché \"%s\"" - -#: ../actions/finishopenidlogin.php:29 ../actions/login.php:31 -#: ../actions/openidlogin.php:29 ../actions/register.php:30 -#: actions/finishopenidlogin.php:29 actions/login.php:31 -#: actions/openidlogin.php:29 actions/register.php:30 -#: actions/finishopenidlogin.php:34 actions/login.php:77 -#: actions/openidlogin.php:30 actions/register.php:92 +msgstr "Statuts correspondant au(x) terme(s) \"%s\"" + +#: ../actions/finishopenidlogin.php:29 +#: ../actions/login.php:31 +#: ../actions/openidlogin.php:29 +#: ../actions/register.php:30 +#: actions/finishopenidlogin.php:29 +#: actions/login.php:31 +#: actions/openidlogin.php:29 +#: actions/register.php:30 +#: actions/finishopenidlogin.php:34 +#: actions/login.php:77 +#: actions/openidlogin.php:30 +#: actions/register.php:92 msgid "Already logged in." msgstr "Déjà connecté." -#: ../lib/subs.php:42 lib/subs.php:42 lib/subs.php:49 +#: ../lib/subs.php:42 +#: lib/subs.php:42 +#: lib/subs.php:49 msgid "Already subscribed!." -msgstr "Déjà inscrit." +msgstr "Déjà abonné !" -#: ../actions/deletenotice.php:54 actions/deletenotice.php:55 +#: ../actions/deletenotice.php:54 +#: actions/deletenotice.php:55 #: actions/deletenotice.php:113 msgid "Are you sure you want to delete this notice?" -msgstr "Êtes-vous sur de vouloir effacer cet avertissement ?" +msgstr "Êtes-vous sûr(e) de vouloir supprimer ce statut ?" -#: ../actions/userauthorization.php:77 actions/userauthorization.php:83 +#: ../actions/userauthorization.php:77 +#: actions/userauthorization.php:83 #: actions/userauthorization.php:81 msgid "Authorize subscription" -msgstr "Autoriser l'inscription" +msgstr "Autoriser l'abonnement" -#: ../actions/login.php:104 ../actions/register.php:178 +#: ../actions/login.php:104 +#: ../actions/register.php:178 #: actions/register.php:192 msgid "Automatically login in the future; not for shared computers!" -msgstr "" -"Me connecter automatiquement dans le futur; déconseillé pour les ordinateurs " -"partagés/publics!" - -#: ../actions/profilesettings.php:65 actions/profilesettings.php:98 -msgid "" -"Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "" -"M'abonner automatiquement à quiconque s'abonne à moi (meilleur pour les non-" -"humains)" - -#: ../actions/avatar.php:32 ../lib/settingsaction.php:90 -#: actions/profilesettings.php:34 actions/avatarsettings.php:65 -#: actions/showgroup.php:209 lib/accountsettingsaction.php:107 +msgstr "Ouvrir automatiquement ma session à l'avenir (déconseillé pour les ordinateurs publics ou partagés)" + +#: ../actions/profilesettings.php:65 +#: actions/profilesettings.php:98 +msgid "Automatically subscribe to whoever subscribes to me (best for non-humans)" +msgstr "M'abonner automatiquement à tous ceux qui s'abonnent à moi (recommandé pour les utilisateurs non-humains)" + +#: ../actions/avatar.php:32 +#: ../lib/settingsaction.php:90 +#: actions/profilesettings.php:34 +#: actions/avatarsettings.php:65 +#: actions/showgroup.php:209 +#: lib/accountsettingsaction.php:107 msgid "Avatar" msgstr "Avatar" -#: ../actions/avatar.php:113 actions/profilesettings.php:350 +#: ../actions/avatar.php:113 +#: actions/profilesettings.php:350 #: actions/avatarsettings.php:395 msgid "Avatar updated." msgstr "Avatar mis à jour." -#: ../actions/imsettings.php:55 actions/imsettings.php:56 +#: ../actions/imsettings.php:55 +#: actions/imsettings.php:56 #, php-format -msgid "" -"Awaiting confirmation on this address. Check your Jabber/GTalk account for a " -"message with further instructions. (Did you add %s to your buddy list?)" -msgstr "" -"En attente d'une confirmation pour cette adresse. Vérifiez votre compte " -"Jabber/GTalk pour recevoir un message avec de plus amples instructions. " -"(Avez-vous ajouté %s à votre liste de contacts ?)" +msgid "Awaiting confirmation on this address. Check your Jabber/GTalk account for a message with further instructions. (Did you add %s to your buddy list?)" +msgstr "En attente d'une confirmation pour cette adresse. Vérifiez votre compte Jabber/GTalk pour recevoir de nouvelles instructions. (Avez-vous ajouté %s à votre liste de contacts ?)" -#: ../actions/emailsettings.php:54 actions/emailsettings.php:55 -msgid "" -"Awaiting confirmation on this address. Check your inbox (and spam box!) for " -"a message with further instructions." -msgstr "" -"En attente d'une confirmation pour cette adresse. Vérifiez votre compte " -"Jabber/GTalk pour recevoir un message avec de nouvelles instructions." +#: ../actions/emailsettings.php:54 +#: actions/emailsettings.php:55 +msgid "Awaiting confirmation on this address. Check your inbox (and spam box!) for a message with further instructions." +msgstr "En attente d'une confirmation pour cette adresse. Vérifiez votre compte Jabber/GTalk pour recevoir de nouvelles instructions." -#: ../actions/smssettings.php:58 actions/smssettings.php:58 +#: ../actions/smssettings.php:58 +#: actions/smssettings.php:58 #: actions/smssettings.php:111 msgid "Awaiting confirmation on this phone number." -msgstr "En attente de confirmation à ce numéro de téléphone." +msgstr "Numéro de téléphone en attente de confirmation." -#: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy +#: ../lib/util.php:1318 +#: lib/util.php:1452 msgid "Before »" msgstr "Avant »" -#: ../actions/profilesettings.php:49 ../actions/register.php:170 -#: actions/profilesettings.php:82 actions/register.php:184 -#: actions/profilesettings.php:112 actions/register.php:402 +#: ../actions/profilesettings.php:49 +#: ../actions/register.php:170 +#: actions/profilesettings.php:82 +#: actions/register.php:184 +#: actions/profilesettings.php:112 +#: actions/register.php:402 msgid "Bio" -msgstr "Biographie" - -#: ../actions/profilesettings.php:101 ../actions/register.php:82 -#: ../actions/updateprofile.php:103 actions/profilesettings.php:216 -#: actions/register.php:89 actions/updateprofile.php:104 -#: actions/profilesettings.php:205 actions/register.php:174 +msgstr "Bio" + +#: ../actions/profilesettings.php:101 +#: ../actions/register.php:82 +#: ../actions/updateprofile.php:103 +#: actions/profilesettings.php:216 +#: actions/register.php:89 +#: actions/updateprofile.php:104 +#: actions/profilesettings.php:205 +#: actions/register.php:174 #: actions/updateprofile.php:107 msgid "Bio is too long (max 140 chars)." -msgstr "La biographie est trop longue (140 caractères maximum)." +msgstr "La bio est trop longue (140 caractères maximum)." -#: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69 +#: ../lib/deleteaction.php:41 +#: lib/deleteaction.php:41 +#: lib/deleteaction.php:69 msgid "Can't delete this notice." -msgstr "Impossible de supprimer cet avertissement." +msgstr "Impossible de supprimer ce statut." -#: ../actions/updateprofile.php:119 actions/updateprofile.php:120 +#: ../actions/updateprofile.php:119 +#: actions/updateprofile.php:120 #: actions/updateprofile.php:123 #, php-format msgid "Can't read avatar URL '%s'" -msgstr "Impossible de lire l'URL de l'avatar '%s'" - -#: ../actions/password.php:85 ../actions/recoverpassword.php:300 -#: actions/profilesettings.php:404 actions/recoverpassword.php:313 -#: actions/passwordsettings.php:169 actions/recoverpassword.php:347 +msgstr "Impossible de lire l'URL '%s'" + +#: ../actions/password.php:85 +#: ../actions/recoverpassword.php:300 +#: actions/profilesettings.php:404 +#: actions/recoverpassword.php:313 +#: actions/passwordsettings.php:169 +#: actions/recoverpassword.php:347 msgid "Can't save new password." msgstr "Impossible de sauvegarder le nouveau mot de passe." -#: ../actions/emailsettings.php:57 ../actions/imsettings.php:58 -#: ../actions/smssettings.php:62 actions/emailsettings.php:58 -#: actions/imsettings.php:59 actions/smssettings.php:62 -#: actions/emailsettings.php:111 actions/imsettings.php:114 +#: ../actions/emailsettings.php:57 +#: ../actions/imsettings.php:58 +#: ../actions/smssettings.php:62 +#: actions/emailsettings.php:58 +#: actions/imsettings.php:59 +#: actions/smssettings.php:62 +#: actions/emailsettings.php:111 +#: actions/imsettings.php:114 #: actions/smssettings.php:114 msgid "Cancel" msgstr "Annuler" -#: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130 +#: ../lib/openid.php:121 +#: lib/openid.php:121 +#: lib/openid.php:130 msgid "Cannot instantiate OpenID consumer object." -msgstr "Impossible d'instancier l'objet client pour OpenID" +msgstr "Impossible d'instancier l'objet client pour OpenID." -#: ../actions/imsettings.php:163 actions/imsettings.php:171 +#: ../actions/imsettings.php:163 +#: actions/imsettings.php:171 #: actions/imsettings.php:286 msgid "Cannot normalize that Jabber ID" msgstr "Impossible d'utiliser cet identifiant Jabber" -#: ../actions/emailsettings.php:181 actions/emailsettings.php:199 +#: ../actions/emailsettings.php:181 +#: actions/emailsettings.php:199 #: actions/emailsettings.php:311 msgid "Cannot normalize that email address" -msgstr "Impossible d'utiliser cette adresse e-mail" +msgstr "Impossible d'utiliser cette adresse courriel" -#: ../actions/password.php:45 actions/profilesettings.php:184 +#: ../actions/password.php:45 +#: actions/profilesettings.php:184 #: actions/passwordsettings.php:110 msgid "Change" -msgstr "Changer" +msgstr "Modifier" -#: ../lib/settingsaction.php:88 lib/settingsaction.php:88 +#: ../lib/settingsaction.php:88 +#: lib/settingsaction.php:88 #: lib/accountsettingsaction.php:114 msgid "Change email handling" -msgstr "Changer le traitement de l'email" +msgstr "Modifier le traitement des courriels" -#: ../actions/password.php:32 actions/profilesettings.php:36 +#: ../actions/password.php:32 +#: actions/profilesettings.php:36 #: actions/passwordsettings.php:58 msgid "Change password" -msgstr "Changer de mot de passe" +msgstr "Modifier le mot de passe" -#: ../lib/settingsaction.php:94 lib/accountsettingsaction.php:111 +#: ../lib/settingsaction.php:94 +#: lib/accountsettingsaction.php:111 msgid "Change your password" -msgstr "Changer votre mot de passe" +msgstr "Modifier votre mot de passe" -#: ../lib/settingsaction.php:85 lib/settingsaction.php:85 +#: ../lib/settingsaction.php:85 +#: lib/settingsaction.php:85 #: lib/accountsettingsaction.php:105 msgid "Change your profile settings" -msgstr "Changer vos paramètres de profil" - -#: ../actions/password.php:43 ../actions/recoverpassword.php:181 -#: ../actions/register.php:155 ../actions/smssettings.php:65 -#: actions/profilesettings.php:182 actions/recoverpassword.php:187 -#: actions/register.php:169 actions/smssettings.php:65 -#: actions/passwordsettings.php:105 actions/recoverpassword.php:221 -#: actions/register.php:376 actions/smssettings.php:122 +msgstr "Modifier vos paramètres de profil" + +#: ../actions/password.php:43 +#: ../actions/recoverpassword.php:181 +#: ../actions/register.php:155 +#: ../actions/smssettings.php:65 +#: actions/profilesettings.php:182 +#: actions/recoverpassword.php:187 +#: actions/register.php:169 +#: actions/smssettings.php:65 +#: actions/passwordsettings.php:105 +#: actions/recoverpassword.php:221 +#: actions/register.php:376 +#: actions/smssettings.php:122 msgid "Confirm" msgstr "Confirmer" -#: ../actions/confirmaddress.php:90 actions/confirmaddress.php:90 +#: ../actions/confirmaddress.php:90 +#: actions/confirmaddress.php:90 #: actions/confirmaddress.php:144 msgid "Confirm Address" msgstr "Confirmer l'adresse" -#: ../actions/emailsettings.php:238 ../actions/imsettings.php:222 -#: ../actions/smssettings.php:245 actions/emailsettings.php:256 -#: actions/imsettings.php:230 actions/smssettings.php:253 -#: actions/emailsettings.php:379 actions/imsettings.php:361 +#: ../actions/emailsettings.php:238 +#: ../actions/imsettings.php:222 +#: ../actions/smssettings.php:245 +#: actions/emailsettings.php:256 +#: actions/imsettings.php:230 +#: actions/smssettings.php:253 +#: actions/emailsettings.php:379 +#: actions/imsettings.php:361 #: actions/smssettings.php:374 msgid "Confirmation cancelled." msgstr "Confirmation annulée." -#: ../actions/smssettings.php:63 actions/smssettings.php:63 +#: ../actions/smssettings.php:63 +#: actions/smssettings.php:63 #: actions/smssettings.php:118 msgid "Confirmation code" msgstr "Code de confirmation" -#: ../actions/confirmaddress.php:38 actions/confirmaddress.php:38 +#: ../actions/confirmaddress.php:38 +#: actions/confirmaddress.php:38 #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Code de confirmation non trouvé." @@ -567,2245 +677,2721 @@ msgstr "Code de confirmation non trouvé." #: ../actions/register.php:202 #, php-format msgid "" -"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " -"want to...\n" +"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may want to...\n" "\n" "* Go to [your profile](%s) and post your first message.\n" -"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send " -"notices through instant messages.\n" -"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that " -"share your interests. \n" -"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell " -"others more about you. \n" -"* Read over the [online docs](%%%%doc.help%%%%) for features you may have " -"missed. \n" +"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send notices through instant messages.\n" +"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that share your interests. \n" +"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell others more about you. \n" +"* Read over the [online docs](%%%%doc.help%%%%) for features you may have missed. \n" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Félicitations, %s! Bienvenue chez %%%%site.name%%%%. D'ici, vous pourriez " -"vouloir...\n" +"Félicitations, %s! Bienvenue dans %%%%site.name%%%%. Vous pouvez maintenant :\n" "\n" -"* Aller à [votre profil](%s) et publier votre premier message.\n" -"* Ajouter une adresse [Jabber/GTalk](%%%%action.imsettings%%%%) et ainsi " -"envoyez vos notifications via message instantané.\n" -"* [Chercher des personnes](%%%%action.peoplesearch%%%%) que vous pourriez " -"connaître ou qui partagent vos intêrets.\n" -"* Mettre votre [profil](%%%%action.profilesettings%%%%) à jour pour en dire " -"plus sur vous aux autres.\n" -"* Parcourir la [documentation](%%%%doc.help%%%%) en ligne pour en savoir " -"plus sur les fonctions que vous avez ratées.\n" +"* Visiter [votre profil](%s) et publier votre premier statut.\n" +"* Ajouter une adresse [Jabber/GTalk](%%%%action.imsettings%%%%) afin d'envoyer et recevoir vos statuts par messagerie instantanée.\n" +"* [Chercher des personnes](%%%%action.peoplesearch%%%%) que vous pourriez connaître ou qui partagent vos intêrets.\n" +"* Mettre votre [profil](%%%%action.profilesettings%%%%) à jour pour en dire plus à votre sujet.\n" +"* Parcourir la [documentation](%%%%doc.help%%%%) en ligne pour en savoir plus sur le fonctionnement du service.\n" "\n" -"Merci pour votre inscription et nous vous souhaitons d'apprécier ce service." +"Merci pour votre inscription ! Nous vous souhaitons d'apprécier notre service." -#: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 -#: actions/finishopenidlogin.php:119 lib/action.php:330 +#: ../actions/finishopenidlogin.php:91 +#: actions/finishopenidlogin.php:97 +#: actions/finishopenidlogin.php:119 +#: lib/action.php:330 msgid "Connect" msgstr "Connecter" -#: ../actions/finishopenidlogin.php:86 actions/finishopenidlogin.php:92 +#: ../actions/finishopenidlogin.php:86 +#: actions/finishopenidlogin.php:92 #: actions/finishopenidlogin.php:114 msgid "Connect existing account" -msgstr "Connecté à un compte existant" +msgstr "Connecter à un compte existant" -#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 +#: ../lib/util.php:332 +#: lib/util.php:348 +#: lib/action.php:576 msgid "Contact" msgstr "Contact" -#: ../lib/openid.php:178 lib/openid.php:178 lib/openid.php:187 +#: ../lib/openid.php:178 +#: lib/openid.php:178 +#: lib/openid.php:187 #, php-format msgid "Could not create OpenID form: %s" msgstr "Impossible de créer le formulaire OpenID : %s" -#: ../actions/twitapifriendships.php:60 ../actions/twitapifriendships.php:76 -#: actions/twitapifriendships.php:60 actions/twitapifriendships.php:76 -#: actions/twitapifriendships.php:48 actions/twitapifriendships.php:64 +#: ../actions/twitapifriendships.php:60 +#: ../actions/twitapifriendships.php:76 +#: actions/twitapifriendships.php:60 +#: actions/twitapifriendships.php:76 +#: actions/twitapifriendships.php:48 +#: actions/twitapifriendships.php:64 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "Impossible de suivre l'utilisateur: %s est déjà dans votre liste." +msgstr "Impossible de suivre l'utilisateur : %s est déjà dans votre liste." -#: ../actions/twitapifriendships.php:53 actions/twitapifriendships.php:53 +#: ../actions/twitapifriendships.php:53 +#: actions/twitapifriendships.php:53 #: actions/twitapifriendships.php:41 msgid "Could not follow user: User not found." -msgstr "Impossible de suivre l'utilisateur: Utilisateur non trouvé." +msgstr "Impossible de suivre l'utilisateur : Utilisateur non trouvé." -#: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 +#: ../lib/openid.php:160 +#: lib/openid.php:160 +#: lib/openid.php:169 #, php-format msgid "Could not redirect to server: %s" msgstr "Impossible de rediriger vers le serveur : %s" -#: ../actions/updateprofile.php:162 actions/updateprofile.php:163 +#: ../actions/updateprofile.php:162 +#: actions/updateprofile.php:163 #: actions/updateprofile.php:166 msgid "Could not save avatar info" msgstr "Impossible de sauvegarder les informations de l'avatar" -#: ../actions/updateprofile.php:155 actions/updateprofile.php:156 +#: ../actions/updateprofile.php:155 +#: actions/updateprofile.php:156 #: actions/updateprofile.php:159 msgid "Could not save new profile info" msgstr "Impossible de sauvegarder les informations du nouveau profil" -#: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72 +#: ../lib/subs.php:54 +#: lib/subs.php:61 +#: lib/subs.php:72 msgid "Could not subscribe other to you." -msgstr "Impossible de s'abonner à vous." +msgstr "Impossible d'abonner une autre personne à votre profil." -#: ../lib/subs.php:46 lib/subs.php:46 lib/subs.php:57 -#, fuzzy +#: ../lib/subs.php:46 +#: lib/subs.php:46 +#: lib/subs.php:57 msgid "Could not subscribe." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Non inscrit !\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Impossible de s'abonner." -#: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 +#: ../actions/recoverpassword.php:102 +#: actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 -#, fuzzy msgid "Could not update user with confirmed email address." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Adresse Jabber/GTalk actuellement confirmée.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Impossible de mettre l'utilisateur à jour avec l'adresse courriel confirmée." #: ../actions/finishremotesubscribe.php:99 -#: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 +#: actions/finishremotesubscribe.php:101 +#: actions/finishremotesubscribe.php:114 msgid "Couldn't convert request tokens to access tokens." msgstr "Impossible de convertir les jetons de requête en jetons d'accès" -#: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234 -#: ../actions/imsettings.php:218 ../actions/smssettings.php:241 -#: actions/confirmaddress.php:84 actions/emailsettings.php:252 -#: actions/imsettings.php:226 actions/smssettings.php:249 -#: actions/confirmaddress.php:126 actions/emailsettings.php:375 -#: actions/imsettings.php:357 actions/smssettings.php:370 +#: ../actions/confirmaddress.php:84 +#: ../actions/emailsettings.php:234 +#: ../actions/imsettings.php:218 +#: ../actions/smssettings.php:241 +#: actions/confirmaddress.php:84 +#: actions/emailsettings.php:252 +#: actions/imsettings.php:226 +#: actions/smssettings.php:249 +#: actions/confirmaddress.php:126 +#: actions/emailsettings.php:375 +#: actions/imsettings.php:357 +#: actions/smssettings.php:370 msgid "Couldn't delete email confirmation." -msgstr "" +msgstr "Impossible de supprimer le courriel de confirmation." -#: ../lib/subs.php:103 lib/subs.php:116 lib/subs.php:134 +#: ../lib/subs.php:103 +#: lib/subs.php:116 +#: lib/subs.php:134 msgid "Couldn't delete subscription." -msgstr "Impossible de supprimer l'abonnement" +msgstr "Impossible de cesser l'abonnement" -#: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98 +#: ../actions/twitapistatuses.php:93 +#: actions/twitapistatuses.php:98 #: actions/twitapistatuses.php:84 msgid "Couldn't find any statuses." -msgstr "" +msgstr "Aucun statut n'a été trouvé." -#: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136 +#: ../actions/remotesubscribe.php:127 +#: actions/remotesubscribe.php:136 #: actions/remotesubscribe.php:178 msgid "Couldn't get a request token." msgstr "Impossible d'obtenir le jeton de requête." -#: ../actions/emailsettings.php:205 ../actions/imsettings.php:187 -#: ../actions/smssettings.php:206 actions/emailsettings.php:223 -#: actions/imsettings.php:195 actions/smssettings.php:214 -#: actions/emailsettings.php:337 actions/imsettings.php:311 +#: ../actions/emailsettings.php:205 +#: ../actions/imsettings.php:187 +#: ../actions/smssettings.php:206 +#: actions/emailsettings.php:223 +#: actions/imsettings.php:195 +#: actions/smssettings.php:214 +#: actions/emailsettings.php:337 +#: actions/imsettings.php:311 #: actions/smssettings.php:325 msgid "Couldn't insert confirmation code." msgstr "Impossible d'insérer le code de confirmation." #: ../actions/finishremotesubscribe.php:180 -#: actions/finishremotesubscribe.php:182 actions/finishremotesubscribe.php:218 +#: actions/finishremotesubscribe.php:182 +#: actions/finishremotesubscribe.php:218 msgid "Couldn't insert new subscription." -msgstr "Impossible d'insérer une nouvelle inscription." - -#: ../actions/profilesettings.php:184 ../actions/twitapiaccount.php:96 -#: actions/profilesettings.php:299 actions/twitapiaccount.php:94 -#: actions/profilesettings.php:302 actions/twitapiaccount.php:81 +msgstr "Impossible d'insérer un nouvel abonnement." + +#: ../actions/profilesettings.php:184 +#: ../actions/twitapiaccount.php:96 +#: actions/profilesettings.php:299 +#: actions/twitapiaccount.php:94 +#: actions/profilesettings.php:302 +#: actions/twitapiaccount.php:81 msgid "Couldn't save profile." -msgstr "Impossible de sauvegarder le profil." +msgstr "Impossible d'enregistrer le profil." -#: ../actions/profilesettings.php:161 actions/profilesettings.php:276 +#: ../actions/profilesettings.php:161 +#: actions/profilesettings.php:276 #: actions/profilesettings.php:279 -#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Impossible de mettre à jour l'utilisateur.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" - -#: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294 -#: actions/emailsettings.php:298 actions/emailsettings.php:312 -#: actions/emailsettings.php:440 actions/emailsettings.php:462 -#, fuzzy +msgstr "Impossible de mettre à jour l'auto-abonnement." + +#: ../actions/emailsettings.php:280 +#: ../actions/emailsettings.php:294 +#: actions/emailsettings.php:298 +#: actions/emailsettings.php:312 +#: actions/emailsettings.php:440 +#: actions/emailsettings.php:462 msgid "Couldn't update user record." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Impossible de mettre à jour l'utilisateur.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" - -#: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156 -#: ../actions/emailsettings.php:259 ../actions/imsettings.php:138 -#: ../actions/imsettings.php:243 ../actions/profilesettings.php:141 -#: ../actions/smssettings.php:157 ../actions/smssettings.php:269 -#: actions/confirmaddress.php:72 actions/emailsettings.php:174 -#: actions/emailsettings.php:277 actions/imsettings.php:146 -#: actions/imsettings.php:251 actions/profilesettings.php:256 -#: actions/smssettings.php:165 actions/smssettings.php:277 -#: actions/confirmaddress.php:114 actions/emailsettings.php:280 -#: actions/emailsettings.php:411 actions/imsettings.php:252 -#: actions/imsettings.php:395 actions/othersettings.php:162 -#: actions/profilesettings.php:259 actions/smssettings.php:266 +msgstr "Impossible de mettre à jour le dossier de l'utilisateur." + +#: ../actions/confirmaddress.php:72 +#: ../actions/emailsettings.php:156 +#: ../actions/emailsettings.php:259 +#: ../actions/imsettings.php:138 +#: ../actions/imsettings.php:243 +#: ../actions/profilesettings.php:141 +#: ../actions/smssettings.php:157 +#: ../actions/smssettings.php:269 +#: actions/confirmaddress.php:72 +#: actions/emailsettings.php:174 +#: actions/emailsettings.php:277 +#: actions/imsettings.php:146 +#: actions/imsettings.php:251 +#: actions/profilesettings.php:256 +#: actions/smssettings.php:165 +#: actions/smssettings.php:277 +#: actions/confirmaddress.php:114 +#: actions/emailsettings.php:280 +#: actions/emailsettings.php:411 +#: actions/imsettings.php:252 +#: actions/imsettings.php:395 +#: actions/othersettings.php:162 +#: actions/profilesettings.php:259 +#: actions/smssettings.php:266 #: actions/smssettings.php:408 msgid "Couldn't update user." msgstr "Impossible de mettre à jour l'utilisateur." -#: ../actions/finishopenidlogin.php:84 actions/finishopenidlogin.php:90 +#: ../actions/finishopenidlogin.php:84 +#: actions/finishopenidlogin.php:90 #: actions/finishopenidlogin.php:112 msgid "Create" msgstr "Créer" -#: ../actions/finishopenidlogin.php:70 actions/finishopenidlogin.php:76 +#: ../actions/finishopenidlogin.php:70 +#: actions/finishopenidlogin.php:76 #: actions/finishopenidlogin.php:98 msgid "Create a new user with this nickname." -msgstr "Créer un nouvel utilisateur avec ce surnom." +msgstr "Créer un nouvel utilisateur avec ce pseudo." -#: ../actions/finishopenidlogin.php:68 actions/finishopenidlogin.php:74 +#: ../actions/finishopenidlogin.php:68 +#: actions/finishopenidlogin.php:74 #: actions/finishopenidlogin.php:96 msgid "Create new account" msgstr "Créer un nouveau compte" -#: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197 +#: ../actions/finishopenidlogin.php:191 +#: actions/finishopenidlogin.php:197 #: actions/finishopenidlogin.php:231 msgid "Creating new account for OpenID that already has a user." msgstr "Création d'un nouveau compte pour un OpenID qui a déjà un utilisateur." -#: ../actions/imsettings.php:45 actions/imsettings.php:46 +#: ../actions/imsettings.php:45 +#: actions/imsettings.php:46 #: actions/imsettings.php:100 msgid "Current confirmed Jabber/GTalk address." msgstr "Adresse Jabber/GTalk actuellement confirmée." -#: ../actions/smssettings.php:46 actions/smssettings.php:46 +#: ../actions/smssettings.php:46 +#: actions/smssettings.php:46 #: actions/smssettings.php:100 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Numéro de téléphone actuellement confirmé pour recevoir les SMS." -#: ../actions/emailsettings.php:44 actions/emailsettings.php:45 +#: ../actions/emailsettings.php:44 +#: actions/emailsettings.php:45 #: actions/emailsettings.php:99 -#, fuzzy msgid "Current confirmed email address." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Adresse Jabber/GTalk actuellement confirmée.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Adresse courriel actuellement confirmée." -#: ../actions/showstream.php:356 actions/showstream.php:367 +#: ../actions/showstream.php:356 +#: actions/showstream.php:367 msgid "Currently" -msgstr "" +msgstr "Actuellement" -#: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 -#, fuzzy, php-format +#: ../classes/Notice.php:72 +#: classes/Notice.php:86 +#: classes/Notice.php:91 +#, php-format msgid "DB error inserting hashtag: %s" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Erreur de base de donnée en insérant la réponse : %s\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Erreur de base de donnée en insérant le hashtag : %s" -#: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698 +#: ../lib/util.php:1061 +#: lib/util.php:1110 +#: classes/Notice.php:698 #, php-format msgid "DB error inserting reply: %s" -msgstr "" +msgstr "Erreur de base de donnée en insérant la réponse :%s" # De #-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n # Nouveau message\n # #-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n -# # à "Supprimer l'avis" -#: ../actions/deletenotice.php:41 actions/deletenotice.php:41 +#: ../actions/deletenotice.php:41 +#: actions/deletenotice.php:41 #: actions/deletenotice.php:79 -#, fuzzy msgid "Delete notice" -msgstr "Supprimer l'avis" +msgstr "Supprimer ce statut" -#: ../actions/profilesettings.php:51 ../actions/register.php:172 -#: actions/profilesettings.php:84 actions/register.php:186 +#: ../actions/profilesettings.php:51 +#: ../actions/register.php:172 +#: actions/profilesettings.php:84 +#: actions/register.php:186 #: actions/profilesettings.php:114 msgid "Describe yourself and your interests in 140 chars" -msgstr "Description et intérêts (140 caractères maximum)" - -#: ../actions/register.php:158 ../actions/register.php:161 -#: ../lib/settingsaction.php:87 actions/register.php:172 -#: actions/register.php:175 lib/settingsaction.php:87 actions/register.php:381 -#: actions/register.php:385 lib/accountsettingsaction.php:113 +msgstr "Décrivez vos intérêts en 140 caractères" + +#: ../actions/register.php:158 +#: ../actions/register.php:161 +#: ../lib/settingsaction.php:87 +#: actions/register.php:172 +#: actions/register.php:175 +#: lib/settingsaction.php:87 +#: actions/register.php:381 +#: actions/register.php:385 +#: lib/accountsettingsaction.php:113 msgid "Email" -msgstr "Email" +msgstr "Courriel" -#: ../actions/emailsettings.php:59 actions/emailsettings.php:60 +#: ../actions/emailsettings.php:59 +#: actions/emailsettings.php:60 #: actions/emailsettings.php:115 -#, fuzzy msgid "Email Address" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Adresse email\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Adresse courriel" -#: ../actions/emailsettings.php:32 actions/emailsettings.php:32 +#: ../actions/emailsettings.php:32 +#: actions/emailsettings.php:32 #: actions/emailsettings.php:60 -#, fuzzy msgid "Email Settings" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Paramètres\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Paramètres du courriel" -#: ../actions/register.php:73 actions/register.php:80 actions/register.php:163 +#: ../actions/register.php:73 +#: actions/register.php:80 +#: actions/register.php:163 msgid "Email address already exists." -msgstr "Cette adresse email est déjà utilisée." +msgstr "Cette adresse courriel est déjà utilisée." -#: ../lib/mail.php:90 lib/mail.php:90 lib/mail.php:173 +#: ../lib/mail.php:90 +#: lib/mail.php:90 +#: lib/mail.php:173 msgid "Email address confirmation" -msgstr "Adresse email de confirmation" +msgstr "Confirmation de l'adresse courriel" -#: ../actions/emailsettings.php:61 actions/emailsettings.php:62 +#: ../actions/emailsettings.php:61 +#: actions/emailsettings.php:62 #: actions/emailsettings.php:117 msgid "Email address, like \"UserName@example.org\"" -msgstr "Adresse email (ex: nom@mondomaine.fr)" +msgstr "Adresse courriel (ex : nom@mondomaine.com)" -#: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174 +#: ../actions/invite.php:129 +#: actions/invite.php:137 +#: actions/invite.php:174 msgid "Email addresses" -msgstr "Adresses email" +msgstr "Adresses courriel" -#: ../actions/recoverpassword.php:191 actions/recoverpassword.php:197 +#: ../actions/recoverpassword.php:191 +#: actions/recoverpassword.php:197 #: actions/recoverpassword.php:231 msgid "Enter a nickname or email address." -msgstr "Entrer un pseudo ou une adresse email." +msgstr "Entrez un pseudo ou une adresse courriel." -#: ../actions/smssettings.php:64 actions/smssettings.php:64 +#: ../actions/smssettings.php:64 +#: actions/smssettings.php:64 #: actions/smssettings.php:119 msgid "Enter the code you received on your phone." -msgstr "Entrer le code que vous avez reçu sur votre téléphone." +msgstr "Entrez le code que vous avez reçu sur votre téléphone." -#: ../actions/userauthorization.php:137 actions/userauthorization.php:144 +#: ../actions/userauthorization.php:137 +#: actions/userauthorization.php:144 #: actions/userauthorization.php:161 msgid "Error authorizing token" -msgstr "" +msgstr "Erreur d'autorisation du jeton" -#: ../actions/finishopenidlogin.php:253 actions/finishopenidlogin.php:259 +#: ../actions/finishopenidlogin.php:253 +#: actions/finishopenidlogin.php:259 #: actions/finishopenidlogin.php:297 msgid "Error connecting user to OpenID." msgstr "Erreur lors de la connexion de l'utilisateur sur OpenID" -#: ../actions/finishaddopenid.php:78 actions/finishaddopenid.php:78 +#: ../actions/finishaddopenid.php:78 +#: actions/finishaddopenid.php:78 #: actions/finishaddopenid.php:126 msgid "Error connecting user." -msgstr "Erreur de connexion d'utilisateur." +msgstr "Erreur lors de la connexion de l'utilisateur." #: ../actions/finishremotesubscribe.php:151 -#: actions/finishremotesubscribe.php:153 actions/finishremotesubscribe.php:166 +#: actions/finishremotesubscribe.php:153 +#: actions/finishremotesubscribe.php:166 msgid "Error inserting avatar" -msgstr "Erreur lors de l'insertion d'un avatar" +msgstr "Erreur lors de l'insertion de l'avatar" #: ../actions/finishremotesubscribe.php:143 -#: actions/finishremotesubscribe.php:145 actions/finishremotesubscribe.php:158 +#: actions/finishremotesubscribe.php:145 +#: actions/finishremotesubscribe.php:158 msgid "Error inserting new profile" -msgstr "Erreur lors de l'insertion d'un nouveau profil" +msgstr "Erreur lors de l'insertion du nouveau profil" #: ../actions/finishremotesubscribe.php:167 -#: actions/finishremotesubscribe.php:169 actions/finishremotesubscribe.php:182 +#: actions/finishremotesubscribe.php:169 +#: actions/finishremotesubscribe.php:182 msgid "Error inserting remote profile" -msgstr "Erreur lors de l'insertion d'un profil distant" +msgstr "Erreur lors de l'insertion du profil distant" -#: ../actions/recoverpassword.php:240 actions/recoverpassword.php:246 +#: ../actions/recoverpassword.php:240 +#: actions/recoverpassword.php:246 #: actions/recoverpassword.php:280 msgid "Error saving address confirmation." -msgstr "Erreur lors de la sauvegarde de l'email de confirmation." +msgstr "Erreur lors de l'enregistrement de la confirmation du courriel." -#: ../actions/userauthorization.php:140 actions/userauthorization.php:147 +#: ../actions/userauthorization.php:140 +#: actions/userauthorization.php:147 #: actions/userauthorization.php:164 msgid "Error saving remote profile" -msgstr "Erreur lors de la sauvegarde du profil distant" +msgstr "Erreur lors de l'enregistrement du profil distant" -#: ../lib/openid.php:226 lib/openid.php:226 lib/openid.php:235 +#: ../lib/openid.php:226 +#: lib/openid.php:226 +#: lib/openid.php:235 msgid "Error saving the profile." -msgstr "Erreur lors de la sauvegarde du profil." +msgstr "Erreur lors de l'enregistrement du profil." -#: ../lib/openid.php:237 lib/openid.php:237 lib/openid.php:246 +#: ../lib/openid.php:237 +#: lib/openid.php:237 +#: lib/openid.php:246 msgid "Error saving the user." msgstr "Erreur lors de l'enregistrement de l'utilisateur." -#: ../actions/password.php:80 actions/profilesettings.php:399 +#: ../actions/password.php:80 +#: actions/profilesettings.php:399 #: actions/passwordsettings.php:164 msgid "Error saving user; invalid." msgstr "Erreur lors de l'enregistrement de l'utilisateur ; invalide." -#: ../actions/login.php:47 ../actions/login.php:73 -#: ../actions/recoverpassword.php:307 ../actions/register.php:98 -#: actions/login.php:47 actions/login.php:73 actions/recoverpassword.php:320 -#: actions/register.php:108 actions/login.php:112 actions/login.php:138 -#: actions/recoverpassword.php:354 actions/register.php:198 +#: ../actions/login.php:47 +#: ../actions/login.php:73 +#: ../actions/recoverpassword.php:307 +#: ../actions/register.php:98 +#: actions/login.php:47 +#: actions/login.php:73 +#: actions/recoverpassword.php:320 +#: actions/register.php:108 +#: actions/login.php:112 +#: actions/login.php:138 +#: actions/recoverpassword.php:354 +#: actions/register.php:198 msgid "Error setting user." -msgstr "Erreur dans les options de l'utilisateur." +msgstr "Erreur lors de la configuration de l'utilisateur." -#: ../actions/finishaddopenid.php:83 actions/finishaddopenid.php:83 +#: ../actions/finishaddopenid.php:83 +#: actions/finishaddopenid.php:83 #: actions/finishaddopenid.php:131 msgid "Error updating profile" msgstr "Erreur lors de la mise à jour du profil" #: ../actions/finishremotesubscribe.php:161 -#: actions/finishremotesubscribe.php:163 actions/finishremotesubscribe.php:176 +#: actions/finishremotesubscribe.php:163 +#: actions/finishremotesubscribe.php:176 msgid "Error updating remote profile" msgstr "Erreur lors de la mise à jour du profil distant" -#: ../actions/recoverpassword.php:80 actions/recoverpassword.php:80 +#: ../actions/recoverpassword.php:80 +#: actions/recoverpassword.php:80 #: actions/recoverpassword.php:86 msgid "Error with confirmation code." msgstr "Erreur dans le code de confirmation." -#: ../actions/finishopenidlogin.php:89 actions/finishopenidlogin.php:95 +#: ../actions/finishopenidlogin.php:89 +#: actions/finishopenidlogin.php:95 #: actions/finishopenidlogin.php:117 msgid "Existing nickname" -msgstr "Surnom existant" +msgstr "Ce pseudo est déjà utilisé" -#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 +#: ../lib/util.php:326 +#: lib/util.php:342 +#: lib/action.php:570 msgid "FAQ" msgstr "FAQ" -#: ../actions/avatar.php:115 actions/profilesettings.php:352 +#: ../actions/avatar.php:115 +#: actions/profilesettings.php:352 #: actions/avatarsettings.php:397 msgid "Failed updating avatar." msgstr "La mise à jour de l'avatar a échoué." -#: ../actions/all.php:61 ../actions/allrss.php:64 actions/all.php:61 -#: actions/allrss.php:64 actions/all.php:75 actions/allrss.php:107 +#: ../actions/all.php:61 +#: ../actions/allrss.php:64 +#: actions/all.php:61 +#: actions/allrss.php:64 +#: actions/all.php:75 +#: actions/allrss.php:107 #, php-format msgid "Feed for friends of %s" -msgstr "" +msgstr "Flux des amis de %s" -#: ../actions/replies.php:65 ../actions/repliesrss.php:80 -#: actions/replies.php:65 actions/repliesrss.php:66 actions/replies.php:134 +#: ../actions/replies.php:65 +#: ../actions/repliesrss.php:80 +#: actions/replies.php:65 +#: actions/repliesrss.php:66 +#: actions/replies.php:134 #: actions/repliesrss.php:71 #, php-format msgid "Feed for replies to %s" -msgstr "" +msgstr "Flux des réponses à %s" -#: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61 -#, fuzzy, php-format +#: ../actions/tag.php:55 +#: actions/tag.php:55 +#: actions/tag.php:61 +#, php-format msgid "Feed for tag %s" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Fil des réponses à %s\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Flux du marquage %s" -#: ../lib/searchaction.php:105 lib/searchaction.php:105 +#: ../lib/searchaction.php:105 +#: lib/searchaction.php:105 #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "Chercher dans le contenu des statuts" -#: ../lib/searchaction.php:101 lib/searchaction.php:101 +#: ../lib/searchaction.php:101 +#: lib/searchaction.php:101 #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "Trouver des personnes sur ce site" +msgstr "Chercher des personnes sur ce site" #: ../actions/login.php:122 -msgid "" -"For security reasons, please re-enter your user name and password before " -"changing your settings." -msgstr "" -"Pour des raisons de sécurité, merci de rentrer à nouveau votre nom " -"d'utilisateur et votre mot de passe avant de sauvegarde vos préférences." - -#: ../actions/profilesettings.php:44 ../actions/register.php:164 -#: actions/profilesettings.php:77 actions/register.php:178 -#: actions/profilesettings.php:103 actions/register.php:391 -#: actions/showgroup.php:235 actions/showstream.php:262 -#: actions/tagother.php:105 lib/groupeditform.php:142 +msgid "For security reasons, please re-enter your user name and password before changing your settings." +msgstr "Pour des raisons de sécurité, veuillez entrer à nouveau votre identifiant et votre mot de passe afin d'enregistrer vos préférences." + +#: ../actions/profilesettings.php:44 +#: ../actions/register.php:164 +#: actions/profilesettings.php:77 +#: actions/register.php:178 +#: actions/profilesettings.php:103 +#: actions/register.php:391 +#: actions/showgroup.php:235 +#: actions/showstream.php:262 +#: actions/tagother.php:105 +#: lib/groupeditform.php:142 msgid "Full name" msgstr "Nom complet" -#: ../actions/profilesettings.php:98 ../actions/register.php:79 -#: ../actions/updateprofile.php:93 actions/profilesettings.php:213 -#: actions/register.php:86 actions/updateprofile.php:94 -#: actions/editgroup.php:195 actions/newgroup.php:146 -#: actions/profilesettings.php:202 actions/register.php:171 +#: ../actions/profilesettings.php:98 +#: ../actions/register.php:79 +#: ../actions/updateprofile.php:93 +#: actions/profilesettings.php:213 +#: actions/register.php:86 +#: actions/updateprofile.php:94 +#: actions/editgroup.php:195 +#: actions/newgroup.php:146 +#: actions/profilesettings.php:202 +#: actions/register.php:171 #: actions/updateprofile.php:97 msgid "Full name is too long (max 255 chars)." msgstr "Nom complet trop long (maximum de 255 caractères)." -#: ../lib/util.php:322 lib/util.php:338 lib/action.php:344 lib/action.php:566 +#: ../lib/util.php:322 +#: lib/util.php:338 +#: lib/action.php:344 +#: lib/action.php:566 msgid "Help" msgstr "Aide" -#: ../lib/util.php:298 lib/util.php:314 lib/action.php:322 +#: ../lib/util.php:298 +#: lib/util.php:314 +#: lib/action.php:322 #: lib/facebookaction.php:200 msgid "Home" msgstr "Accueil" -#: ../actions/profilesettings.php:46 ../actions/register.php:167 -#: actions/profilesettings.php:79 actions/register.php:181 -#: actions/profilesettings.php:107 actions/register.php:396 +#: ../actions/profilesettings.php:46 +#: ../actions/register.php:167 +#: actions/profilesettings.php:79 +#: actions/register.php:181 +#: actions/profilesettings.php:107 +#: actions/register.php:396 #: lib/groupeditform.php:146 msgid "Homepage" -msgstr "Page d'accueil" - -#: ../actions/profilesettings.php:95 ../actions/register.php:76 -#: actions/profilesettings.php:210 actions/register.php:83 -#: actions/editgroup.php:192 actions/newgroup.php:143 -#: actions/profilesettings.php:199 actions/register.php:168 +msgstr "Site personnel" + +#: ../actions/profilesettings.php:95 +#: ../actions/register.php:76 +#: actions/profilesettings.php:210 +#: actions/register.php:83 +#: actions/editgroup.php:192 +#: actions/newgroup.php:143 +#: actions/profilesettings.php:199 +#: actions/register.php:168 msgid "Homepage is not a valid URL." -msgstr "Page d'accueil non valide." +msgstr "L'adresse du site personnel n'est pas un URL valide. " -#: ../actions/emailsettings.php:91 actions/emailsettings.php:98 +#: ../actions/emailsettings.php:91 +#: actions/emailsettings.php:98 #: actions/emailsettings.php:173 msgid "I want to post notices by email." -msgstr "Je veux envoyer des avis par email." +msgstr "Je veux envoyer mes statuts par courriel." -#: ../lib/settingsaction.php:102 lib/settingsaction.php:96 +#: ../lib/settingsaction.php:102 +#: lib/settingsaction.php:96 #: lib/connectsettingsaction.php:104 msgid "IM" msgstr "IM" -#: ../actions/imsettings.php:60 actions/imsettings.php:61 +#: ../actions/imsettings.php:60 +#: actions/imsettings.php:61 #: actions/imsettings.php:118 msgid "IM Address" -msgstr "Adresse de messagerie instantannée" +msgstr "Adresse de messagerie instantanée" -#: ../actions/imsettings.php:33 actions/imsettings.php:33 +#: ../actions/imsettings.php:33 +#: actions/imsettings.php:33 #: actions/imsettings.php:59 msgid "IM Settings" msgstr "Paramètres de messagerie instantanée" -#: ../actions/finishopenidlogin.php:88 actions/finishopenidlogin.php:94 +#: ../actions/finishopenidlogin.php:88 +#: actions/finishopenidlogin.php:94 #: actions/finishopenidlogin.php:116 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your OpenID." -msgstr "" -"Si vous avez déjà un compte, connectez-vous avec votre nom d'utilisateur et " -"votre mot de passe pour les relier à votre OpenID." +msgid "If you already have an account, login with your username and password to connect it to your OpenID." +msgstr "Si vous avez déjà un compte, ouvrez une session avec votre identifiant et votre mot de passe pour les relier à votre OpenID." #: ../actions/openidsettings.php:45 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Si vous voulez ajouter un OpenID à votre compte, entrez-le dans le champ ci-" -"dessous et cliquez sur « Ajouter »." +msgid "If you want to add an OpenID to your account, enter it in the box below and click \"Add\"." +msgstr "Pour ajouter un OpenID à votre compte, entrez-le dans le champ ci-dessous et cliquez sur « Ajouter »." #: ../actions/recoverpassword.php:137 -msgid "" -"If you've forgotten or lost your password, you can get a new one sent to the " -"email address you have stored in your account." -msgstr "" -"Si vous avez oublié ou perdu votre mot de passe, vous pouvez vous en faire " -"envoyé un nouveau sur l'email correspondant à votre compte." - -#: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 -#: actions/emailsettings.php:68 actions/smssettings.php:76 -#: actions/emailsettings.php:127 actions/smssettings.php:140 +msgid "If you've forgotten or lost your password, you can get a new one sent to the email address you have stored in your account." +msgstr "Si vous avez oublié ou perdu votre mot de passe, vous pouvez en recevoir un nouveau à l'adresse courriel indiquée dans votre compte. " + +#: ../actions/emailsettings.php:67 +#: ../actions/smssettings.php:76 +#: actions/emailsettings.php:68 +#: actions/smssettings.php:76 +#: actions/emailsettings.php:127 +#: actions/smssettings.php:140 msgid "Incoming email" -msgstr "" +msgstr "Courriel entrant" -#: ../actions/emailsettings.php:283 actions/emailsettings.php:301 +#: ../actions/emailsettings.php:283 +#: actions/emailsettings.php:301 #: actions/emailsettings.php:443 -#, fuzzy msgid "Incoming email address removed." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"L'adresse a été enlevée.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "L'adresse de courriel entrant a été supprimée." -#: ../actions/password.php:69 actions/profilesettings.php:388 +#: ../actions/password.php:69 +#: actions/profilesettings.php:388 #: actions/passwordsettings.php:153 msgid "Incorrect old password" msgstr "Ancien mot de passe incorrect" -#: ../actions/login.php:67 actions/login.php:67 actions/facebookhome.php:131 +#: ../actions/login.php:67 +#: actions/login.php:67 +#: actions/facebookhome.php:131 #: actions/login.php:132 msgid "Incorrect username or password." -msgstr "Nom d'utilisateur ou mot de passe incorrect." +msgstr "Identifiant ou mot de passe incorrect." #: ../actions/recoverpassword.php:265 -msgid "" -"Instructions for recovering your password have been sent to the email " -"address registered to your account." -msgstr "" -"Les instructions pour récupérer votre mot de passe viennent d'être envoyé " -"par email à l'adresse email indiquée dans votre compte." +msgid "Instructions for recovering your password have been sent to the email address registered to your account." +msgstr "Les instructions pour récupérer votre mot de passe ont été envoyées à l'adresse courriel indiquée dans votre compte." -#: ../actions/updateprofile.php:114 actions/updateprofile.php:115 +#: ../actions/updateprofile.php:114 +#: actions/updateprofile.php:115 #: actions/updateprofile.php:118 #, php-format msgid "Invalid avatar URL '%s'" -msgstr "URL de l'avatar invalide: '%s'" +msgstr "URL de l'avatar invalide : '%s'" -#: ../actions/invite.php:55 actions/invite.php:62 actions/invite.php:70 +#: ../actions/invite.php:55 +#: actions/invite.php:62 +#: actions/invite.php:70 #, php-format msgid "Invalid email address: %s" -msgstr "Adresse email invalide: %s" +msgstr "Adresse courriel invalide : %s" -#: ../actions/updateprofile.php:98 actions/updateprofile.php:99 +#: ../actions/updateprofile.php:98 +#: actions/updateprofile.php:99 #: actions/updateprofile.php:102 #, php-format msgid "Invalid homepage '%s'" -msgstr "Page d'accueil invalide '%s'" +msgstr "Site personnel invalide '%s'" -#: ../actions/updateprofile.php:82 actions/updateprofile.php:83 +#: ../actions/updateprofile.php:82 +#: actions/updateprofile.php:83 #: actions/updateprofile.php:86 #, php-format msgid "Invalid license URL '%s'" msgstr "URL de la licence invalide '%s'" -#: ../actions/postnotice.php:61 actions/postnotice.php:62 +#: ../actions/postnotice.php:61 +#: actions/postnotice.php:62 #: actions/postnotice.php:66 msgid "Invalid notice content" -msgstr "Contenu du message invalide" +msgstr "Contenu invalide" -#: ../actions/postnotice.php:67 actions/postnotice.php:68 +#: ../actions/postnotice.php:67 +#: actions/postnotice.php:68 #: actions/postnotice.php:72 msgid "Invalid notice uri" -msgstr "URI du message invalide" +msgstr "URI du statut invalide" -#: ../actions/postnotice.php:72 actions/postnotice.php:73 +#: ../actions/postnotice.php:72 +#: actions/postnotice.php:73 #: actions/postnotice.php:77 msgid "Invalid notice url" -msgstr "URL du message invalide" +msgstr "URL du statut invalide" -#: ../actions/updateprofile.php:87 actions/updateprofile.php:88 +#: ../actions/updateprofile.php:87 +#: actions/updateprofile.php:88 #: actions/updateprofile.php:91 #, php-format msgid "Invalid profile URL '%s'." msgstr "URL du profil invalide '%s'." -#: ../actions/remotesubscribe.php:96 actions/remotesubscribe.php:105 +#: ../actions/remotesubscribe.php:96 +#: actions/remotesubscribe.php:105 #: actions/remotesubscribe.php:135 msgid "Invalid profile URL (bad format)" msgstr "URL du profil invalide (mauvais format)" #: ../actions/finishremotesubscribe.php:77 -#: actions/finishremotesubscribe.php:79 actions/finishremotesubscribe.php:80 +#: actions/finishremotesubscribe.php:79 +#: actions/finishremotesubscribe.php:80 msgid "Invalid profile URL returned by server." -msgstr "URL du profil retourné par le serveur invalide." +msgstr "URL du profil invalide, retourné par le serveur." -#: ../actions/avatarbynickname.php:37 actions/avatarbynickname.php:37 +#: ../actions/avatarbynickname.php:37 +#: actions/avatarbynickname.php:37 #: actions/avatarbynickname.php:69 msgid "Invalid size." -msgstr "Taille invalide." - -#: ../actions/finishopenidlogin.php:235 ../actions/register.php:93 -#: ../actions/register.php:111 actions/finishopenidlogin.php:241 -#: actions/register.php:103 actions/register.php:121 -#: actions/finishopenidlogin.php:279 actions/register.php:193 +msgstr "Taille incorrecte." + +#: ../actions/finishopenidlogin.php:235 +#: ../actions/register.php:93 +#: ../actions/register.php:111 +#: actions/finishopenidlogin.php:241 +#: actions/register.php:103 +#: actions/register.php:121 +#: actions/finishopenidlogin.php:279 +#: actions/register.php:193 #: actions/register.php:211 msgid "Invalid username or password." -msgstr "Nom d'utilisateur ou mot de passe invalide." +msgstr "Identifiant ou mot de passe incorrect." -#: ../actions/invite.php:79 actions/invite.php:86 actions/invite.php:102 +#: ../actions/invite.php:79 +#: actions/invite.php:86 +#: actions/invite.php:102 msgid "Invitation(s) sent" msgstr "Invitation(s) envoyée(s)" -#: ../actions/invite.php:97 actions/invite.php:104 actions/invite.php:136 +#: ../actions/invite.php:97 +#: actions/invite.php:104 +#: actions/invite.php:136 msgid "Invitation(s) sent to the following people:" -msgstr "Invitation(s) envoyée(s) aux personnes suivantes:" +msgstr "Invitation(s) envoyée(s) aux personnes suivantes :" -#: ../lib/util.php:306 lib/util.php:322 lib/facebookaction.php:207 +#: ../lib/util.php:306 +#: lib/util.php:322 +#: lib/facebookaction.php:207 #: lib/subgroupnav.php:103 msgid "Invite" msgstr "Inviter" -#: ../actions/invite.php:123 actions/invite.php:130 actions/invite.php:104 +#: ../actions/invite.php:123 +#: actions/invite.php:130 +#: actions/invite.php:104 msgid "Invite new users" -msgstr "Inviter de nouveau utilisateurs" +msgstr "Inviter de nouveaux utilisateurs" -#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 -#, fuzzy, php-format -msgid "" -"It runs the [Laconica](http://laconi.ca/) microblogging software, version %" -"s, available under the [GNU Affero General Public License](http://www.fsf." -"org/licensing/licenses/agpl-3.0.html)." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Il utilise le logiciel de microblog [Laconica](http://laconi.ca/), version %" -"s, disponible sous la licence [GNU Affero General Public License] (http://" -"www.fsf.org/licensing/licenses/agpl-3.0.html).\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +#: ../lib/util.php:261 +#: lib/util.php:277 +#: lib/action.php:609 +#, php-format +msgid "It runs the [Laconica](http://laconi.ca/) microblogging software, version %s, available under the [GNU Affero General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." +msgstr "Il utilise le logiciel de micro-blogging [Laconica](http://laconi.ca/), version %s, disponible sous la licence [GNU Affero General Public License] (http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: ../actions/imsettings.php:173 actions/imsettings.php:181 +#: ../actions/imsettings.php:173 +#: actions/imsettings.php:181 #: actions/imsettings.php:296 msgid "Jabber ID already belongs to another user." -msgstr "ID Jabber déjà utilisé par un autre utilisateur." +msgstr "Identifiant Jabber déjà utilisé par un autre utilisateur." -#: ../actions/imsettings.php:62 actions/imsettings.php:63 +#: ../actions/imsettings.php:62 +#: actions/imsettings.php:63 #, php-format -msgid "" -"Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " -"add %s to your buddy list in your IM client or on GTalk." -msgstr "" -"Adresse Jabber ou GTAlk (ex: nom@mondomaine.fr). Tout d'abord, ajouter bien %" -"s à votre liste d'amis dans votre client de messagerie instantanée ou dans " -"GTalk." +msgid "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to add %s to your buddy list in your IM client or on GTalk." +msgstr "Adresse Jabber ou GTalk (ex : nom@mondomaine.com). Assurez-vous d'ajouter %s à votre liste d'amis dans votre logiciel de messagerie instantanée ou dans GTalk." -#: ../actions/profilesettings.php:57 actions/profilesettings.php:90 +#: ../actions/profilesettings.php:57 +#: actions/profilesettings.php:90 #: actions/profilesettings.php:128 msgid "Language" msgstr "Langue" -#: ../actions/profilesettings.php:113 actions/profilesettings.php:228 +#: ../actions/profilesettings.php:113 +#: actions/profilesettings.php:228 #: actions/profilesettings.php:217 -#, fuzzy msgid "Language is too long (max 50 chars)." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"La langue est trop longue (255 caractères maximum).\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" - -#: ../actions/profilesettings.php:52 ../actions/register.php:173 -#: actions/profilesettings.php:85 actions/register.php:187 -#: actions/profilesettings.php:117 actions/register.php:408 -#: actions/showgroup.php:244 actions/showstream.php:271 -#: actions/tagother.php:113 lib/groupeditform.php:156 lib/grouplist.php:126 +msgstr "La langue est trop longue (255 caractères maximum)." + +#: ../actions/profilesettings.php:52 +#: ../actions/register.php:173 +#: actions/profilesettings.php:85 +#: actions/register.php:187 +#: actions/profilesettings.php:117 +#: actions/register.php:408 +#: actions/showgroup.php:244 +#: actions/showstream.php:271 +#: actions/tagother.php:113 +#: lib/groupeditform.php:156 +#: lib/grouplist.php:126 #: lib/profilelist.php:125 msgid "Location" -msgstr "Localisation" - -#: ../actions/profilesettings.php:104 ../actions/register.php:85 -#: ../actions/updateprofile.php:108 actions/profilesettings.php:219 -#: actions/register.php:92 actions/updateprofile.php:109 -#: actions/editgroup.php:201 actions/newgroup.php:152 -#: actions/profilesettings.php:208 actions/register.php:177 +msgstr "Emplacement" + +#: ../actions/profilesettings.php:104 +#: ../actions/register.php:85 +#: ../actions/updateprofile.php:108 +#: actions/profilesettings.php:219 +#: actions/register.php:92 +#: actions/updateprofile.php:109 +#: actions/editgroup.php:201 +#: actions/newgroup.php:152 +#: actions/profilesettings.php:208 +#: actions/register.php:177 #: actions/updateprofile.php:112 msgid "Location is too long (max 255 chars)." -msgstr "Localisation trop longue (maximum de 255 caractères)." - -#: ../actions/login.php:97 ../actions/login.php:106 -#: ../actions/openidlogin.php:68 ../lib/util.php:310 actions/login.php:97 -#: actions/login.php:106 actions/openidlogin.php:77 lib/util.php:326 -#: actions/facebooklogin.php:93 actions/login.php:186 actions/login.php:239 -#: actions/openidlogin.php:112 lib/action.php:335 lib/facebookaction.php:288 -#: lib/facebookaction.php:315 lib/logingroupnav.php:75 +msgstr "Emplacement trop long (maximum de 255 caractères)." + +#: ../actions/login.php:97 +#: ../actions/login.php:106 +#: ../actions/openidlogin.php:68 +#: ../lib/util.php:310 +#: actions/login.php:97 +#: actions/login.php:106 +#: actions/openidlogin.php:77 +#: lib/util.php:326 +#: actions/facebooklogin.php:93 +#: actions/login.php:186 +#: actions/login.php:239 +#: actions/openidlogin.php:112 +#: lib/action.php:335 +#: lib/facebookaction.php:288 +#: lib/facebookaction.php:315 +#: lib/logingroupnav.php:75 #, php-format msgid "Login" -msgstr "Se connecter" +msgstr "Ouvrir une session" -#: ../actions/openidlogin.php:44 actions/openidlogin.php:52 +#: ../actions/openidlogin.php:44 +#: actions/openidlogin.php:52 #: actions/openidlogin.php:62 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." -msgstr "Se connecter avec un compte [OpenID](%%doc.openid%%)." +msgstr "Ouvrir une session avec un compte [OpenID](%%doc.openid%%)." #: ../actions/login.php:126 #, php-format -msgid "" -"Login with your username and password. Don't have a username yet? [Register]" -"(%%action.register%%) a new account, or try [OpenID](%%action.openidlogin%" -"%). " -msgstr "" -"Se connecter avec un nom d'utilisateur et un mot de passe. Pas encore " -"inscrit ? [Register](%%action.register%%) un nouveau compte, ou essayer " -"[OpenID](%%action.openidlogin%%)." +msgid "Login with your username and password. Don't have a username yet? [Register](%%action.register%%) a new account, or try [OpenID](%%action.openidlogin%%). " +msgstr "Ouvrez une session avec votre identifiant et votre mot de passe, ou [créez un compte](%%action.register%%), ou utilisez un identifiant [OpenID](%%action.openidlogin%%)." -#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 +#: ../lib/util.php:308 +#: lib/util.php:324 +#: lib/action.php:332 msgid "Logout" -msgstr "Déconnexion" +msgstr "Fermeture de session" -#: ../actions/register.php:166 actions/register.php:180 +#: ../actions/register.php:166 +#: actions/register.php:180 #: actions/register.php:393 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "Nom plus long, votre \"vrai\" nom de préférence" -#: ../actions/login.php:110 actions/login.php:110 actions/login.php:245 +#: ../actions/login.php:110 +#: actions/login.php:110 +#: actions/login.php:245 #: lib/facebookaction.php:320 msgid "Lost or forgotten password?" -msgstr "Mot de passe perdu ou oublié?" +msgstr "Mot de passe perdu ?" -#: ../actions/emailsettings.php:80 ../actions/smssettings.php:89 -#: actions/emailsettings.php:81 actions/smssettings.php:89 +#: ../actions/emailsettings.php:80 +#: ../actions/smssettings.php:89 +#: actions/emailsettings.php:81 +#: actions/smssettings.php:89 msgid "Make a new email address for posting to; cancels the old one." -msgstr "" +msgstr "Nouvelle adresse courriel pour poster ; annule l'ancienne." -#: ../actions/emailsettings.php:27 actions/emailsettings.php:27 +#: ../actions/emailsettings.php:27 +#: actions/emailsettings.php:27 #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "Configurez les courriels que vous souhaitez recevoir de %%site.name%%." -#: ../actions/showstream.php:300 actions/showstream.php:315 +#: ../actions/showstream.php:300 +#: actions/showstream.php:315 #: actions/showstream.php:480 msgid "Member since" msgstr "Membre depuis" -#: ../actions/userrss.php:70 actions/userrss.php:67 actions/userrss.php:72 +#: ../actions/userrss.php:70 +#: actions/userrss.php:67 +#: actions/userrss.php:72 #, php-format msgid "Microblog by %s" -msgstr "Microblog par %s" +msgstr "Micro-blogging par %s" #: ../actions/smssettings.php:304 #, php-format -msgid "" -"Mobile carrier for your phone. If you know a carrier that accepts SMS over " -"email but isn't listed here, send email to let us know at %s." -msgstr "" +msgid "Mobile carrier for your phone. If you know a carrier that accepts SMS over email but isn't listed here, send email to let us know at %s." +msgstr "Votre fournisseur de téléphonie mobile. Si vous connaissez un fournisseur qui accepte la réception de SMS par courriel mais qui n'est pas listé ici, écrivez-nous à %s." -#: ../actions/finishopenidlogin.php:79 ../actions/register.php:188 -#: actions/finishopenidlogin.php:85 actions/register.php:202 -#: actions/finishopenidlogin.php:107 actions/register.php:429 +#: ../actions/finishopenidlogin.php:79 +#: ../actions/register.php:188 +#: actions/finishopenidlogin.php:85 +#: actions/register.php:202 +#: actions/finishopenidlogin.php:107 +#: actions/register.php:429 msgid "My text and files are available under " msgstr "Mes textes et mes fichiers sont disponibles sous" -#: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 -#: actions/emailsettings.php:83 actions/smssettings.php:91 -#: actions/emailsettings.php:142 actions/smssettings.php:152 +#: ../actions/emailsettings.php:82 +#: ../actions/smssettings.php:91 +#: actions/emailsettings.php:83 +#: actions/smssettings.php:91 +#: actions/emailsettings.php:142 +#: actions/smssettings.php:152 msgid "New" msgstr "Nouveau" -#: ../lib/mail.php:144 lib/mail.php:144 lib/mail.php:286 -#, fuzzy, php-format +#: ../lib/mail.php:144 +#: lib/mail.php:144 +#: lib/mail.php:286 +#, php-format msgid "New email address for posting to %s" -msgstr "Nouvelle adresse email pour envoyer à %s" +msgstr "Nouvelle adresse courriel pour poster dans %s" -#: ../actions/emailsettings.php:297 actions/emailsettings.php:315 +#: ../actions/emailsettings.php:297 +#: actions/emailsettings.php:315 #: actions/emailsettings.php:465 -#, fuzzy msgid "New incoming email address added." -msgstr "Nouvelle adresse email ajoutée." +msgstr "Nouvelle adresse courriel ajoutée." -#: ../actions/finishopenidlogin.php:71 actions/finishopenidlogin.php:77 +#: ../actions/finishopenidlogin.php:71 +#: actions/finishopenidlogin.php:77 #: actions/finishopenidlogin.php:99 msgid "New nickname" -msgstr "Nouveau surnom" +msgstr "Nouveau pseudo" -#: ../actions/newnotice.php:87 actions/newnotice.php:96 +#: ../actions/newnotice.php:87 +#: actions/newnotice.php:96 #: actions/newnotice.php:68 msgid "New notice" -msgstr "Nouveau message" - -#: ../actions/password.php:41 ../actions/recoverpassword.php:179 -#: actions/profilesettings.php:180 actions/recoverpassword.php:185 -#: actions/passwordsettings.php:101 actions/recoverpassword.php:219 +msgstr "Nouveau statut" + +#: ../actions/password.php:41 +#: ../actions/recoverpassword.php:179 +#: actions/profilesettings.php:180 +#: actions/recoverpassword.php:185 +#: actions/passwordsettings.php:101 +#: actions/recoverpassword.php:219 msgid "New password" msgstr "Nouveau mot de passe" #: ../actions/recoverpassword.php:314 msgid "New password successfully saved. You are now logged in." -msgstr "Nouveau mot de passe créé avec succès. Vous êtes maintenant connecté." - -#: ../actions/login.php:101 ../actions/profilesettings.php:41 -#: ../actions/register.php:151 actions/login.php:101 -#: actions/profilesettings.php:74 actions/register.php:165 -#: actions/login.php:228 actions/profilesettings.php:98 -#: actions/register.php:367 actions/showgroup.php:224 -#: actions/showstream.php:251 actions/tagother.php:95 -#: lib/facebookaction.php:308 lib/groupeditform.php:137 +msgstr "Nouveau mot de passe créé avec succès. Votre session est maintenant ouverte." + +#: ../actions/login.php:101 +#: ../actions/profilesettings.php:41 +#: ../actions/register.php:151 +#: actions/login.php:101 +#: actions/profilesettings.php:74 +#: actions/register.php:165 +#: actions/login.php:228 +#: actions/profilesettings.php:98 +#: actions/register.php:367 +#: actions/showgroup.php:224 +#: actions/showstream.php:251 +#: actions/tagother.php:95 +#: lib/facebookaction.php:308 +#: lib/groupeditform.php:137 msgid "Nickname" msgstr "Pseudo" -#: ../actions/finishopenidlogin.php:175 ../actions/profilesettings.php:110 -#: ../actions/register.php:69 actions/finishopenidlogin.php:181 -#: actions/profilesettings.php:225 actions/register.php:76 -#: actions/editgroup.php:183 actions/finishopenidlogin.php:215 -#: actions/newgroup.php:134 actions/profilesettings.php:214 +#: ../actions/finishopenidlogin.php:175 +#: ../actions/profilesettings.php:110 +#: ../actions/register.php:69 +#: actions/finishopenidlogin.php:181 +#: actions/profilesettings.php:225 +#: actions/register.php:76 +#: actions/editgroup.php:183 +#: actions/finishopenidlogin.php:215 +#: actions/newgroup.php:134 +#: actions/profilesettings.php:214 #: actions/register.php:159 msgid "Nickname already in use. Try another one." -msgstr "Pseudo déjà utilisé. Essayer en un autre" - -#: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:88 -#: ../actions/register.php:67 ../actions/updateprofile.php:77 -#: actions/finishopenidlogin.php:171 actions/profilesettings.php:203 -#: actions/register.php:74 actions/updateprofile.php:78 -#: actions/finishopenidlogin.php:205 actions/profilesettings.php:192 +msgstr "Pseudo déjà utilisé. Essayez-en un autre." + +#: ../actions/finishopenidlogin.php:165 +#: ../actions/profilesettings.php:88 +#: ../actions/register.php:67 +#: ../actions/updateprofile.php:77 +#: actions/finishopenidlogin.php:171 +#: actions/profilesettings.php:203 +#: actions/register.php:74 +#: actions/updateprofile.php:78 +#: actions/finishopenidlogin.php:205 +#: actions/profilesettings.php:192 #: actions/updateprofile.php:81 msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Les pseudos ne peuvent contenir que des caractères minuscules et des nombres " -"et aucuns espaces." +msgstr "Les pseudos ne peuvent contenir que des caractères minuscules et des chiffres, sans espaces." -#: ../actions/finishopenidlogin.php:170 actions/finishopenidlogin.php:176 +#: ../actions/finishopenidlogin.php:170 +#: actions/finishopenidlogin.php:176 #: actions/finishopenidlogin.php:210 msgid "Nickname not allowed." -msgstr "Pseudo non-autorisé." +msgstr "Pseudo non autorisé." -#: ../actions/remotesubscribe.php:72 actions/remotesubscribe.php:81 +#: ../actions/remotesubscribe.php:72 +#: actions/remotesubscribe.php:81 #: actions/remotesubscribe.php:106 msgid "Nickname of the user you want to follow" -msgstr "Pseudo de l'utilisateur à surveiller" +msgstr "Pseudo de l'utilisateur que vous voulez suivre" -#: ../actions/recoverpassword.php:162 actions/recoverpassword.php:167 +#: ../actions/recoverpassword.php:162 +#: actions/recoverpassword.php:167 #: actions/recoverpassword.php:186 msgid "Nickname or email" -msgstr "Pseudo ou email" +msgstr "Pseudo ou courriel" -#: ../actions/deletenotice.php:59 actions/deletenotice.php:60 -#: actions/block.php:147 actions/deletenotice.php:118 +#: ../actions/deletenotice.php:59 +#: actions/deletenotice.php:60 +#: actions/block.php:147 +#: actions/deletenotice.php:118 msgid "No" msgstr "Non" -#: ../actions/imsettings.php:156 actions/imsettings.php:164 +#: ../actions/imsettings.php:156 +#: actions/imsettings.php:164 #: actions/imsettings.php:279 msgid "No Jabber ID." -msgstr "Pas d'ID Jabber" +msgstr "Aucun identifiant Jabber" -#: ../actions/userauthorization.php:129 actions/userauthorization.php:136 +#: ../actions/userauthorization.php:129 +#: actions/userauthorization.php:136 #: actions/userauthorization.php:153 msgid "No authorization request!" -msgstr "" +msgstr "Pas de requête d'autorisation !" -#: ../actions/smssettings.php:181 actions/smssettings.php:189 +#: ../actions/smssettings.php:181 +#: actions/smssettings.php:189 #: actions/smssettings.php:299 msgid "No carrier selected." -msgstr "" +msgstr "Aucun fournisseur sélectionné." -#: ../actions/smssettings.php:316 actions/smssettings.php:324 +#: ../actions/smssettings.php:316 +#: actions/smssettings.php:324 #: actions/smssettings.php:486 -#, fuzzy msgid "No code entered" -msgstr "Pas de code entré" +msgstr "Aucun code entré" -#: ../actions/confirmaddress.php:33 actions/confirmaddress.php:33 +#: ../actions/confirmaddress.php:33 +#: actions/confirmaddress.php:33 #: actions/confirmaddress.php:75 msgid "No confirmation code." -msgstr "Pas de code de confirmation." - -#: ../actions/newnotice.php:44 actions/newmessage.php:53 -#: actions/newnotice.php:44 classes/Command.php:197 actions/newmessage.php:109 -#: actions/newnotice.php:126 classes/Command.php:223 +msgstr "Aucun code de confirmation." + +#: ../actions/newnotice.php:44 +#: actions/newmessage.php:53 +#: actions/newnotice.php:44 +#: classes/Command.php:197 +#: actions/newmessage.php:109 +#: actions/newnotice.php:126 +#: classes/Command.php:223 msgid "No content!" -msgstr "Pas de contenu!" +msgstr "Aucun contenu !" -#: ../actions/emailsettings.php:174 actions/emailsettings.php:192 +#: ../actions/emailsettings.php:174 +#: actions/emailsettings.php:192 #: actions/emailsettings.php:304 -#, fuzzy msgid "No email address." -msgstr "Pas d'adresse email." +msgstr "Aucune adresse courriel." -#: ../actions/userbyid.php:32 actions/userbyid.php:32 actions/userbyid.php:70 +#: ../actions/userbyid.php:32 +#: actions/userbyid.php:32 +#: actions/userbyid.php:70 msgid "No id." -msgstr "Pas d'id." +msgstr "Aucun identifiant." -#: ../actions/emailsettings.php:271 actions/emailsettings.php:289 +#: ../actions/emailsettings.php:271 +#: actions/emailsettings.php:289 #: actions/emailsettings.php:430 -#, fuzzy msgid "No incoming email address." -msgstr "Pas d'adresse email." +msgstr "Aucune adresse pour le courriel entrant." #: ../actions/finishremotesubscribe.php:65 -#: actions/finishremotesubscribe.php:67 actions/finishremotesubscribe.php:68 +#: actions/finishremotesubscribe.php:67 +#: actions/finishremotesubscribe.php:68 msgid "No nickname provided by remote server." -msgstr "Pas de surnom proposé par le serveur distant." +msgstr "Aucun pseudo proposé par le serveur distant." -#: ../actions/avatarbynickname.php:27 actions/avatarbynickname.php:27 -#: actions/avatarbynickname.php:59 actions/leavegroup.php:81 +#: ../actions/avatarbynickname.php:27 +#: actions/avatarbynickname.php:27 +#: actions/avatarbynickname.php:59 +#: actions/leavegroup.php:81 msgid "No nickname." -msgstr "Pas de surnom." - -#: ../actions/emailsettings.php:222 ../actions/imsettings.php:206 -#: ../actions/smssettings.php:229 actions/emailsettings.php:240 -#: actions/imsettings.php:214 actions/smssettings.php:237 -#: actions/emailsettings.php:363 actions/imsettings.php:345 +msgstr "Aucun pseudo." + +#: ../actions/emailsettings.php:222 +#: ../actions/imsettings.php:206 +#: ../actions/smssettings.php:229 +#: actions/emailsettings.php:240 +#: actions/imsettings.php:214 +#: actions/smssettings.php:237 +#: actions/emailsettings.php:363 +#: actions/imsettings.php:345 #: actions/smssettings.php:358 msgid "No pending confirmation to cancel." -msgstr "Aucune confirmation en attente pour l'annulation." +msgstr "Aucune confirmation à annuler." -#: ../actions/smssettings.php:176 actions/smssettings.php:184 +#: ../actions/smssettings.php:176 +#: actions/smssettings.php:184 #: actions/smssettings.php:294 -#, fuzzy msgid "No phone number." -msgstr "Pas de numéro de téléphone." +msgstr "Aucun numéro de téléphone." #: ../actions/finishremotesubscribe.php:72 -#: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75 +#: actions/finishremotesubscribe.php:74 +#: actions/finishremotesubscribe.php:75 msgid "No profile URL returned by server." -msgstr "Pas d'URL de profil retourné par le serveur." +msgstr "Aucun URL de profil renvoyé par le serveur." -#: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232 +#: ../actions/recoverpassword.php:226 +#: actions/recoverpassword.php:232 #: actions/recoverpassword.php:266 msgid "No registered email address for that user." -msgstr "Pas d'email enregistré pour cet utilisateur." +msgstr "Aucune adresse courriel enregistrée pour cet utilisateur." -#: ../actions/userauthorization.php:49 actions/userauthorization.php:55 +#: ../actions/userauthorization.php:49 +#: actions/userauthorization.php:55 #: actions/userauthorization.php:57 msgid "No request found!" -msgstr "Requête non trouvée !" - -#: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64 -#: actions/noticesearch.php:69 actions/peoplesearch.php:69 -#: actions/groupsearch.php:81 actions/noticesearch.php:104 +msgstr "Aucune requête trouvée !" + +#: ../actions/noticesearch.php:64 +#: ../actions/peoplesearch.php:64 +#: actions/noticesearch.php:69 +#: actions/peoplesearch.php:69 +#: actions/groupsearch.php:81 +#: actions/noticesearch.php:104 #: actions/peoplesearch.php:85 msgid "No results" -msgstr "Pas de résultats" +msgstr "Aucun résultat " -#: ../actions/avatarbynickname.php:32 actions/avatarbynickname.php:32 +#: ../actions/avatarbynickname.php:32 +#: actions/avatarbynickname.php:32 #: actions/avatarbynickname.php:64 msgid "No size." -msgstr "Pas de taille." +msgstr "Aucune taille" -#: ../actions/twitapistatuses.php:595 actions/twitapifavorites.php:136 -#: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112 +#: ../actions/twitapistatuses.php:595 +#: actions/twitapifavorites.php:136 +#: actions/twitapistatuses.php:520 +#: actions/twitapifavorites.php:112 #: actions/twitapistatuses.php:446 msgid "No status found with that ID." -msgstr "Pas de status trouvés avec cet ID." +msgstr "Aucun statut trouvé avec cet identifiant. " -#: ../actions/twitapistatuses.php:555 actions/twitapistatuses.php:478 +#: ../actions/twitapistatuses.php:555 +#: actions/twitapistatuses.php:478 #: actions/twitapistatuses.php:418 msgid "No status with that ID found." -msgstr "Pas de status avec cet ID trouvé." +msgstr "Aucun statut trouvé avec cet identifiant." -#: ../actions/openidsettings.php:135 actions/openidsettings.php:144 +#: ../actions/openidsettings.php:135 +#: actions/openidsettings.php:144 #: actions/openidsettings.php:222 msgid "No such OpenID." -msgstr "Il n'y a pas cet OpenID." +msgstr "OpenID non trouvé." -#: ../actions/doc.php:29 actions/doc.php:29 actions/doc.php:64 +#: ../actions/doc.php:29 +#: actions/doc.php:29 +#: actions/doc.php:64 msgid "No such document." -msgstr "Il n'y a pas ce document." - -#: ../actions/shownotice.php:32 ../actions/shownotice.php:83 -#: ../lib/deleteaction.php:30 actions/shownotice.php:32 -#: actions/shownotice.php:83 lib/deleteaction.php:30 actions/shownotice.php:87 +msgstr "Document non trouvé. " + +#: ../actions/shownotice.php:32 +#: ../actions/shownotice.php:83 +#: ../lib/deleteaction.php:30 +#: actions/shownotice.php:32 +#: actions/shownotice.php:83 +#: lib/deleteaction.php:30 +#: actions/shownotice.php:87 #: lib/deleteaction.php:51 msgid "No such notice." -msgstr "Il n'y a pas cet avis." +msgstr "Statut non trouvé. " -#: ../actions/recoverpassword.php:56 actions/recoverpassword.php:56 +#: ../actions/recoverpassword.php:56 +#: actions/recoverpassword.php:56 #: actions/recoverpassword.php:62 msgid "No such recovery code." -msgstr "Il n'y a pas ce code de récupération." +msgstr "Code de récupération non trouvé. " -#: ../actions/postnotice.php:56 actions/postnotice.php:57 +#: ../actions/postnotice.php:56 +#: actions/postnotice.php:57 #: actions/postnotice.php:60 msgid "No such subscription" -msgstr "Il n'y a pas cette inscription" - -#: ../actions/all.php:34 ../actions/allrss.php:35 -#: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40 -#: ../actions/remotesubscribe.php:84 ../actions/remotesubscribe.php:91 -#: ../actions/replies.php:57 ../actions/repliesrss.php:35 -#: ../actions/showstream.php:110 ../actions/userbyid.php:36 -#: ../actions/userrss.php:35 ../actions/xrds.php:35 ../lib/gallery.php:57 -#: ../lib/subs.php:33 ../lib/subs.php:82 actions/all.php:34 -#: actions/allrss.php:35 actions/avatarbynickname.php:43 -#: actions/favoritesrss.php:35 actions/foaf.php:40 actions/ical.php:31 -#: actions/remotesubscribe.php:93 actions/remotesubscribe.php:100 -#: actions/replies.php:57 actions/repliesrss.php:35 -#: actions/showfavorites.php:34 actions/showstream.php:110 -#: actions/userbyid.php:36 actions/userrss.php:35 actions/xrds.php:35 -#: classes/Command.php:120 classes/Command.php:162 classes/Command.php:203 -#: classes/Command.php:237 lib/gallery.php:62 lib/mailbox.php:36 -#: lib/subs.php:33 lib/subs.php:95 actions/all.php:53 actions/allrss.php:66 -#: actions/avatarbynickname.php:75 actions/favoritesrss.php:64 -#: actions/foaf.php:41 actions/remotesubscribe.php:123 -#: actions/remotesubscribe.php:130 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/showfavorites.php:105 -#: actions/showstream.php:100 actions/userbyid.php:74 -#: actions/usergroups.php:92 actions/userrss.php:38 actions/xrds.php:73 -#: classes/Command.php:140 classes/Command.php:185 classes/Command.php:234 -#: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82 -#: lib/subs.php:34 lib/subs.php:109 +msgstr "Abonnement non trouvé " + +#: ../actions/all.php:34 +#: ../actions/allrss.php:35 +#: ../actions/avatarbynickname.php:43 +#: ../actions/foaf.php:40 +#: ../actions/remotesubscribe.php:84 +#: ../actions/remotesubscribe.php:91 +#: ../actions/replies.php:57 +#: ../actions/repliesrss.php:35 +#: ../actions/showstream.php:110 +#: ../actions/userbyid.php:36 +#: ../actions/userrss.php:35 +#: ../actions/xrds.php:35 +#: ../lib/gallery.php:57 +#: ../lib/subs.php:33 +#: ../lib/subs.php:82 +#: actions/all.php:34 +#: actions/allrss.php:35 +#: actions/avatarbynickname.php:43 +#: actions/favoritesrss.php:35 +#: actions/foaf.php:40 +#: actions/ical.php:31 +#: actions/remotesubscribe.php:93 +#: actions/remotesubscribe.php:100 +#: actions/replies.php:57 +#: actions/repliesrss.php:35 +#: actions/showfavorites.php:34 +#: actions/showstream.php:110 +#: actions/userbyid.php:36 +#: actions/userrss.php:35 +#: actions/xrds.php:35 +#: classes/Command.php:120 +#: classes/Command.php:162 +#: classes/Command.php:203 +#: classes/Command.php:237 +#: lib/gallery.php:62 +#: lib/mailbox.php:36 +#: lib/subs.php:33 +#: lib/subs.php:95 +#: actions/all.php:53 +#: actions/allrss.php:66 +#: actions/avatarbynickname.php:75 +#: actions/favoritesrss.php:64 +#: actions/foaf.php:41 +#: actions/remotesubscribe.php:123 +#: actions/remotesubscribe.php:130 +#: actions/replies.php:73 +#: actions/repliesrss.php:38 +#: actions/showfavorites.php:105 +#: actions/showstream.php:100 +#: actions/userbyid.php:74 +#: actions/usergroups.php:92 +#: actions/userrss.php:38 +#: actions/xrds.php:73 +#: classes/Command.php:140 +#: classes/Command.php:185 +#: classes/Command.php:234 +#: classes/Command.php:271 +#: lib/galleryaction.php:60 +#: lib/mailbox.php:82 +#: lib/subs.php:34 +#: lib/subs.php:109 msgid "No such user." -msgstr "Il n'y a pas cet utilisateur" +msgstr "Utilisateur non trouvé." -#: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217 +#: ../actions/recoverpassword.php:211 +#: actions/recoverpassword.php:217 #: actions/recoverpassword.php:251 -#, fuzzy msgid "No user with that email address or username." -msgstr "Pas d'utilisateur avec cet email ou ce nom d'utilisateur" +msgstr "Aucun utilisateur trouvé avec ce courriel ou ce nom." -#: ../lib/gallery.php:80 lib/gallery.php:85 +#: ../lib/gallery.php:80 +#: lib/gallery.php:85 msgid "Nobody to show!" -msgstr "Personne à montrer!" +msgstr "Il n'y a personne à montrer !" -#: ../actions/recoverpassword.php:60 actions/recoverpassword.php:60 +#: ../actions/recoverpassword.php:60 +#: actions/recoverpassword.php:60 #: actions/recoverpassword.php:66 msgid "Not a recovery code." -msgstr "Ce n'est pas un code de récupération." +msgstr "Ceci n'est pas un code de récupération." -#: ../scripts/maildaemon.php:50 scripts/maildaemon.php:50 +#: ../scripts/maildaemon.php:50 +#: scripts/maildaemon.php:50 #: scripts/maildaemon.php:53 -#, fuzzy msgid "Not a registered user." -msgstr "Ce n'est pas un utilisateur inscrit." - -#: ../lib/twitterapi.php:226 ../lib/twitterapi.php:247 -#: ../lib/twitterapi.php:332 lib/twitterapi.php:391 lib/twitterapi.php:418 -#: lib/twitterapi.php:502 lib/twitterapi.php:448 lib/twitterapi.php:476 +msgstr "Ceci n'est pas un utilisateur inscrit." + +#: ../lib/twitterapi.php:226 +#: ../lib/twitterapi.php:247 +#: ../lib/twitterapi.php:332 +#: lib/twitterapi.php:391 +#: lib/twitterapi.php:418 +#: lib/twitterapi.php:502 +#: lib/twitterapi.php:448 +#: lib/twitterapi.php:476 #: lib/twitterapi.php:566 msgid "Not a supported data format." -msgstr "Ce n'est pas un format supporté." +msgstr "Format de données non supporté." -#: ../actions/imsettings.php:167 actions/imsettings.php:175 +#: ../actions/imsettings.php:167 +#: actions/imsettings.php:175 #: actions/imsettings.php:290 msgid "Not a valid Jabber ID" -msgstr "Ce n'est pas un ID Jabber valide" +msgstr "Identifiant Jabber invalide." -#: ../lib/openid.php:131 lib/openid.php:131 lib/openid.php:140 +#: ../lib/openid.php:131 +#: lib/openid.php:131 +#: lib/openid.php:140 msgid "Not a valid OpenID." -msgstr "Ce n'est pas un OpenID valide." +msgstr "OpenID invalide." -#: ../actions/emailsettings.php:185 actions/emailsettings.php:203 +#: ../actions/emailsettings.php:185 +#: actions/emailsettings.php:203 #: actions/emailsettings.php:315 -#, fuzzy msgid "Not a valid email address" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Ce n'est pas une adresse email valide.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Adresse courriel invalide" -#: ../actions/register.php:63 actions/register.php:70 actions/register.php:152 +#: ../actions/register.php:63 +#: actions/register.php:70 +#: actions/register.php:152 msgid "Not a valid email address." -msgstr "Ce n'est pas une adresse email valide." - -#: ../actions/profilesettings.php:91 ../actions/register.php:71 -#: actions/profilesettings.php:206 actions/register.php:78 -#: actions/editgroup.php:186 actions/newgroup.php:137 -#: actions/profilesettings.php:195 actions/register.php:161 +msgstr "Adresse courriel invalide." + +#: ../actions/profilesettings.php:91 +#: ../actions/register.php:71 +#: actions/profilesettings.php:206 +#: actions/register.php:78 +#: actions/editgroup.php:186 +#: actions/newgroup.php:137 +#: actions/profilesettings.php:195 +#: actions/register.php:161 msgid "Not a valid nickname." -msgstr "Ce n'est pas un pseudo valide." +msgstr "Pseudo invalide." -#: ../actions/remotesubscribe.php:120 actions/remotesubscribe.php:129 +#: ../actions/remotesubscribe.php:120 +#: actions/remotesubscribe.php:129 #: actions/remotesubscribe.php:159 msgid "Not a valid profile URL (incorrect services)." -msgstr "Ce n'est pas un URL de profil valide (services incorrects)." +msgstr "URL de profil invalide (services incorrects)." -#: ../actions/remotesubscribe.php:113 actions/remotesubscribe.php:122 +#: ../actions/remotesubscribe.php:113 +#: actions/remotesubscribe.php:122 #: actions/remotesubscribe.php:152 msgid "Not a valid profile URL (no XRDS defined)." -msgstr "Ce n'est pas un URL de profil valide (pas de XRDS défini)." +msgstr "URL de profil invalide (aucun XRDS défini)." -#: ../actions/remotesubscribe.php:104 actions/remotesubscribe.php:113 +#: ../actions/remotesubscribe.php:104 +#: actions/remotesubscribe.php:113 #: actions/remotesubscribe.php:143 msgid "Not a valid profile URL (no YADIS document)." -msgstr "Ce n'est pas un URL de profil valide (pas de document YADIS)." +msgstr "URL de profil invalide (aucun document YADIS)." -#: ../actions/avatar.php:95 actions/profilesettings.php:332 +#: ../actions/avatar.php:95 +#: actions/profilesettings.php:332 #: lib/imagefile.php:87 msgid "Not an image or corrupt file." -msgstr "Ce n'est pas une image, ou c'est un fichier corrompu." +msgstr "Ceci n'est pas une image, ou c'est un fichier corrompu." #: ../actions/finishremotesubscribe.php:51 -#: actions/finishremotesubscribe.php:53 actions/finishremotesubscribe.php:54 +#: actions/finishremotesubscribe.php:53 +#: actions/finishremotesubscribe.php:54 msgid "Not authorized." msgstr "Non autorisé." #: ../actions/finishremotesubscribe.php:38 -#: actions/finishremotesubscribe.php:38 actions/finishremotesubscribe.php:40 +#: actions/finishremotesubscribe.php:38 +#: actions/finishremotesubscribe.php:40 msgid "Not expecting this response!" -msgstr "Cette réponse n'était pas attendue !" +msgstr "Réponse inattendue !" -#: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361 +#: ../actions/twitapistatuses.php:422 +#: actions/twitapistatuses.php:361 #: actions/twitapistatuses.php:309 msgid "Not found" -msgstr "Pas trouvé" - -#: ../actions/finishaddopenid.php:29 ../actions/logout.php:33 -#: ../actions/newnotice.php:29 ../actions/subscribe.php:28 -#: ../actions/unsubscribe.php:25 ../lib/deleteaction.php:38 -#: ../lib/settingsaction.php:27 actions/disfavor.php:29 actions/favor.php:30 -#: actions/finishaddopenid.php:29 actions/logout.php:33 -#: actions/newmessage.php:28 actions/newnotice.php:29 actions/subscribe.php:28 -#: actions/unsubscribe.php:25 lib/deleteaction.php:38 -#: lib/settingsaction.php:27 actions/block.php:59 actions/disfavor.php:61 -#: actions/favor.php:64 actions/finishaddopenid.php:67 actions/logout.php:71 -#: actions/newmessage.php:83 actions/newnotice.php:90 actions/nudge.php:63 -#: actions/subedit.php:31 actions/subscribe.php:30 actions/unblock.php:60 -#: actions/unsubscribe.php:27 lib/deleteaction.php:66 +msgstr "Non trouvé" + +#: ../actions/finishaddopenid.php:29 +#: ../actions/logout.php:33 +#: ../actions/newnotice.php:29 +#: ../actions/subscribe.php:28 +#: ../actions/unsubscribe.php:25 +#: ../lib/deleteaction.php:38 +#: ../lib/settingsaction.php:27 +#: actions/disfavor.php:29 +#: actions/favor.php:30 +#: actions/finishaddopenid.php:29 +#: actions/logout.php:33 +#: actions/newmessage.php:28 +#: actions/newnotice.php:29 +#: actions/subscribe.php:28 +#: actions/unsubscribe.php:25 +#: lib/deleteaction.php:38 +#: lib/settingsaction.php:27 +#: actions/block.php:59 +#: actions/disfavor.php:61 +#: actions/favor.php:64 +#: actions/finishaddopenid.php:67 +#: actions/logout.php:71 +#: actions/newmessage.php:83 +#: actions/newnotice.php:90 +#: actions/nudge.php:63 +#: actions/subedit.php:31 +#: actions/subscribe.php:30 +#: actions/unblock.php:60 +#: actions/unsubscribe.php:27 +#: lib/deleteaction.php:66 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non connecté." -#: ../lib/subs.php:91 lib/subs.php:104 lib/subs.php:122 +#: ../lib/subs.php:91 +#: lib/subs.php:104 +#: lib/subs.php:122 msgid "Not subscribed!." -msgstr "" +msgstr "Pas abonné !" -#: ../actions/opensearch.php:35 actions/opensearch.php:35 +#: ../actions/opensearch.php:35 +#: actions/opensearch.php:35 #: actions/opensearch.php:67 -#, fuzzy msgid "Notice Search" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Recherche\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Recherche de statut" -#: ../actions/showstream.php:82 actions/showstream.php:82 -#: actions/showstream.php:180 actions/showstream.php:187 +#: ../actions/showstream.php:82 +#: actions/showstream.php:82 +#: actions/showstream.php:180 +#: actions/showstream.php:187 #: actions/showstream.php:192 #, php-format msgid "Notice feed for %s" -msgstr "Fil des messages de %s" +msgstr "Flux des statuts de %s" -#: ../actions/shownotice.php:39 actions/shownotice.php:39 +#: ../actions/shownotice.php:39 +#: actions/shownotice.php:39 #: actions/shownotice.php:94 msgid "Notice has no profile" -msgstr "Le message n'a pas de profil" +msgstr "Le statut n'a pas de profil" -#: ../actions/showstream.php:316 actions/showstream.php:331 -#: actions/showstream.php:504 lib/facebookaction.php:477 lib/mailbox.php:116 +#: ../actions/showstream.php:316 +#: actions/showstream.php:331 +#: actions/showstream.php:504 +#: lib/facebookaction.php:477 +#: lib/mailbox.php:116 #: lib/noticelist.php:87 msgid "Notices" -msgstr "Messages" +msgstr "Statuts" -#: ../actions/tag.php:35 ../actions/tag.php:81 actions/tag.php:35 -#: actions/tag.php:81 actions/tag.php:41 -#, fuzzy, php-format +#: ../actions/tag.php:35 +#: ../actions/tag.php:81 +#: actions/tag.php:35 +#: actions/tag.php:81 +#: actions/tag.php:41 +#, php-format msgid "Notices tagged with %s" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Fil des messages de %s\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Statuts marqués avec %s" -#: ../actions/password.php:39 actions/profilesettings.php:178 +#: ../actions/password.php:39 +#: actions/profilesettings.php:178 #: actions/passwordsettings.php:97 msgid "Old password" msgstr "Ancien mot de passe" -#: ../lib/settingsaction.php:96 ../lib/util.php:314 lib/settingsaction.php:90 -#: lib/util.php:330 lib/accountsettingsaction.php:116 lib/action.php:341 +#: ../lib/settingsaction.php:96 +#: ../lib/util.php:314 +#: lib/settingsaction.php:90 +#: lib/util.php:330 +#: lib/accountsettingsaction.php:116 +#: lib/action.php:341 #: lib/logingroupnav.php:81 msgid "OpenID" msgstr "OpenID" -#: ../actions/finishopenidlogin.php:61 actions/finishopenidlogin.php:66 +#: ../actions/finishopenidlogin.php:61 +#: actions/finishopenidlogin.php:66 #: actions/finishopenidlogin.php:73 msgid "OpenID Account Setup" -msgstr "Mise en place du compte OpenID" +msgstr "Configuration du compte OpenID" -#: ../lib/openid.php:180 lib/openid.php:180 lib/openid.php:266 +#: ../lib/openid.php:180 +#: lib/openid.php:180 +#: lib/openid.php:266 msgid "OpenID Auto-Submit" msgstr "Soumission automatique OpenID" -#: ../actions/finishaddopenid.php:99 ../actions/finishopenidlogin.php:140 -#: ../actions/openidlogin.php:60 actions/finishaddopenid.php:99 -#: actions/finishopenidlogin.php:146 actions/openidlogin.php:68 -#: actions/finishaddopenid.php:170 actions/openidlogin.php:80 +#: ../actions/finishaddopenid.php:99 +#: ../actions/finishopenidlogin.php:140 +#: ../actions/openidlogin.php:60 +#: actions/finishaddopenid.php:99 +#: actions/finishopenidlogin.php:146 +#: actions/openidlogin.php:68 +#: actions/finishaddopenid.php:170 +#: actions/openidlogin.php:80 msgid "OpenID Login" msgstr "Connexion OpenID" -#: ../actions/openidlogin.php:65 ../actions/openidsettings.php:49 -#: actions/openidlogin.php:74 actions/openidsettings.php:50 -#: actions/openidlogin.php:102 actions/openidsettings.php:101 +#: ../actions/openidlogin.php:65 +#: ../actions/openidsettings.php:49 +#: actions/openidlogin.php:74 +#: actions/openidsettings.php:50 +#: actions/openidlogin.php:102 +#: actions/openidsettings.php:101 msgid "OpenID URL" msgstr "URL OpenID" -#: ../actions/finishaddopenid.php:42 ../actions/finishopenidlogin.php:103 -#: actions/finishaddopenid.php:42 actions/finishopenidlogin.php:109 -#: actions/finishaddopenid.php:88 actions/finishopenidlogin.php:130 +#: ../actions/finishaddopenid.php:42 +#: ../actions/finishopenidlogin.php:103 +#: actions/finishaddopenid.php:42 +#: actions/finishopenidlogin.php:109 +#: actions/finishaddopenid.php:88 +#: actions/finishopenidlogin.php:130 msgid "OpenID authentication cancelled." msgstr "Authentification OpenID annulée." -#: ../actions/finishaddopenid.php:46 ../actions/finishopenidlogin.php:107 -#: actions/finishaddopenid.php:46 actions/finishopenidlogin.php:113 -#: actions/finishaddopenid.php:92 actions/finishopenidlogin.php:134 +#: ../actions/finishaddopenid.php:46 +#: ../actions/finishopenidlogin.php:107 +#: actions/finishaddopenid.php:46 +#: actions/finishopenidlogin.php:113 +#: actions/finishaddopenid.php:92 +#: actions/finishopenidlogin.php:134 #, php-format msgid "OpenID authentication failed: %s" -msgstr "L'authentification OpenID a échouée : %s'" +msgstr "L'authentification OpenID a échoué : %s'" -#: ../lib/openid.php:133 lib/openid.php:133 lib/openid.php:142 +#: ../lib/openid.php:133 +#: lib/openid.php:133 +#: lib/openid.php:142 #, php-format msgid "OpenID failure: %s" msgstr "Erreur OpenID : %s" -#: ../actions/openidsettings.php:144 actions/openidsettings.php:153 +#: ../actions/openidsettings.php:144 +#: actions/openidsettings.php:153 #: actions/openidsettings.php:231 msgid "OpenID removed." -msgstr "OpenID enlevé." +msgstr "OpenID retiré." -#: ../actions/openidsettings.php:37 actions/openidsettings.php:37 +#: ../actions/openidsettings.php:37 +#: actions/openidsettings.php:37 #: actions/openidsettings.php:59 msgid "OpenID settings" msgstr "Paramètres OpenID" -#: ../actions/invite.php:135 actions/invite.php:143 actions/invite.php:180 +#: ../actions/invite.php:135 +#: actions/invite.php:143 +#: actions/invite.php:180 msgid "Optionally add a personal message to the invitation." -msgstr "Ajouter un message personnel à l'invitation (optionnel)" +msgstr "Ajouter un message personnel à l'invitation (optionnel)." -#: ../actions/avatar.php:84 actions/profilesettings.php:321 +#: ../actions/avatar.php:84 +#: actions/profilesettings.php:321 #: lib/imagefile.php:75 msgid "Partial upload." msgstr "Transfert partiel." -#: ../actions/finishopenidlogin.php:90 ../actions/login.php:102 -#: ../actions/register.php:153 ../lib/settingsaction.php:93 -#: actions/finishopenidlogin.php:96 actions/login.php:102 -#: actions/register.php:167 actions/finishopenidlogin.php:118 -#: actions/login.php:231 actions/register.php:372 -#: lib/accountsettingsaction.php:110 lib/facebookaction.php:311 +#: ../actions/finishopenidlogin.php:90 +#: ../actions/login.php:102 +#: ../actions/register.php:153 +#: ../lib/settingsaction.php:93 +#: actions/finishopenidlogin.php:96 +#: actions/login.php:102 +#: actions/register.php:167 +#: actions/finishopenidlogin.php:118 +#: actions/login.php:231 +#: actions/register.php:372 +#: lib/accountsettingsaction.php:110 +#: lib/facebookaction.php:311 msgid "Password" msgstr "Mot de passe" -#: ../actions/recoverpassword.php:288 actions/recoverpassword.php:301 +#: ../actions/recoverpassword.php:288 +#: actions/recoverpassword.php:301 #: actions/recoverpassword.php:335 msgid "Password and confirmation do not match." -msgstr "Le mot de passe et la confirmation sont différents." +msgstr "Le mot de passe et sa confirmation ne correspondent pas." -#: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297 +#: ../actions/recoverpassword.php:284 +#: actions/recoverpassword.php:297 #: actions/recoverpassword.php:331 msgid "Password must be 6 chars or more." -msgstr "Le mot de passe doit être composés d'au moins 6 caractères." - -#: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263 -#: actions/recoverpassword.php:267 actions/recoverpassword.php:269 -#: actions/recoverpassword.php:199 actions/recoverpassword.php:301 +msgstr "Le mot de passe doit contenir au moins 6 caractères." + +#: ../actions/recoverpassword.php:261 +#: ../actions/recoverpassword.php:263 +#: actions/recoverpassword.php:267 +#: actions/recoverpassword.php:269 +#: actions/recoverpassword.php:199 +#: actions/recoverpassword.php:301 msgid "Password recovery requested" -msgstr "Demande de nouveau mot de passe demandée" - -#: ../actions/password.php:89 ../actions/recoverpassword.php:313 -#: actions/profilesettings.php:408 actions/recoverpassword.php:326 -#: actions/passwordsettings.php:173 actions/recoverpassword.php:200 +msgstr "Récupération de mot de passe demandée" + +#: ../actions/password.php:89 +#: ../actions/recoverpassword.php:313 +#: actions/profilesettings.php:408 +#: actions/recoverpassword.php:326 +#: actions/passwordsettings.php:173 +#: actions/recoverpassword.php:200 msgid "Password saved." -msgstr "Mot de passe sauvegardé." - -#: ../actions/password.php:61 ../actions/register.php:88 -#: actions/profilesettings.php:380 actions/register.php:98 -#: actions/passwordsettings.php:145 actions/register.php:183 +msgstr "Mot de passe enregistré." + +#: ../actions/password.php:61 +#: ../actions/register.php:88 +#: actions/profilesettings.php:380 +#: actions/register.php:98 +#: actions/passwordsettings.php:145 +#: actions/register.php:183 msgid "Passwords don't match." msgstr "Les mots de passe ne correspondent pas." -#: ../lib/searchaction.php:100 lib/searchaction.php:100 +#: ../lib/searchaction.php:100 +#: lib/searchaction.php:100 #: lib/searchgroupnav.php:80 -#, fuzzy msgid "People" -msgstr "Personne" +msgstr "Personnes" -#: ../actions/opensearch.php:33 actions/opensearch.php:33 +#: ../actions/opensearch.php:33 +#: actions/opensearch.php:33 #: actions/opensearch.php:64 -#, fuzzy msgid "People Search" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Recherche de personne#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-" -"#\n" +msgstr "Recherche de personnes" -#: ../actions/peoplesearch.php:33 actions/peoplesearch.php:33 +#: ../actions/peoplesearch.php:33 +#: actions/peoplesearch.php:33 #: actions/peoplesearch.php:58 msgid "People search" -msgstr "Rechercher des personnes" +msgstr "Recherche de personnes" -#: ../lib/stream.php:50 lib/personal.php:50 lib/personalgroupnav.php:98 +#: ../lib/stream.php:50 +#: lib/personal.php:50 +#: lib/personalgroupnav.php:98 msgid "Personal" msgstr "Personnel" -#: ../actions/invite.php:133 actions/invite.php:141 actions/invite.php:178 +#: ../actions/invite.php:133 +#: actions/invite.php:141 +#: actions/invite.php:178 msgid "Personal message" msgstr "Message personnel" -#: ../actions/smssettings.php:69 actions/smssettings.php:69 -#, fuzzy +#: ../actions/smssettings.php:69 +#: actions/smssettings.php:69 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" -"Numéro de téléphone, pas de ponctuation ou d'espace, avec le code " -"international." +msgstr "Numéro de téléphone, sans ponctuation ni espaces, incluant le code régional" #: ../actions/userauthorization.php:78 -msgid "" -"Please check these details to make sure that you want to subscribe to this " -"user's notices. If you didn't just ask to subscribe to someone's notices, " -"click \"Cancel\"." -msgstr "" +msgid "Please check these details to make sure that you want to subscribe to this user's notices. If you didn't just ask to subscribe to someone's notices, click \"Cancel\"." +msgstr "Veuillez vérifier ces détails pour vous assurer que vous souhaitez vous abonner aux statuts de cet utilisateur. Si vous n'avez pas demandé à vous abonner aux statuts de quelqu'un, cliquez \"Annuler\"." -#: ../actions/imsettings.php:73 actions/imsettings.php:74 +#: ../actions/imsettings.php:73 +#: actions/imsettings.php:74 #: actions/imsettings.php:142 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "" - -#: ../actions/emailsettings.php:85 ../actions/imsettings.php:67 -#: ../actions/smssettings.php:94 actions/emailsettings.php:86 -#: actions/imsettings.php:68 actions/smssettings.php:94 -#: actions/twittersettings.php:70 actions/emailsettings.php:147 -#: actions/imsettings.php:133 actions/smssettings.php:157 +msgstr "Publier un statut chaque fois que mon statut est modifié dans Jabber/GTalk" + +#: ../actions/emailsettings.php:85 +#: ../actions/imsettings.php:67 +#: ../actions/smssettings.php:94 +#: actions/emailsettings.php:86 +#: actions/imsettings.php:68 +#: actions/smssettings.php:94 +#: actions/twittersettings.php:70 +#: actions/emailsettings.php:147 +#: actions/imsettings.php:133 +#: actions/smssettings.php:157 #: actions/twittersettings.php:134 msgid "Preferences" msgstr "Préférences" -#: ../actions/emailsettings.php:162 ../actions/imsettings.php:144 -#: ../actions/smssettings.php:163 actions/emailsettings.php:180 -#: actions/imsettings.php:152 actions/smssettings.php:171 -#: actions/emailsettings.php:286 actions/imsettings.php:258 -#: actions/othersettings.php:168 actions/smssettings.php:272 +#: ../actions/emailsettings.php:162 +#: ../actions/imsettings.php:144 +#: ../actions/smssettings.php:163 +#: actions/emailsettings.php:180 +#: actions/imsettings.php:152 +#: actions/smssettings.php:171 +#: actions/emailsettings.php:286 +#: actions/imsettings.php:258 +#: actions/othersettings.php:168 +#: actions/smssettings.php:272 msgid "Preferences saved." -msgstr "Préférences sauvegardées" +msgstr "Préférences enregistrées" -#: ../actions/profilesettings.php:57 actions/profilesettings.php:90 +#: ../actions/profilesettings.php:57 +#: actions/profilesettings.php:90 #: actions/profilesettings.php:129 -#, fuzzy msgid "Preferred language" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Préférences de la langue#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-" -"#-#\n" +msgstr "Langue préférée" -#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 +#: ../lib/util.php:328 +#: lib/util.php:344 +#: lib/action.php:572 msgid "Privacy" msgstr "Confidentialité" -#: ../classes/Notice.php:95 ../classes/Notice.php:106 classes/Notice.php:109 -#: classes/Notice.php:119 classes/Notice.php:145 classes/Notice.php:155 +#: ../classes/Notice.php:95 +#: ../classes/Notice.php:106 +#: classes/Notice.php:109 +#: classes/Notice.php:119 +#: classes/Notice.php:145 +#: classes/Notice.php:155 msgid "Problem saving notice." -msgstr "Problème lors de la sauvegarde du message." +msgstr "Problème lors de l'enregistrement du statut." -#: ../lib/settingsaction.php:84 ../lib/stream.php:60 lib/personal.php:60 -#: lib/settingsaction.php:84 lib/accountsettingsaction.php:104 +#: ../lib/settingsaction.php:84 +#: ../lib/stream.php:60 +#: lib/personal.php:60 +#: lib/settingsaction.php:84 +#: lib/accountsettingsaction.php:104 #: lib/personalgroupnav.php:108 msgid "Profile" -msgstr "Profile" +msgstr "Profil" -#: ../actions/remotesubscribe.php:73 actions/remotesubscribe.php:82 +#: ../actions/remotesubscribe.php:73 +#: actions/remotesubscribe.php:82 #: actions/remotesubscribe.php:109 msgid "Profile URL" msgstr "URL du profil" -#: ../actions/profilesettings.php:34 actions/profilesettings.php:32 +#: ../actions/profilesettings.php:34 +#: actions/profilesettings.php:32 #: actions/profilesettings.php:58 msgid "Profile settings" msgstr "Paramètres du profil" -#: ../actions/postnotice.php:51 ../actions/updateprofile.php:52 -#: actions/postnotice.php:52 actions/updateprofile.php:53 -#: actions/postnotice.php:55 actions/updateprofile.php:56 +#: ../actions/postnotice.php:51 +#: ../actions/updateprofile.php:52 +#: actions/postnotice.php:52 +#: actions/updateprofile.php:53 +#: actions/postnotice.php:55 +#: actions/updateprofile.php:56 msgid "Profile unknown" msgstr "Profil inconnu" -#: ../actions/public.php:54 actions/public.php:54 actions/public.php:124 +#: ../actions/public.php:54 +#: actions/public.php:54 +#: actions/public.php:124 msgid "Public Stream Feed" msgstr "Fil du flux public" -#: ../actions/public.php:33 actions/public.php:33 actions/public.php:109 +#: ../actions/public.php:33 +#: actions/public.php:33 +#: actions/public.php:109 #: lib/publicgroupnav.php:77 msgid "Public timeline" -msgstr "Évolution publique" +msgstr "Flux public" -#: ../actions/imsettings.php:79 actions/imsettings.php:80 +#: ../actions/imsettings.php:79 +#: actions/imsettings.php:80 #: actions/imsettings.php:153 -#, fuzzy msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publier un MicroID pour mon adresse Jabber/GTalk." -#: ../actions/emailsettings.php:94 actions/emailsettings.php:101 +#: ../actions/emailsettings.php:94 +#: actions/emailsettings.php:101 #: actions/emailsettings.php:178 -#, fuzzy msgid "Publish a MicroID for my email address." -msgstr "Publier un MicroID pour mon adresse email." +msgstr "Publier un MicroID pour mon adresse courriel." -#: ../actions/tag.php:75 ../actions/tag.php:76 actions/tag.php:75 +#: ../actions/tag.php:75 +#: ../actions/tag.php:76 +#: actions/tag.php:75 #: actions/tag.php:76 msgid "Recent Tags" -msgstr "Tags recents" +msgstr "Marquages récents" -#: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171 +#: ../actions/recoverpassword.php:166 +#: actions/recoverpassword.php:171 #: actions/recoverpassword.php:190 msgid "Recover" msgstr "Récupérer" -#: ../actions/recoverpassword.php:156 actions/recoverpassword.php:161 +#: ../actions/recoverpassword.php:156 +#: actions/recoverpassword.php:161 #: actions/recoverpassword.php:198 msgid "Recover password" msgstr "Récupérer le mot de passe" -#: ../actions/recoverpassword.php:67 actions/recoverpassword.php:67 +#: ../actions/recoverpassword.php:67 +#: actions/recoverpassword.php:67 #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." msgstr "Code de récupération d'un utilisateur inconnu." -#: ../actions/register.php:142 ../actions/register.php:193 ../lib/util.php:312 -#: actions/register.php:152 actions/register.php:207 lib/util.php:328 -#: actions/register.php:69 actions/register.php:436 lib/action.php:338 -#: lib/facebookaction.php:277 lib/logingroupnav.php:78 +#: ../actions/register.php:142 +#: ../actions/register.php:193 +#: ../lib/util.php:312 +#: actions/register.php:152 +#: actions/register.php:207 +#: lib/util.php:328 +#: actions/register.php:69 +#: actions/register.php:436 +#: lib/action.php:338 +#: lib/facebookaction.php:277 +#: lib/logingroupnav.php:78 msgid "Register" -msgstr "Inscription" +msgstr "Créer un compte" -#: ../actions/register.php:28 actions/register.php:28 -#: actions/finishopenidlogin.php:196 actions/register.php:90 -#, fuzzy +#: ../actions/register.php:28 +#: actions/register.php:28 +#: actions/finishopenidlogin.php:196 +#: actions/register.php:90 msgid "Registration not allowed." -msgstr "Inscription non autorisée." +msgstr "Création de compte non autorisée." -#: ../actions/register.php:200 actions/register.php:214 +#: ../actions/register.php:200 +#: actions/register.php:214 #: actions/register.php:67 msgid "Registration successful" -msgstr "Inscription effectuée avec succès" +msgstr "Compte créé avec succès" -#: ../actions/userauthorization.php:120 actions/userauthorization.php:127 +#: ../actions/userauthorization.php:120 +#: actions/userauthorization.php:127 #: actions/userauthorization.php:144 msgid "Reject" -msgstr "Refusé" - -#: ../actions/login.php:103 ../actions/register.php:176 actions/login.php:103 -#: actions/register.php:190 actions/login.php:234 actions/openidlogin.php:107 +msgstr "Refuser" + +#: ../actions/login.php:103 +#: ../actions/register.php:176 +#: actions/login.php:103 +#: actions/register.php:190 +#: actions/login.php:234 +#: actions/openidlogin.php:107 #: actions/register.php:414 msgid "Remember me" msgstr "Se souvenir de moi" -#: ../actions/updateprofile.php:70 actions/updateprofile.php:71 +#: ../actions/updateprofile.php:70 +#: actions/updateprofile.php:71 #: actions/updateprofile.php:74 msgid "Remote profile with no matching profile" -msgstr "" +msgstr "Profil distant sans profil correspondant" -#: ../actions/remotesubscribe.php:65 actions/remotesubscribe.php:73 +#: ../actions/remotesubscribe.php:65 +#: actions/remotesubscribe.php:73 #: actions/remotesubscribe.php:88 msgid "Remote subscribe" -msgstr "Inscription distante" - -#: ../actions/emailsettings.php:47 ../actions/emailsettings.php:75 -#: ../actions/imsettings.php:48 ../actions/openidsettings.php:106 -#: ../actions/smssettings.php:50 ../actions/smssettings.php:84 -#: actions/emailsettings.php:48 actions/emailsettings.php:76 -#: actions/imsettings.php:49 actions/openidsettings.php:108 -#: actions/smssettings.php:50 actions/smssettings.php:84 -#: actions/twittersettings.php:59 actions/emailsettings.php:101 -#: actions/emailsettings.php:134 actions/imsettings.php:102 -#: actions/openidsettings.php:166 actions/smssettings.php:103 -#: actions/smssettings.php:146 actions/twittersettings.php:115 +msgstr "Abonnement à distance " + +#: ../actions/emailsettings.php:47 +#: ../actions/emailsettings.php:75 +#: ../actions/imsettings.php:48 +#: ../actions/openidsettings.php:106 +#: ../actions/smssettings.php:50 +#: ../actions/smssettings.php:84 +#: actions/emailsettings.php:48 +#: actions/emailsettings.php:76 +#: actions/imsettings.php:49 +#: actions/openidsettings.php:108 +#: actions/smssettings.php:50 +#: actions/smssettings.php:84 +#: actions/twittersettings.php:59 +#: actions/emailsettings.php:101 +#: actions/emailsettings.php:134 +#: actions/imsettings.php:102 +#: actions/openidsettings.php:166 +#: actions/smssettings.php:103 +#: actions/smssettings.php:146 +#: actions/twittersettings.php:115 msgid "Remove" -msgstr "Enlever" +msgstr "Retirer " -#: ../actions/openidsettings.php:68 actions/openidsettings.php:69 +#: ../actions/openidsettings.php:68 +#: actions/openidsettings.php:69 #: actions/openidsettings.php:123 msgid "Remove OpenID" -msgstr "Enlever l'OpenID" +msgstr "Retirer l'OpenID" #: ../actions/openidsettings.php:73 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Enlever votre seul OpenID vous empêcherai de vous connecter ! Si vous avez " -"besoin de l'enlever, ajoutez un autre OpenID d'abord." +msgid "Removing your only OpenID would make it impossible to log in! If you need to remove it, add another OpenID first." +msgstr "Vous ne pourrez plus ouvrir de session si vous retirez votre seul OpenID ! Si vous avez besoin de le retirer, ajoutez d'abord un autre OpenID." -#: ../lib/stream.php:55 lib/personal.php:55 lib/personalgroupnav.php:103 +#: ../lib/stream.php:55 +#: lib/personal.php:55 +#: lib/personalgroupnav.php:103 msgid "Replies" msgstr "Réponses" -#: ../actions/replies.php:47 ../actions/repliesrss.php:76 ../lib/stream.php:56 -#: actions/replies.php:47 actions/repliesrss.php:62 lib/personal.php:56 -#: actions/replies.php:116 actions/repliesrss.php:67 +#: ../actions/replies.php:47 +#: ../actions/repliesrss.php:76 +#: ../lib/stream.php:56 +#: actions/replies.php:47 +#: actions/repliesrss.php:62 +#: lib/personal.php:56 +#: actions/replies.php:116 +#: actions/repliesrss.php:67 #: lib/personalgroupnav.php:104 #, php-format msgid "Replies to %s" msgstr "Réponses à %s" -#: ../actions/recoverpassword.php:183 actions/recoverpassword.php:189 +#: ../actions/recoverpassword.php:183 +#: actions/recoverpassword.php:189 #: actions/recoverpassword.php:223 msgid "Reset" msgstr "Réinitialiser" -#: ../actions/recoverpassword.php:173 actions/recoverpassword.php:178 +#: ../actions/recoverpassword.php:173 +#: actions/recoverpassword.php:178 #: actions/recoverpassword.php:197 msgid "Reset password" -msgstr "Réinitialiser mon mot de passe" +msgstr "Réinitialiser le mot de passe" -#: ../lib/settingsaction.php:99 lib/settingsaction.php:93 -#: actions/subscriptions.php:123 lib/connectsettingsaction.php:107 +#: ../lib/settingsaction.php:99 +#: lib/settingsaction.php:93 +#: actions/subscriptions.php:123 +#: lib/connectsettingsaction.php:107 msgid "SMS" msgstr "SMS" -#: ../actions/smssettings.php:67 actions/smssettings.php:67 +#: ../actions/smssettings.php:67 +#: actions/smssettings.php:67 #: actions/smssettings.php:126 msgid "SMS Phone number" -msgstr "" +msgstr "Numéro SMS" -#: ../actions/smssettings.php:33 actions/smssettings.php:33 +#: ../actions/smssettings.php:33 +#: actions/smssettings.php:33 #: actions/smssettings.php:58 -#, fuzzy msgid "SMS Settings" msgstr "Paramètres SMS" -#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 -#, fuzzy +#: ../lib/mail.php:219 +#: lib/mail.php:225 +#: lib/mail.php:437 msgid "SMS confirmation" msgstr "Confirmation SMS" -#: ../actions/recoverpassword.php:182 actions/recoverpassword.php:188 +#: ../actions/recoverpassword.php:182 +#: actions/recoverpassword.php:188 #: actions/recoverpassword.php:222 msgid "Same as password above" msgstr "Identique au mot de passe ci-dessus" -#: ../actions/register.php:156 actions/register.php:170 +#: ../actions/register.php:156 +#: actions/register.php:170 #: actions/register.php:377 -#, fuzzy msgid "Same as password above. Required." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Identique au mot de passe ci-dessus. Requis.#-#-#-#-# laconica.new.pot " -"(PACKAGE VERSION) #-#-#-#-#\n" - -#: ../actions/emailsettings.php:97 ../actions/imsettings.php:81 -#: ../actions/profilesettings.php:67 ../actions/smssettings.php:100 -#: actions/emailsettings.php:104 actions/imsettings.php:82 -#: actions/profilesettings.php:101 actions/smssettings.php:100 -#: actions/twittersettings.php:83 actions/emailsettings.php:182 -#: actions/facebooksettings.php:114 actions/imsettings.php:157 -#: actions/othersettings.php:117 actions/profilesettings.php:150 -#: actions/smssettings.php:169 actions/subscriptions.php:124 -#: actions/tagother.php:152 actions/twittersettings.php:161 +"Identique au mot de passe ci-dessus. Requis." + +#: ../actions/emailsettings.php:97 +#: ../actions/imsettings.php:81 +#: ../actions/profilesettings.php:67 +#: ../actions/smssettings.php:100 +#: actions/emailsettings.php:104 +#: actions/imsettings.php:82 +#: actions/profilesettings.php:101 +#: actions/smssettings.php:100 +#: actions/twittersettings.php:83 +#: actions/emailsettings.php:182 +#: actions/facebooksettings.php:114 +#: actions/imsettings.php:157 +#: actions/othersettings.php:117 +#: actions/profilesettings.php:150 +#: actions/smssettings.php:169 +#: actions/subscriptions.php:124 +#: actions/tagother.php:152 +#: actions/twittersettings.php:161 #: lib/groupeditform.php:171 msgid "Save" -msgstr "Sauvegarder" +msgstr "Enregistrer" -#: ../lib/searchaction.php:84 ../lib/util.php:300 lib/searchaction.php:84 -#: lib/util.php:316 lib/action.php:325 +#: ../lib/searchaction.php:84 +#: ../lib/util.php:300 +#: lib/searchaction.php:84 +#: lib/util.php:316 +#: lib/action.php:325 msgid "Search" msgstr "Rechercher" -#: ../actions/noticesearch.php:80 actions/noticesearch.php:85 +#: ../actions/noticesearch.php:80 +#: actions/noticesearch.php:85 #: actions/noticesearch.php:127 msgid "Search Stream Feed" -msgstr "Fil du flux de recherche" +msgstr "Rechercher dans le flux de recherche" -#: ../actions/noticesearch.php:30 actions/noticesearch.php:30 +#: ../actions/noticesearch.php:30 +#: actions/noticesearch.php:30 #: actions/noticesearch.php:57 #, php-format -msgid "" -"Search for notices on %%site.name%% by their contents. Separate search terms " -"by spaces; they must be 3 characters or more." -msgstr "" -"Recherche des messages sur %%site.name%% par leur contenu. Séparez les " -"termes de la recherches par des espaces ; ils doivent être de 3 caractères " -"ou plus." +msgid "Search for notices on %%site.name%% by their contents. Separate search terms by spaces; they must be 3 characters or more." +msgstr "Recherchez les statuts %%site.name%% par leur contenu. Séparez les termes de recherche par des espaces. Ils doivent contenir au moins 3 caractères." #: ../actions/peoplesearch.php:28 #, php-format -msgid "" -"Search for people on %%site.name%% by their name, location, or interests. " -"Separate the terms by spaces; they must be 3 characters or more." -msgstr "" -"Recherche de personne sur %%site.name%% par leur nom, localisation ou " -"intérêt. Séparez les termes de la recherches par des espaces ; ils doivent " -"être de 3 caractères ou plus." +msgid "Search for people on %%site.name%% by their name, location, or interests. Separate the terms by spaces; they must be 3 characters or more." +msgstr "Recherchez des personnes dans %%site.name%% par leur nom, leur emplacement ou leurs intérêts. Séparez les termes de recherche par des espaces. Ils doivent contenir au moins 3 caractères." -#: ../actions/smssettings.php:296 actions/smssettings.php:304 +#: ../actions/smssettings.php:296 +#: actions/smssettings.php:304 #: actions/smssettings.php:457 msgid "Select a carrier" -msgstr "" - -#: ../actions/invite.php:137 ../lib/util.php:1172 actions/invite.php:145 -#: lib/util.php:1306 lib/util.php:1731 actions/invite.php:182 -#: lib/messageform.php:167 lib/noticeform.php:177 +msgstr "Sélectionnez un fournisseur de téléphone mobile" + +#: ../actions/invite.php:137 +#: ../lib/util.php:1172 +#: actions/invite.php:145 +#: lib/util.php:1306 +#: lib/util.php:1731 +#: actions/invite.php:182 +#: lib/messageform.php:167 +#: lib/noticeform.php:177 msgid "Send" -msgstr "" - -#: ../actions/emailsettings.php:73 ../actions/smssettings.php:82 -#: actions/emailsettings.php:74 actions/smssettings.php:82 -#: actions/emailsettings.php:132 actions/smssettings.php:145 +msgstr "Envoyer" + +#: ../actions/emailsettings.php:73 +#: ../actions/smssettings.php:82 +#: actions/emailsettings.php:74 +#: actions/smssettings.php:82 +#: actions/emailsettings.php:132 +#: actions/smssettings.php:145 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "Écrivez à cette adresse courriel pour publier de nouveaux statuts. " -#: ../actions/emailsettings.php:88 actions/emailsettings.php:89 +#: ../actions/emailsettings.php:88 +#: actions/emailsettings.php:89 #: actions/emailsettings.php:152 -#, fuzzy msgid "Send me notices of new subscriptions through email." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"M'envoyer des messages par Jabber/GTalk.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Avertissez-moi par courriel des nouveaux abonnements." -#: ../actions/imsettings.php:70 actions/imsettings.php:71 +#: ../actions/imsettings.php:70 +#: actions/imsettings.php:71 #: actions/imsettings.php:137 msgid "Send me notices through Jabber/GTalk." -msgstr "" +msgstr "Envoyez-moi les statuts par Jabber/GTalk." -#: ../actions/smssettings.php:97 actions/smssettings.php:97 -msgid "" -"Send me notices through SMS; I understand I may incur exorbitant charges " -"from my carrier." -msgstr "" +#: ../actions/smssettings.php:97 +#: actions/smssettings.php:97 +msgid "Send me notices through SMS; I understand I may incur exorbitant charges from my carrier." +msgstr "Envoyez-moi les statuts par SMS ; je comprends que cela pourrait affecter ma facture de téléphonie mobile." -#: ../actions/imsettings.php:76 actions/imsettings.php:77 -#, fuzzy +#: ../actions/imsettings.php:76 +#: actions/imsettings.php:77 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"M'envoyer des messages par Jabber/GTalk.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Envoyez-moi par Jabber/GTalk les réponses des personnes auxquelles je ne suis pas abonné." -#: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215 +#: ../lib/util.php:304 +#: lib/util.php:320 +#: lib/facebookaction.php:215 msgid "Settings" -msgstr "" +msgstr "Préférences" -#: ../actions/profilesettings.php:192 actions/profilesettings.php:307 +#: ../actions/profilesettings.php:192 +#: actions/profilesettings.php:307 #: actions/profilesettings.php:319 msgid "Settings saved." -msgstr "" +msgstr "Préférences enregistrées." -#: ../actions/tag.php:60 actions/tag.php:60 +#: ../actions/tag.php:60 +#: actions/tag.php:60 msgid "Showing most popular tags from the last week" -msgstr "" +msgstr "Marquages les plus populaires des 7 derniers jours" -#: ../actions/finishaddopenid.php:66 actions/finishaddopenid.php:66 +#: ../actions/finishaddopenid.php:66 +#: actions/finishaddopenid.php:66 #: actions/finishaddopenid.php:114 msgid "Someone else already has this OpenID." -msgstr "Quelqu'un d'autre a déjà cet OpenID." - -#: ../actions/finishopenidlogin.php:42 ../actions/openidsettings.php:126 -#: actions/finishopenidlogin.php:47 actions/openidsettings.php:135 -#: actions/finishopenidlogin.php:52 actions/openidsettings.php:202 +msgstr "Quelqu'un utilise déjà cet OpenID." + +#: ../actions/finishopenidlogin.php:42 +#: ../actions/openidsettings.php:126 +#: actions/finishopenidlogin.php:47 +#: actions/openidsettings.php:135 +#: actions/finishopenidlogin.php:52 +#: actions/openidsettings.php:202 msgid "Something weird happened." msgstr "Quelque chose de bizarre est arrivé." -#: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58 +#: ../scripts/maildaemon.php:58 +#: scripts/maildaemon.php:58 #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "Désolé, la réception de courriels n'est pas permise. " -#: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54 +#: ../scripts/maildaemon.php:54 +#: scripts/maildaemon.php:54 #: scripts/maildaemon.php:57 -#, fuzzy msgid "Sorry, that is not your incoming email address." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"C'est la mauvaise adresse de messagerie instantanée.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Désolé, ceci n'est pas votre adresse de courriel entrant." -#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 +#: ../lib/util.php:330 +#: lib/util.php:346 +#: lib/action.php:574 msgid "Source" -msgstr "" +msgstr "Provenance" -#: ../actions/showstream.php:296 actions/showstream.php:311 +#: ../actions/showstream.php:296 +#: actions/showstream.php:311 #: actions/showstream.php:476 msgid "Statistics" -msgstr "" - -#: ../actions/finishopenidlogin.php:182 ../actions/finishopenidlogin.php:246 -#: actions/finishopenidlogin.php:188 actions/finishopenidlogin.php:252 -#: actions/finishopenidlogin.php:222 actions/finishopenidlogin.php:290 +msgstr "Statistiques" + +#: ../actions/finishopenidlogin.php:182 +#: ../actions/finishopenidlogin.php:246 +#: actions/finishopenidlogin.php:188 +#: actions/finishopenidlogin.php:252 +#: actions/finishopenidlogin.php:222 +#: actions/finishopenidlogin.php:290 msgid "Stored OpenID not found." -msgstr "" - -#: ../actions/remotesubscribe.php:75 ../actions/showstream.php:188 -#: ../actions/showstream.php:197 actions/remotesubscribe.php:84 -#: actions/showstream.php:197 actions/showstream.php:206 -#: actions/remotesubscribe.php:113 actions/showstream.php:376 +msgstr "OpenID non trouvé." + +#: ../actions/remotesubscribe.php:75 +#: ../actions/showstream.php:188 +#: ../actions/showstream.php:197 +#: actions/remotesubscribe.php:84 +#: actions/showstream.php:197 +#: actions/showstream.php:206 +#: actions/remotesubscribe.php:113 +#: actions/showstream.php:376 #: lib/subscribeform.php:139 msgid "Subscribe" -msgstr "" - -#: ../actions/showstream.php:313 ../actions/subscribers.php:27 -#: actions/showstream.php:328 actions/subscribers.php:27 -#: actions/showstream.php:436 actions/showstream.php:498 +msgstr "S'abonner" + +#: ../actions/showstream.php:313 +#: ../actions/subscribers.php:27 +#: actions/showstream.php:328 +#: actions/subscribers.php:27 +#: actions/showstream.php:436 +#: actions/showstream.php:498 #: lib/subgroupnav.php:88 msgid "Subscribers" -msgstr "" +msgstr "Abonnés" -#: ../actions/userauthorization.php:310 actions/userauthorization.php:322 +#: ../actions/userauthorization.php:310 +#: actions/userauthorization.php:322 #: actions/userauthorization.php:338 msgid "Subscription authorized" -msgstr "" +msgstr "Abonnement autorisé" -#: ../actions/userauthorization.php:320 actions/userauthorization.php:332 +#: ../actions/userauthorization.php:320 +#: actions/userauthorization.php:332 #: actions/userauthorization.php:349 msgid "Subscription rejected" -msgstr "" - -#: ../actions/showstream.php:230 ../actions/showstream.php:307 -#: ../actions/subscriptions.php:27 actions/showstream.php:240 -#: actions/showstream.php:322 actions/subscriptions.php:27 -#: actions/showstream.php:407 actions/showstream.php:489 +msgstr "Abonnement refusé" + +#: ../actions/showstream.php:230 +#: ../actions/showstream.php:307 +#: ../actions/subscriptions.php:27 +#: actions/showstream.php:240 +#: actions/showstream.php:322 +#: actions/subscriptions.php:27 +#: actions/showstream.php:407 +#: actions/showstream.php:489 #: lib/subgroupnav.php:80 msgid "Subscriptions" -msgstr "" +msgstr "Abonnements" -#: ../actions/avatar.php:87 actions/profilesettings.php:324 +#: ../actions/avatar.php:87 +#: actions/profilesettings.php:324 #: lib/imagefile.php:78 msgid "System error uploading file." -msgstr "Erreur système en transférant le fichier." - -#: ../actions/tag.php:41 ../lib/util.php:301 actions/tag.php:41 -#: lib/util.php:317 actions/profilesettings.php:122 actions/showstream.php:297 -#: actions/tagother.php:147 actions/tagother.php:207 lib/profilelist.php:162 +msgstr "Erreur système lors du transfert du fichier." + +#: ../actions/tag.php:41 +#: ../lib/util.php:301 +#: actions/tag.php:41 +#: lib/util.php:317 +#: actions/profilesettings.php:122 +#: actions/showstream.php:297 +#: actions/tagother.php:147 +#: actions/tagother.php:207 +#: lib/profilelist.php:162 #: lib/profilelist.php:164 msgid "Tags" -msgstr "" +msgstr "Marquages" -#: ../lib/searchaction.php:104 lib/searchaction.php:104 +#: ../lib/searchaction.php:104 +#: lib/searchaction.php:104 msgid "Text" -msgstr "" +msgstr "Texte" -#: ../actions/noticesearch.php:34 actions/noticesearch.php:34 +#: ../actions/noticesearch.php:34 +#: actions/noticesearch.php:34 #: actions/noticesearch.php:67 msgid "Text search" -msgstr "Texte cherché" +msgstr "Recherche de texte" -#: ../actions/openidsettings.php:140 actions/openidsettings.php:149 +#: ../actions/openidsettings.php:140 +#: actions/openidsettings.php:149 #: actions/openidsettings.php:227 msgid "That OpenID does not belong to you." msgstr "Cet OpenID ne vous appartient pas." -#: ../actions/confirmaddress.php:52 actions/confirmaddress.php:52 +#: ../actions/confirmaddress.php:52 +#: actions/confirmaddress.php:52 #: actions/confirmaddress.php:94 msgid "That address has already been confirmed." msgstr "Cette adresse a déjà été confirmée." -#: ../actions/confirmaddress.php:43 actions/confirmaddress.php:43 +#: ../actions/confirmaddress.php:43 +#: actions/confirmaddress.php:43 #: actions/confirmaddress.php:85 msgid "That confirmation code is not for you!" msgstr "Ce code de confirmation n'est pas pour vous !" -#: ../actions/emailsettings.php:191 actions/emailsettings.php:209 -#, fuzzy +#: ../actions/emailsettings.php:191 +#: actions/emailsettings.php:209 msgid "That email address already belongs to another user." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Cet identifiant Jabber appartient déjà à un autre utilisateur.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Cette adresse courriel appartient déjà à un autre utilisateur." -#: ../actions/avatar.php:80 actions/profilesettings.php:317 +#: ../actions/avatar.php:80 +#: actions/profilesettings.php:317 #: lib/imagefile.php:71 msgid "That file is too big." msgstr "Ce fichier est trop gros." -#: ../actions/imsettings.php:170 actions/imsettings.php:178 +#: ../actions/imsettings.php:170 +#: actions/imsettings.php:178 #: actions/imsettings.php:293 msgid "That is already your Jabber ID." -msgstr "" +msgstr "Vous utilisez déjà cet idenfiant Jabber." -#: ../actions/emailsettings.php:188 actions/emailsettings.php:206 +#: ../actions/emailsettings.php:188 +#: actions/emailsettings.php:206 #: actions/emailsettings.php:318 -#, fuzzy msgid "That is already your email address." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"C'est déjà votre identifiant Jabber.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Vous utilisez déjà cette adresse courriel." -#: ../actions/smssettings.php:188 actions/smssettings.php:196 +#: ../actions/smssettings.php:188 +#: actions/smssettings.php:196 #: actions/smssettings.php:306 -#, fuzzy msgid "That is already your phone number." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"C'est déjà votre identifiant Jabber.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Vous utilisez déjà ce numéro de téléphone." -#: ../actions/imsettings.php:233 actions/imsettings.php:241 +#: ../actions/imsettings.php:233 +#: actions/imsettings.php:241 #: actions/imsettings.php:381 msgid "That is not your Jabber ID." -msgstr "" +msgstr "Ceci n'est pas votre identifiant Jabber." -#: ../actions/emailsettings.php:249 actions/emailsettings.php:267 +#: ../actions/emailsettings.php:249 +#: actions/emailsettings.php:267 #: actions/emailsettings.php:397 -#, fuzzy msgid "That is not your email address." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"C'est la mauvaise adresse de messagerie instantanée.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ceci n'est pas votre adresse courriel." -#: ../actions/smssettings.php:257 actions/smssettings.php:265 +#: ../actions/smssettings.php:257 +#: actions/smssettings.php:265 #: actions/smssettings.php:393 -#, fuzzy msgid "That is not your phone number." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Ce n'est pas votre identifiant Jabber.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ceci n'est pas votre numéro de téléphone." -#: ../actions/emailsettings.php:226 ../actions/imsettings.php:210 -#: actions/emailsettings.php:244 actions/imsettings.php:218 -#: actions/emailsettings.php:367 actions/imsettings.php:349 +#: ../actions/emailsettings.php:226 +#: ../actions/imsettings.php:210 +#: actions/emailsettings.php:244 +#: actions/imsettings.php:218 +#: actions/emailsettings.php:367 +#: actions/imsettings.php:349 msgid "That is the wrong IM address." -msgstr "" +msgstr "Cette adresse de messagerie instantanée est erronée." -#: ../actions/smssettings.php:233 actions/smssettings.php:241 +#: ../actions/smssettings.php:233 +#: actions/smssettings.php:241 #: actions/smssettings.php:362 -#, fuzzy msgid "That is the wrong confirmation number." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"C'est la mauvaise adresse de messagerie instantanée.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ce code de confirmation est incorrect." -#: ../actions/smssettings.php:191 actions/smssettings.php:199 +#: ../actions/smssettings.php:191 +#: actions/smssettings.php:199 #: actions/smssettings.php:309 -#, fuzzy msgid "That phone number already belongs to another user." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Cet identifiant Jabber appartient déjà à un autre utilisateur.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ce numéro de téléphone est déjà utilisé." -#: ../actions/newnotice.php:49 ../actions/twitapistatuses.php:408 -#: actions/newnotice.php:49 actions/twitapistatuses.php:330 -#: actions/facebookhome.php:243 actions/twitapistatuses.php:276 +#: ../actions/newnotice.php:49 +#: ../actions/twitapistatuses.php:408 +#: actions/newnotice.php:49 +#: actions/twitapistatuses.php:330 +#: actions/facebookhome.php:243 +#: actions/twitapistatuses.php:276 msgid "That's too long. Max notice size is 140 chars." -msgstr "" +msgstr "C'est trop long ! Vous n'avez droit qu'à 140 caractères." -#: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72 +#: ../actions/twitapiaccount.php:74 +#: actions/twitapiaccount.php:72 #: actions/twitapiaccount.php:62 msgid "That's too long. Max notice size is 255 chars." -msgstr "" +msgstr "C'est trop long ! Vous n'avez droit qu'à 255 caractères." -#: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92 +#: ../actions/confirmaddress.php:92 +#: actions/confirmaddress.php:92 #, php-format msgid "The address \"%s\" has been confirmed for your account." -msgstr "" - -#: ../actions/emailsettings.php:264 ../actions/imsettings.php:250 -#: ../actions/smssettings.php:274 actions/emailsettings.php:282 -#: actions/imsettings.php:258 actions/smssettings.php:282 -#: actions/emailsettings.php:416 actions/imsettings.php:402 +msgstr "L'adresse \"%s\" a été validée pour votre compte." + +#: ../actions/emailsettings.php:264 +#: ../actions/imsettings.php:250 +#: ../actions/smssettings.php:274 +#: actions/emailsettings.php:282 +#: actions/imsettings.php:258 +#: actions/smssettings.php:282 +#: actions/emailsettings.php:416 +#: actions/imsettings.php:402 #: actions/smssettings.php:413 msgid "The address was removed." -msgstr "" +msgstr "L'adresse a été supprimée." #: ../actions/userauthorization.php:312 -msgid "" -"The subscription has been authorized, but no callback URL was passed. Check " -"with the site's instructions for details on how to authorize the " -"subscription. Your subscription token is:" -msgstr "" +msgid "The subscription has been authorized, but no callback URL was passed. Check with the site's instructions for details on how to authorize the subscription. Your subscription token is:" +msgstr "L'abonnement a été autorisé, mais l'URL de rappel n'a pas été validé. Vérifiez les instructions du site pour savoir comment compléter l'autorisation de l'abonnement. Votre jeton d'abonnement est :" #: ../actions/userauthorization.php:322 -msgid "" -"The subscription has been rejected, but no callback URL was passed. Check " -"with the site's instructions for details on how to fully reject the " -"subscription." -msgstr "" +msgid "The subscription has been rejected, but no callback URL was passed. Check with the site's instructions for details on how to fully reject the subscription." +msgstr "L'abonnement a été refusé, mais l'URL de rappel n'a pas été validé. Vérifiez les instructions du site pour savoir comment refuser pleinement l'abonnement. " -#: ../actions/subscribers.php:35 actions/subscribers.php:35 +#: ../actions/subscribers.php:35 +#: actions/subscribers.php:35 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "Ce sont les personnes qui suivent les messages de %s." +msgstr "Ces personnes suivent les statuts de %s." -#: ../actions/subscribers.php:33 actions/subscribers.php:33 +#: ../actions/subscribers.php:33 +#: actions/subscribers.php:33 msgid "These are the people who listen to your notices." -msgstr "Ce sont les personnes qui suivent vos messages." +msgstr "Ces personnes suivent vos statuts. " -#: ../actions/subscriptions.php:35 actions/subscriptions.php:35 +#: ../actions/subscriptions.php:35 +#: actions/subscriptions.php:35 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "Ce sont les personnes dont les messages sont suivis par %s." +msgstr "Les statuts de ces personnes sont suivis par %s." -#: ../actions/subscriptions.php:33 actions/subscriptions.php:33 +#: ../actions/subscriptions.php:33 +#: actions/subscriptions.php:33 msgid "These are the people whose notices you listen to." -msgstr "Ce sont les personnes dont vous suivez les messages." +msgstr "Vous suivez les statuts de ces personnes. " -#: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128 -msgid "" -"These people are already users and you were automatically subscribed to them:" -msgstr "" +#: ../actions/invite.php:89 +#: actions/invite.php:96 +#: actions/invite.php:128 +msgid "These people are already users and you were automatically subscribed to them:" +msgstr "Vous avez été automatiquement abonné aux utilisateurs suivants :" #: ../actions/recoverpassword.php:88 msgid "This confirmation code is too old. Please start again." -msgstr "" +msgstr "Ce code de validation est périmé. Veuillez recommencer. " #: ../lib/openid.php:195 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Ce formulaire devrait se transmettre automatiquement. Si ce n'est pas le " -"cas, cliquez sur le bouton de soumission pour aller chez votre fournisseur " -"OpenID." +msgid "This form should automatically submit itself. If not, click the submit button to go to your OpenID provider." +msgstr "Ce formulaire devrait se transmettre automatiquement. Si ce n'est pas le cas, cliquez sur le bouton de soumission pour accéder à votre fournisseur OpenID." -#: ../actions/finishopenidlogin.php:56 actions/finishopenidlogin.php:61 +#: ../actions/finishopenidlogin.php:56 +#: actions/finishopenidlogin.php:61 #: actions/finishopenidlogin.php:67 #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your OpenID " -"to a local account. You can either create a new account, or connect with " -"your existing account, if you have one." -msgstr "" -"Ce la première fois que vous vous êtes connectés à %s, donc nous devons " -"connecter votre OpenID à un compte local. Vous pouvez soit créer un nouveau " -"compte, soit vous connectez avec un compte existant, si vous en avez " - -#: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586 -#: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 -#: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 -#: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 +msgid "This is the first time you've logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one." +msgstr "C'est votre première ouverture de session dans %s, et nous devons relier votre OpenID à un compte local. Vous pouvez soit créer un nouveau compte, soit relier votre OpenID à un compte existant." + +#: ../actions/twitapifriendships.php:108 +#: ../actions/twitapistatuses.php:586 +#: actions/twitapifavorites.php:127 +#: actions/twitapifriendships.php:108 +#: actions/twitapistatuses.php:511 +#: actions/twitapifavorites.php:97 +#: actions/twitapifriendships.php:85 +#: actions/twitapistatuses.php:436 msgid "This method requires a POST or DELETE." -msgstr "" - -#: ../actions/twitapiaccount.php:65 ../actions/twitapifriendships.php:44 -#: ../actions/twitapistatuses.php:381 actions/twitapiaccount.php:63 -#: actions/twitapidirect_messages.php:114 actions/twitapifriendships.php:44 -#: actions/twitapistatuses.php:303 actions/twitapiaccount.php:53 -#: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 +msgstr "Ce processus requiert un POST ou un DELETE." + +#: ../actions/twitapiaccount.php:65 +#: ../actions/twitapifriendships.php:44 +#: ../actions/twitapistatuses.php:381 +#: actions/twitapiaccount.php:63 +#: actions/twitapidirect_messages.php:114 +#: actions/twitapifriendships.php:44 +#: actions/twitapistatuses.php:303 +#: actions/twitapiaccount.php:53 +#: actions/twitapidirect_messages.php:122 +#: actions/twitapifriendships.php:32 #: actions/twitapistatuses.php:244 msgid "This method requires a POST." -msgstr "" +msgstr "Ce processus requiert un POST." -#: ../lib/util.php:164 lib/util.php:246 +#: ../lib/util.php:164 +#: lib/util.php:246 msgid "This page is not available in a media type you accept" -msgstr "" +msgstr "Cette page n'est pas disponible dans un des formats que vous avez autorisés." -#: ../actions/profilesettings.php:63 actions/profilesettings.php:96 +#: ../actions/profilesettings.php:63 +#: actions/profilesettings.php:96 #: actions/profilesettings.php:138 msgid "Timezone" -msgstr "" +msgstr "Fuseau horaire" -#: ../actions/profilesettings.php:107 actions/profilesettings.php:222 +#: ../actions/profilesettings.php:107 +#: actions/profilesettings.php:222 #: actions/profilesettings.php:211 msgid "Timezone not selected." -msgstr "" +msgstr "Aucun fuseau horaire n'a été choisi." #: ../actions/remotesubscribe.php:43 #, php-format -msgid "" -"To subscribe, you can [login](%%action.login%%), or [register](%%action." -"register%%) a new account. If you already have an account on a [compatible " -"microblogging site](%%doc.openmublog%%), enter your profile URL below." -msgstr "" -"Pour s'inscrire, vous pouvez [vous connecter](%%action.login%%), ou [créer " -"unnouveau compte](%%action.register%%). Si vous avez déjà un compte sur un " -"[site de microblog compatible](%%doc.openmublog%%), entrez l'URL de votre " -"profil ci-dessous." +msgid "To subscribe, you can [login](%%action.login%%), or [register](%%action.register%%) a new account. If you already have an account on a [compatible microblogging site](%%doc.openmublog%%), enter your profile URL below." +msgstr "Pour vous abonner, vous devez [ouvrir une session](%%action.login%%), ou [créer un nouveau compte](%%action.register%%). Si vous avez déjà un compte sur un [site de micro-blogging compatible](%%doc.openmublog%%), entrez l'URL de votre profil ci-dessous." -#: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 +#: ../actions/twitapifriendships.php:163 +#: actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 msgid "Two user ids or screen_names must be supplied." -msgstr "" +msgstr "Vous devez fournir 2 identifiants ou pseudos." -#: ../actions/profilesettings.php:48 ../actions/register.php:169 -#: actions/profilesettings.php:81 actions/register.php:183 +#: ../actions/profilesettings.php:48 +#: ../actions/register.php:169 +#: actions/profilesettings.php:81 +#: actions/register.php:183 #: actions/profilesettings.php:109 msgid "URL of your homepage, blog, or profile on another site" -msgstr "" +msgstr "Adresse de votre site Web, blogue, ou profil dans un autre site" -#: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 +#: ../actions/remotesubscribe.php:74 +#: actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 msgid "URL of your profile on another compatible microblogging service" -msgstr "URL de votre profil sur un autre service de microblog compatible" - -#: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 -#: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 -#: actions/emailsettings.php:144 actions/imsettings.php:118 -#: actions/recoverpassword.php:39 actions/smssettings.php:143 -#: actions/twittersettings.php:108 actions/avatarsettings.php:258 -#: actions/emailsettings.php:242 actions/grouplogo.php:317 -#: actions/imsettings.php:214 actions/recoverpassword.php:44 -#: actions/smssettings.php:236 actions/twittersettings.php:302 +msgstr "URL de votre profil sur un autre service de micro-blogging compatible" + +#: ../actions/emailsettings.php:130 +#: ../actions/imsettings.php:110 +#: ../actions/recoverpassword.php:39 +#: ../actions/smssettings.php:135 +#: actions/emailsettings.php:144 +#: actions/imsettings.php:118 +#: actions/recoverpassword.php:39 +#: actions/smssettings.php:143 +#: actions/twittersettings.php:108 +#: actions/avatarsettings.php:258 +#: actions/emailsettings.php:242 +#: actions/grouplogo.php:317 +#: actions/imsettings.php:214 +#: actions/recoverpassword.php:44 +#: actions/smssettings.php:236 +#: actions/twittersettings.php:302 msgid "Unexpected form submission." -msgstr "" +msgstr "Soumission de formulaire inattendue." -#: ../actions/recoverpassword.php:276 actions/recoverpassword.php:289 +#: ../actions/recoverpassword.php:276 +#: actions/recoverpassword.php:289 #: actions/recoverpassword.php:323 msgid "Unexpected password reset." -msgstr "" +msgstr "Réinitialisation inattendue du mot de passe." -#: ../index.php:57 index.php:57 actions/recoverpassword.php:202 +#: ../index.php:57 +#: index.php:57 +#: actions/recoverpassword.php:202 msgid "Unknown action" -msgstr "" +msgstr "Action inconnue" #: ../actions/finishremotesubscribe.php:58 -#: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61 +#: actions/finishremotesubscribe.php:60 +#: actions/finishremotesubscribe.php:61 msgid "Unknown version of OMB protocol." msgstr "Version inconnue du protocole OMB" -#: ../lib/util.php:269 lib/util.php:285 -msgid "" -"Unless otherwise specified, contents of this site are copyright by the " -"contributors and available under the " -msgstr "" +#: ../lib/util.php:269 +#: lib/util.php:285 +msgid "Unless otherwise specified, contents of this site are copyright by the contributors and available under the " +msgstr "Sauf précision contraire, les contenus de ce site sont la propriété de leurs auteurs et sont disponibles sous" -#: ../actions/confirmaddress.php:48 actions/confirmaddress.php:48 +#: ../actions/confirmaddress.php:48 +#: actions/confirmaddress.php:48 #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" msgstr "Type d'adresse non reconnu : %s" -#: ../actions/showstream.php:209 actions/showstream.php:219 +#: ../actions/showstream.php:209 +#: actions/showstream.php:219 #: lib/unsubscribeform.php:137 msgid "Unsubscribe" -msgstr "" - -#: ../actions/postnotice.php:44 ../actions/updateprofile.php:45 -#: actions/postnotice.php:45 actions/updateprofile.php:46 -#: actions/postnotice.php:48 actions/updateprofile.php:49 +msgstr "Désabonnement" + +#: ../actions/postnotice.php:44 +#: ../actions/updateprofile.php:45 +#: actions/postnotice.php:45 +#: actions/updateprofile.php:46 +#: actions/postnotice.php:48 +#: actions/updateprofile.php:49 msgid "Unsupported OMB version" -msgstr "" +msgstr "Version de OMB non supportée" -#: ../actions/avatar.php:105 actions/profilesettings.php:342 +#: ../actions/avatar.php:105 +#: actions/profilesettings.php:342 #: lib/imagefile.php:102 msgid "Unsupported image file format." -msgstr "Format de fichier d'image non-supporté." +msgstr "Format de fichier d'image non supporté." -#: ../lib/settingsaction.php:100 lib/settingsaction.php:94 +#: ../lib/settingsaction.php:100 +#: lib/settingsaction.php:94 #: lib/connectsettingsaction.php:108 msgid "Updates by SMS" -msgstr "" +msgstr "Suivi des statuts par SMS" -#: ../lib/settingsaction.php:103 lib/settingsaction.php:97 +#: ../lib/settingsaction.php:103 +#: lib/settingsaction.php:97 #: lib/connectsettingsaction.php:105 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Suivi des statuts par messagerie instantanée" -#: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 +#: ../actions/twitapistatuses.php:241 +#: actions/twitapistatuses.php:158 #: actions/twitapistatuses.php:129 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "Statuts de %1$s et ses amis dans %2$s!" -#: ../actions/twitapistatuses.php:341 actions/twitapistatuses.php:268 +#: ../actions/twitapistatuses.php:341 +#: actions/twitapistatuses.php:268 #: actions/twitapistatuses.php:202 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Statuts de %1$s dans %2$s!" -#: ../actions/avatar.php:68 actions/profilesettings.php:161 -#: actions/avatarsettings.php:162 actions/grouplogo.php:232 +#: ../actions/avatar.php:68 +#: actions/profilesettings.php:161 +#: actions/avatarsettings.php:162 +#: actions/grouplogo.php:232 msgid "Upload" -msgstr "Transfert." +msgstr "Transfert" #: ../actions/avatar.php:27 -msgid "" -"Upload a new \"avatar\" (user image) here. You can't edit the picture after " -"you upload it, so make sure it's more or less square. It must be under the " -"site license, also. Use a picture that belongs to you and that you want to " -"share." -msgstr "" -"Transférez ici un nouvel « avatar » (image utilisateur). Vous ne pouvez " -"modifier l'image après l'envoi, alors faites en sorte qu'elle soit plus ou " -"moins carrée. Elle doit aussi être soumise à la licence du site. Utilisez " -"une image qui vous appartient et que vous voulez partager." +msgid "Upload a new \"avatar\" (user image) here. You can't edit the picture after you upload it, so make sure it's more or less square. It must be under the site license, also. Use a picture that belongs to you and that you want to share." +msgstr "Ajoutez un nouvel « avatar » (votre image d'utilisateur). Vous ne pouvez modifier l'image après l'envoi, alors faites en sorte qu'elle soit plus ou moins carrée. Elle doit aussi être compatible avec la licence d'utilisation du site ; utilisez de préférence une image qui vous appartient et que vous voulez partager." #: ../lib/settingsaction.php:91 -#, fuzzy msgid "Upload a new profile image" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Impossible d'enregistrer les informations du nouveau profil\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ajouter une nouvelle image pour le profil" -#: ../actions/invite.php:114 actions/invite.php:121 actions/invite.php:154 -msgid "" -"Use this form to invite your friends and colleagues to use this service." -msgstr "" +#: ../actions/invite.php:114 +#: actions/invite.php:121 +#: actions/invite.php:154 +msgid "Use this form to invite your friends and colleagues to use this service." +msgstr "Remplissez ce formulaire pour inviter vos amis et collègues à utiliser ce service." -#: ../actions/register.php:159 ../actions/register.php:162 -#: actions/register.php:173 actions/register.php:176 +#: ../actions/register.php:159 +#: ../actions/register.php:162 +#: actions/register.php:173 +#: actions/register.php:176 msgid "Used only for updates, announcements, and password recovery" -msgstr "" +msgstr "Utilisé uniquement pour les mises à jour de statut, les avertissements, et la récupération de mot de passe" #: ../actions/finishremotesubscribe.php:86 -#: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 +#: actions/finishremotesubscribe.php:88 +#: actions/finishremotesubscribe.php:94 msgid "User being listened to doesn't exist." -msgstr "L'utilisateur à suivre n'existe pas." - -#: ../actions/all.php:41 ../actions/avatarbynickname.php:48 -#: ../actions/foaf.php:47 ../actions/replies.php:41 -#: ../actions/showstream.php:44 ../actions/twitapiaccount.php:82 -#: ../actions/twitapistatuses.php:319 ../actions/twitapistatuses.php:685 -#: ../actions/twitapiusers.php:82 actions/all.php:41 -#: actions/avatarbynickname.php:48 actions/foaf.php:47 actions/replies.php:41 -#: actions/showfavorites.php:41 actions/showstream.php:44 -#: actions/twitapiaccount.php:80 actions/twitapifavorites.php:68 -#: actions/twitapistatuses.php:235 actions/twitapistatuses.php:609 -#: actions/twitapiusers.php:87 lib/mailbox.php:50 -#: actions/avatarbynickname.php:80 actions/foaf.php:48 actions/replies.php:80 -#: actions/showstream.php:107 actions/twitapiaccount.php:70 -#: actions/twitapifavorites.php:42 actions/twitapistatuses.php:167 -#: actions/twitapistatuses.php:503 actions/twitapiusers.php:55 -#: actions/usergroups.php:99 lib/galleryaction.php:67 lib/twitterapi.php:626 +msgstr "L'utilisateur suivi n'existe pas." + +#: ../actions/all.php:41 +#: ../actions/avatarbynickname.php:48 +#: ../actions/foaf.php:47 +#: ../actions/replies.php:41 +#: ../actions/showstream.php:44 +#: ../actions/twitapiaccount.php:82 +#: ../actions/twitapistatuses.php:319 +#: ../actions/twitapistatuses.php:685 +#: ../actions/twitapiusers.php:82 +#: actions/all.php:41 +#: actions/avatarbynickname.php:48 +#: actions/foaf.php:47 +#: actions/replies.php:41 +#: actions/showfavorites.php:41 +#: actions/showstream.php:44 +#: actions/twitapiaccount.php:80 +#: actions/twitapifavorites.php:68 +#: actions/twitapistatuses.php:235 +#: actions/twitapistatuses.php:609 +#: actions/twitapiusers.php:87 +#: lib/mailbox.php:50 +#: actions/avatarbynickname.php:80 +#: actions/foaf.php:48 +#: actions/replies.php:80 +#: actions/showstream.php:107 +#: actions/twitapiaccount.php:70 +#: actions/twitapifavorites.php:42 +#: actions/twitapistatuses.php:167 +#: actions/twitapistatuses.php:503 +#: actions/twitapiusers.php:55 +#: actions/usergroups.php:99 +#: lib/galleryaction.php:67 +#: lib/twitterapi.php:626 msgid "User has no profile." -msgstr "" +msgstr "Aucun profil ne correspond à cet utilisateur." -#: ../actions/remotesubscribe.php:71 actions/remotesubscribe.php:80 +#: ../actions/remotesubscribe.php:71 +#: actions/remotesubscribe.php:80 #: actions/remotesubscribe.php:105 msgid "User nickname" -msgstr "Surnom de l'utilisateur" +msgstr "Pseudo de l'utilisateur" -#: ../actions/twitapiusers.php:75 actions/twitapiusers.php:80 +#: ../actions/twitapiusers.php:75 +#: actions/twitapiusers.php:80 msgid "User not found." -msgstr "" +msgstr "Utilisateur non trouvé." -#: ../actions/profilesettings.php:63 actions/profilesettings.php:96 +#: ../actions/profilesettings.php:63 +#: actions/profilesettings.php:96 #: actions/profilesettings.php:139 msgid "What timezone are you normally in?" -msgstr "" +msgstr "Quel est votre fuseau horaire habituel ?" -#: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 +#: ../lib/util.php:1159 +#: lib/util.php:1293 +#: lib/noticeform.php:141 #, php-format msgid "What's up, %s?" -msgstr "" +msgstr "Quoi de neuf, %s ?" -#: ../actions/profilesettings.php:54 ../actions/register.php:175 -#: actions/profilesettings.php:87 actions/register.php:189 +#: ../actions/profilesettings.php:54 +#: ../actions/register.php:175 +#: actions/profilesettings.php:87 +#: actions/register.php:189 #: actions/profilesettings.php:119 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "" +msgstr "Indiquez votre emplacement, ex.: \"Ville, État (ou région), Pays\"" -#: ../actions/updateprofile.php:128 actions/updateprofile.php:129 +#: ../actions/updateprofile.php:128 +#: actions/updateprofile.php:129 #: actions/updateprofile.php:132 #, php-format msgid "Wrong image type for '%s'" -msgstr "" +msgstr "Format d'image invalide pour '%s'" -#: ../actions/updateprofile.php:123 actions/updateprofile.php:124 +#: ../actions/updateprofile.php:123 +#: actions/updateprofile.php:124 #: actions/updateprofile.php:127 #, php-format msgid "Wrong size image at '%s'" -msgstr "" +msgstr "Dimensions d'image invalides pour '%s'" -#: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 -#: actions/deletenotice.php:64 actions/deletenotice.php:79 -#: actions/block.php:148 actions/deletenotice.php:122 +#: ../actions/deletenotice.php:63 +#: ../actions/deletenotice.php:72 +#: actions/deletenotice.php:64 +#: actions/deletenotice.php:79 +#: actions/block.php:148 +#: actions/deletenotice.php:122 #: actions/deletenotice.php:141 msgid "Yes" -msgstr "" +msgstr "Oui" -#: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64 +#: ../actions/finishaddopenid.php:64 +#: actions/finishaddopenid.php:64 #: actions/finishaddopenid.php:112 msgid "You already have this OpenID!" -msgstr "Vous avez déjà cet OpenID !" +msgstr "Vous utilisez déjà cet OpenID !" -#: ../actions/deletenotice.php:37 actions/deletenotice.php:37 -msgid "" -"You are about to permanently delete a notice. Once this is done, it cannot " -"be undone." -msgstr "" +#: ../actions/deletenotice.php:37 +#: actions/deletenotice.php:37 +msgid "You are about to permanently delete a notice. Once this is done, it cannot be undone." +msgstr "Ce message va être définitivement supprimé. Il sera impossible de le récupérer." -#: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 +#: ../actions/recoverpassword.php:31 +#: actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "Vous êtes déjà connecté !" +msgstr "Votre session est déjà ouverte !" -#: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120 +#: ../actions/invite.php:81 +#: actions/invite.php:88 +#: actions/invite.php:120 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "Vous êtes déjà abonné à ces utilisateurs :" -#: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 +#: ../actions/twitapifriendships.php:128 +#: actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "" +msgstr "Vous n'êtes pas ami(e) avec l'utilisateur spécifié." #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" -msgstr "Vous pouvez changer ici votre mot de passe. Choisissez-en un bon !" +msgstr "Vous pouvez modifier ici votre mot de passe. Choisissez-en un bon !" -#: ../actions/register.php:135 actions/register.php:145 +#: ../actions/register.php:135 +#: actions/register.php:145 msgid "You can create a new account to start posting notices." -msgstr "" +msgstr "Créez un nouveau compte pour commencer à envoyer des messages." -#: ../actions/smssettings.php:28 actions/smssettings.php:28 +#: ../actions/smssettings.php:28 +#: actions/smssettings.php:28 #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Vous pouvez recevoir des messages SMS par courriel en provenance de %%site.name%%." #: ../actions/openidsettings.php:86 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"Vous pouvez enlever un OpenID de votre compte en cliquant sur le bouton « " -"Enlever »." +msgid "You can remove an OpenID from your account by clicking the button marked \"Remove\"." +msgstr "Vous pouvez retirer un OpenID de votre compte en cliquant sur le bouton « Retirer »." -#: ../actions/imsettings.php:28 actions/imsettings.php:28 +#: ../actions/imsettings.php:28 +#: actions/imsettings.php:28 #, php-format -msgid "" -"You can send and receive notices through Jabber/GTalk [instant messages](%%" -"doc.im%%). Configure your address and settings below." -msgstr "" -"Vous pouvez envoyer et recevoir des messages via [la messagerie instantanée]" -"(%%doc.im%%)Jabber/GTalk. Configurez votre adresse et vos paramètres ci-" -"dessous." +msgid "You can send and receive notices through Jabber/GTalk [instant messages](%%doc.im%%). Configure your address and settings below." +msgstr "Vous pouvez envoyer et recevoir des messages via [la messagerie instantanée](%%doc.im%%) Jabber/GTalk. Configurez votre adresse et vos paramètres ci-dessous." #: ../actions/profilesettings.php:27 -msgid "" -"You can update your personal profile info here so people know more about you." -msgstr "" -"Vous pouvez mettre à jour les informations de votre profil personnel pour " -"que l'on en sache plus sur vous." - -#: ../actions/finishremotesubscribe.php:31 ../actions/remotesubscribe.php:31 -#: actions/finishremotesubscribe.php:31 actions/remotesubscribe.php:31 -#: actions/finishremotesubscribe.php:33 actions/finishremotesubscribe.php:85 -#: actions/finishremotesubscribe.php:101 actions/remotesubscribe.php:35 +msgid "You can update your personal profile info here so people know more about you." +msgstr "Vous pouvez mettre à jour les informations de votre profil pour qu'on en sache plus à votre sujet." + +#: ../actions/finishremotesubscribe.php:31 +#: ../actions/remotesubscribe.php:31 +#: actions/finishremotesubscribe.php:31 +#: actions/remotesubscribe.php:31 +#: actions/finishremotesubscribe.php:33 +#: actions/finishremotesubscribe.php:85 +#: actions/finishremotesubscribe.php:101 +#: actions/remotesubscribe.php:35 msgid "You can use the local subscription!" -msgstr "Vous pouvez utiliser l'inscription locale !" +msgstr "Vous pouvez utiliser l'abonnement local." -#: ../actions/finishopenidlogin.php:33 ../actions/register.php:61 -#: actions/finishopenidlogin.php:38 actions/register.php:68 +#: ../actions/finishopenidlogin.php:33 +#: ../actions/register.php:61 +#: actions/finishopenidlogin.php:38 +#: actions/register.php:68 #: actions/finishopenidlogin.php:43 msgid "You can't register if you don't agree to the license." -msgstr "" +msgstr "Vous devez accepter les termes de la licence pour créer un compte." -#: ../actions/updateprofile.php:63 actions/updateprofile.php:64 +#: ../actions/updateprofile.php:63 +#: actions/updateprofile.php:64 #: actions/updateprofile.php:67 msgid "You did not send us that profile" -msgstr "" +msgstr "Vous n'avez pas envoyé ce profil" #: ../lib/mail.php:147 #, php-format @@ -2819,2016 +3405,2218 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"Une nouvelle adresse vous a été attribuée pour publier vos statuts dans %1$s.\n" +"\n" +"Écrivez à %2$s pour mettre à jour votre statut.\n" +"\n" +"Plus d'info : %3$s.\n" +"\n" +"Amicalement vôtre,\n" +"%4$s" -#: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 +#: ../actions/twitapistatuses.php:612 +#: actions/twitapistatuses.php:537 #: actions/twitapistatuses.php:463 msgid "You may not delete another user's status." -msgstr "" +msgstr "Vous ne pouvez pas supprimer le statut d'un autre utilisateur." -#: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 +#: ../actions/invite.php:31 +#: actions/invite.php:31 +#: actions/invite.php:39 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "" +msgstr "Vous devez ouvrir une session pour inviter d'autres utilisateurs dans %s" -#: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 -msgid "" -"You will be notified when your invitees accept the invitation and register " -"on the site. Thanks for growing the community!" -msgstr "" +#: ../actions/invite.php:103 +#: actions/invite.php:110 +#: actions/invite.php:142 +msgid "You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!" +msgstr "Un avertissement vous sera envoyé quand vos invités auront accepté votre invitation et se seront inscrits sur le site. Merci de faire grandir notre communauté !" #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " -msgstr "" +msgstr "Vous avez été identifié(e) avec succès. Veuillez entrer votre nouveau mot de passe ci-dessous." -#: ../actions/openidlogin.php:67 actions/openidlogin.php:76 +#: ../actions/openidlogin.php:67 +#: actions/openidlogin.php:76 #: actions/openidlogin.php:104 msgid "Your OpenID URL" msgstr "Votre URL OpenID" #: ../actions/recoverpassword.php:164 msgid "Your nickname on this server, or your registered email address." -msgstr "" +msgstr "Votre pseudo sur ce serveur, ou l'adresse courriel que vous avez enregistrée." #: ../actions/openidsettings.php:28 #, php-format -msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." -msgstr "" -"[OpenID](%%doc.openid%%) vous permet de vous connecter à différents sites " -"avec le même compte utilisateur. Gérez vos OpenID associés d'ici." +msgid "[OpenID](%%doc.openid%%) lets you log into many sites with the same user account. Manage your associated OpenIDs from here." +msgstr "[OpenID](%%doc.openid%%) vous permet de vous connecter à différents sites avec le même compte utilisateur. Gérez vos OpenID associés à partir d'ici." -#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 +#: ../lib/util.php:943 +#: lib/util.php:992 +#: lib/util.php:945 msgid "a few seconds ago" -msgstr "" +msgstr "il y a quelques secondes " -#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 +#: ../lib/util.php:955 +#: lib/util.php:1004 +#: lib/util.php:957 #, php-format msgid "about %d days ago" -msgstr "" +msgstr "il y a %d jours" -#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 +#: ../lib/util.php:951 +#: lib/util.php:1000 +#: lib/util.php:953 #, php-format msgid "about %d hours ago" -msgstr "" +msgstr "il y a %d heures" -#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 +#: ../lib/util.php:947 +#: lib/util.php:996 +#: lib/util.php:949 #, php-format msgid "about %d minutes ago" -msgstr "" +msgstr "il y a %d minutes" -#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 +#: ../lib/util.php:959 +#: lib/util.php:1008 +#: lib/util.php:961 #, php-format msgid "about %d months ago" -msgstr "" +msgstr "il y a %d mois" -#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 +#: ../lib/util.php:953 +#: lib/util.php:1002 +#: lib/util.php:955 msgid "about a day ago" -msgstr "" +msgstr "il y a 1 jour" -#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 +#: ../lib/util.php:945 +#: lib/util.php:994 +#: lib/util.php:947 msgid "about a minute ago" -msgstr "" +msgstr "il y a 1 minute" -#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 +#: ../lib/util.php:957 +#: lib/util.php:1006 +#: lib/util.php:959 msgid "about a month ago" -msgstr "" +msgstr "il y a 1 mois" -#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 +#: ../lib/util.php:961 +#: lib/util.php:1010 +#: lib/util.php:963 msgid "about a year ago" -msgstr "" +msgstr "il y a environ 1 an" -#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 +#: ../lib/util.php:949 +#: lib/util.php:998 +#: lib/util.php:951 msgid "about an hour ago" -msgstr "" +msgstr "il y a 1 heure" -#: ../actions/showstream.php:423 ../lib/stream.php:132 -#: actions/showstream.php:441 lib/stream.php:99 +#: ../actions/showstream.php:423 +#: ../lib/stream.php:132 +#: actions/showstream.php:441 +#: lib/stream.php:99 msgid "delete" -msgstr "" - -#: ../actions/noticesearch.php:130 ../actions/showstream.php:408 -#: ../lib/stream.php:117 actions/noticesearch.php:136 -#: actions/showstream.php:426 lib/stream.php:84 actions/noticesearch.php:187 +msgstr "supprimer" + +#: ../actions/noticesearch.php:130 +#: ../actions/showstream.php:408 +#: ../lib/stream.php:117 +#: actions/noticesearch.php:136 +#: actions/showstream.php:426 +#: lib/stream.php:84 +#: actions/noticesearch.php:187 msgid "in reply to..." -msgstr "" - -#: ../actions/noticesearch.php:137 ../actions/showstream.php:415 -#: ../lib/stream.php:124 actions/noticesearch.php:143 -#: actions/showstream.php:433 lib/stream.php:91 actions/noticesearch.php:194 +msgstr "en réponse à ..." + +#: ../actions/noticesearch.php:137 +#: ../actions/showstream.php:415 +#: ../lib/stream.php:124 +#: actions/noticesearch.php:143 +#: actions/showstream.php:433 +#: lib/stream.php:91 +#: actions/noticesearch.php:194 msgid "reply" -msgstr "" +msgstr "répondre" -#: ../actions/password.php:44 actions/profilesettings.php:183 +#: ../actions/password.php:44 +#: actions/profilesettings.php:183 #: actions/passwordsettings.php:106 msgid "same as password above" msgstr "identique au mot de passe ci-dessus" -#: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 +#: ../actions/twitapistatuses.php:755 +#: actions/twitapistatuses.php:678 #: actions/twitapistatuses.php:555 -#, fuzzy msgid "unsupported file type" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Format de fichier d'image non-supporté.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"type de fichier non supporté" -#: ../lib/util.php:1309 lib/util.php:1443 +#: ../lib/util.php:1309 +#: lib/util.php:1443 msgid "« After" -msgstr "" - -#: actions/deletenotice.php:74 actions/disfavor.php:43 -#: actions/emailsettings.php:127 actions/favor.php:45 -#: actions/finishopenidlogin.php:33 actions/imsettings.php:105 -#: actions/invite.php:46 actions/newmessage.php:45 actions/openidlogin.php:36 -#: actions/openidsettings.php:123 actions/profilesettings.php:47 -#: actions/recoverpassword.php:282 actions/register.php:42 -#: actions/remotesubscribe.php:40 actions/smssettings.php:124 -#: actions/subscribe.php:44 actions/twittersettings.php:97 -#: actions/unsubscribe.php:41 actions/userauthorization.php:35 -#: actions/block.php:64 actions/disfavor.php:74 actions/favor.php:77 -#: actions/finishopenidlogin.php:38 actions/invite.php:54 actions/nudge.php:80 -#: actions/openidlogin.php:37 actions/recoverpassword.php:316 -#: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 +msgstr "« Après" + +#: actions/deletenotice.php:74 +#: actions/disfavor.php:43 +#: actions/emailsettings.php:127 +#: actions/favor.php:45 +#: actions/finishopenidlogin.php:33 +#: actions/imsettings.php:105 +#: actions/invite.php:46 +#: actions/newmessage.php:45 +#: actions/openidlogin.php:36 +#: actions/openidsettings.php:123 +#: actions/profilesettings.php:47 +#: actions/recoverpassword.php:282 +#: actions/register.php:42 +#: actions/remotesubscribe.php:40 +#: actions/smssettings.php:124 +#: actions/subscribe.php:44 +#: actions/twittersettings.php:97 +#: actions/unsubscribe.php:41 +#: actions/userauthorization.php:35 +#: actions/block.php:64 +#: actions/disfavor.php:74 +#: actions/favor.php:77 +#: actions/finishopenidlogin.php:38 +#: actions/invite.php:54 +#: actions/nudge.php:80 +#: actions/openidlogin.php:37 +#: actions/recoverpassword.php:316 +#: actions/subscribe.php:46 +#: actions/unblock.php:65 +#: actions/unsubscribe.php:43 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "Un problème est survenu avec votre jeton de session. Veuillez essayer à nouveau." -#: actions/disfavor.php:55 actions/disfavor.php:81 +#: actions/disfavor.php:55 +#: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Ce statut n'est pas un favori !" -#: actions/disfavor.php:63 actions/disfavor.php:87 +#: actions/disfavor.php:63 +#: actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Impossible de supprimer le favori." -#: actions/disfavor.php:72 lib/favorform.php:140 +#: actions/disfavor.php:72 +#: lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Ajouter à mes favoris" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Envoyez-moi un courriel quand un utilisateur ajoute un de mes statuts à ses favoris." -#: actions/emailsettings.php:95 actions/emailsettings.php:163 +#: actions/emailsettings.php:95 +#: actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Envoyez-moi un courriel quand quelqu'un m'envoie un message personnel." -#: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 +#: actions/favor.php:53 +#: actions/twitapifavorites.php:142 +#: actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" - -#: actions/favor.php:60 actions/twitapifavorites.php:151 -#: classes/Command.php:132 actions/favor.php:86 -#: actions/twitapifavorites.php:125 classes/Command.php:152 +msgstr "Ce statut a déjà été ajouté à vos favoris !" + +#: actions/favor.php:60 +#: actions/twitapifavorites.php:151 +#: classes/Command.php:132 +#: actions/favor.php:86 +#: actions/twitapifavorites.php:125 +#: classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "Impossible de créer le favori." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "Retirer des favoris" -#: actions/favoritesrss.php:60 actions/showfavorites.php:47 -#: actions/favoritesrss.php:100 actions/showfavorites.php:77 +#: actions/favoritesrss.php:60 +#: actions/showfavorites.php:47 +#: actions/favoritesrss.php:100 +#: actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "Statuts favoris de %s" -#: actions/favoritesrss.php:64 actions/favoritesrss.php:104 +#: actions/favoritesrss.php:64 +#: actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "Fil des statuts favoris de %s" -#: actions/inbox.php:28 actions/inbox.php:59 +#: actions/inbox.php:28 +#: actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "Boîte de réception de %s - page %d" -#: actions/inbox.php:30 actions/inbox.php:62 +#: actions/inbox.php:30 +#: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Boîte de réception de %s" -#: actions/inbox.php:53 actions/inbox.php:115 +#: actions/inbox.php:53 +#: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "Cette boîte de réception regroupe les messages personnels qui vous sont envoyés." -#: actions/invite.php:178 actions/invite.php:213 +#: actions/invite.php:178 +#: actions/invite.php:213 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" msgstr "" +"%1$s vous invite à vous inscrire à %2$s (%3$s).\n" +"\n" -#: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 +#: actions/login.php:104 +#: actions/login.php:235 +#: actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Ouvrez automatiquement une session à l'avenir ;" -#: actions/login.php:122 actions/login.php:264 +#: actions/login.php:122 +#: actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "Pour des raisons de sécurité, veuillez entrer à nouveau votre " -#: actions/login.php:126 actions/login.php:268 +#: actions/login.php:126 +#: actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Entrez votre identifiant et votre mot de passe." -#: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 +#: actions/newmessage.php:58 +#: actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "C'est trop long ! Vous n'avez droit qu'à 140 caractères." -#: actions/newmessage.php:65 actions/newmessage.php:128 +#: actions/newmessage.php:65 +#: actions/newmessage.php:128 msgid "No recipient specified." -msgstr "" - -#: actions/newmessage.php:68 actions/newmessage.php:113 -#: classes/Command.php:206 actions/newmessage.php:131 -#: actions/newmessage.php:168 classes/Command.php:237 +msgstr "Aucun destinataire n'a été spécifié." + +#: actions/newmessage.php:68 +#: actions/newmessage.php:113 +#: classes/Command.php:206 +#: actions/newmessage.php:131 +#: actions/newmessage.php:168 +#: classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "Vous ne pouvez pas envoyer de messages à cet utilisateur." -#: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 -#: classes/Command.php:209 actions/twitapidirect_messages.php:158 +#: actions/newmessage.php:71 +#: actions/twitapidirect_messages.php:146 +#: classes/Command.php:209 +#: actions/twitapidirect_messages.php:158 #: classes/Command.php:240 -msgid "" -"Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgid "Don't send a message to yourself; just say it to yourself quietly instead." +msgstr "N'envoyez pas de message à vous-même ; dites-le plutôt dans votre tête..." -#: actions/newmessage.php:108 actions/microsummary.php:62 +#: actions/newmessage.php:108 +#: actions/microsummary.php:62 #: actions/newmessage.php:163 msgid "No such user" -msgstr "" +msgstr "Utilisateur inexistant" -#: actions/newmessage.php:117 actions/newmessage.php:67 +#: actions/newmessage.php:117 +#: actions/newmessage.php:67 msgid "New message" -msgstr "" +msgstr "Nouveau message" -#: actions/noticesearch.php:95 actions/noticesearch.php:146 +#: actions/noticesearch.php:95 +#: actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "Message sans profil correspondant" -#: actions/openidsettings.php:28 actions/openidsettings.php:70 +#: actions/openidsettings.php:28 +#: actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[OpenID](%%doc.openid%%) permet de vous connecter à de nombreux sites " -#: actions/openidsettings.php:46 actions/openidsettings.php:96 +#: actions/openidsettings.php:46 +#: actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "Si vous ne souhaitez pas ajouter un identifiant OpenID à votre compte, " #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "C'est votre seul identifiant OpenID ; si vous le supprimez, vous ne pourrez plus vous identifier !" -#: actions/openidsettings.php:87 actions/openidsettings.php:143 +#: actions/openidsettings.php:87 +#: actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "Vous pouvez retirer un identifiant OpenID de votre compte " -#: actions/outbox.php:28 actions/outbox.php:58 +#: actions/outbox.php:28 +#: actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "Boîte d'envoi de %s - page %d" -#: actions/outbox.php:30 actions/outbox.php:61 +#: actions/outbox.php:30 +#: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Boîte d'envoi de %s" -#: actions/outbox.php:53 actions/outbox.php:116 +#: actions/outbox.php:53 +#: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "Cette boîte d'envoi regroupe les messages personnels que vous avez envoyés." -#: actions/peoplesearch.php:28 actions/peoplesearch.php:52 +#: actions/peoplesearch.php:28 +#: actions/peoplesearch.php:52 #, php-format -msgid "" -"Search for people on %%site.name%% by their name, location, or interests. " -msgstr "" +msgid "Search for people on %%site.name%% by their name, location, or interests. " +msgstr "Recherchez des utilisateurs de %%site.name%% par nom, par emplacement, ou par intérêts. " -#: actions/profilesettings.php:27 actions/profilesettings.php:69 +#: actions/profilesettings.php:27 +#: actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" - -#: actions/profilesettings.php:115 actions/remotesubscribe.php:320 -#: actions/userauthorization.php:159 actions/userrss.php:76 -#: actions/avatarsettings.php:104 actions/avatarsettings.php:179 -#: actions/grouplogo.php:177 actions/remotesubscribe.php:367 -#: actions/userauthorization.php:176 actions/userrss.php:82 +msgstr "Vous pouvez mettre votre profil à jour ici " + +#: actions/profilesettings.php:115 +#: actions/remotesubscribe.php:320 +#: actions/userauthorization.php:159 +#: actions/userrss.php:76 +#: actions/avatarsettings.php:104 +#: actions/avatarsettings.php:179 +#: actions/grouplogo.php:177 +#: actions/remotesubscribe.php:367 +#: actions/userauthorization.php:176 +#: actions/userrss.php:82 msgid "User without matching profile" -msgstr "" +msgstr "Utilisateur sans profil correspondant" -#: actions/recoverpassword.php:91 actions/recoverpassword.php:97 +#: actions/recoverpassword.php:91 +#: actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "Ce code de validation est périmé." -#: actions/recoverpassword.php:141 actions/recoverpassword.php:152 +#: actions/recoverpassword.php:141 +#: actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "Si vous avez oublié ou perdu votre " -#: actions/recoverpassword.php:154 actions/recoverpassword.php:158 +# Entrez un : masculin ou féminin ? De quoi s'agit-il ? Contexte ? +#: actions/recoverpassword.php:154 +#: actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "Vous avez été identifié(e) avec succès. Entrez un " -#: actions/recoverpassword.php:169 actions/recoverpassword.php:188 +#: actions/recoverpassword.php:169 +#: actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "Votre pseudo sur ce serveur, " -#: actions/recoverpassword.php:271 actions/recoverpassword.php:304 +#: actions/recoverpassword.php:271 +#: actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "Instructions pour récupérer votre mot de passe" -#: actions/recoverpassword.php:327 actions/recoverpassword.php:361 +#: actions/recoverpassword.php:327 +#: actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "Votre nouveau mot de passe a été enregistré avec succès." -#: actions/register.php:95 actions/register.php:180 +#: actions/register.php:95 +#: actions/register.php:180 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Votre mot de passe doit contenir au moins 6 caractères." #: actions/register.php:216 #, php-format -msgid "" -"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " -"want to..." -msgstr "" +msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may want to..." +msgstr "Félicitations, %s ! Bienvenue dans %%%%site.name%%%%. Plusieurs choix s'offrent maintenant à vous :" #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(Vous recevrez sous peu un courriel avec " -#: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 +#: actions/remotesubscribe.php:51 +#: actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "Pour vous abonner, vous pouvez [login](%%action.login%%), " -#: actions/showfavorites.php:61 actions/showfavorites.php:145 +#: actions/showfavorites.php:61 +#: actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "Fil des favoris de %s" -#: actions/showfavorites.php:84 actions/twitapifavorites.php:85 -#: actions/showfavorites.php:202 actions/twitapifavorites.php:59 +#: actions/showfavorites.php:84 +#: actions/twitapifavorites.php:85 +#: actions/showfavorites.php:202 +#: actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Impossible d'afficher les favoris." -#: actions/showmessage.php:33 actions/showmessage.php:81 +#: actions/showmessage.php:33 +#: actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "Message introuvable." #: actions/showmessage.php:42 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Ce message personnel ne peut être lu que par son expéditeur et son destinataire." -#: actions/showmessage.php:61 actions/showmessage.php:108 +#: actions/showmessage.php:61 +#: actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Message adressé à %1$s le %2$s" -#: actions/showmessage.php:66 actions/showmessage.php:113 +#: actions/showmessage.php:66 +#: actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Message reçu de %1$s le %2$s" #: actions/showstream.php:154 msgid "Send a message" -msgstr "" +msgstr "Envoyer un message" -#: actions/smssettings.php:312 actions/smssettings.php:464 +#: actions/smssettings.php:312 +#: actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "Votre fournisseur de téléphone mobile." -#: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 +#: actions/twitapidirect_messages.php:76 +#: actions/twitapidirect_messages.php:68 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "Messages envoyés à %s" -#: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 +#: actions/twitapidirect_messages.php:77 +#: actions/twitapidirect_messages.php:69 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Tous les messages envoyés à %s" -#: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 +#: actions/twitapidirect_messages.php:81 +#: actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "Messages envoyés" -#: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 +#: actions/twitapidirect_messages.php:82 +#: actions/twitapidirect_messages.php:74 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Tous les messages envoyés par %s" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 msgid "No message text!" -msgstr "" +msgstr "Message sans texte !" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 msgid "Recipient user not found." -msgstr "" +msgstr "Destinataire non trouvé." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "Vous ne pouvez envoyer des messages personnels qu'aux utilisateurs inscrits comme amis." -#: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 +#: actions/twitapifavorites.php:92 +#: actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / Favoris de %s" -#: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 +#: actions/twitapifavorites.php:95 +#: actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s statuts ont été ajoutés aux favoris de %s / %s." -#: actions/twitapifavorites.php:187 lib/mail.php:275 -#: actions/twitapifavorites.php:164 lib/mail.php:553 +#: actions/twitapifavorites.php:187 +#: lib/mail.php:275 +#: actions/twitapifavorites.php:164 +#: lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s a ajouté un de vos messages à ses favoris" -#: actions/twitapifavorites.php:188 lib/mail.php:276 +#: actions/twitapifavorites.php:188 +#: lib/mail.php:276 #: actions/twitapifavorites.php:165 #, php-format msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s a ajouté à ses favoris un de vos statuts dans %2$s.\n" +"\n" #: actions/twittersettings.php:27 -msgid "" -"Add your Twitter account to automatically send your notices to Twitter, " -msgstr "" +msgid "Add your Twitter account to automatically send your notices to Twitter, " +msgstr "Inscrivez votre compte Twitter pour transférer automatiquement vos statuts vers Twitter, " -#: actions/twittersettings.php:41 actions/twittersettings.php:60 +#: actions/twittersettings.php:41 +#: actions/twittersettings.php:60 msgid "Twitter settings" -msgstr "" +msgstr "Préférences Twitter" -#: actions/twittersettings.php:48 actions/twittersettings.php:105 +#: actions/twittersettings.php:48 +#: actions/twittersettings.php:105 msgid "Twitter Account" -msgstr "" +msgstr "Votre compte Twitter" -#: actions/twittersettings.php:56 actions/twittersettings.php:113 +#: actions/twittersettings.php:56 +#: actions/twittersettings.php:113 msgid "Current verified Twitter account." -msgstr "" +msgstr "Compte Twitter actuellement utilisé." #: actions/twittersettings.php:63 msgid "Twitter Username" -msgstr "" +msgstr "Identifiant Twitter" -#: actions/twittersettings.php:65 actions/twittersettings.php:123 +#: actions/twittersettings.php:65 +#: actions/twittersettings.php:123 msgid "No spaces, please." -msgstr "" +msgstr "Veuillez éviter les espaces." #: actions/twittersettings.php:67 msgid "Twitter Password" -msgstr "" +msgstr "Mot de passe Twitter" -#: actions/twittersettings.php:72 actions/twittersettings.php:139 +#: actions/twittersettings.php:72 +#: actions/twittersettings.php:139 msgid "Automatically send my notices to Twitter." -msgstr "" +msgstr "Envoyer automatiquement mes statuts dans Twitter." -#: actions/twittersettings.php:75 actions/twittersettings.php:146 +#: actions/twittersettings.php:75 +#: actions/twittersettings.php:146 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "Envoyer mes réponses locales \"@\" dans Twitter." -#: actions/twittersettings.php:78 actions/twittersettings.php:153 +#: actions/twittersettings.php:78 +#: actions/twittersettings.php:153 msgid "Subscribe to my Twitter friends here." -msgstr "" +msgstr "Je veux m'abonner à mes amis de Twitter qui ont enregistré un compte ici." #: actions/twittersettings.php:122 -msgid "" -"Username must have only numbers, upper- and lowercase letters, and " -"underscore (_). 15 chars max." -msgstr "" +msgid "Username must have only numbers, upper- and lowercase letters, and underscore (_). 15 chars max." +msgstr "L'identifiant ne doit pas dépasser 15 caractères, et ne peut contenir que des chiffres, des lettres minuscules ou majuscules, et des barres de soulignement (_). " -#: actions/twittersettings.php:128 actions/twittersettings.php:334 +#: actions/twittersettings.php:128 +#: actions/twittersettings.php:334 msgid "Could not verify your Twitter credentials!" -msgstr "" +msgstr "La vérification de vos informations de Twitter a échoué !" #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "Impossible de récupérer l'information du compte de \"%s\" dans Twitter." -#: actions/twittersettings.php:151 actions/twittersettings.php:170 -#: actions/twittersettings.php:348 actions/twittersettings.php:368 +#: actions/twittersettings.php:151 +#: actions/twittersettings.php:170 +#: actions/twittersettings.php:348 +#: actions/twittersettings.php:368 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "L'enregistrement de votre configuration Twitter a échoué !" -#: actions/twittersettings.php:174 actions/twittersettings.php:376 +#: actions/twittersettings.php:174 +#: actions/twittersettings.php:376 msgid "Twitter settings saved." -msgstr "" +msgstr "Configuration Twitter enregistrée avec succès." -#: actions/twittersettings.php:192 actions/twittersettings.php:395 +#: actions/twittersettings.php:192 +#: actions/twittersettings.php:395 msgid "That is not your Twitter account." -msgstr "" +msgstr "Ce compte Twitter ne vous appartient pas." -#: actions/twittersettings.php:200 actions/twittersettings.php:208 +#: actions/twittersettings.php:200 +#: actions/twittersettings.php:208 #: actions/twittersettings.php:403 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "Impossible de retirer cet utilisateur de Twitter." -#: actions/twittersettings.php:212 actions/twittersettings.php:407 +#: actions/twittersettings.php:212 +#: actions/twittersettings.php:407 msgid "Twitter account removed." -msgstr "" +msgstr "Le compte Twitter a été retiré." -#: actions/twittersettings.php:225 actions/twittersettings.php:239 -#: actions/twittersettings.php:428 actions/twittersettings.php:439 +#: actions/twittersettings.php:225 +#: actions/twittersettings.php:239 +#: actions/twittersettings.php:428 +#: actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "Impossible d'enregistrer vos préférences Twitter." -#: actions/twittersettings.php:245 actions/twittersettings.php:461 +#: actions/twittersettings.php:245 +#: actions/twittersettings.php:461 msgid "Twitter preferences saved." -msgstr "" +msgstr "Préférences Twitter enregistrées avec succès." -#: actions/userauthorization.php:84 actions/userauthorization.php:86 +#: actions/userauthorization.php:84 +#: actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "Veuillez vérifier ces informations pour vous assurer que " -#: actions/userauthorization.php:324 actions/userauthorization.php:340 +# we are missing context here +#: actions/userauthorization.php:324 +#: actions/userauthorization.php:340 +#, fuzzy msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "L'abonnement a été autorisé, mais pas " -#: actions/userauthorization.php:334 actions/userauthorization.php:351 +# missing context +#: actions/userauthorization.php:334 +#: actions/userauthorization.php:351 +#, fuzzy msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "L'abonnement a été refusé, mais pas " -#: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 +#: classes/Channel.php:113 +#: classes/Channel.php:132 +#: classes/Channel.php:151 msgid "Command results" -msgstr "" +msgstr "Résultats de la commande" -#: classes/Channel.php:148 classes/Channel.php:204 +#: classes/Channel.php:148 +#: classes/Channel.php:204 msgid "Command complete" -msgstr "" +msgstr "Commande complétée" -#: classes/Channel.php:158 classes/Channel.php:215 +#: classes/Channel.php:158 +#: classes/Channel.php:215 msgid "Command failed" -msgstr "" +msgstr "Échec de la commande" -#: classes/Command.php:39 classes/Command.php:44 +#: classes/Command.php:39 +#: classes/Command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Désolé, cette commande n'a pas encore été implémantée." -#: classes/Command.php:96 classes/Command.php:113 +#: classes/Command.php:96 +#: classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "" +msgstr "Abonnements : %1$s\n" -#: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 +#: classes/Command.php:125 +#: classes/Command.php:242 +#: classes/Command.php:145 #: classes/Command.php:276 msgid "User has no last notice" -msgstr "" +msgstr "Aucun statut récent pour cet utilisateur" -#: classes/Command.php:146 classes/Command.php:166 +#: classes/Command.php:146 +#: classes/Command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "Statut ajouté aux favoris." -#: classes/Command.php:166 classes/Command.php:189 +#: classes/Command.php:166 +#: classes/Command.php:189 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" -#: classes/Command.php:169 classes/Command.php:192 +#: classes/Command.php:169 +#: classes/Command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "Nom complet : %s" -#: classes/Command.php:172 classes/Command.php:195 +#: classes/Command.php:172 +#: classes/Command.php:195 #, php-format msgid "Location: %s" -msgstr "" +msgstr "Emplacement : %s" -#: classes/Command.php:175 classes/Command.php:198 +#: classes/Command.php:175 +#: classes/Command.php:198 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Site Web : %s" -#: classes/Command.php:178 classes/Command.php:201 +#: classes/Command.php:178 +#: classes/Command.php:201 #, php-format msgid "About: %s" -msgstr "" +msgstr "À propos : %s" -#: classes/Command.php:200 classes/Command.php:228 +#: classes/Command.php:200 +#: classes/Command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "Message trop long ! La taille maximale est de 140 caractères ; vous en avez entré %d." -#: classes/Command.php:214 classes/Command.php:245 +#: classes/Command.php:214 +#: classes/Command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "Votre message a été envoyé à %s" -#: classes/Command.php:216 classes/Command.php:247 +#: classes/Command.php:216 +#: classes/Command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "Une erreur est survenue pendant l'envoi de votre message." -#: classes/Command.php:263 classes/Command.php:300 +#: classes/Command.php:263 +#: classes/Command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "Indiquez le nom de l'utilisateur auquel vous souhaitez vous abonner " -#: classes/Command.php:270 classes/Command.php:307 +# could it be plural? +#: classes/Command.php:270 +#: classes/Command.php:307 +#, fuzzy #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "Abonné à %s" -#: classes/Command.php:288 classes/Command.php:328 +#: classes/Command.php:288 +#: classes/Command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "Indiquez le nom de l'utilisateur duquel vous souhaitez vous désabonner" -#: classes/Command.php:295 classes/Command.php:335 +#: classes/Command.php:295 +#: classes/Command.php:335 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "Désabonné de %s" -#: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 +#: classes/Command.php:310 +#: classes/Command.php:330 +#: classes/Command.php:353 #: classes/Command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "Cette commande n'a pas encore été implémantée." -#: classes/Command.php:313 classes/Command.php:356 +#: classes/Command.php:313 +#: classes/Command.php:356 msgid "Notification off." -msgstr "" +msgstr "Avertissements désactivés." -#: classes/Command.php:315 classes/Command.php:358 +#: classes/Command.php:315 +#: classes/Command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "Impossible de désactiver les avertissements." -#: classes/Command.php:333 classes/Command.php:379 +#: classes/Command.php:333 +#: classes/Command.php:379 msgid "Notification on." -msgstr "" +msgstr "Avertissements activés." -#: classes/Command.php:335 classes/Command.php:381 +#: classes/Command.php:335 +#: classes/Command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "Impossible d'activer les avertissements." -#: classes/Command.php:344 classes/Command.php:392 +#: classes/Command.php:344 +#: classes/Command.php:392 msgid "Commands:\n" -msgstr "" +msgstr "Commandes : \n" -#: classes/Message.php:53 classes/Message.php:56 +#: classes/Message.php:53 +#: classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "Impossible d'insérer le message." -#: classes/Message.php:63 classes/Message.php:66 +#: classes/Message.php:63 +#: classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "Impossible de mettre à jour le message avec un nouvel URI." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "Utilisateur sans profil correspondant dans le système." -#: lib/mail.php:147 lib/mail.php:289 +#: lib/mail.php:147 +#: lib/mail.php:289 #, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"Vous avez une nouvelle adresse pour publier vos statuts dans %1$s.\n" +"\n" -#: lib/mail.php:249 lib/mail.php:508 +#: lib/mail.php:249 +#: lib/mail.php:508 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Nouveau message personnel de %s" -#: lib/mail.php:253 lib/mail.php:512 +#: lib/mail.php:253 +#: lib/mail.php:512 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"%1$s (%2$s) vous a envoyé un message personnel :\n" +"\n" -#: lib/mailbox.php:43 lib/mailbox.php:89 +#: lib/mailbox.php:43 +#: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "L'accès à cette boîte de réception est réservé à son utilisateur." -#: lib/openid.php:195 lib/openid.php:203 +#: lib/openid.php:195 +#: lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "Ce formulaire devrait être soumis automatiquement." -#: lib/personal.php:65 lib/personalgroupnav.php:113 +#: lib/personal.php:65 +#: lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Favoris" -#: lib/personal.php:66 lib/personalgroupnav.php:114 +#: lib/personal.php:66 +#: lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "Statuts favoris de %s" -#: lib/personal.php:66 lib/personalgroupnav.php:114 +#: lib/personal.php:66 +#: lib/personalgroupnav.php:114 msgid "User" -msgstr "" +msgstr "Utilisateur" -#: lib/personal.php:75 lib/personalgroupnav.php:123 +#: lib/personal.php:75 +#: lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "Boîte de réception" -#: lib/personal.php:76 lib/personalgroupnav.php:124 +#: lib/personal.php:76 +#: lib/personalgroupnav.php:124 msgid "Your incoming messages" -msgstr "" +msgstr "Vos messages reçus" -#: lib/personal.php:80 lib/personalgroupnav.php:128 +#: lib/personal.php:80 +#: lib/personalgroupnav.php:128 msgid "Outbox" -msgstr "" +msgstr "Boîte d'envoi" -#: lib/personal.php:81 lib/personalgroupnav.php:129 +#: lib/personal.php:81 +#: lib/personalgroupnav.php:129 msgid "Your sent messages" -msgstr "" +msgstr "Vos messages envoyés" -#: lib/settingsaction.php:99 lib/connectsettingsaction.php:110 +#: lib/settingsaction.php:99 +#: lib/connectsettingsaction.php:110 msgid "Twitter" -msgstr "" +msgstr "Twitter" -#: lib/settingsaction.php:100 lib/connectsettingsaction.php:111 +#: lib/settingsaction.php:100 +#: lib/connectsettingsaction.php:111 msgid "Twitter integration options" -msgstr "" +msgstr "Configuration Twitter" -#: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 +#: lib/util.php:1718 +#: lib/messageform.php:139 +#: lib/noticelist.php:422 msgid "To" -msgstr "" +msgstr "À " -#: scripts/maildaemon.php:45 scripts/maildaemon.php:48 +#: scripts/maildaemon.php:45 +#: scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "Impossible de déchiffrer ce message." -#: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#: actions/all.php:63 +#: actions/facebookhome.php:162 +#, php-format msgid "%s and friends, page %d" -msgstr "%s et ses amis" +msgstr "%s et ses amis - page %d" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "Vous pouvez associer un « avatar » (image personnelle) à votre profil." -#: actions/avatarsettings.php:117 actions/avatarsettings.php:191 +#: actions/avatarsettings.php:117 +#: actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "Paramètres de messagerie instantanée" +msgstr "Paramètres de l'avatar" -#: actions/avatarsettings.php:124 actions/avatarsettings.php:199 -#: actions/grouplogo.php:198 actions/grouplogo.php:258 +#: actions/avatarsettings.php:124 +#: actions/avatarsettings.php:199 +#: actions/grouplogo.php:198 +#: actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "Image originale" -#: actions/avatarsettings.php:139 actions/avatarsettings.php:211 -#: actions/grouplogo.php:209 actions/grouplogo.php:270 +#: actions/avatarsettings.php:139 +#: actions/avatarsettings.php:211 +#: actions/grouplogo.php:209 +#: actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "Aperçu" -#: actions/avatarsettings.php:225 actions/grouplogo.php:284 +#: actions/avatarsettings.php:225 +#: actions/grouplogo.php:284 msgid "Crop" -msgstr "" - -#: actions/avatarsettings.php:248 actions/deletenotice.php:133 -#: actions/emailsettings.php:224 actions/grouplogo.php:307 -#: actions/imsettings.php:200 actions/login.php:102 actions/newmessage.php:100 -#: actions/newnotice.php:96 actions/openidsettings.php:188 -#: actions/othersettings.php:136 actions/passwordsettings.php:131 -#: actions/profilesettings.php:172 actions/register.php:113 -#: actions/remotesubscribe.php:53 actions/smssettings.php:216 -#: actions/subedit.php:38 actions/twittersettings.php:290 +msgstr "Recadrer" + +#: actions/avatarsettings.php:248 +#: actions/deletenotice.php:133 +#: actions/emailsettings.php:224 +#: actions/grouplogo.php:307 +#: actions/imsettings.php:200 +#: actions/login.php:102 +#: actions/newmessage.php:100 +#: actions/newnotice.php:96 +#: actions/openidsettings.php:188 +#: actions/othersettings.php:136 +#: actions/passwordsettings.php:131 +#: actions/profilesettings.php:172 +#: actions/register.php:113 +#: actions/remotesubscribe.php:53 +#: actions/smssettings.php:216 +#: actions/subedit.php:38 +#: actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "Un problème est survenu avec vos informations de session. " -#: actions/avatarsettings.php:303 actions/grouplogo.php:360 +#: actions/avatarsettings.php:303 +#: actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Sélectionnez une zone de forme carrée pour définir votre avatar" -#: actions/avatarsettings.php:327 actions/grouplogo.php:384 +#: actions/avatarsettings.php:327 +#: actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "Données perdues." -#: actions/avatarsettings.php:334 actions/grouplogo.php:391 +#: actions/avatarsettings.php:334 +#: actions/grouplogo.php:391 #: classes/User_group.php:112 -#, fuzzy msgid "Lost our file." -msgstr "Il n'y a pas cet OpenID." - -#: actions/avatarsettings.php:349 actions/avatarsettings.php:383 -#: actions/grouplogo.php:406 actions/grouplogo.php:440 -#: classes/User_group.php:129 classes/User_group.php:161 -#, fuzzy +msgstr "Fichier perdu." + +#: actions/avatarsettings.php:349 +#: actions/avatarsettings.php:383 +#: actions/grouplogo.php:406 +#: actions/grouplogo.php:440 +#: classes/User_group.php:129 +#: classes/User_group.php:161 msgid "Unknown file type" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Format de fichier d'image non-supporté.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Type de fichier inconnu" -#: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 +#: actions/block.php:69 +#: actions/subedit.php:46 +#: actions/unblock.php:70 msgid "No profile specified." -msgstr "" +msgstr "Aucun profil n'a été spécifié." -#: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 +#: actions/block.php:74 +#: actions/subedit.php:53 +#: actions/tagother.php:46 #: actions/unblock.php:75 msgid "No profile with that ID." -msgstr "" +msgstr "Aucun profil ne correspond à cet identifiant." #: actions/block.php:111 msgid "Block user" -msgstr "" +msgstr "Bloquer cet utilisateur" #: actions/block.php:129 msgid "Are you sure you want to block this user? " -msgstr "" +msgstr "Êtes-vous sûr(e) de bloquer cet utilisateur ?" #: actions/block.php:162 -#, fuzzy msgid "You have already blocked this user." -msgstr "Vous êtes déjà connecté !" +msgstr "Vous avez déjà bloqué cet utilisateur." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "Impossible d'enregistrer les informations de blocage." #: actions/confirmaddress.php:159 -#, fuzzy, php-format +#, php-format msgid "The address \"%s\" has been " -msgstr "Cette adresse a déjà été confirmée." +msgstr "L'adresse \"%s\" a été " #: actions/deletenotice.php:73 -#, fuzzy msgid "You are about to permanently delete a notice. " -msgstr "Êtes-vous sur de vouloir effacer cet avertissement ?" +msgstr "Ce statut va être définitivement supprimé. " #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Ajouter aux favoris" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" - -#: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 -#: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 +msgstr "Modifier le groupe %s" + +#: actions/editgroup.php:66 +#: actions/groupbyid.php:72 +#: actions/grouplogo.php:66 +#: actions/joingroup.php:60 +#: actions/newgroup.php:65 +#: actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "Les boîtes de réception doivent être activées pour que les groupes fonctionnent " -#: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 +#: actions/editgroup.php:71 +#: actions/grouplogo.php:71 +#: actions/newgroup.php:70 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Vous devez ouvrir une session pour créer un groupe." -#: actions/editgroup.php:87 actions/grouplogo.php:87 -#: actions/groupmembers.php:76 actions/joingroup.php:81 +#: actions/editgroup.php:87 +#: actions/grouplogo.php:87 +#: actions/groupmembers.php:76 +#: actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "Pas de surnom." +msgstr "Aucun pseudo" -#: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 -#: actions/groupmembers.php:83 actions/joingroup.php:88 +#: actions/editgroup.php:99 +#: actions/groupbyid.php:88 +#: actions/grouplogo.php:100 +#: actions/groupmembers.php:83 +#: actions/joingroup.php:88 #: actions/showgroup.php:128 -#, fuzzy msgid "No such group" -msgstr "Il n'y a pas ce document.'" +msgstr "Aucun groupe trouvé" -#: actions/editgroup.php:106 actions/editgroup.php:165 +#: actions/editgroup.php:106 +#: actions/editgroup.php:165 #: actions/grouplogo.php:107 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "Seuls les administrateurs d'un groupe peuvent le modifier." #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "Remplissez ce formulaire pour modifier les options du groupe." -#: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy +#: actions/editgroup.php:179 +#: actions/newgroup.php:130 +#: actions/register.php:156 msgid "Nickname must have only lowercase letters " -msgstr "" -"Les pseudos ne peuvent contenir que des caractères minuscules et des nombres " -"et aucuns espaces." +msgstr "Le pseudo ne peut contenir que des caractères minuscules " -#: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy +#: actions/editgroup.php:198 +#: actions/newgroup.php:149 msgid "description is too long (max 140 chars)." -msgstr "La biographie est trop longue (140 caractères maximum)." +msgstr "la description est trop longue (140 caractères maximum)." #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Impossible de mettre à jour l'utilisateur." +msgstr "Impossible de mettre à jour le groupe." #: actions/editgroup.php:226 msgid "Options saved." -msgstr "" +msgstr "Vos options ont été enregistrées." -#: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#: actions/emailsettings.php:107 +#: actions/imsettings.php:108 +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "En attente de confirmation à ce numéro de téléphone." +msgstr "En attente de confirmation de cette adresse." -#: actions/emailsettings.php:139 actions/smssettings.php:150 -#, fuzzy +# using the infinitive form here? +#: actions/emailsettings.php:139 +#: actions/smssettings.php:150 msgid "Make a new email address for posting to; " -msgstr "Nouvelle adresse email pour envoyer à %s" +msgstr "Créer une nouvelle adresse courriel pour publier vos statuts ; " #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "Envoyez-moi un courriel quand quelqu'un " #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Autoriser mes amis à m'envoyer des courriels et des clins d'oeil." +# Missing context #: actions/emailsettings.php:321 #, fuzzy msgid "That email address already belongs " msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Cet identifiant Jabber appartient déjà à un autre utilisateur.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Cette adresse courriel appartient déjà " #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " -msgstr "" -"Un code de confirmation a été envoyé à votre adresse de messagerie " -"instantanée. Vous devez approuvez %s pour vous envoyer des messages." +msgstr "Un code de confirmation a été envoyé à l'adresse courriel indiquée." #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "Erreur du serveur - impossible d'accéder à cet utilisateur !" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "Si vous souhaitez que l'application %s soit mise à jour automatiquement " -#: actions/facebookhome.php:213 actions/facebooksettings.php:137 +#: actions/facebookhome.php:213 +#: actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Autoriser %s à mettre à jour mon statut dans Facebook" +# context??? #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "Sauter" +# i originally put 'aucun statut!' here, but the original translation seems better #: actions/facebookhome.php:235 #, fuzzy msgid "No notice content!" -msgstr "Pas de contenu!" +msgstr "Statut sans contenu!" -#: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 +#: actions/facebookhome.php:295 +#: lib/action.php:870 +#: lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "Pagination" -#: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 +#: actions/facebookhome.php:304 +#: lib/action.php:879 +#: lib/facebookaction.php:408 msgid "After" -msgstr "" +msgstr "Après" -#: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy +#: actions/facebookhome.php:312 +#: lib/action.php:887 +#: lib/facebookaction.php:416 msgid "Before" -msgstr "Avant »" +msgstr "Avant" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "Merci d'inviter vos amis à utiliser %s" #: actions/facebookinvite.php:72 -#, fuzzy msgid "Invitations have been sent to the following users:" -msgstr "Invitation(s) envoyée(s) aux personnes suivantes:" +msgstr "Invitation(s) envoyée(s) aux personnes suivantes :" #: actions/facebookinvite.php:96 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "Vous avez reçu une invitation à %s" #: actions/facebookinvite.php:105 #, php-format msgid "Invite your friends to use %s" -msgstr "" +msgstr "Invitez vos amis dans %s" #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Amis déjà inscrits à %s :" #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "Envoyer des invitations" #: actions/facebookremove.php:56 -#, fuzzy msgid "Couldn't remove Facebook user." -msgstr "Impossible de créer l'inscription." +msgstr "Impossible de retirer l'utilisateur Facebook." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "Un problème est survenu lors de l'enregistrement de vos préférences de synchronisation !" #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." -msgstr "Préférences sauvegardées" +msgstr "Préférences de synchronisation enregistrées." #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." -msgstr "" +msgstr "Mettre à jour automatiquement mon statut Facebook." #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "Envoyer mes réponses \"@\" dans Facebook." #: actions/facebooksettings.php:106 -#, fuzzy msgid "Prefix" -msgstr "Profile" +msgstr "Préfixe" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Préfixe à insérer dans les statuts." #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "Si vous souhaitez une mise à jour automatique de %s " #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" -msgstr "Préférences" +msgstr "Préférences de synchronisation" -#: actions/favor.php:94 lib/disfavorform.php:140 +#: actions/favor.php:94 +#: lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Retirer ce favori" -#: actions/favorited.php:65 lib/popularnoticesection.php:76 +#: actions/favorited.php:65 +#: lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 msgid "Popular notices" -msgstr "" +msgstr "Statuts populaires" #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" -msgstr "" +msgstr "Statuts populaires - page %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "Statuts les plus populaires sur le site en ce moment." -#: actions/featured.php:69 lib/featureduserssection.php:82 +#: actions/featured.php:69 +#: lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 msgid "Featured users" -msgstr "" +msgstr "Utilisateurs en vedette" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Utilisateurs en vedette - page %d" #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "Les utilisateurs à ne pas manquer dans %s" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Cet utilisateur vous a empêché de vous inscrire." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "Aucun identifiant" -#: actions/grouplogo.php:138 actions/grouplogo.php:191 +#: actions/grouplogo.php:138 +#: actions/grouplogo.php:191 msgid "Group logo" -msgstr "" +msgstr "Logo du groupe" #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "Choisissez un logo pour votre groupe." #: actions/grouplogo.php:448 -#, fuzzy msgid "Logo updated." -msgstr "Avatar mis à jour." +msgstr "Logo mis à jour." #: actions/grouplogo.php:450 -#, fuzzy msgid "Failed updating logo." -msgstr "La mise à jour de l'avatar a échoué." +msgstr "La mise à jour du logo a échoué." -#: actions/groupmembers.php:93 lib/groupnav.php:91 +#: actions/groupmembers.php:93 +#: lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "Membres du groupe %s" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "Membres du groupe %s - page %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "Liste des utilisateurs inscrits à ce groupe." -#: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 +#: actions/groups.php:62 +#: actions/showstream.php:518 +#: lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "Groupes" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Groupes - page %d" +# missing context #: actions/groups.php:90 +#, fuzzy #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " -msgstr "" +msgstr "Les groupes %%%%site.name%%%% vous permettent d'échanger avec " -#: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 -#, fuzzy +#: actions/groups.php:106 +#: actions/usergroups.php:124 +#: lib/groupeditform.php:123 msgid "Create a new group" -msgstr "Créer un nouveau compte" +msgstr "Créer un nouveau groupe" #: actions/groupsearch.php:57 -#, fuzzy, php-format -msgid "" -"Search for groups on %%site.name%% by their name, location, or description. " -msgstr "" -"Recherche de personne sur %%site.name%% par leur nom, localisation ou " -"intérêt. Séparez les termes de la recherches par des espaces ; ils doivent " -"être de 3 caractères ou plus." +#, php-format +msgid "Search for groups on %%site.name%% by their name, location, or description. " +msgstr "Recherchez des groupes dans %%site.name%% par nom, par emplacement ou par intérêts. Séparez les termes de recherches par des espaces. Ils doivent contenir au moins 3 caractères." #: actions/groupsearch.php:63 -#, fuzzy msgid "Group search" -msgstr "Rechercher des personnes" +msgstr "Rechercher des groupes" +# missing context #: actions/imsettings.php:70 +#, fuzzy msgid "You can send and receive notices through " -msgstr "" +msgstr "Vous pouvez publier et lire les statuts via " +# missing context #: actions/imsettings.php:120 +#, fuzzy #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "Adresse Jabber ou GTalk, " #: actions/imsettings.php:147 -#, fuzzy msgid "Send me replies through Jabber/GTalk " msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"M'envoyer des messages par Jabber/GTalk.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Envoyez-moi les réponses par Jabber/GTalk" #: actions/imsettings.php:321 -#, fuzzy, php-format +#, php-format msgid "A confirmation code was sent " -msgstr "Pas de code de confirmation." +msgstr "Un code de confirmation a été envoyé " #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Vous devez ouvrir une session pour rejoindre un groupe." #: actions/joingroup.php:95 -#, fuzzy msgid "You are already a member of that group" -msgstr "Vous êtes déjà connecté !" +msgstr "Vous êtes déjà membre de ce groupe " #: actions/joingroup.php:128 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Impossible de suivre l'utilisateur: Utilisateur non trouvé." +msgstr "Impossible d'inscrire l'utilisateur %s au groupe %s" #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s a rejoint le groupe %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "Les boîtes de réception doivent être activées pour que les groupes fonctionnent." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Vous devez ouvrir une session pour quitter un groupe." #: actions/leavegroup.php:88 -#, fuzzy msgid "No such group." -msgstr "Il n'y a pas ce document.'" +msgstr "Aucun groupe trouvé." #: actions/leavegroup.php:95 msgid "You are not a member of that group." -msgstr "" +msgstr "Vous n'êtes pas membre de ce groupe." #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "Il est recommandé de ne pas quitter un groupe dont vous êtes administrateur." #: actions/leavegroup.php:130 -#, fuzzy msgid "Could not find membership record." -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Impossible de mettre à jour l'utilisateur.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Aucun enregistrement à ce groupe n'a été trouvé." #: actions/leavegroup.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Impossible de suivre l'utilisateur: Utilisateur non trouvé." +msgstr "Impossible de retirer l'utilisateur %s du groupe %s" #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s a quitté le groupe %s" -#: actions/login.php:225 lib/facebookaction.php:304 +#: actions/login.php:225 +#: lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "Ouverture de session" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "Aucun statut " #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Nouveau groupe" #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "Remplissez les champs ci-dessous pour créer un nouveau groupe :" #: actions/newgroup.php:177 -#, fuzzy msgid "Could not create group." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Non inscrit !\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Impossible de créer le groupe." #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." -msgstr "Impossible de créer l'inscription." +msgstr "Impossible d'établir l'inscription au groupe." -#: actions/newmessage.php:119 actions/newnotice.php:132 -#, fuzzy +#: actions/newmessage.php:119 +#: actions/newnotice.php:132 msgid "That's too long. " -msgstr "Ce fichier est trop gros." +msgstr "C'est trop long." #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "N'envoyez pas de message à vous-même ; " #: actions/newnotice.php:166 -#, fuzzy msgid "Notice posted" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Recherche\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Statut publié" -#: actions/newnotice.php:200 classes/Channel.php:163 +#: actions/newnotice.php:200 +#: classes/Channel.php:163 msgid "Ajax Error" -msgstr "" +msgstr "Erreur Ajax" #: actions/nudge.php:85 -msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." -msgstr "" +msgid "This user doesn't allow nudges or hasn't confirmed or set his email yet." +msgstr "Cet utilisateur n'accepte pas les clins d'Å“il ou n'a pas encore validé son adresse courriel." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Clin d'Å“il envoyé" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Clin d'Å“il envoyé !" #: actions/openidlogin.php:97 -#, fuzzy msgid "OpenID login" msgstr "Connexion OpenID" #: actions/openidsettings.php:128 -#, fuzzy msgid "Removing your only OpenID " -msgstr "Enlever l'OpenID" +msgstr "Retirer votre OpenID " #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "Paramètres de messagerie instantanée" +msgstr "Autres paramètres" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "Autres options à configurer" #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "Réduction automatique des adresses Web (URL)" #: actions/othersettings.php:112 msgid "Service" -msgstr "" +msgstr "Service" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "Sélectionnez un service de réduction d'URL." #: actions/othersettings.php:144 -#, fuzzy msgid "URL shortening service is too long (max 50 chars)." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"La localisation est trop longue (255 caractères maximum).\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Le service de réduction d'URL est trop long (50 caractères maximum)." #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Changer votre mot de passe" +msgstr "Modifier votre mot de passe." #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" -msgstr "Mot de passe sauvegardé." +msgstr "Modification du mot de passe" #: actions/peopletag.php:35 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Ce n'est pas une adresse email valide.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ce marquage est invalide : %s" +# can it be plural? #: actions/peopletag.php:47 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "Utilisateurs marqués &s - page %d" +# can it be plural? #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "Les utilisateurs suivants se sont marqués \"%s\" :" #: actions/profilesettings.php:91 -#, fuzzy msgid "Profile information" -msgstr "Profil inconnu" +msgstr "Information de profil" #: actions/profilesettings.php:124 -msgid "" -"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "" +msgid "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" +msgstr "Marquages (tags) pour votre profil, séparés par des virgules ou des espaces" +# missing context #: actions/profilesettings.php:144 #, fuzzy msgid "Automatically subscribe to whoever " -msgstr "" -"M'abonner automatiquement à quiconque s'abonne à moi (meilleur pour les non-" -"humains)" +msgstr "M'abonner automatiquement à quiconque " -#: actions/profilesettings.php:229 actions/tagother.php:176 -#, fuzzy, php-format +#: actions/profilesettings.php:229 +#: actions/tagother.php:176 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "Taille invalide." +msgstr "Marquage invalide : \"%s\"" #: actions/profilesettings.php:311 msgid "Couldn't save tags." -msgstr "" +msgstr "Impossible d'enregistrer les marquages. " #: actions/public.php:107 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "Évolution publique" +msgstr "Flux public - page %d" #: actions/public.php:173 -#, fuzzy msgid "Could not retrieve public stream." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Non inscrit !\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Impossible de récupérer le flux public." #: actions/public.php:220 #, php-format -msgid "" -"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" -"blogging) service " -msgstr "" +msgid "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service " +msgstr "%%site.name%% est un service de [micro-blogging](http://fr.wikipedia.org/wiki/Microblog) " #: actions/publictagcloud.php:57 #, fuzzy msgid "Public tag cloud" -msgstr "Fil du flux public" +msgstr "Marquages publics" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Derniers marquages les plus populaires dans %s " #: actions/publictagcloud.php:119 +#, fuzzy msgid "Tag cloud" -msgstr "" +msgstr "Marquages " -#: actions/register.php:139 actions/register.php:349 +#: actions/register.php:139 +#: actions/register.php:349 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Désolé ! Seules les personnes invitées peuvent s'inscrire." +# missing context #: actions/register.php:149 +#, fuzzy msgid "You can't register if you don't " -msgstr "" +msgstr "Vous ne pouvez pas créer un compte si vous ne " +# missing context #: actions/register.php:286 +#, fuzzy msgid "With this form you can create " -msgstr "" +msgstr "Ce formulaire permet de créer " +# missing context #: actions/register.php:368 #, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "1-64 lettres minuscules ou chiffres, pas de ponctuation ou d'espaces" +msgstr "1 à 64 lettres minuscules ou chiffres, " -#: actions/register.php:382 actions/register.php:386 +# missing context +#: actions/register.php:382 +#: actions/register.php:386 +#, fuzzy msgid "Used only for updates, announcements, " -msgstr "" +msgstr "Utilisé seulement pour les mises à jour, nouvelles du site, " +# missing context #: actions/register.php:398 +#, fuzzy msgid "URL of your homepage, blog, " -msgstr "" +msgstr "URL de votre site Web, blogue, " +# missing context #: actions/register.php:404 #, fuzzy msgid "Describe yourself and your " -msgstr "Description et intérêts (140 caractères maximum)" +msgstr "Décrivez qui vous êtes et vos " +# missing context #: actions/register.php:410 +#, fuzzy msgid "Where you are, like \"City, " -msgstr "" +msgstr "Votre emplacement, ex.: \"Ville, " +# missing context #: actions/register.php:432 #, fuzzy msgid " except this private data: password, " -msgstr "" -"sauf ces données privées : mot de passe, adresse email, adresse de " -"messagerie instantanée, numéro de télephone" +msgstr " à l'exception de ces données personnelles : mot de passe, " #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "Félicitations, %s ! Bienvenue dans %%%%site.name%%%%. " +# missing context #: actions/register.php:495 +#, fuzzy msgid "(You should receive a message by email " -msgstr "" +msgstr "(Vous recevrez bientôt un courriel " -#: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 +#: actions/remotesubscribe.php:166 +#: actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "Ce profil est local ! Ouvrez une session pour vous abonner." #: actions/replies.php:118 -#, fuzzy, php-format +#, php-format msgid "Replies to %s, page %d" -msgstr "Réponses à %s" +msgstr "Réponses à %s - page %d" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "Statuts favoris de %s - page %d" -#: actions/showgroup.php:77 lib/groupnav.php:85 +#: actions/showgroup.php:77 +#: lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "Groupe %s" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "Groupe %s - page %d" #: actions/showgroup.php:206 -#, fuzzy msgid "Group profile" -msgstr "Il n'y a pas cet OpenID." +msgstr "Profil du groupe" -#: actions/showgroup.php:251 actions/showstream.php:278 -#: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 +#: actions/showgroup.php:251 +#: actions/showstream.php:278 +#: actions/tagother.php:119 +#: lib/grouplist.php:134 +#: lib/profilelist.php:133 msgid "URL" -msgstr "" +msgstr "URL" -#: actions/showgroup.php:262 actions/showstream.php:289 -#: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy +#: actions/showgroup.php:262 +#: actions/showstream.php:289 +#: actions/tagother.php:129 +#: lib/grouplist.php:145 +#: lib/profilelist.php:144 msgid "Note" -msgstr "Messages" +msgstr "Note" #: actions/showgroup.php:270 msgid "Group actions" -msgstr "" +msgstr "Actions du groupe" #: actions/showgroup.php:323 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group" -msgstr "Fil des messages de %s" +msgstr "Fil des statuts du groupe %s" -#: actions/showgroup.php:357 lib/groupnav.php:90 -#, fuzzy +#: actions/showgroup.php:357 +#: lib/groupnav.php:90 msgid "Members" -msgstr "Membre depuis" +msgstr "Membres" -#: actions/showgroup.php:363 actions/showstream.php:413 -#: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 +#: actions/showgroup.php:363 +#: actions/showstream.php:413 +#: actions/showstream.php:442 +#: actions/showstream.php:524 +#: lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(aucun)" #: actions/showgroup.php:370 msgid "All members" -msgstr "" +msgstr "Tous les membres" #: actions/showgroup.php:378 #, php-format -msgid "" -"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." -"wikipedia.org/wiki/Micro-blogging) service " -msgstr "" +msgid "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service " +msgstr "**%s** est un groupe d'utilisateurs du service de [micro-blogging](http://fr.wikipedia.org/wiki/Microblog) %%%%site.name%%%%" +# is there another part to this sentence? #: actions/showmessage.php:98 +#, fuzzy msgid "Only the sender and recipient " -msgstr "" +msgstr "Expéditeur et destinataire seulement " #: actions/showstream.php:73 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s - page %d" +# missing context #: actions/showstream.php:143 #, fuzzy msgid "'s profile" -msgstr "Profile" +msgstr " - Profil" -#: actions/showstream.php:236 actions/tagother.php:77 -#, fuzzy +#: actions/showstream.php:236 +#: actions/tagother.php:77 msgid "User profile" -msgstr "Il n'y a pas cet OpenID." +msgstr "Profil de l'utilisateur" -#: actions/showstream.php:240 actions/tagother.php:81 +#: actions/showstream.php:240 +#: actions/tagother.php:81 msgid "Photo" -msgstr "" +msgstr "Photo" #: actions/showstream.php:317 msgid "User actions" -msgstr "" +msgstr "Actions de l'utilisateur" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "Envoyer un message à cet utilisateur" #: actions/showstream.php:343 msgid "Message" -msgstr "" +msgstr "Message " #: actions/showstream.php:451 -#, fuzzy msgid "All subscribers" -msgstr "Toutes les inscriptions" +msgstr "Tous les abonnés" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "Tous les groupes" #: actions/showstream.php:542 #, php-format -msgid "" -"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." -"wikipedia.org/wiki/Micro-blogging) service " -msgstr "" +msgid "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service " +msgstr "**%s** est inscrit au service de [micro-blogging](http://fr.wikipedia.org/wiki/Microblog) %%%%site.name%%%%" +# missing context #: actions/smssettings.php:128 #, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "" -"Numéro de téléphone, pas de ponctuation ou d'espace, avec le code " -"international." +msgstr "Numéro de téléphone, sans ponctuation ni espace, " +# missing context #: actions/smssettings.php:162 #, fuzzy msgid "Send me notices through SMS; " -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"M'envoyer des messages par Jabber/GTalk.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "M'envoyer les statuts par SMS ; " #: actions/smssettings.php:335 -#, fuzzy msgid "A confirmation code was sent to the phone number you added. " -msgstr "En attente de confirmation à ce numéro de téléphone." +msgstr "Un code de confirmation vient d'être envoyé au numéro de téléphone indiqué. " #: actions/smssettings.php:453 msgid "Mobile carrier" -msgstr "" +msgstr "Fournisseur de téléphonie mobile" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." -msgstr "" +msgstr "Vous n'êtes pas abonné(e) à ce profil." #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "Impossible de créer l'inscription." +msgstr "Impossible d'enregistrer l'abonnement." #: actions/subscribe.php:55 -#, fuzzy msgid "Not a local user." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Pas de code de récupération.\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Ceci n'est pas un utilisateur local." +# missing context? #: actions/subscribe.php:69 #, fuzzy msgid "Subscribed" -msgstr "Inscription distante" +msgstr "Abonné" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "Inscription distante" +msgstr "Abonnés à %s" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "Abonnés à %s - page &d" +# missing context #: actions/subscribers.php:63 #, fuzzy msgid "These are the people who listen to " -msgstr "Ce sont les personnes qui suivent les messages de %s." +msgstr "Ces personnes suivent " +# missing context #: actions/subscribers.php:67 -#, fuzzy, php-format +#, fuzzy +#, php-format msgid "These are the people who " -msgstr "Ce sont les personnes qui suivent les messages de %s." +msgstr "Ces personnes sont ceux qui " #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "Toutes les inscriptions" +msgstr "Abonnements de %s" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "Toutes les inscriptions" +msgstr "Abonnements de %s - page %d" +# missing context #: actions/subscriptions.php:65 #, fuzzy msgid "These are the people whose notices " -msgstr "Ce sont les personnes dont les messages sont suivis par %s." +msgstr "Voici les personnes dont les messages " +# missing context #: actions/subscriptions.php:69 -#, fuzzy, php-format +#, fuzzy +#, php-format msgid "These are the people whose " -msgstr "Ce sont les personnes qui suivent les messages de %s." +msgstr "Voici les personnes dont " #: actions/subscriptions.php:122 msgid "Jabber" msgstr "Jabber" #: actions/tag.php:43 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Fil des messages de %s\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Statuts marqués %s - page %d" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "Messages marqués \"%s\", à partir du plus récent" #: actions/tagother.php:33 msgid "Not logged in" -msgstr "" +msgstr "Aucune session ouverte" #: actions/tagother.php:39 -#, fuzzy msgid "No id argument." -msgstr "Il n'y a pas ce document.'" +msgstr "Aucun argument d'identification." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "Marquage %s" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Marquer l'utilisateur" #: actions/tagother.php:149 -msgid "" -"Tags for this user (letters, numbers, -, ., and _), comma- or space- " -"separated" -msgstr "" +msgid "Tags for this user (letters, numbers, -, ., and _), comma- or space- separated" +msgstr "Marquer cet utilisateur (séparer par des espaces ou des virgules)" #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "Un problème est survenu avec votre jeton de session." #: actions/tagother.php:191 -msgid "" -"You can only tag people you are subscribed to or who are subscribed to you." -msgstr "" +msgid "You can only tag people you are subscribed to or who are subscribed to you." +msgstr "Vous pouvez seulement marquer les personnes auxquelles vous êtes abonné(e) ou qui sont abonnées à vous." #: actions/tagother.php:198 -#, fuzzy msgid "Could not save tags." msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Non inscrit !\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Impossible d'enregistrer les marquages." #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "Remplissez les champs suivants pour marquer vos abonnés ou vos abonnements." #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Il n'y a pas ce document.'" +msgstr "Aucun marquage trouvé." #: actions/tagrss.php:66 -#, fuzzy, php-format +#, php-format msgid "Microblog tagged with %s" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Fil des messages de %s\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Microblog marqué avec %s" #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "Le blocage de l'utilisateur a échoué." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "Le déblocage de l'utilisateur a échoué." #: actions/twitapiusers.php:48 msgid "Not found." -msgstr "" +msgstr "Non trouvé." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "Ajoutez votre compte Twitter pour envoyer automatiquement " #: actions/twittersettings.php:119 msgid "Twitter user name" -msgstr "" +msgstr "Nom d'utilisateur Twitter" #: actions/twittersettings.php:126 -#, fuzzy msgid "Twitter password" -msgstr "Changer de mot de passe" +msgstr "Mot de passe Twitter" #: actions/twittersettings.php:228 msgid "Twitter Friends" -msgstr "" +msgstr "Amis de Twitter" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "L'identifiant doit contenit seulement des chiffres, " #: actions/twittersettings.php:341 #, php-format msgid "Unable to retrieve account information " -msgstr "" +msgstr "Impossible de récupérer les informations du compte " #: actions/unblock.php:108 -#, fuzzy msgid "Error removing the block." -msgstr "Erreur lors de l'enregistrement de l'utilisateur." +msgstr "Erreur lors de l'annulation du blocage." #: actions/unsubscribe.php:50 -#, fuzzy msgid "No profile id in request." -msgstr "Pas d'URL de profil retourné par le serveur." +msgstr "Aucune identité de profil dans la requête." #: actions/unsubscribe.php:57 msgid "No profile with that id." -msgstr "" +msgstr "Aucun profil avec cet identifiant." #: actions/unsubscribe.php:71 -#, fuzzy msgid "Unsubscribed" -msgstr "Inscription distante" +msgstr "Désabonné" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "Groupes de %s" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "Groupes de %s - page %d" #: classes/Notice.php:104 -#, fuzzy msgid "Problem saving notice. Unknown user." -msgstr "Erreur lors de l'enregistrement de l'utilisateur." +msgstr "Erreur lors de l'enregistrement du statut. Utilisateur inconnu." #: classes/Notice.php:109 -msgid "" -"Too many notices too fast; take a breather and post again in a few minutes." -msgstr "" +msgid "Too many notices too fast; take a breather and post again in a few minutes." +msgstr "Trop de statuts, trop vite ! Prenez une pause et publiez à nouveau dans quelques minutes." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Il vous est interdit de publier des statuts dans ce site." #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "La mise à jour de l'avatar a échoué." +msgstr "Ajouter un avatar" #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "Autres " #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "Autres options " #: lib/action.php:130 -#, fuzzy, php-format +#, php-format msgid "%s - %s" -msgstr "%s (%s)" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "Page sans nom" #: lib/action.php:316 msgid "Primary site navigation" -msgstr "" +msgstr "Navigation primaire du site" #: lib/action.php:322 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Profil personnel et flux des amis" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "Rechercher des personnes ou du texte" #: lib/action.php:328 -#, fuzzy msgid "Account" -msgstr "À propos" +msgstr "Compte" +# missing context #: lib/action.php:328 #, fuzzy msgid "Change your email, avatar, password, profile" -msgstr "Changer votre mot de passe" +msgstr "Modifier votre courriel, avatar, mot de passe, profil " #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "Connexion à la messagerie instantanée, SMS ou Twitter" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Fermer la session" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Ouvrir une session" #: lib/action.php:338 -#, fuzzy msgid "Create an account" -msgstr "Créer un nouveau compte" +msgstr "Créer un compte" #: lib/action.php:341 -#, fuzzy msgid "Login with OpenID" -msgstr "Il n'y a pas cet OpenID." +msgstr "Connexion OpenID" #: lib/action.php:344 -#, fuzzy msgid "Help me!" -msgstr "Aide" +msgstr "À l'aide !" #: lib/action.php:362 -#, fuzzy msgid "Site notice" -msgstr "Nouveau message" +msgstr "Notice du site" #: lib/action.php:417 msgid "Local views" -msgstr "" +msgstr "Vues locales" +# missing context? #: lib/action.php:472 #, fuzzy msgid "Page notice" -msgstr "Nouveau message" +msgstr "Notice de la page" #: lib/action.php:562 msgid "Secondary site navigation" -msgstr "" +msgstr "Navigation secondaire du site" -#: lib/action.php:602 lib/action.php:623 +#: lib/action.php:602 +#: lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "Licence du logiciel Laconica" #: lib/action.php:630 msgid "All " -msgstr "" +msgstr "Tous" #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "licence." -#: lib/blockform.php:123 lib/blockform.php:153 +#: lib/blockform.php:123 +#: lib/blockform.php:153 msgid "Block this user" -msgstr "" +msgstr "Bloquer cet utilisateur " #: lib/blockform.php:153 msgid "Block" -msgstr "" +msgstr "Bloquer" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 +#: lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "Retirer des favoris" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "Vous devez ouvrir une session pour utiliser l'application Facebook %s" +# missing context? #: lib/facebookaction.php:271 #, fuzzy msgid " a new account." -msgstr "Créer un nouveau compte" +msgstr " un nouveau compte." -#: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 -#, fuzzy +#: lib/facebookaction.php:557 +#: lib/mailbox.php:214 +#: lib/noticelist.php:354 msgid "Published" msgstr "Publié" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy +#: lib/favorform.php:114 +#: lib/favorform.php:140 msgid "Favor this notice" -msgstr "Mettre ce message dans vos favoris" +msgstr "Ajouter aux favoris" #: lib/feedlist.php:64 msgid "Export data" msgstr "Exporter les données" +# étiquettes ou marquages? #: lib/galleryaction.php:121 #, fuzzy msgid "Filter tags" -msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Fil des réponses à %s\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +msgstr "Filtrer les étiquettes" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Tous" #: lib/galleryaction.php:137 msgid "Tag" -msgstr "" +msgstr "Marquer" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Choissez un marquage pour réduire la liste" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "Aller" #: lib/groupeditform.php:148 msgid "URL of the homepage or blog of the group or topic" -msgstr "" +msgstr "URL du site Web ou blogue du groupe ou sujet " #: lib/groupeditform.php:151 -#, fuzzy msgid "Description" msgstr "Description" #: lib/groupeditform.php:153 -#, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Description et intérêts (140 caractères maximum)" +msgstr "Description du groupe ou du sujet (140 caractères maximum)" #: lib/groupeditform.php:158 -msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "" -"Emplacement du groupe, s'il y a lieu (par exemple, ville, État, région, " -"pays)" +msgid "Location for the group, if any, like \"City, State (or Region), Country\"" +msgstr "Emplacement du groupe, s'il y a lieu \"Ville, État ou région, Pays\"" -#: lib/groupnav.php:84 lib/searchgroupnav.php:84 +#: lib/groupnav.php:84 +#: lib/searchgroupnav.php:84 msgid "Group" msgstr "Groupe" @@ -4839,180 +5627,175 @@ msgstr "Administrer" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Modifier les propriétés du groupe %s" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "Déconnexion" +msgstr "Logo" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "Ajouter et changer le logo de %s" +msgstr "Ajouter ou modifier le logo de %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "Groupes ayant le plus de membres" +msgstr "Groupes avec le plus de membres" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "Groupes ayant le plus de messages" +msgstr "Groupes avec le plus d'éléments publiés" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Marquages des statuts du groupe %s" +# missing context #: lib/htmloutputter.php:104 #, fuzzy msgid "This page is not available in a " -msgstr "Page d'accueil non valide." +msgstr "Cette page n'est pas disponible dans " #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Se connecter" +msgstr "Rejoindre" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" msgstr "Quitter" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "Nom d'utilisateur ou mot de passe invalide." +msgstr "Ouvrez une session avec un identifiant et un mot de passe" #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" msgstr "Créer un nouveau compte" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "Se connecter ou s'enregistrer avec OpenID" +msgstr "Ouvrir une session ou s'enregistrer avec OpenID" #: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" "\n" -msgstr "" +msgstr "Bonjour, %s.\n" +"\n" +# missing context #: lib/mail.php:236 -#, fuzzy, php-format +#, fuzzy +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s est occupé d'écouter vos notifications dans %2$s." +msgstr "%1$s suit actuellement " #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "Localisation" +msgstr "Emplacement : %s\n" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Page d'accueil" +msgstr "Site Web : %s\n" #: lib/mail.php:258 #, php-format msgid "" "Bio: %s\n" "\n" -msgstr "" +msgstr "Bio : %s\n" +"\n" #: lib/mail.php:461 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "Vous avez reçu un clin d'Å“il de %s" #: lib/mail.php:465 #, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" +msgstr "%1$s (%2$s) se demande ce que vous devenez " #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s est occupé d'écouter vos notifications dans %2$s." +msgstr "%1$s a ajouté votre statut depuis %2$s" -#: lib/mailbox.php:229 lib/noticelist.php:380 -#, fuzzy +#: lib/mailbox.php:229 +#: lib/noticelist.php:380 msgid "From" -msgstr "de" +msgstr "De" # De #-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n # Nouveau message\n # #-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n # à "Supprimer l'avis" #: lib/messageform.php:110 -#, fuzzy msgid "Send a direct notice" msgstr "Envoyer un message direct" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" -msgstr "Nouveau message" +msgstr "Envoyer un statut" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" msgstr "Caractères restants" #: lib/noticelist.php:426 msgid "in reply to" -msgstr "En réponse à " +msgstr "en réponse à " -#: lib/noticelist.php:447 lib/noticelist.php:450 -#, fuzzy +#: lib/noticelist.php:447 +#: lib/noticelist.php:450 msgid "Reply to this notice" -msgstr "Répondre à ce message" +msgstr "Répondre à ce statut" #: lib/noticelist.php:451 -#, fuzzy msgid "Reply" -msgstr "Réponses" +msgstr "Répondre" # De #-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n # Nouveau message\n # #-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n # à "Supprimer l'avis" -#: lib/noticelist.php:471 lib/noticelist.php:474 -#, fuzzy +#: lib/noticelist.php:471 +#: lib/noticelist.php:474 msgid "Delete this notice" -msgstr "Supprimer ce message" +msgstr "Supprimer ce statut" # De #-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n # Nouveau message\n # #-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n # à "Supprimer l'avis" #: lib/noticelist.php:474 -#, fuzzy msgid "Delete" msgstr "Supprimer" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Envoyer un clin d'Å“il à cet utilisateur" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Clin d'Å“il" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "" +msgstr "Envoyer un clin d'Å“il à cet utilisateur" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Marquages des statuts de %s" #: lib/profilelist.php:182 msgid "(none)" -msgstr "" +msgstr "(aucun)" #: lib/publicgroupnav.php:76 msgid "Public" @@ -5020,31 +5803,27 @@ msgstr "Public" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Groupes d'utilisateurs" -#: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 +#: lib/publicgroupnav.php:82 +#: lib/publicgroupnav.php:83 msgid "Recent tags" -msgstr "Mots-clés récents" +msgstr "Marquages récents" #: lib/publicgroupnav.php:86 msgid "Featured" -msgstr "" +msgstr "En vedette" #: lib/publicgroupnav.php:90 -#, fuzzy msgid "Popular" msgstr "" -"#-#-#-#-# laconica-no-duplicates.po (0.43) #-#-#-#-#\n" -"Rechercher des personnes\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"Populaires" #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" -msgstr "Messages" +msgstr "Statut" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" msgstr "Rechercher des groupes sur ce site" @@ -5053,35 +5832,35 @@ msgid "Untitled section" msgstr "Section sans titre" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Inscription distante" +msgstr "Abonnements de %s" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Inscription distante" +msgstr "Abonnés de %s" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "Groupes de %s" #: lib/subgroupnav.php:104 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "Inviter des amis et collègues à vous rejoindre sur %s" +msgstr "Inviter des amis et collègues à vous rejoindre dans %s" #: lib/subs.php:53 msgid "User has blocked you." msgstr "Cet utilisateur vous a bloqué." -#: lib/subscribeform.php:115 lib/subscribeform.php:139 +#: lib/subscribeform.php:115 +#: lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "Suivre cet utilisateur" +msgstr "S'abonner à cet utilisateur" #: lib/tagcloudsection.php:56 -#, fuzzy msgid "None" msgstr "Aucun" @@ -5089,7 +5868,8 @@ msgstr "Aucun" msgid "Top posters" msgstr "Utilisateurs les plus actifs" -#: lib/unblockform.php:120 lib/unblockform.php:150 +#: lib/unblockform.php:120 +#: lib/unblockform.php:150 msgid "Unblock this user" msgstr "Débloquer cet utilisateur" @@ -5097,36 +5877,23 @@ msgstr "Débloquer cet utilisateur" msgid "Unblock" msgstr "Débloquer" -#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +#: lib/unsubscribeform.php:113 +#: lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" msgstr "Ne plus suivre cet utilisateur" -#, fuzzy -#~ msgid "Delete my account" -#~ msgstr "Créer un nouveau compte" - -#~ msgid "Couldn't confirm email." -#~ msgstr "Impossible de confirmer l'email" - -#~ msgid "Email address" -#~ msgstr "Adresse email" - -#~ msgid "Error inserting notice" -#~ msgstr "Erreur lors de l'insertion d'un message" - #~ msgid "" #~ "It runs the [Laconica](http://laconi.ca/) microblogging software, version " #~ "%s, available under the [GNU Affero General Public License] (http://www." #~ "fsf.org/licensing/licenses/agpl-3.0.html)." #~ msgstr "" -#~ "Il utilise le logiciel de microblog [Laconica](http://laconi.ca/), " +#~ "Il utilise le logiciel de micro-blogging [Laconica](http://laconi.ca/), " #~ "version %s, disponible sous la licence [GNU Affero General Public " #~ "License] (http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#, fuzzy #~ msgid "Unsupported type" -#~ msgstr "Version OMB non-supportée" +#~ msgstr "Type non supporté" #, fuzzy #~ msgid "not a supported data format" -#~ msgstr "Format de fichier d'image non-supporté." +#~ msgstr "pas un format de données supporté" diff --git a/locale/he_IL/LC_MESSAGES/laconica.mo b/locale/he_IL/LC_MESSAGES/laconica.mo Binary files differindex 6114a35bb..797c88305 100644 --- a/locale/he_IL/LC_MESSAGES/laconica.mo +++ b/locale/he_IL/LC_MESSAGES/laconica.mo diff --git a/locale/he_IL/LC_MESSAGES/laconica.po b/locale/he_IL/LC_MESSAGES/laconica.po index ab63dc124..3b5501244 100644 --- a/locale/he_IL/LC_MESSAGES/laconica.po +++ b/locale/he_IL/LC_MESSAGES/laconica.po @@ -13,20 +13,18 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2009-01-30 12:07+0000\n" +"Last-Translator: support team <jbrnra@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# laconica.pot (PACKAGE VERSION) #-#-#-#-#\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"X-Generator: Pootle 1.1.0\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 @@ -213,7 +211,7 @@ msgstr "לפחות 6 ×ותיות, ×ל תשכח!" #: ../actions/register.php:154 actions/register.php:168 #: actions/register.php:373 msgid "6 or more characters. Required." -msgstr "" +msgstr " לפחות 6 ×ותיות. שדה חובה." #: ../actions/imsettings.php:197 actions/imsettings.php:205 #, php-format diff --git a/locale/it_IT/LC_MESSAGES/laconica.mo b/locale/it_IT/LC_MESSAGES/laconica.mo Binary files differindex 6fe09461f..d52a72284 100644 --- a/locale/it_IT/LC_MESSAGES/laconica.mo +++ b/locale/it_IT/LC_MESSAGES/laconica.mo diff --git a/locale/it_IT/LC_MESSAGES/laconica.po b/locale/it_IT/LC_MESSAGES/laconica.po index aafb45767..86ab6b255 100644 --- a/locale/it_IT/LC_MESSAGES/laconica.po +++ b/locale/it_IT/LC_MESSAGES/laconica.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: laconica\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-27 13:38+0000\n" +"PO-Revision-Date: 2009-02-18 12:57+0000\n" "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "MIME-Version: 1.0\n" @@ -3574,7 +3574,6 @@ msgstr "Modifica il gruppo %s" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 -#, fuzzy msgid "Inboxes must be enabled for groups to work" msgstr "La casella della posta in arrivo deve essere abilitata per funzionare" @@ -3665,7 +3664,6 @@ msgid "Allow %s to update my Facebook status" msgstr "Consenti a %s di aggiornare il mio stato su Facebook" #: actions/facebookhome.php:218 -#, fuzzy msgid "Skip" msgstr "Salta" @@ -3674,7 +3672,6 @@ msgid "No notice content!" msgstr "Nessun contenuto!" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 -#, fuzzy msgid "Pagination" msgstr "Paginazione" @@ -3692,12 +3689,11 @@ msgid "Thanks for inviting your friends to use %s" msgstr "Grazie per aver invitato i tuoi amici a usare %s" #: actions/facebookinvite.php:72 -#, fuzzy msgid "Invitations have been sent to the following users:" msgstr "Gli inviti sono stati inviati ai seguenti utenti:" #: actions/facebookinvite.php:96 -#, fuzzy, php-format +#, php-format msgid "You have been invited to %s" msgstr "Hai un invito per %s" @@ -3713,7 +3709,6 @@ msgstr "Amici che già usano %s:" #: actions/facebookinvite.php:130 #, php-format -#, fuzzy msgid "Send invitations" msgstr "Invia" @@ -3722,12 +3717,11 @@ msgid "Couldn't remove Facebook user." msgstr "Impossibile rimuovere l'utente Facebook." #: actions/facebooksettings.php:65 -#, fuzzy msgid "There was a problem saving your sync preferences!" -msgstr "C'è stato un problema nel salvare le preferenze di sincronizzazione." +msgstr "" +"Si è verificato un problema nel salvare le preferenze di sincronizzazione." #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." msgstr "Preferenze di sincronizzazione salvate." @@ -3744,7 +3738,6 @@ msgid "Prefix" msgstr "Prefisso" #: actions/facebooksettings.php:108 -#, fuzzy msgid "A string to prefix notices with." msgstr "Una stringa con cui iniziare i messaggi." @@ -3755,7 +3748,6 @@ msgid "If you would like %s to automatically update " msgstr "Se vuoi che %s aggiorni automaticamente " #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" msgstr "Preferenze di sincronizzazione" @@ -3792,7 +3784,6 @@ msgstr "Utenti in evidenza, pagina %d" #: actions/featured.php:99 #, php-format -#, fuzzy msgid "A selection of some of the great users on %s" msgstr "Una selezione dei migliori utenti su %s" @@ -3855,7 +3846,7 @@ msgid "Create a new group" msgstr "Crea un nuovo gruppo" #: actions/groupsearch.php:57 -#, fuzzy, php-format +#, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " msgstr "Ricerca gruppi su %%site.name%% per nome, ubicazione o descrizione. " @@ -3903,7 +3894,6 @@ msgid "%s joined group %s" msgstr "%s si è iscritto al gruppo %s" #: actions/leavegroup.php:60 -#, fuzzy msgid "Inboxes must be enabled for groups to work." msgstr "" "Le caselle di posta in arrivo devono essere abilitate per i gruppi per poter " @@ -3926,7 +3916,6 @@ msgid "You may not leave a group while you are its administrator." msgstr "Non puoi lasciare un gruppo fintantoché ne sei amministratore." #: actions/leavegroup.php:130 -#, fuzzy msgid "Could not find membership record." msgstr "Impossibile trovare il record della membership." @@ -3941,7 +3930,6 @@ msgid "%s left group %s" msgstr "%s ha lasciato il gruppo %s" #: actions/login.php:225 lib/facebookaction.php:304 -#, fuzzy msgid "Login to site" msgstr "Accedi al sito" @@ -3962,7 +3950,6 @@ msgid "Could not create group." msgstr "Impossibile creare il gruppo." #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." msgstr "Impossibile impostare la membership al gruppo." @@ -4038,7 +4025,6 @@ msgid "Change your password." msgstr "Modifica la tua password." #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" msgstr "Cambio password" @@ -4058,7 +4044,6 @@ msgid "These are users who have tagged themselves \"%s\" " msgstr "Questi sono gli utenti che si sono etichettati con \"%s\" " #: actions/profilesettings.php:91 -#, fuzzy msgid "Profile information" msgstr "Informazioni sul profilo" @@ -4102,9 +4087,8 @@ msgstr "" "blog](http://it.wikipedia.org/wiki/Microblogging) " #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Cloud delle etichette" +msgstr "Insieme delle etichette" #: actions/publictagcloud.php:63 #, php-format @@ -4113,9 +4097,8 @@ msgid "These are most popular recent tags on %s " msgstr "Queste sono le etichette più usate e recenti su %s " #: actions/publictagcloud.php:119 -#, fuzzy msgid "Tag cloud" -msgstr "Cloud etichette" +msgstr "Insieme etichette" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." @@ -4208,12 +4191,10 @@ msgstr "URL" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy msgid "Note" -msgstr "Note" +msgstr "Nota" #: actions/showgroup.php:270 -#, fuzzy msgid "Group actions" msgstr "Azioni dei gruppi" @@ -4266,12 +4247,10 @@ msgid "User profile" msgstr "Profilo utente" #: actions/showstream.php:240 actions/tagother.php:81 -#, fuzzy msgid "Photo" msgstr "Fotografia" #: actions/showstream.php:317 -#, fuzzy msgid "User actions" msgstr "Azioni utente" @@ -4402,7 +4381,6 @@ msgid "Tag %s" msgstr "Etichetta %s" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" msgstr "Etichette utente" @@ -4594,12 +4572,10 @@ msgid "Site notice" msgstr "Messaggio del sito" #: lib/action.php:417 -#, fuzzy msgid "Local views" msgstr "Viste locali" #: lib/action.php:472 -#, fuzzy msgid "Page notice" msgstr "Pagina messaggio" @@ -4653,9 +4629,8 @@ msgid "Favor this notice" msgstr "Rendi questo messaggio un favorito" #: lib/feedlist.php:64 -#, fuzzy msgid "Export data" -msgstr "Esporta dai" +msgstr "Esporta dati" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -4742,7 +4717,6 @@ msgid "Join" msgstr "Iscriviti" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" msgstr "Lascia" @@ -4802,7 +4776,7 @@ msgid "%1$s (%2$s) is wondering what you are up to " msgstr "%1$s (%2$s) si chiede cosa tu " #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" msgstr "%1$s ha appena aggiunto il tuo messaggio da %2$s" diff --git a/locale/ko_KR/LC_MESSAGES/laconica.mo b/locale/ko_KR/LC_MESSAGES/laconica.mo Binary files differindex a507ed8e3..6040e6006 100644 --- a/locale/ko_KR/LC_MESSAGES/laconica.mo +++ b/locale/ko_KR/LC_MESSAGES/laconica.mo diff --git a/locale/ko_KR/LC_MESSAGES/laconica.po b/locale/ko_KR/LC_MESSAGES/laconica.po index 5898a6ca8..5d71b4773 100644 --- a/locale/ko_KR/LC_MESSAGES/laconica.po +++ b/locale/ko_KR/LC_MESSAGES/laconica.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-27 17:45+0000\n" -"Last-Translator: JaeHo Choi <sayhi2choi@gmail.com>\n" +"PO-Revision-Date: 2009-03-12 16:17+0000\n" +"Last-Translator: Evan Prodromou <evan@controlyourself.ca>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,30 +20,30 @@ msgstr "" #: actions/noticesearchrss.php:88 #, php-format msgid " Search Stream for \"%s\"" -msgstr "\"%s\" ì˜ ìŠ¤íŠ¸ë¦¼ì„ ê²€ìƒ‰" +msgstr "스트림ì—ì„œ \"%s\" 검색" #: ../actions/finishopenidlogin.php:82 ../actions/register.php:191 #: actions/finishopenidlogin.php:88 actions/register.php:205 #: actions/finishopenidlogin.php:110 msgid "" " except this private data: password, email address, IM address, phone number." -msgstr "ê°œì¸ì •ë³´ë¥¼ ì œì™¸í•œ: 패스워드, ë©”ì¼ ì£¼ì†Œ, IM주소, ì „í™” 번호" +msgstr "ë‹¤ìŒ ê°œì¸ì •ë³´ ì œì™¸: 비밀 번호, ë©”ì¼ ì£¼ì†Œ, ë©”ì‹ ì € 주소, ì „í™” 번호" #: ../actions/showstream.php:400 ../lib/stream.php:109 #: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76 msgid " from " -msgstr "형ì‹" +msgstr "다ìŒì—ì„œ:" #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 #: actions/twitapistatuses.php:347 #, php-format msgid "%1$s / Updates replying to %2$s" -msgstr "%1$s / %2$s ë¡œ ì—…ë°ì´íŠ¸ ë‹µì‹ " +msgstr "%1$s / %2$sì—게 ë‹µì‹ ì—…ë°ì´íŠ¸" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s ê°€ %2$s 으로 ë‹¹ì‹ ì„ ì´ˆëŒ€ 하였습니다." +msgstr "%1$së‹˜ì´ ê·€í•˜ë¥¼ %2$sì— ì´ˆëŒ€í•˜ì˜€ìŠµë‹ˆë‹¤." #: ../actions/invite.php:170 #, php-format @@ -75,33 +75,31 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s ê°€ %2$s (%3$s) 으로 ë‹¹ì‹ ì„ ì´ˆëŒ€ 하였습니다.\n" +"%1$së‹˜ì´ ê·€í•˜ë¥¼ %2$s(%3$s)ì— ì´ˆëŒ€í•˜ì˜€ìŠµë‹ˆë‹¤.\n" "\n" -"%2$s 는 귀하가 친구 ë˜ëŠ” ê°™ì€ ê´€ì‹¬ì‚¬ë¥¼ 가진 사람들과 ìµœì‹ ì˜ ì†Œì‹ì„ ì£¼ê³ ë°›ì„ ìˆ˜ 있게 해주는 마ì´í¬ë¡œë¸”로깅 서비스 입니다.\n" +"%2$s 서비스는 ì—¬ëŸ¬ë¶„ì˜ ì¹œêµ¬ ë˜ëŠ” ê°™ì€ ê´€ì‹¬ì‚¬ë¥¼ 가진 ì‚¬ëžŒë“¤ì˜ ìµœì‹ ì†Œì‹ì„ ì½ì„ 수 있는 마ì´í¬ë¡œë¸”로깅 서비스 입니다.\n" "\n" -"귀하는 ë˜í•œ ìžì‹ ê³¼ ê´€ë ¨ëœ ì†Œì‹, ìƒê° ë˜ëŠ” 온ë¼ì¸ ë¼ì´í”„를 친구들과 나눌수 있습니다. ë˜í•œ ê°™ì€ ê´€ì‹¬ì‚¬ë¥¼ 지닌 새로운 ì‚¬ëžŒë“¤ì„ ë§Œë‚ ìˆ˜ " -"있는 ì¢‹ì€ ìž¥ì†Œ 입니다.\n" -"\n" -"%4$s ë¼ê³ \n" -"\n" -"%1$s 님께서 ë§ì”€í•˜ì…¨ìŠµë‹ˆë‹¤:\n" +"ìžê¸° ìžì‹ ì´ë‚˜, ìƒê°, ìƒí™œì— 대한 소ì‹ë„ 다른 사람ì—게 알릴 수 있습니다. ë˜ ê°™ì€ ê´€ì‹¬ì‚¬ë¥¼ 지닌 새로운 ì‚¬ëžŒë“¤ì„ ë§Œë‚ ìˆ˜ 있는 ì¢‹ì€ " +"장소입니다.\n" +"%1$së‹˜ì´ ë§í•˜ê¸°ë¥¼:\n" +"%4$s\n" "\n" -"%1$s ì˜ í”„ë¡œí•„ì„ %2$s ì—ì„œ 보실 수 있습니다:\n" +"%1$së‹˜ì˜ %2$s í”„ë¡œí•„ì„ ë³´ì‹¤ 수 있습니다:\n" "\n" "%5$s\n" "\n" -"ë§Œì¼ ì´ ì„œë¹„ìŠ¤ë¥¼ ì´ìš© í•˜ì‹œê² ë‹¤ë©´ ë°‘ì˜ ë§í¬ë¥¼ í´ë¦ 하셔서 ì´ˆëŒ€ì— ì‘하ì‹ì‹œì˜¤.\n" +"ì´ ì„œë¹„ìŠ¤ë¥¼ ì´ìš©í•˜ì‹œë ¤ë©´ ë°‘ì˜ ë§í¬ë¥¼ 눌러 ì´ˆëŒ€ì— ì‘하ì‹ì‹œì˜¤.\n" "\n" "%6$s\n" "\n" -"ë§Œì¼ ì•„ë‹ˆë¼ë©´ ì´ ë©”ì‹œì§€ë¥¼ 무시 하실 수 있습니다. 여기까지 ì½ì–´ 주셔서 ê°ì‚¬í•©ë‹ˆë‹¤.\n" +"아니면 ì´ ë©”ì„¸ì§€ë¥¼ 무시하시면 ë©ë‹ˆë‹¤. 여기까지 ì½ì–´ 주셔서 ê°ì‚¬í•©ë‹ˆë‹¤.\n" "\n" -"%2$s 올림.\n" +"%2$s 보냄\n" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s 는 %2$s ë¡œ ë‹¹ì‹ ì˜ í†µì§€ë¥¼ ë¬»ê³ ìžˆìŠµë‹ˆë‹¤." +msgstr "%1$së‹˜ì´ ê·€í•˜ì˜ ì•Œë¦¼ 메시지를 %2$sì—ì„œ ë“£ê³ ìžˆìŠµë‹ˆë‹¤." #: ../lib/mail.php:126 #, php-format @@ -113,23 +111,22 @@ msgid "" "Faithfully yours,\n" "%4$s.\n" msgstr "" -"%1$s 는 %2$s ë¡œ ë‹¹ì‹ ì˜ í†µì§€ë¥¼ ë¬»ê³ ìžˆìŠµë‹ˆë‹¤.\n" -"\n" +"%1$së‹˜ì´ ê·€í•˜ì˜ ì•Œë¦¼ 메시지를 %2$sì—ì„œ ë“£ê³ ìžˆìŠµë‹ˆë‹¤.\n" "\t%3$s\n" "\n" -"%4$s.\n" +"그럼 ì´ë§Œ,%4$s.\n" #: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415 #: actions/twitapistatuses.php:350 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "%1$s 는 %2$s / %3$s ë¡œ 부터 온 ê·€í•˜ì˜ í†µì§€ë¥¼ 답변하셨습니다." +msgstr "%1$së‹˜ì´ %2$s/%3$sì˜ ì—…ë°ì´íŠ¸ì— 답변했습니다." #: ../actions/shownotice.php:45 actions/shownotice.php:45 #: actions/shownotice.php:161 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1$ ì˜ ìƒíƒœ %2$s" +msgstr "%1$sì˜ ìƒíƒœ (%2$sì—ì„œ)" #: ../actions/invite.php:84 ../actions/invite.php:92 actions/invite.php:91 #: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131 @@ -150,13 +147,13 @@ msgstr "%s í¼ë¸”ë¦ ìŠ¤íŠ¸ë¦¼" #: actions/twitapistatuses.php:126 lib/personalgroupnav.php:99 #, php-format msgid "%s and friends" -msgstr "%s 와 친구들" +msgstr "%s ë° ì¹œêµ¬ë“¤" #: ../actions/twitapistatuses.php:49 actions/twitapistatuses.php:49 #: actions/twitapistatuses.php:33 #, php-format msgid "%s public timeline" -msgstr "%s í¼ë¸”ë¦ íƒ€ìž„ë¼ì¸" +msgstr "%s 공개 타임ë¼ì¸" #: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 #, php-format @@ -173,7 +170,7 @@ msgstr "%s 타임ë¼ì¸" #: actions/twitapistatuses.php:36 #, php-format msgid "%s updates from everyone!" -msgstr "%s 모ë‘ë¡œë¶€í„°ì˜ ì—…ë°ì´íŠ¸!" +msgstr "모ë‘ë¡œë¶€í„°ì˜ ì—…ë°ì´íŠ¸ %sê°œ!" #: ../actions/register.php:213 msgid "" @@ -218,7 +215,7 @@ msgstr "6ê¸€ìž ì´ìƒ" #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 msgid "6 or more characters, and don't forget it!" -msgstr "6ê¸€ìž ì´ìƒ, 잊지ë§ê²ƒ!!" +msgstr "6ê¸€ìž ì´ìƒ, 잊어 버리지 마ì‹ì‹œì˜¤!" #: ../actions/register.php:154 actions/register.php:168 #: actions/register.php:373 @@ -230,19 +227,19 @@ msgstr "6ê¸€ìž ì´ìƒì´ 필요합니다." msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." -msgstr "ì¸ì¦ 코드가 ì¶”ê°€í•˜ì‹ ë©”ì‹ ì € 주소로 보내졌습니다. %s 를 확ì¸í•´ 주셔야 메시지가 ì „ë‹¬ë©ë‹ˆë‹¤." +msgstr "추가한 ë©”ì‹ ì € 주소로 ì¸ì¦ 코드를 보냈습니다. %s 사용ìžë¥¼ í—ˆë½í•´ì•¼ 메시지를 ì „ë‹¬í• ìˆ˜ 있습니다." #: ../actions/emailsettings.php:213 actions/emailsettings.php:231 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." -msgstr "ì¸ì¦ 코드가 ì¶”ê°€í•˜ì‹ ì´ë©”ì¼ë¡œ 보내졌습니다. ìˆ˜ì‹ í•¨(ë˜ëŠ” 스팸함)ì„ í™•ì¸í•˜ì…”ì„œ 코드와 ì‚¬ìš©ë²•ì„ í™•ì¸í•˜ì—¬ 주시기 ë°”ëžë‹ˆë‹¤." +msgstr "추가한 ì´ë©”ì¼ë¡œ ì¸ì¦ 코드를 보냈습니다. ìˆ˜ì‹ í•¨(ë˜ëŠ” 스팸함)ì„ í™•ì¸í•˜ì…”ì„œ 코드와 ì‚¬ìš©ë²•ì„ í™•ì¸í•˜ì—¬ 주시기 ë°”ëžë‹ˆë‹¤." #: ../actions/smssettings.php:216 actions/smssettings.php:224 msgid "" "A confirmation code was sent to the phone number you added. Check your inbox " "(and spam box!) for the code and instructions on how to use it." -msgstr "ì¸ì¦ 코드가 ì¶”ê°€í•˜ì‹ íœ´ëŒ€í°ìœ¼ë¡œ 보내졌습니다. ìˆ˜ì‹ í•¨(ë˜ëŠ” 스팸함)ì„ í™•ì¸í•˜ì…”ì„œ 코드와 ì‚¬ìš©ë²•ì„ í™•ì¸í•˜ì—¬ 주시기 ë°”ëžë‹ˆë‹¤." +msgstr "추가한 휴대í°ìœ¼ë¡œ ì¸ì¦ 코드를 보냈습니다. ìˆ˜ì‹ í•¨(ë˜ëŠ” 스팸함)ì„ í™•ì¸í•˜ì…”ì„œ 코드와 ì‚¬ìš©ë²•ì„ í™•ì¸í•˜ì—¬ 주시기 ë°”ëžë‹ˆë‹¤." #: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45 #: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259 @@ -291,12 +288,12 @@ msgstr "API 메서드를 구성중 입니다." #: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 msgid "About" -msgstr "About" +msgstr "ì •ë³´" #: ../actions/userauthorization.php:119 actions/userauthorization.php:126 #: actions/userauthorization.php:143 msgid "Accept" -msgstr "ì¸ì¦" +msgstr "수ë½" #: ../actions/emailsettings.php:62 ../actions/imsettings.php:63 #: ../actions/openidsettings.php:57 ../actions/smssettings.php:71 @@ -578,7 +575,7 @@ msgstr "ë”°ë¼ê°€ì‹¤ 수 없습니다 : %s ë‹˜ì€ ì´ë¯¸ ë¦¬ìŠ¤íŠ¸ì— ìžˆìŠµë‹ˆë #: ../actions/twitapifriendships.php:53 actions/twitapifriendships.php:53 #: actions/twitapifriendships.php:41 msgid "Could not follow user: User not found." -msgstr "ë”°ë¼ê°€ì‹¤ 수 없습니다 : ìœ ì €ê°€ 존재 하지 않습니다." +msgstr "ë”°ë¼ê°€ì‹¤ 수 없습니다 : 사용ìžê°€ 없습니다." #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 #, php-format @@ -606,7 +603,7 @@ msgstr "êµ¬ë… í•˜ì‹¤ 수 없습니다." #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ ìœ ì €ë¥¼ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." +msgstr "ì´ ì´ë©”ì¼ ì£¼ì†Œë¡œ 사용ìžë¥¼ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 @@ -658,13 +655,13 @@ msgstr "í”„ë¡œí•„ì„ ì €ìž¥ í• ìˆ˜ 없습니다." #: ../actions/profilesettings.php:161 actions/profilesettings.php:276 #: actions/profilesettings.php:279 msgid "Couldn't update user for autosubscribe." -msgstr "ìžë™êµ¬ë…ì— ìœ ì €ë¥¼ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." +msgstr "ìžë™êµ¬ë…ì— ì‚¬ìš©ìžë¥¼ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." #: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294 #: actions/emailsettings.php:298 actions/emailsettings.php:312 #: actions/emailsettings.php:440 actions/emailsettings.php:462 msgid "Couldn't update user record." -msgstr "ìœ ì € 기ë¡ì„ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." +msgstr "ì‚¬ìš©ìž ê¸°ë¡ì„ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." #: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156 #: ../actions/emailsettings.php:259 ../actions/imsettings.php:138 @@ -680,7 +677,7 @@ msgstr "ìœ ì € 기ë¡ì„ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." #: actions/profilesettings.php:259 actions/smssettings.php:266 #: actions/smssettings.php:408 msgid "Couldn't update user." -msgstr "ìœ ì €ë¥¼ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." +msgstr "사용ìžë¥¼ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." #: ../actions/finishopenidlogin.php:84 actions/finishopenidlogin.php:90 #: actions/finishopenidlogin.php:112 @@ -690,7 +687,7 @@ msgstr "ìƒì„±" #: ../actions/finishopenidlogin.php:70 actions/finishopenidlogin.php:76 #: actions/finishopenidlogin.php:98 msgid "Create a new user with this nickname." -msgstr "ì´ ë‹‰ë„¤ìž„ìœ¼ë¡œ 새 ìœ ì €ë¥¼ ìƒì„±" +msgstr "ì´ ë‹‰ë„¤ìž„ìœ¼ë¡œ 새 사용ìžë¥¼ ìƒì„±" #: ../actions/finishopenidlogin.php:68 actions/finishopenidlogin.php:74 #: actions/finishopenidlogin.php:96 @@ -700,7 +697,7 @@ msgstr "새 ê³„ì •ì„ ìƒì„±" #: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197 #: actions/finishopenidlogin.php:231 msgid "Creating new account for OpenID that already has a user." -msgstr "ì´ë¯¸ ìœ ì €ê°€ 있는 OpenIDë¡œ 새 ê³„ì •ì„ ìƒì„±" +msgstr "ì´ë¯¸ 사용ìžê°€ 있는 OpenIDë¡œ 새 ê³„ì •ì„ ìƒì„±" #: ../actions/imsettings.php:45 actions/imsettings.php:46 #: actions/imsettings.php:100 @@ -799,7 +796,7 @@ msgstr "OpenIDë¡œ ì ‘ì† ì˜¤ë¥˜" #: ../actions/finishaddopenid.php:78 actions/finishaddopenid.php:78 #: actions/finishaddopenid.php:126 msgid "Error connecting user." -msgstr "ìœ ì €ì˜ ì ‘ì† ì˜¤ë¥˜" +msgstr "사용ìžì˜ ì ‘ì† ì˜¤ë¥˜" #: ../actions/finishremotesubscribe.php:151 #: actions/finishremotesubscribe.php:153 actions/finishremotesubscribe.php:166 @@ -832,12 +829,12 @@ msgstr "프로필 ì €ìž¥ 오류" #: ../lib/openid.php:237 lib/openid.php:237 lib/openid.php:246 msgid "Error saving the user." -msgstr "ìœ ì € ì €ìž¥ 오류" +msgstr "ì‚¬ìš©ìž ì €ìž¥ 오류" #: ../actions/password.php:80 actions/profilesettings.php:399 #: actions/passwordsettings.php:164 msgid "Error saving user; invalid." -msgstr "ìœ ì € ì €ìž¥ 오류; 무효한 ìœ ì €" +msgstr "ì‚¬ìš©ìž ì €ìž¥ 오류; 무효한 사용ìž" #: ../actions/login.php:47 ../actions/login.php:73 #: ../actions/recoverpassword.php:307 ../actions/register.php:98 @@ -845,7 +842,7 @@ msgstr "ìœ ì € ì €ìž¥ 오류; 무효한 ìœ ì €" #: actions/register.php:108 actions/login.php:112 actions/login.php:138 #: actions/recoverpassword.php:354 actions/register.php:198 msgid "Error setting user." -msgstr "ìœ ì € 세팅 오류" +msgstr "ì‚¬ìš©ìž ì„¸íŒ… 오류" #: ../actions/finishaddopenid.php:83 actions/finishaddopenid.php:83 #: actions/finishaddopenid.php:131 @@ -908,7 +905,7 @@ msgstr "ì´ ì‚¬ì´íŠ¸ì— 있는 사람 찾기" msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." -msgstr "ë³´ì•ˆì„ ìœ„í•´ ì„¸íŒ…ì„ ì €ìž¥í•˜ê¸° ì „ì— ê³„ì •ê³¼ 패스워드를 ìž¬ìž…ë ¥ 해주세요." +msgstr "ë³´ì•ˆì„ ìœ„í•´ ì„¸íŒ…ì„ ì €ìž¥í•˜ê¸° ì „ì— ê³„ì •ê³¼ 비밀 번호를 다시 ìž…ë ¥ í•´ 주세요." #: ../actions/profilesettings.php:44 ../actions/register.php:164 #: actions/profilesettings.php:77 actions/register.php:178 @@ -975,7 +972,7 @@ msgstr "ë©”ì‹ ì € ì„¤ì •" msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." -msgstr "ë§Œì¼ ê³„ì •ì„ ì´ë¯¸ ê°€ì§€ê³ ê³„ì‹ ë‹¤ë©´, ê³„ì •ê³¼ 패스워드로 OpenIDë¡œ ì ‘ì†í•˜ê¸° 위하여 ìž…ë ¥í•´ì£¼ì„¸ìš”." +msgstr "ë§Œì¼ ê³„ì •ì„ ì´ë¯¸ ê°€ì§€ê³ ê³„ì‹ ë‹¤ë©´, ê³„ì •ê³¼ 비밀 번호로 OpenIDë¡œ ì ‘ì†í•˜ê¸° 위하여 ìž…ë ¥í•´ 주세요." #: ../actions/openidsettings.php:45 msgid "" @@ -987,7 +984,7 @@ msgstr "ë§Œì¼ ìƒˆ OpenID를 ì¶”ê°€í•˜ì‹¤ë ¤ë©´, ë°‘ì˜ ë°•ìŠ¤ì— ìž…ë ¥í•˜ì‹ í msgid "" "If you've forgotten or lost your password, you can get a new one sent to the " "email address you have stored in your account." -msgstr "ë§Œì¼ íŒ¨ìŠ¤ì›Œë“œë¥¼ 잊으셨다면 ê°€ìž…í•˜ì‹ ì´ë©”ì¼ë¡œ 새 패스워드를 보내드립니다." +msgstr "ë§Œì¼ ë¹„ë°€ 번호를 잊으셨다면 ê°€ìž…í•˜ì‹ ì´ë©”ì¼ë¡œ 새 비밀 번호를 보내드립니다." #: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 #: actions/emailsettings.php:68 actions/smssettings.php:76 @@ -1003,18 +1000,18 @@ msgstr "ë°›ì€ ì´ë©”ì¼ ê³„ì • ì‚ì œ" #: ../actions/password.php:69 actions/profilesettings.php:388 #: actions/passwordsettings.php:153 msgid "Incorrect old password" -msgstr "틀린 패스워드" +msgstr "기존 비밀 번호가 í‹€ë ¸ìŠµë‹ˆë‹¤" #: ../actions/login.php:67 actions/login.php:67 actions/facebookhome.php:131 #: actions/login.php:132 msgid "Incorrect username or password." -msgstr "틀린 ê³„ì • ë˜ëŠ” 패스워드" +msgstr "틀린 ê³„ì • ë˜ëŠ” 비밀 번호" #: ../actions/recoverpassword.php:265 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." -msgstr "ê°€ìž…í•˜ì‹ ì´ë©”ì¼ë¡œ 패스워드 ìž¬ë°œê¸‰ì— ê´€í•œ 지시가 보내졌습니다." +msgstr "ê°€ìž…í•˜ì‹ ì´ë©”ì¼ë¡œ 비밀 번호 ìž¬ë°œê¸‰ì— ê´€í•œ 안내를 보냈습니다." #: ../actions/updateprofile.php:114 actions/updateprofile.php:115 #: actions/updateprofile.php:118 @@ -1037,7 +1034,7 @@ msgstr "옳지 ì•Šì€ í™ˆíŽ˜ì´ì§€ '%s'" #: actions/updateprofile.php:86 #, php-format msgid "Invalid license URL '%s'" -msgstr "옳지 ì•Šì€ ë¼ì´ì„¼ìŠ¤ URL '%s'" +msgstr "옳지 ì•Šì€ ë¼ì´ì„ 스 URL '%s'" #: ../actions/postnotice.php:61 actions/postnotice.php:62 #: actions/postnotice.php:66 @@ -1081,7 +1078,7 @@ msgstr "옳지 ì•Šì€ í¬ê¸°" #: actions/finishopenidlogin.php:279 actions/register.php:193 #: actions/register.php:211 msgid "Invalid username or password." -msgstr "옳지 ì•Šì€ ê³„ì • ë˜ëŠ” 패스워드" +msgstr "ì‚¬ìš©ìž ì´ë¦„ì´ë‚˜ 비밀 번호가 í‹€ë ¸ìŠµë‹ˆë‹¤." #: ../actions/invite.php:79 actions/invite.php:86 actions/invite.php:102 msgid "Invitation(s) sent" @@ -1098,7 +1095,7 @@ msgstr "초대" #: ../actions/invite.php:123 actions/invite.php:130 actions/invite.php:104 msgid "Invite new users" -msgstr "새 ìœ ì €ë“¤ì„ ì´ˆëŒ€" +msgstr "새 사용ìžë“¤ì„ 초대" #: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 #, php-format @@ -1107,14 +1104,14 @@ msgid "" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -" [Laconica](http://laconi.ca/) ì— ì˜í•˜ì—¬ ì œê³µë˜ëŠ” 마ì´í¬ë¡œë¸”로깅 소프트웨어, ë²„ì „ %s, 다ìŒì˜ ë¼ì´ì„¼ìŠ¤ " +" [Laconica](http://laconi.ca/) ì— ì˜í•˜ì—¬ ì œê³µë˜ëŠ” 마ì´í¬ë¡œë¸”로깅 소프트웨어, ë²„ì „ %s, 다ìŒì˜ ë¼ì´ì„ 스 " "[GNU Affero General Public " "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html) 를 ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤." #: ../actions/imsettings.php:173 actions/imsettings.php:181 #: actions/imsettings.php:296 msgid "Jabber ID already belongs to another user." -msgstr "Jabber IDê°€ ì´ë¯¸ 다른 ìœ ì €ì— ì˜í•˜ì—¬ 사용ë˜ê³ 있습니다." +msgstr "Jabber IDê°€ ì´ë¯¸ 다른 사용ìžì— ì˜í•˜ì—¬ 사용ë˜ê³ 있습니다." #: ../actions/imsettings.php:62 actions/imsettings.php:63 #, php-format @@ -1176,7 +1173,7 @@ msgid "" "(%%action.register%%) a new account, or try [OpenID](%%action.openidlogin%" "%). " msgstr "" -"ê·€í•˜ì˜ ê³„ì •ê³¼ 패스워드로 ë¡œê·¸ì¸ í•˜ì„¸ìš”. ê³„ì •ì´ ì•„ì§ ì—†ìœ¼ì„¸ìš”? [가입](%%action.register%%) 새 ê³„ì •ì„ ìƒì„± ë˜ëŠ” " +"ê·€í•˜ì˜ ê³„ì •ê³¼ 비밀 번호로 ë¡œê·¸ì¸ í•˜ì„¸ìš”. ê³„ì •ì´ ì•„ì§ ì—†ìœ¼ì„¸ìš”? [가입](%%action.register%%) 새 ê³„ì •ì„ ìƒì„± ë˜ëŠ” " "[OpenID](%%action.openidlogin%%) 를 사용해 보세요." #: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 @@ -1191,7 +1188,7 @@ msgstr "ë”ìš± 긴 ì´ë¦„ì„ ìš”êµ¬í•©ë‹ˆë‹¤." #: ../actions/login.php:110 actions/login.php:110 actions/login.php:245 #: lib/facebookaction.php:320 msgid "Lost or forgotten password?" -msgstr "패스워드를 잃으셨나요?" +msgstr "비밀 번호를 잃으셨나요?" #: ../actions/emailsettings.php:80 ../actions/smssettings.php:89 #: actions/emailsettings.php:81 actions/smssettings.php:89 @@ -1225,7 +1222,7 @@ msgstr "ê·€í•˜ì˜ íœ´ëŒ€í°ì˜ í†µì‹ íšŒì‚¬ëŠ” 무엇입니까?" #: actions/finishopenidlogin.php:85 actions/register.php:202 #: actions/finishopenidlogin.php:107 actions/register.php:429 msgid "My text and files are available under " -msgstr "ë‚˜ì˜ ê¸€ë“¤ê³¼ 파ì¼ë“¤ì€ 다ìŒì˜ ë¼ì´ì„¼ìŠ¤ë¥¼ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤." +msgstr "ë‚˜ì˜ ê¸€ë“¤ê³¼ 파ì¼ë“¤ì€ 다ìŒì˜ ë¼ì´ì„ 스를 ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤." #: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 #: actions/emailsettings.php:83 actions/smssettings.php:91 @@ -1257,11 +1254,11 @@ msgstr "새로운 통지" #: actions/profilesettings.php:180 actions/recoverpassword.php:185 #: actions/passwordsettings.php:101 actions/recoverpassword.php:219 msgid "New password" -msgstr "새로운 패스워드" +msgstr "새로운 비밀 번호" #: ../actions/recoverpassword.php:314 msgid "New password successfully saved. You are now logged in." -msgstr "새로운 패스워드가 성공ì 으로 ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤. 귀하는 ì´ì œ ë¡œê·¸ì¸ ë˜ì—ˆìŠµë‹ˆë‹¤." +msgstr "새로운 비밀 번호를 성공ì 으로 ì €ìž¥í–ˆìŠµë‹ˆë‹¤. 귀하는 ì´ì œ ë¡œê·¸ì¸ ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../actions/login.php:101 ../actions/profilesettings.php:41 #: ../actions/register.php:151 actions/login.php:101 @@ -1299,7 +1296,7 @@ msgstr "별명 ì‚¬ìš©ì´ ë¶ˆê°€ 합니다." #: ../actions/remotesubscribe.php:72 actions/remotesubscribe.php:81 #: actions/remotesubscribe.php:106 msgid "Nickname of the user you want to follow" -msgstr "ë”°ë¼ê°€ê³ ì‹¶ì€ ìœ ì €ì˜ ë³„ëª…" +msgstr "ë”°ë¼ê°€ê³ ì‹¶ì€ ì‚¬ìš©ìžì˜ 별명" #: ../actions/recoverpassword.php:162 actions/recoverpassword.php:167 #: actions/recoverpassword.php:186 @@ -1359,7 +1356,7 @@ msgstr "ì´ë©”ì¼ ì£¼ì†Œê°€ 없습니다." #: ../actions/finishremotesubscribe.php:65 #: actions/finishremotesubscribe.php:67 actions/finishremotesubscribe.php:68 msgid "No nickname provided by remote server." -msgstr "리모트 ìœ ì €ì˜ ë³„ëª…ì´ ì—†ìŠµë‹ˆë‹¤." +msgstr "리모트 사용ìžì˜ ë³„ëª…ì´ ì—†ìŠµë‹ˆë‹¤." #: ../actions/avatarbynickname.php:27 actions/avatarbynickname.php:27 #: actions/avatarbynickname.php:59 actions/leavegroup.php:81 @@ -1387,7 +1384,7 @@ msgstr "서버로부터 ì œê³µë˜ëŠ” 프로필 URLê°€ 없습니다." #: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232 #: actions/recoverpassword.php:266 msgid "No registered email address for that user." -msgstr "ê·¸ ìœ ì €ëŠ” 등ë¡ëœ ë©”ì¼ì£¼ì†Œê°€ 없습니다." +msgstr "ê·¸ 사용ìžëŠ” 등ë¡ëœ ë©”ì¼ì£¼ì†Œê°€ 없습니다." #: ../actions/userauthorization.php:49 actions/userauthorization.php:55 #: actions/userauthorization.php:57 @@ -1436,7 +1433,7 @@ msgstr "그러한 통지는 없습니다." #: ../actions/recoverpassword.php:56 actions/recoverpassword.php:56 #: actions/recoverpassword.php:62 msgid "No such recovery code." -msgstr "그러한 회복 코드는 없습니다." +msgstr "그러한 복구 코드는 없습니다." #: ../actions/postnotice.php:56 actions/postnotice.php:57 #: actions/postnotice.php:60 @@ -1469,26 +1466,26 @@ msgstr "그러한 예약 구ë…ì€ ì—†ìŠµë‹ˆë‹¤." #: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82 #: lib/subs.php:34 lib/subs.php:109 msgid "No such user." -msgstr "그러한 ìœ ì €ëŠ” 없습니다." +msgstr "그러한 사용ìžëŠ” 없습니다." #: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217 #: actions/recoverpassword.php:251 msgid "No user with that email address or username." -msgstr "그러한 ì´ë©”ì¼ ì£¼ì†Œë‚˜ ê³„ì •ì„ ê°€ì§„ ìœ ì €ëŠ” 없습니다." +msgstr "그러한 ì´ë©”ì¼ ì£¼ì†Œë‚˜ ê³„ì •ì„ ê°€ì§„ 사용ìžëŠ” 없습니다." #: ../lib/gallery.php:80 lib/gallery.php:85 msgid "Nobody to show!" -msgstr "표시 í• ìœ ì €ê°€ 없습니다." +msgstr "표시 í• ì‚¬ìš©ìžê°€ 없습니다." #: ../actions/recoverpassword.php:60 actions/recoverpassword.php:60 #: actions/recoverpassword.php:66 msgid "Not a recovery code." -msgstr "회복 코드가 아닙니다." +msgstr "복구 코드가 아닙니다." #: ../scripts/maildaemon.php:50 scripts/maildaemon.php:50 #: scripts/maildaemon.php:53 msgid "Not a registered user." -msgstr "ê°€ìž…ëœ ìœ ì €ê°€ 아닙니다." +msgstr "ê°€ìž…ëœ ì‚¬ìš©ìžê°€ 아닙니다." #: ../lib/twitterapi.php:226 ../lib/twitterapi.php:247 #: ../lib/twitterapi.php:332 lib/twitterapi.php:391 lib/twitterapi.php:418 @@ -1609,7 +1606,7 @@ msgstr "%s ë¡œ íƒœê·¸ëœ í†µì§€ë“¤" #: ../actions/password.php:39 actions/profilesettings.php:178 #: actions/passwordsettings.php:97 msgid "Old password" -msgstr "옛 패스워드" +msgstr "기존 비밀 번호" #: ../lib/settingsaction.php:96 ../lib/util.php:314 lib/settingsaction.php:90 #: lib/util.php:330 lib/accountsettingsaction.php:116 lib/action.php:341 @@ -1683,35 +1680,35 @@ msgstr "ë¶ˆì™„ì „í•œ 업로드." #: actions/login.php:231 actions/register.php:372 #: lib/accountsettingsaction.php:110 lib/facebookaction.php:311 msgid "Password" -msgstr "패스워드" +msgstr "비밀 번호" #: ../actions/recoverpassword.php:288 actions/recoverpassword.php:301 #: actions/recoverpassword.php:335 msgid "Password and confirmation do not match." -msgstr "패스워드가 ì¼ì¹˜í•˜ì§€ 않습니다." +msgstr "비밀 번호가 ì¼ì¹˜í•˜ì§€ 않습니다." #: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297 #: actions/recoverpassword.php:331 msgid "Password must be 6 chars or more." -msgstr "패스워드는 6ìž ì´ìƒì´ì–´ì•¼ 합니다." +msgstr "비밀 번호는 6ìž ì´ìƒì´ì–´ì•¼ 합니다." #: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263 #: actions/recoverpassword.php:267 actions/recoverpassword.php:269 #: actions/recoverpassword.php:199 actions/recoverpassword.php:301 msgid "Password recovery requested" -msgstr "패스워드 복구가 ìš”ì²ë˜ì—ˆìŠµë‹ˆë‹¤." +msgstr "비밀 번호 복구가 ìš”ì²ë˜ì—ˆìŠµë‹ˆë‹¤." #: ../actions/password.php:89 ../actions/recoverpassword.php:313 #: actions/profilesettings.php:408 actions/recoverpassword.php:326 #: actions/passwordsettings.php:173 actions/recoverpassword.php:200 msgid "Password saved." -msgstr "패스워드 ì €ìž¥" +msgstr "비밀 번호 ì €ìž¥" #: ../actions/password.php:61 ../actions/register.php:88 #: actions/profilesettings.php:380 actions/register.php:98 #: actions/passwordsettings.php:145 actions/register.php:183 msgid "Passwords don't match." -msgstr "패스워드가 ì¼ì¹˜í•˜ì§€ 않습니다." +msgstr "비밀 번호가 ì¼ì¹˜í•˜ì§€ 않습니다." #: ../lib/searchaction.php:100 lib/searchaction.php:100 #: lib/searchgroupnav.php:80 @@ -1745,7 +1742,7 @@ msgid "" "Please check these details to make sure that you want to subscribe to this " "user's notices. If you didn't just ask to subscribe to someone's notices, " "click \"Cancel\"." -msgstr "ìœ ì €ì˜ í†µì§€ë¥¼ 구ë…í•˜ë ¤ë©´ ìƒì„¸ë¥¼ 확ì¸í•´ 주세요. 구ë…하지 않는 경우는,\"Cancel\" ì„ í´ë¦í•´ 주세요." +msgstr "사용ìžì˜ 통지를 구ë…í•˜ë ¤ë©´ ìƒì„¸ë¥¼ 확ì¸í•´ 주세요. 구ë…하지 않는 경우는, \"취소\"를 í´ë¦í•´ 주세요." #: ../actions/imsettings.php:73 actions/imsettings.php:74 #: actions/imsettings.php:142 @@ -1832,17 +1829,17 @@ msgstr "ìµœì‹ íƒœê·¸ë“¤" #: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171 #: actions/recoverpassword.php:190 msgid "Recover" -msgstr "회복" +msgstr "복구" #: ../actions/recoverpassword.php:156 actions/recoverpassword.php:161 #: actions/recoverpassword.php:198 msgid "Recover password" -msgstr "패스워드 회복" +msgstr "비밀 번호 복구" #: ../actions/recoverpassword.php:67 actions/recoverpassword.php:67 #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "ì•Œ 수 없는 ìœ ì €ë¥¼ 위한 리커버리 코드" +msgstr "ì•Œ 수 없는 취소를 위한 리커버리 코드" #: ../actions/register.php:142 ../actions/register.php:193 ../lib/util.php:312 #: actions/register.php:152 actions/register.php:207 lib/util.php:328 @@ -1926,7 +1923,7 @@ msgstr "초기화" #: ../actions/recoverpassword.php:173 actions/recoverpassword.php:178 #: actions/recoverpassword.php:197 msgid "Reset password" -msgstr "패스워드를 초기화" +msgstr "비밀 번호 초기화" #: ../lib/settingsaction.php:99 lib/settingsaction.php:93 #: actions/subscriptions.php:123 lib/connectsettingsaction.php:107 @@ -1950,12 +1947,12 @@ msgstr "SMS ì¸ì¦" #: ../actions/recoverpassword.php:182 actions/recoverpassword.php:188 #: actions/recoverpassword.php:222 msgid "Same as password above" -msgstr "위와 ê°™ì€ íŒ¨ìŠ¤ì›Œë“œ" +msgstr "위와 ê°™ì€ ë¹„ë°€ 번호" #: ../actions/register.php:156 actions/register.php:170 #: actions/register.php:377 msgid "Same as password above. Required." -msgstr "위와 ê°™ì€ íŒ¨ìŠ¤ì›Œë“œ. 필수 사í•." +msgstr "위와 ê°™ì€ ë¹„ë°€ 번호. 필수 사í•." #: ../actions/emailsettings.php:97 ../actions/imsettings.php:81 #: ../actions/profilesettings.php:67 ../actions/smssettings.php:100 @@ -2152,7 +2149,7 @@ msgstr "ê·¸ ì¸ì¦ 코드는 ê·€í•˜ì˜ ê²ƒì´ ì•„ë‹™ë‹ˆë‹¤!" #: ../actions/emailsettings.php:191 actions/emailsettings.php:209 msgid "That email address already belongs to another user." -msgstr "ê·¸ ì´ë©”ì¼ ì£¼ì†ŒëŠ” ì´ë¯¸ 다른 ìœ ì €ì˜ ì†Œìœ ìž…ë‹ˆë‹¤." +msgstr "ê·¸ ì´ë©”ì¼ ì£¼ì†ŒëŠ” ì´ë¯¸ 다른 사용ìžì˜ ì†Œìœ ìž…ë‹ˆë‹¤." #: ../actions/avatar.php:80 actions/profilesettings.php:317 #: lib/imagefile.php:71 @@ -2203,7 +2200,7 @@ msgstr "옳지 ì•Šì€ ì¸ì¦ 번호 입니다." #: ../actions/smssettings.php:191 actions/smssettings.php:199 #: actions/smssettings.php:309 msgid "That phone number already belongs to another user." -msgstr "ê·¸ íœ´ëŒ€í° ë²ˆí˜¸ëŠ” ì´ë¯¸ 다른 ìœ ì €ì˜ ê²ƒìž…ë‹ˆë‹¤." +msgstr "ê·¸ íœ´ëŒ€í° ë²ˆí˜¸ëŠ” ì´ë¯¸ 다른 사용ìžì˜ 것입니다." #: ../actions/newnotice.php:49 ../actions/twitapistatuses.php:408 #: actions/newnotice.php:49 actions/twitapistatuses.php:330 @@ -2267,7 +2264,7 @@ msgstr "ê·€í•˜ì˜ í†µì§€ë¥¼ ë°›ê³ ìžˆëŠ” 사람" #: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128 msgid "" "These people are already users and you were automatically subscribed to them:" -msgstr "ìžë™ êµ¬ë… ì‹ ì²ì´ ëœ ìœ ì €ë“¤ :" +msgstr "ìžë™ êµ¬ë… ì‹ ì²ì´ ëœ ì‚¬ìš©ìžë“¤ :" #: ../actions/recoverpassword.php:88 msgid "This confirmation code is too old. Please start again." @@ -2336,12 +2333,12 @@ msgstr "" #: actions/profilesettings.php:81 actions/register.php:183 #: actions/profilesettings.php:109 msgid "URL of your homepage, blog, or profile on another site" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ í™ˆíŽ˜ì´ì§€, 블로그 í˜¹ì€ ë‹¤ë¥¸ì‚¬ì´íŠ¸ì˜ í”„ë¡œíŒŒì¼ íŽ˜ì´ì§€ URL" #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 msgid "URL of your profile on another compatible microblogging service" -msgstr "" +msgstr "다른 마ì´í¬ë¡œë¸”로깅 ì„œë¹„ìŠ¤ì˜ ë‹¹ì‹ ì˜ í”„ë¡œíŒŒì¼ URL" #: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 #: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 @@ -2352,21 +2349,21 @@ msgstr "" #: actions/imsettings.php:214 actions/recoverpassword.php:44 #: actions/smssettings.php:236 actions/twittersettings.php:302 msgid "Unexpected form submission." -msgstr "" +msgstr "ìž˜ëª»ëœ í¼ ì œì¶œ" #: ../actions/recoverpassword.php:276 actions/recoverpassword.php:289 #: actions/recoverpassword.php:323 msgid "Unexpected password reset." -msgstr "" +msgstr "ìž˜ëª»ëœ ë¹„ë°€ 번호 ì§€ì •" #: ../index.php:57 index.php:57 actions/recoverpassword.php:202 msgid "Unknown action" -msgstr "" +msgstr "ì•Œë ¤ì§€ì§€ ì•Šì€ í–‰ë™" #: ../actions/finishremotesubscribe.php:58 #: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61 msgid "Unknown version of OMB protocol." -msgstr "" +msgstr "OMBí”„ë¡œí† ì½œì˜ ì•Œë ¤ì§€ì§€ ì•Šì€ ë²„ì ¼" #: ../lib/util.php:269 lib/util.php:285 msgid "" @@ -2378,33 +2375,33 @@ msgstr "" #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" -msgstr "" +msgstr "ì¸ì‹ë˜ì§€ì•Šì€ ì£¼ì†Œìœ í˜• %s" #: ../actions/showstream.php:209 actions/showstream.php:219 #: lib/unsubscribeform.php:137 msgid "Unsubscribe" -msgstr "" +msgstr "비구ë…" #: ../actions/postnotice.php:44 ../actions/updateprofile.php:45 #: actions/postnotice.php:45 actions/updateprofile.php:46 #: actions/postnotice.php:48 actions/updateprofile.php:49 msgid "Unsupported OMB version" -msgstr "" +msgstr "지ì›ë˜ì§€ 않는 OMB ë²„ì ¼" #: ../actions/avatar.php:105 actions/profilesettings.php:342 #: lib/imagefile.php:102 msgid "Unsupported image file format." -msgstr "" +msgstr "지ì›ë˜ì§€ 않는 ì´ë¯¸ì§€íŒŒì¼ í¬ë§·" #: ../lib/settingsaction.php:100 lib/settingsaction.php:94 #: lib/connectsettingsaction.php:108 msgid "Updates by SMS" -msgstr "" +msgstr "SMSì— ì˜í•œ ì—…ë°ì´íŠ¸" #: ../lib/settingsaction.php:103 lib/settingsaction.php:97 #: lib/connectsettingsaction.php:105 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "ì¸ìŠ¤í„´íŠ¸ ë©”ì‹ ì €ì— ì˜í•œ ì—…ë°ì´íŠ¸" #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 #: actions/twitapistatuses.php:129 @@ -2430,20 +2427,22 @@ msgid "" "site license, also. Use a picture that belongs to you and that you want to " "share." msgstr "" +"ì—¬ê¸°ì— ìƒˆ 아바타ì´ë¯¸ì§€ë¥¼ ì˜¬ë ¤ë³´ì„¸ìš”. 업로드후ì—는 ì‚¬ì§„ì„ íŽ¸ì§‘í• ìˆ˜ 없습니다. 사ì´ì¦ˆ ì˜ì—ì„ ëŠ˜ë¦¬ê±°ë‚˜ ì¤„ì¼ ìˆ˜ 있습니다. ê·¸ê²ƒì€ ì‚¬ì´íŠ¸ì˜ " +"ë¼ì´ì„ ìŠ¤í•˜ì— ìžˆê²Œë©ë‹ˆë‹¤. ë‹¹ì‹ ì˜ ì†Œìœ ì´ë©´ì„œ ê³µìœ í•˜ê³ ì‹¶ì€ ì‚¬ì§„ì„ ì´ìš©í•´ë³´ì„¸ìš”." #: ../lib/settingsaction.php:91 msgid "Upload a new profile image" -msgstr "" +msgstr "새 프로필 ì´ë¯¸ì§€ 올리기" #: ../actions/invite.php:114 actions/invite.php:121 actions/invite.php:154 msgid "" "Use this form to invite your friends and colleagues to use this service." -msgstr "" +msgstr "ì´ ì„œë¹„ìŠ¤ë¥¼ ì‚¬ìš©í•˜ëŠ”ë° ë‹¹ì‹ ì˜ ì¹œêµ¬ì™€ ë™ë£Œë“¤ì„ 초대하기 위해 ì´ ì–‘ì‹ì„ 사용하세요." #: ../actions/register.php:159 ../actions/register.php:162 #: actions/register.php:173 actions/register.php:176 msgid "Used only for updates, announcements, and password recovery" -msgstr "" +msgstr "ì—…ë°ì´íŠ¸ë‚˜ 공지, 비밀번호 ì°¾ê¸°ì— ì‚¬ìš©í•˜ì„¸ìš”." #: ../actions/finishremotesubscribe.php:86 #: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 @@ -2466,96 +2465,96 @@ msgstr "" #: actions/twitapistatuses.php:503 actions/twitapiusers.php:55 #: actions/usergroups.php:99 lib/galleryaction.php:67 lib/twitterapi.php:626 msgid "User has no profile." -msgstr "" +msgstr "ì´ìš©ìžê°€ í”„ë¡œí•„ì„ ê°€ì§€ê³ ìžˆì§€ 않습니다." #: ../actions/remotesubscribe.php:71 actions/remotesubscribe.php:80 #: actions/remotesubscribe.php:105 msgid "User nickname" -msgstr "" +msgstr "ì´ìš©ìž 닉네임" #: ../actions/twitapiusers.php:75 actions/twitapiusers.php:80 msgid "User not found." -msgstr "" +msgstr "ì´ìš©ìžê°€ 없습니다." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:139 msgid "What timezone are you normally in?" -msgstr "" +msgstr "ë‹¹ì‹ ì´ ì£¼ë¡œ ìƒí™œí•˜ëŠ” ê³³ì´ ì–´ë–¤ 타임존입니까?" #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 #, php-format msgid "What's up, %s?" -msgstr "" +msgstr "ë하세요? %?" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 #: actions/profilesettings.php:119 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì–´ë””ì— ì‚½ë‹ˆê¹Œ? \"ì‹œ, ë„ (or êµ°,구), 나ë¼" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 #: actions/updateprofile.php:132 #, php-format msgid "Wrong image type for '%s'" -msgstr "" +msgstr "%S ìž˜ëª»ëœ ì´ë¯¸ì§€ 타입입니다. " #: ../actions/updateprofile.php:123 actions/updateprofile.php:124 #: actions/updateprofile.php:127 #, php-format msgid "Wrong size image at '%s'" -msgstr "" +msgstr "%S ìž˜ëª»ëœ ì´ë¯¸ì§€ 사ì´ì¦ˆìž…니다." #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 #: actions/deletenotice.php:64 actions/deletenotice.php:79 #: actions/block.php:148 actions/deletenotice.php:122 #: actions/deletenotice.php:141 msgid "Yes" -msgstr "" +msgstr "네, 맞습니다." #: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64 #: actions/finishaddopenid.php:112 msgid "You already have this OpenID!" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ë¯¸ 오픈ID를 ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤." #: ../actions/deletenotice.php:37 actions/deletenotice.php:37 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." -msgstr "" +msgstr "ì˜êµ¬ì 으로 ê²Œì‹œê¸€ì„ ì‚ì œí•˜ë ¤ê³ í•©ë‹ˆë‹¤. 한번 ì‚ì œë˜ë©´, ë³µêµ¬í• ìˆ˜ 없습니다." #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ë¯¸ 로그ì¸ë˜ì–´ 있습니다." #: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ ì‚¬ìš©ìžë“¤ì„ ì´ë¯¸ 구ë…í•˜ê³ ìžˆìŠµë‹ˆë‹¤." #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ íŠ¹ì • 회ì›ê³¼ 친구가 아닙니다." #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" -msgstr "" +msgstr "여기서 비밀번호를 ë³€ê²½í• ìˆ˜ 있습니다. ì¢‹ì€ ë²ˆí˜¸ë¥¼ ì„ íƒí•˜ì„¸ìš”." #: ../actions/register.php:135 actions/register.php:145 msgid "You can create a new account to start posting notices." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ìƒˆë¡œìš´ 게시글 ìž‘ì„±ì„ ì‹œìž‘í•˜ê¸° 위해 새 ê³„ì •ì„ ë§Œë“œì‹¤ 수 있습니다." #: ../actions/smssettings.php:28 actions/smssettings.php:28 #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "ë‹¹ì‹ ì€ %%site.name%% 로부터 ì´ë©”ì¼ì„ 통해 SMS메시지를 ë°›ì„ ìˆ˜ 있습니다." #: ../actions/openidsettings.php:86 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." -msgstr "" +msgstr "ë‹¹ì‹ ì€ \"Remove\"ë¡œ í‘œê¸°ëœ ë²„íŠ¼í´ë¦ì„ 통해 ê³„ì •ì—ì„œ 오픈ID를 ì œê±°í• ìˆ˜ 있습니다." #: ../actions/imsettings.php:28 actions/imsettings.php:28 #, php-format @@ -2563,29 +2562,30 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" +"ë‹¹ì‹ ì€ Jabber나 êµ¬ê¸€í† í¬(%%doc.im%%)를 통해 메시지를 ì£¼ê³ ë°›ì„ ìˆ˜ 있습니다. 아래 ë‹¹ì‹ ì˜ ì£¼ì†Œì™€ í™˜ê²½ì„¤ì •ì„ ì¡°ì •í•˜ì„¸ìš”." #: ../actions/profilesettings.php:27 msgid "" "You can update your personal profile info here so people know more about you." -msgstr "" +msgstr "ì‚¬ëžŒë“¤ì´ ë‹¹ì‹ ì— ëŒ€í•´ 좀 ë” ìž˜ ì•Œ 수 있ë„ë¡ ì—¬ê¸° ë‹¹ì‹ ì˜ ê°œì¸í”„로파ì¼ì„ ì—…ë°ì´íŠ¸ í• ìˆ˜ 있습니다. " #: ../actions/finishremotesubscribe.php:31 ../actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:31 actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:33 actions/finishremotesubscribe.php:85 #: actions/finishremotesubscribe.php:101 actions/remotesubscribe.php:35 msgid "You can use the local subscription!" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ë¡œì»¬ 구ë…ì„ ì‚¬ìš©í• ìˆ˜ 있습니다." #: ../actions/finishopenidlogin.php:33 ../actions/register.php:61 #: actions/finishopenidlogin.php:38 actions/register.php:68 #: actions/finishopenidlogin.php:43 msgid "You can't register if you don't agree to the license." -msgstr "" +msgstr "ë¼ì´ì„ ìŠ¤ì— ë™ì˜í•˜ì§€ 않는다면 등ë¡í• 수 없습니다." #: ../actions/updateprofile.php:63 actions/updateprofile.php:64 #: actions/updateprofile.php:67 msgid "You did not send us that profile" -msgstr "" +msgstr "ë‹¹ì‹ ì€ í”„ë¡œí•„ì„ ìš°ë¦¬ì—게 ì „ì†¡í•˜ì§€ 않았다." #: ../lib/mail.php:147 #, php-format @@ -2603,31 +2603,31 @@ msgstr "" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 #: actions/twitapistatuses.php:463 msgid "You may not delete another user's status." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ë‹¤ë¥¸ 사용ìžì˜ ìƒíƒœë¥¼ ì‚ì œí•˜ì§€ ì•Šì•„ë„ ëœë‹¤." #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "" +msgstr "ë‹¹ì‹ ì€ %s ì‚¬ìš©ì— ë‹¤ë¥¸ 사용ìžë¥¼ 초대하기 위해 ë¡œê¸´ì´ í•„ìš”í•©ë‹ˆë‹¤." #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì´ˆëŒ€ë¥¼ ë°›ì€ì‚¬ëžŒë“¤ì´ 수ë½í•˜ê³ , 사ì´íŠ¸ì— 등ë¡í• ë•Œ 공지를 ë°›ì„ ìˆ˜ 있습니다. 커뮤니티를 키워주셔서 대단히 ê°ì‚¬í•©ë‹ˆë‹¤. ^^" #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì¸ì¦ë˜ì—ˆìŠµë‹ˆë‹¤. 아래 새 비밀번호를 ìž…ë ¥í•˜ì„¸ìš”." #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 #: actions/openidlogin.php:104 msgid "Your OpenID URL" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì˜¤í”ˆID URL" #: ../actions/recoverpassword.php:164 msgid "Your nickname on this server, or your registered email address." -msgstr "" +msgstr "ì´ ì„œë²„ì—ì„œ ë‹¹ì‹ ì˜ ë‹‰ë„¤ìž„ í˜¹ì€ ë‹¹ì‹ ì˜ ë“±ë¡ëœ ì´ë©”ì¼ì£¼ì†Œ" #: ../actions/openidsettings.php:28 #, php-format @@ -2635,10 +2635,12 @@ msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" +"[오픈ID](%%doc.openid%%)는 ë‹¹ì‹ ì„ ë™ì¼í•œ ê³„ì •ìœ¼ë¡œ ë§Žì€ ì‚¬ì´íŠ¸ì— 로그ì¸í• 수 있게 í•´ì¤ë‹ˆë‹¤. 여기ì—ì„œ ë‹¹ì‹ ì˜ ê´€ë ¨ëœ " +"오픈IDë“¤ì„ ê´€ë¦¬í•˜ì„¸ìš”." #: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 msgid "a few seconds ago" -msgstr "" +msgstr "몇 ì´ˆì „" #: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 #, php-format @@ -2658,58 +2660,58 @@ msgstr "%dë¶„ì „" #: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 #, php-format msgid "about %d months ago" -msgstr "" +msgstr "%dë‹¬ì „" #: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 msgid "about a day ago" -msgstr "" +msgstr "í•˜ë£¨ì „" #: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 msgid "about a minute ago" -msgstr "" +msgstr "ì¼ë¶„ì „" #: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 msgid "about a month ago" -msgstr "" +msgstr "í•œë‹¬ì „" #: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 msgid "about a year ago" -msgstr "" +msgstr "ì¼ë…„ì „" #: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 msgid "about an hour ago" -msgstr "" +msgstr "í•œì‹œê°„ì „" #: ../actions/showstream.php:423 ../lib/stream.php:132 #: actions/showstream.php:441 lib/stream.php:99 msgid "delete" -msgstr "" +msgstr "ì‚ì œ" #: ../actions/noticesearch.php:130 ../actions/showstream.php:408 #: ../lib/stream.php:117 actions/noticesearch.php:136 #: actions/showstream.php:426 lib/stream.php:84 actions/noticesearch.php:187 msgid "in reply to..." -msgstr "" +msgstr "답장" #: ../actions/noticesearch.php:137 ../actions/showstream.php:415 #: ../lib/stream.php:124 actions/noticesearch.php:143 #: actions/showstream.php:433 lib/stream.php:91 actions/noticesearch.php:194 msgid "reply" -msgstr "" +msgstr "답장" #: ../actions/password.php:44 actions/profilesettings.php:183 #: actions/passwordsettings.php:106 msgid "same as password above" -msgstr "" +msgstr "위 비밀번호와 ë™ì¼í•˜ê²Œ" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 #: actions/twitapistatuses.php:555 msgid "unsupported file type" -msgstr "" +msgstr "지ì›ë˜ì§€ 않는 파ì¼ìœ 형입니다." #: ../lib/util.php:1309 lib/util.php:1443 msgid "« After" -msgstr "" +msgstr "<< ë’¤ì—" #: actions/deletenotice.php:74 actions/disfavor.php:43 #: actions/emailsettings.php:127 actions/favor.php:45 @@ -2725,67 +2727,67 @@ msgstr "" #: actions/openidlogin.php:37 actions/recoverpassword.php:316 #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "ì„¸ì…˜í† í°ì— ë¬¸ì œê°€ 있습니다. 다시 ì‹œë„해주세요." #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "ì´ ë©”ì‹œì§€ëŠ” favoriteì´ ì•„ë‹™ë‹ˆë‹¤." #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "favoriteì„ ì‚ì œí• ìˆ˜ 없습니다." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "좋아합니다" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "누군가 ë‚´ ê¸€ì„ ì¢‹ì•„í•˜ëŠ” 게시글로 추가했ì„ë•Œ, ì´ë©”ì¼ì„ 보냅니다." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "누군가 내게 비밀메시지를 보냈ì„ë•Œ, ì´ë©”ì¼ì„ 보냅니다." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" +msgstr "ì´ ê²Œì‹œê¸€ì€ ì´ë¯¸ 좋아하는 게시글입니다." #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "좋아하는 ê²Œì‹œê¸€ì„ ìƒì„±í• 수 없습니다." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "좋아하는 게시글 취소" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "%s 좋아하는 게시글들" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "%s ì˜ ì¢‹ì•„í•˜ëŠ” ê²Œì‹œê¸€ì˜ í”¼ë“œ" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "%sì˜ ë°›ì€ìª½ì§€í•¨ - %d 페ì´ì§€" #: actions/inbox.php:30 actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "%sì˜ ë°›ì€ìª½ì§€í•¨" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "ì´ê²ƒì€ ë‹¹ì‹ ì˜ ë°›ì€ìª½ì§€í•¨ìž…니다. ë‹¹ì‹ ì´ ë°›ì€ ë¹„ë°€ë©”ì‹œì§€ë“¤ì´ ìžˆìŠµë‹ˆë‹¤." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2797,91 +2799,91 @@ msgstr "" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "앞으로 ìžë™ 로그ì¸ì„ í•˜ê² ìŠµë‹ˆë‹¤." #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "ë³´ì•ˆì˜ ì´ìœ ë¡œ, 재 ìž…ë ¥ì„ í•´ì£¼ì„¸ìš”." #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ê³„ì •ê³¼ 비밀번호로 로그ì¸í•˜ì„¸ìš”." #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "메시지가 너무 길어요. 최대로 140ìžê¹Œì§€ ìž…ë ¥í•˜ì‹¤ 수 있습니다." #: actions/newmessage.php:65 actions/newmessage.php:128 msgid "No recipient specified." -msgstr "" +msgstr "ìˆ˜ì‹ ìžë¥¼ ì§€ì •í•˜ì§€ 않았습니다." #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ ì‚¬ìš©ìžì—게 메시지를 보낼 수 없습니다." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 #: classes/Command.php:240 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgstr "ìžì‹ ì—게 메시지를 보내지 마세요. ëŒ€ì‹ ì¡°ìš©í•˜ê²Œ 스스로ì—게 ê·¸ê²ƒì„ ë§í•˜ì„¸ìš”;;" #: actions/newmessage.php:108 actions/microsummary.php:62 #: actions/newmessage.php:163 msgid "No such user" -msgstr "" +msgstr "그러한 사용ìžê°€ 없습니다." #: actions/newmessage.php:117 actions/newmessage.php:67 msgid "New message" -msgstr "" +msgstr "새로운 메시지입니다." #: actions/noticesearch.php:95 actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "í”„ë¡œí•„ë§¤ì¹ ì—†ì´ ë°”ë¡œ ê¸€ì„ ì”니다." #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[오픈ID](%%doc.openid%%) 는 ë‹¹ì‹ ì´ ë§Žì€ ì‚¬ì´íŠ¸ì— 로그ì¸í• 수 있게 합니다." #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "만약 ë‹¹ì‹ ê³„ì •ì— ì˜¤í”ˆID를 추가하길 ì›í•œë‹¤ë©´," #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ìœ ì¼í•œ 오픈ID를 ì œê±°í•˜ë©´ 로그ì¸ì´ 불가능합니다." #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ê³„ì •ì—ì„œ 오픈ID를 ì‚ì œí• ìˆ˜ 있습니다." #: actions/outbox.php:28 actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "%sì˜ ë³´ë‚¸ìª½ì§€í•¨ - page %d" #: actions/outbox.php:30 actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "%sì˜ ë³´ë‚¸ìª½ì§€í•¨" #: actions/outbox.php:53 actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "ì´ê²ƒì€ ë‹¹ì‹ ì˜ ë³´ë‚¸ìª½ì§€í•¨ìž…ë‹ˆë‹¤. ì´ê³³ì—” ë‹¹ì‹ ì´ ë³´ëƒˆë˜ ë¹„ë°€ìª½ì§€ë“¤ì´ ìžˆìŠµë‹ˆë‹¤." #: actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " -msgstr "" +msgstr "ì´ë¦„, 장소, í¥ë¯¸ë“¤ë¡œ %%site.name%% ì—ì„œ ì‚¬ëžŒë“¤ì„ ì°¾ì•„ë³´ì„¸ìš”." #: actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì—¬ê¸°ì— ë‹¹ì‹ ì˜ ê°œì¸ì ì¸ í”„ë¡œí•„ì„ ì—…ë°ì´íŠ¸ í• ìˆ˜ 있습니다." #: actions/profilesettings.php:115 actions/remotesubscribe.php:320 #: actions/userauthorization.php:159 actions/userrss.php:76 @@ -2889,138 +2891,138 @@ msgstr "" #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 msgid "User without matching profile" -msgstr "" +msgstr "프로필 매ì¹ì´ 없는 사용ìž" #: actions/recoverpassword.php:91 actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "ì´ í™•ì¸ ì½”ë“œëŠ” 너무 오래ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "만약 ë‹¹ì‹ ì´ ìžŠì–´ë²„ë¦¬ê±°ë‚˜ 잃어버린다면" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì¸ì¦ë˜ì—ˆìŠµë‹ˆë‹¤. ìž…ë ¥í•˜ì„¸ìš”." #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "ì´ ì„œë²„ì—ì„œ ë‹¹ì‹ ì˜ ë‹‰ë„¤ìž„" #: actions/recoverpassword.php:271 actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ë¹„ë¹Œë¨¼í˜¸ 복구를 위한 안내" #: actions/recoverpassword.php:327 actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "새 비밀번호가 성공ì 으로 ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/register.php:95 actions/register.php:180 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "비밀번호는 6ìžë¦¬ ì´ìƒì´ì–´ì•¼ 합니다." #: actions/register.php:216 #, php-format msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." -msgstr "" +msgstr "축하합니다!! %s, ê·¸ë¦¬ê³ %%%%site.name%%%%ì— ì˜¤ì‹ ê±¸ 환ì˜í•´ìš”~ 여기서 ë‹¹ì‹ ì€ ì›í• ì§€ë„ ëª¨ë¥´ê² ë„¤ìš”.." #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(ë‹¹ì‹ ì€ ì¼ì‹œì 으로 ì´ë©”ì¼ë¡œ 메시지를 받아야 한다." #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "구ë…하기 위해 ë‹¹ì‹ ì€ ë¡œê·¸ì¸í• 수 있습니다. (%%action,login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "%sì˜ ì¢‹ì•„í•˜ëŠ” ê²Œì‹œê¸€ì„ ìœ„í•œ 피드" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "좋아하는 ê²Œì‹œê¸€ì„ ë³µêµ¬í• ìˆ˜ 없습니다." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "그러한 메시지가 없습니다." #: actions/showmessage.php:42 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "ì˜¤ì§ ë°œì†¡ìžê°€ ìˆ˜ì‹ ìžê°€ ì´ ë©”ì‹œì§€ë¥¼ ì½ëŠ”ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤." #: actions/showmessage.php:61 actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "%2$sì—ì„œ %1$s까지 메시지" #: actions/showmessage.php:66 actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "%1$sì—ì„œ %2$s까지 메시지" #: actions/showstream.php:154 msgid "Send a message" -msgstr "" +msgstr "메시지 ì „ì†¡í•˜ê¸°" #: actions/smssettings.php:312 actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ í°ì„ 위한 ëª¨ë°”ì¼ ì „ì†¡" #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "%sì—게 ì§ì ‘ 메시지" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "%s ì—게 ëª¨ë“ ì§ì ‘ 메시지들" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "ë‹¹ì‹ ì´ ë³´ë‚¸ 다ì´ë ‰íŠ¸ 메시지들" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "%s 로부터 보낸 ëª¨ë“ ë‹¤ì´ë ‰íŠ¸ 메시지들" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 msgid "No message text!" -msgstr "" +msgstr "text 메시지가 없습니다." #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 msgid "Recipient user not found." -msgstr "" +msgstr "받는 사용ìžê°€ 없습니다." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì¹œêµ¬ê°€ ì•„ë‹Œ 사용ìžì—게 다ì´ë ‰íŠ¸ 메시지를 보낼 수 없습니다." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / %s 로부터 좋아하는 글들" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s 좋아하는 ê¸€ì´ ì—…ë°ì´íŠ¸ ë습니다. %Sì— ì˜í•´ / %s." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s ê°€ ë„ˆì˜ ê²Œì‹œê¸€ì„ ì¢‹ì•„í•˜ëŠ” 글로 추가했습니다." #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3029,98 +3031,100 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s ê·¸ë“¤ì˜ ì¢‹ì•„í•˜ëŠ” 글중 하나로 %2$s로부터 지금 막 ë‹¹ì‹ ì˜ ê¸€ì„ ì¶”ê°€í–ˆìŠµë‹ˆë‹¤. \n" +"\n" #: actions/twittersettings.php:27 msgid "" "Add your Twitter account to automatically send your notices to Twitter, " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ íŠ¸ìœ„í„° ê³„ì •ì„ ì¶”ê°€í•˜ì„¸ìš”. ìžë™ì 으로 ë‹¹ì‹ ì˜ ë©”ì‹œì§€ë¥¼ íŠ¸ìœ„í„°ì— ì „ì†¡í•©ë‹ˆë‹¤." #: actions/twittersettings.php:41 actions/twittersettings.php:60 msgid "Twitter settings" -msgstr "" +msgstr "트위터 í™˜ê²½ì„¤ì •" #: actions/twittersettings.php:48 actions/twittersettings.php:105 msgid "Twitter Account" -msgstr "" +msgstr "트위터 ê³„ì •" #: actions/twittersettings.php:56 actions/twittersettings.php:113 msgid "Current verified Twitter account." -msgstr "" +msgstr "현재 ìœ íš¨í•œ 트위터 ê³„ì •" #: actions/twittersettings.php:63 msgid "Twitter Username" -msgstr "" +msgstr "트위터 사용ìžì´ë¦„" #: actions/twittersettings.php:65 actions/twittersettings.php:123 msgid "No spaces, please." -msgstr "" +msgstr "ê³µë°±ì„ ì—†ì• ì£¼ì„¸ìš”." #: actions/twittersettings.php:67 msgid "Twitter Password" -msgstr "" +msgstr "트위터 비밀번호" #: actions/twittersettings.php:72 actions/twittersettings.php:139 msgid "Automatically send my notices to Twitter." -msgstr "" +msgstr "ìžë™ìœ¼ë¡œ íŠ¸ìœ„í„°ì— ê²Œì‹œê¸€ì„ ë³´ëƒ…ë‹ˆë‹¤." #: actions/twittersettings.php:75 actions/twittersettings.php:146 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "íŠ¸ìœ„í„°ì— ë¡œì»¬ \"@\"답장으로 보냅니다." #: actions/twittersettings.php:78 actions/twittersettings.php:153 msgid "Subscribe to my Twitter friends here." -msgstr "" +msgstr "여기ì—ì„œ ë‚´ 트위터 ì¹œêµ¬ë“¤ì„ êµ¬ë…합니다." #: actions/twittersettings.php:122 msgid "" "Username must have only numbers, upper- and lowercase letters, and " "underscore (_). 15 chars max." -msgstr "" +msgstr "ì‚¬ìš©ìž ì´ë¦„ì€ ë‹¨ì§€ 숫ìžì´ê±°ë‚˜, 대소문ìž, ê·¸ë¦¬ê³ ì–¸ë”ë°”(_)ë¡œ 구성ë˜ì–´ì•¼ í•˜ê³ , 최대 15ìž ì´ë‚´ì´ì–´ì•¼ 합니다." #: actions/twittersettings.php:128 actions/twittersettings.php:334 msgid "Could not verify your Twitter credentials!" -msgstr "" +msgstr "트위터 ìžê²©ì„ ì¦ëª…í• ìˆ˜ 없습니다." #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "트위터로부터 \"%s\"를 위한 ê³„ì •ì •ë³´ë¥¼ 불러올 수 없습니다." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "트위터 í™˜ê²½ì„¤ì •ì„ ì €ìž¥í• ìˆ˜ 없습니다." #: actions/twittersettings.php:174 actions/twittersettings.php:376 msgid "Twitter settings saved." -msgstr "" +msgstr "트위터 í™˜ê²°ì„¤ì •ì´ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/twittersettings.php:192 actions/twittersettings.php:395 msgid "That is not your Twitter account." -msgstr "" +msgstr "ì´ê²ƒì€ ë‹¹ì‹ ì˜ íŠ¸ìœ„í„° ê³„ì •ì´ ì•„ë‹™ë‹ˆë‹¤." #: actions/twittersettings.php:200 actions/twittersettings.php:208 #: actions/twittersettings.php:403 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "트위터 사용ìžë¥¼ ì œê±°í• ìˆ˜ 없습니다." #: actions/twittersettings.php:212 actions/twittersettings.php:407 msgid "Twitter account removed." -msgstr "" +msgstr "트위터 ê³„ì •ì´ ì œê±°ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/twittersettings.php:225 actions/twittersettings.php:239 #: actions/twittersettings.php:428 actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "트위터 í™˜ê²½ì„¤ì •ì„ ì €ìž¥í• ìˆ˜ 없습니다." #: actions/twittersettings.php:245 actions/twittersettings.php:461 msgid "Twitter preferences saved." -msgstr "" +msgstr "트위터 í™˜ê²½ì„¤ì •ì´ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/userauthorization.php:84 actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "ì´ ìƒì„¸ì„¤ì •ë“¤ì„ ì²´í¬í•´ì£¼ì„¸ìš”." #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " @@ -3128,131 +3132,131 @@ msgstr "" #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "ì´ êµ¬ë…ì´ ê±°ì ˆë˜ì—ˆìŠµë‹ˆë‹¤." #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 msgid "Command results" -msgstr "" +msgstr "실행결과" #: classes/Channel.php:148 classes/Channel.php:204 msgid "Command complete" -msgstr "" +msgstr "실행 완료" #: classes/Channel.php:158 classes/Channel.php:215 msgid "Command failed" -msgstr "" +msgstr "실행 실패" #: classes/Command.php:39 classes/Command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "죄송합니다. ì´ ëª…ë ¹ì€ ì•„ì§ ì‹¤í–‰ë˜ì§€ 않았습니다." #: classes/Command.php:96 classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "" +msgstr "구ë…: %1$s\n" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 #: classes/Command.php:276 msgid "User has no last notice" -msgstr "" +msgstr "ì´ìš©ìžì˜ 지ì†ì ì¸ ê²Œì‹œê¸€ì´ ì—†ìŠµë‹ˆë‹¤." #: classes/Command.php:146 classes/Command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "ê²Œì‹œê¸€ì´ ì¢‹ì•„í•˜ëŠ” 글로 ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤." #: classes/Command.php:166 classes/Command.php:189 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" #: classes/Command.php:169 classes/Command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "ì „ì²´ì´ë¦„: %s" #: classes/Command.php:172 classes/Command.php:195 #, php-format msgid "Location: %s" -msgstr "" +msgstr "위치: %s" #: classes/Command.php:175 classes/Command.php:198 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "홈페ì´ì§€: %s" #: classes/Command.php:178 classes/Command.php:201 #, php-format msgid "About: %s" -msgstr "" +msgstr "ìžê¸°ì†Œê°œ: %s" #: classes/Command.php:200 classes/Command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "ë‹¹ì‹ ì´ ë³´ë‚¸ 메시지가 너무 길어요. 최대 140글ìžê¹Œì§€ìž…니다." #: classes/Command.php:214 classes/Command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "%sì—게 보낸 다ì´ë ‰íŠ¸ 메시지" #: classes/Command.php:216 classes/Command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "다ì´ë ‰íŠ¸ 메시지 보내기 ì—러" #: classes/Command.php:263 classes/Command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "구ë…ì„ í•˜ê¸° 위해서는 사용ìžì˜ ì´ë¦„ì„ ëª…í™•ížˆí•´ì•¼ 합니다." #: classes/Command.php:270 classes/Command.php:307 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "%sì—게 구ë…ë˜ì—ˆìŠµë‹ˆë‹¤." #: classes/Command.php:288 classes/Command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "ë¹„êµ¬ë… í¼ì— 사용ìžì˜ ì´ë¦„ì„ ëª…í™•ížˆ ì¨ì£¼ì„¸ìš”." #: classes/Command.php:295 classes/Command.php:335 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "%s 로부터 비구ë…ë˜ì—ˆìŠµë‹ˆë‹¤." #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 #: classes/Command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "ëª…ë ¹ì´ ì•„ì§ ì‹¤í–‰ë˜ì§€ 않았습니다." #: classes/Command.php:313 classes/Command.php:356 msgid "Notification off." -msgstr "" +msgstr "알림ë„기." #: classes/Command.php:315 classes/Command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "ì•Œë¦¼ì„ ëŒ ìˆ˜ 없습니다." #: classes/Command.php:333 classes/Command.php:379 msgid "Notification on." -msgstr "" +msgstr "ì•Œë¦¼ì´ ì¼œì¡ŒìŠµë‹ˆë‹¤." #: classes/Command.php:335 classes/Command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "ì•Œë¦¼ì„ ì¼¤ 수 없습니다." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" -msgstr "" +msgstr "ëª…ë ¹: \n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "메시지를 ì‚½ìž…í• ìˆ˜ 없습니다." #: classes/Message.php:63 classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "새 URI와 함께 메시지를 ì—…ë°ì´íŠ¸í• 수 없습니다." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "ì‹œìŠ¤í…œì— í”„ë¡œí•„ 매ì¹ì´ 없는 사용ìž" #: lib/mail.php:147 lib/mail.php:289 #, php-format @@ -3260,11 +3264,13 @@ msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"ë‹¹ì‹ ì€ %1$sì— ìƒˆ í¬ìŠ¤íŒ… 주소를 가진다. \n" +"\n" #: lib/mail.php:249 lib/mail.php:508 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "%s로부터 새로운 비밀 메시지가 ë„착하였습니다." #: lib/mail.php:253 lib/mail.php:512 #, php-format @@ -3272,88 +3278,89 @@ msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"%1$s (%2$s) ê°€ ë‹¹ì‹ ì—게 비밀메시지를 보냈습니다 : \n" +" \n" #: lib/mailbox.php:43 lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "ì˜¤ì§ í•´ë‹¹ 사용ìžë§Œ ìžì‹ ì˜ ë©”ì¼ë°•ìŠ¤ë¥¼ ì—´ëžŒí• ìˆ˜ 있습니다." #: lib/openid.php:195 lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "ì´ ì–‘ì‹ì€ ìžë™ì 으로 스스로 ì œì¶œë©ë‹ˆë‹¤." #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "좋아하는 글들" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "%s ë‹˜ì˜ ì¢‹ì•„í•˜ëŠ” 글들" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" -msgstr "" +msgstr "ì´ìš©ìž" #: lib/personal.php:75 lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "ë°›ì€ ìª½ì§€í•¨" #: lib/personal.php:76 lib/personalgroupnav.php:124 msgid "Your incoming messages" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ë°›ì€ ë©”ì‹œì§€ë“¤" #: lib/personal.php:80 lib/personalgroupnav.php:128 msgid "Outbox" -msgstr "" +msgstr "보낸 쪽지함" #: lib/personal.php:81 lib/personalgroupnav.php:129 msgid "Your sent messages" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ë³´ë‚¸ 메시지들" #: lib/settingsaction.php:99 lib/connectsettingsaction.php:110 msgid "Twitter" -msgstr "" +msgstr "트위터" #: lib/settingsaction.php:100 lib/connectsettingsaction.php:111 msgid "Twitter integration options" -msgstr "" +msgstr "트위터 통합옵션" #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 msgid "To" -msgstr "" +msgstr "ì—게" #: scripts/maildaemon.php:45 scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "메시지를 ë¶„ë¦¬í• ìˆ˜ 없습니다." #: actions/all.php:63 actions/facebookhome.php:162 #, php-format msgid "%s and friends, page %d" -msgstr "" +msgstr "%s 와 친구들, %d 페ì´ì§€" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ê°œì¸ì ì¸ ì•„ë°”íƒ€ë¥¼ ì—…ë¡œë“œí• ìˆ˜ 있습니다." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "ë©”ì‹ ì € ì„¤ì •" +msgstr "아바타 ì„¤ì •" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "ì›ëž˜ ì„¤ì •" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "미리보기" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 msgid "Crop" -msgstr "" +msgstr "ìžë¥´ê¸°" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3365,51 +3372,51 @@ msgstr "" #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì„¸ì…˜í† í°ì— ë¬¸ì œê°€ 있습니다." #: actions/avatarsettings.php:303 actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì•„ë°”íƒ€ê°€ ë ì´ë¯¸ì§€ì˜ì—ì„ ì§€ì •í•˜ì„¸ìš”." #: actions/avatarsettings.php:327 actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "ìš°ë¦¬ì˜ íŒŒì¼ ë°ì´í„°ë¥¼ ìžƒì–´ë²„ë ¸ìŠµë‹ˆë‹¤." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 msgid "Lost our file." -msgstr "" +msgstr "ìš°ë¦¬ì˜ íŒŒì¼ì„ ìžƒì–´ë²„ë ¸ìŠµë‹ˆë‹¤." #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 #: classes/User_group.php:129 classes/User_group.php:161 msgid "Unknown file type" -msgstr "" +msgstr "ì•Œë ¤ì§€ì§€ ì•Šì€ íŒŒì¼ìœ 형입니다." #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 msgid "No profile specified." -msgstr "" +msgstr "í”„ë¡œí•„ì´ êµ¬ì²´ì ì´ì§€ 않습니다." #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 #: actions/unblock.php:75 msgid "No profile with that ID." -msgstr "" +msgstr "해당 IDì˜ í”„ë¡œí•„ì´ ì—†ìŠµë‹ˆë‹¤." #: actions/block.php:111 msgid "Block user" -msgstr "" +msgstr "사용ìžë¥¼ 차단합니다." #: actions/block.php:129 msgid "Are you sure you want to block this user? " -msgstr "" +msgstr "ì´ ì‚¬ìš©ìžë¥¼ ì°¨ë‹¨í•˜ê³ ì‹¶ì€ ê²Œ 맞습니까?" #: actions/block.php:162 msgid "You have already blocked this user." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ë¯¸ ì´ ì‚¬ìš©ìžë¥¼ ì°¨ë‹¨í•˜ê³ ìžˆìŠµë‹ˆë‹¤." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "ì •ë³´ì°¨ë‹¨ì„ ì €ìž¥í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤." #: actions/confirmaddress.php:159 #, php-format @@ -3418,175 +3425,174 @@ msgstr "" #: actions/deletenotice.php:73 msgid "You are about to permanently delete a notice. " -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì˜êµ¬ì 으로 ì´ ê²Œì‹œê¸€ì„ ì‚ì œí•˜ë ¤ê³ í•©ë‹ˆë‹¤." #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "좋아하는 게시글로 추가하기" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "%s 그룹 ìˆ˜ì •í•˜ê¸°" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "ë°›ì€ìª½ì§€í•¨ì€ ê·¸ë£¹ì´ ì¼í• 수 있ë„ë¡ í™œì„±í™”ë˜ì–´ì•¼ 한다." #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 msgid "You must be logged in to create a group." -msgstr "" +msgstr "ê·¸ë£¹ì„ ë§Œë“¤ê¸° 위해서는 로그ì¸í•´ì•¼ 합니다." #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "닉네임" +msgstr "ë‹‰ë„¤ìž„ì´ ì—†ìŠµë‹ˆë‹¤" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 #: actions/showgroup.php:128 msgid "No such group" -msgstr "" +msgstr "그러한 ê·¸ë£¹ì´ ì—†ìŠµë‹ˆë‹¤." #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ê·¸ë£¹ì„ ìˆ˜ì •í•˜ê¸° 위해 관리ìžì´ì–´ì•¼ 합니다." #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "ê·¸ë£¹ì„ ìˆ˜ì •í•˜ê¸° 위해 ì´ ì–‘ì‹ì„ 사용하세요." #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 msgid "Nickname must have only lowercase letters " -msgstr "" +msgstr "ë‹‰ë„¤ìž„ì€ ì˜¤ì§ ì˜ë¬¸ì†Œë¬¸ìžì´ì–´ì•¼ 합니다." #: actions/editgroup.php:198 actions/newgroup.php:149 msgid "description is too long (max 140 chars)." -msgstr "" +msgstr "ì„¤ëª…ì´ ë„ˆë¬´ 길어요. (최대 140글ìž)" #: actions/editgroup.php:218 msgid "Could not update group." -msgstr "" +msgstr "ê·¸ë£¹ì„ ì—…ë°ì´íŠ¸ í• ìˆ˜ 없습니다." #: actions/editgroup.php:226 msgid "Options saved." -msgstr "" +msgstr "ì˜µì…˜ë“¤ì´ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/emailsettings.php:107 actions/imsettings.php:108 #, php-format msgid "Awaiting confirmation on this address. " -msgstr "" +msgstr "ì´ ì£¼ì†Œì˜ í™•ì¸ì„ ê¸°ë‹¤ë¦¬ê³ ìžˆìŠµë‹ˆë‹¤." #: actions/emailsettings.php:139 actions/smssettings.php:150 msgid "Make a new email address for posting to; " -msgstr "" +msgstr "í¬ìŠ¤íŒ…ì„ ìœ„í•´ 새 ì´ë©”ì¼ ì£¼ì†Œë¥¼ 만드세요." #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "내게 ì´ë©”ì¼ì„ 보내세요." #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "ì¹œêµ¬ë“¤ì´ ë‚´ê²Œ ì´ë©”ì¼ì´ë‚˜ 쪽지를 보낼 수 있ë„ë¡ í—ˆìš©í•©ë‹ˆë‹¤." #: actions/emailsettings.php:321 msgid "That email address already belongs " -msgstr "" +msgstr "해당 ì´ë©”ì¼ ì£¼ì†ŒëŠ” ì´ë¯¸ 등ë¡ë˜ì–´ìžˆìŠµë‹ˆë‹¤." #: actions/emailsettings.php:343 msgid "A confirmation code was sent to the email address you added. " -msgstr "" +msgstr "ì¸ì¦ì½”드가 ë‹¹ì‹ ì´ ì¶”ê°€í•œ ì´ë©”ì¼ì£¼ì†Œë¡œ 발송ë˜ì—ˆìŠµë‹ˆë‹¤" #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "서버ì—러입니다. - ì‚¬ìš©ìž ì •ë³´ë¥¼ 불러올 수 없습니다." #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "만약 ë‹¹ì‹ ì´ ìžë™ ì—…ë°ì´íŠ¸ë¥¼ 위해 %s ì• í”Œë¦¬ì¼€ì´ì…˜ì„ 좋아한다면" #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "ë‚´ 페ì´ìŠ¤ë¶ ìƒíƒœì— ì—…ë°ì´íŠ¸ë¥¼ 위해 %s를 허용합니다." #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "통과! (넘어갑니다)" #: actions/facebookhome.php:235 msgid "No notice content!" -msgstr "" +msgstr "ê²Œì‹œê¸€ì´ ì—†ìŠµë‹ˆë‹¤." #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "페ì´ì§€ìˆ˜" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 msgid "After" -msgstr "" +msgstr "ë’· 페ì´ì§€" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 msgid "Before" -msgstr "" +msgstr "ì•ž 페ì´ì§€" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "%s ì‚¬ìš©ì„ ìœ„í•´ 친구초대를 해주셔서 대단히 ê°ì‚¬í•©ë‹ˆë‹¤." #: actions/facebookinvite.php:72 msgid "Invitations have been sent to the following users:" -msgstr "" +msgstr "ì´ˆëŒ€ìž¥ì´ ë¬´ì‚¬ížˆ 발송ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/facebookinvite.php:96 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "ë‹¹ì‹ ì€ %sì— ì´ˆëŒ€ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/facebookinvite.php:105 #, php-format msgid "Invite your friends to use %s" -msgstr "" +msgstr "%s ì´ìš©ì„ 위해 ë‹¹ì‹ ì´ ì¹œêµ¬ë¥¼ 초대하세요." #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "ì¹œêµ¬ë“¤ì€ ì´ë¯¸ %s를 사용중입니다." #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "ì´ˆëŒ€ìž¥ì„ ë°œì†¡í•©ë‹ˆë‹¤." #: actions/facebookremove.php:56 msgid "Couldn't remove Facebook user." -msgstr "" +msgstr "페ì´ìŠ¤ë¶ 사용ìžë¥¼ ì œê±°í• ìˆ˜ 없습니다." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì‹±í¬ ì„¤ì •ì„ ì €ìž¥í•˜ëŠ”ë° ë¬¸ì œê°€ 있습니다." #: actions/facebooksettings.php:67 msgid "Sync preferences saved." -msgstr "" +msgstr "싱í¬ì„¤ì •ì´ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." -msgstr "" +msgstr "ë‚´ 게시글과 함께 ë‚˜ì˜ íŽ˜ì´ìŠ¤ë¶ ìƒíƒœë¥¼ ìžë™ìœ¼ë¡œ ì—…ë°ì´íŠ¸í•©ë‹ˆë‹¤." #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "페ì´ìŠ¤ë¶ì— \"@\"ë‹µìž¥ì„ ë³´ëƒ…ë‹ˆë‹¤." #: actions/facebooksettings.php:106 msgid "Prefix" -msgstr "" +msgstr "미리 ê³ ì¹˜ê¸°" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." @@ -3595,238 +3601,236 @@ msgstr "" #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "만약 ë‹¹ì‹ ì´ ìžë™ì—…ë°ì´íŠ¸ë¥¼ 위해 %s를 좋아한다면" #: actions/facebooksettings.php:147 msgid "Sync preferences" -msgstr "" +msgstr "ì‹±í¬ ì„¤ì •" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "좋아하는글 취소" #: actions/favorited.php:65 lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 msgid "Popular notices" -msgstr "" +msgstr "ì¸ê¸°ìžˆëŠ” 게시글" #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" -msgstr "" +msgstr "ì¸ê¸°ìžˆëŠ” 게시글, %d 페ì´ì§€" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "사ì´íŠ¸ì—ì„œ 지금 가장 ì¸ê¸°ìžˆëŠ” 게시글" #: actions/featured.php:69 lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 msgid "Featured users" -msgstr "" +msgstr "ì¸ê¸°ìžˆëŠ” 회ì›ë“¤" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "ì¸ê¸°ìžˆëŠ” 회ì›ë“¤, %d 페ì´ì§€" #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "%sì˜ í›Œë¥í•œ 회ì›ë“¤ì˜ ì¼ë¶€ì„ íƒ" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "ì´ íšŒì›ì€ 구ë…으로부터 ë‹¹ì‹ ì„ ì°¨ë‹¨í•´ì™”ë‹¤." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "IDê°€ 없습니다." #: actions/grouplogo.php:138 actions/grouplogo.php:191 msgid "Group logo" -msgstr "" +msgstr "ê·¸ë£¹ë¡œê³ " #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "ë‹¹ì‹ ê·¸ë£¹ì˜ ë¡œê³ ì´ë¯¸ì§€ë¥¼ ì—…ë¡œë“œí• ìˆ˜ 있습니다." #: actions/grouplogo.php:448 -#, fuzzy msgid "Logo updated." -msgstr "로그아웃" +msgstr "ë¡œê³ ë¥¼ ì—…ë°ì´íŠ¸í–ˆìŠµë‹ˆë‹¤." #: actions/grouplogo.php:450 msgid "Failed updating logo." -msgstr "" +msgstr "ë¡œê³ ì—…ë°ì´íŠ¸ì— 실패했습니다." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "%s 그룹 회ì›ë“¤" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "%s 그룹 회ì›ë“¤, %d 페ì´ì§€" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "ì´ ê·¸ë£¹ì˜ íšŒì›ë¦¬ìŠ¤íŠ¸" #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "그룹" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "그룹, %d 페ì´ì§€" #: actions/groups.php:90 #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " -msgstr "" +msgstr "%%%%site.name%%%% ê·¸ë£¹ì€ ë‹¹ì‹ ì—게 ì–˜ê¸°í• ì‚¬ëžŒì„ ì°¾ê²Œí•´ì¤ë‹ˆë‹¤." #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 msgid "Create a new group" -msgstr "" +msgstr "새 ê·¸ë£¹ì„ ë§Œë“니다." #: actions/groupsearch.php:57 #, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " -msgstr "" +msgstr "ì´ë¦„ê³¼ 위치, ìƒì„¸ì„¤ëª…으로 %%site.name%% ì—ì„œ ê·¸ë£¹ì„ ì°¾ìŠµë‹ˆë‹¤." #: actions/groupsearch.php:63 msgid "Group search" -msgstr "" +msgstr "그룹 찾기" #: actions/imsettings.php:70 msgid "You can send and receive notices through " -msgstr "" +msgstr "ë‹¹ì‹ ì€ ë©”ì‹œì§€ë¥¼ ì£¼ê³ ë°›ì„ ìˆ˜ 있습니다." #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "Jabber í˜¹ì€ GTalk(êµ¬ê¸€í† í¬) 주소" #: actions/imsettings.php:147 msgid "Send me replies through Jabber/GTalk " -msgstr "" +msgstr "Jabber/GTalk(êµ¬ê¸€í† í¬) ì„ í†µí•´ 내게 ë‹µìž¥ì„ ë³´ëƒ…ë‹ˆë‹¤." #: actions/imsettings.php:321 #, php-format msgid "A confirmation code was sent " -msgstr "" +msgstr "ì¸ì¦ì½”드가 보내졌습니다." #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "ê·¸ë£¹ê°€ìž…ì„ ìœ„í•´ì„œëŠ” 로그ì¸ì´ 필요합니다." #: actions/joingroup.php:95 msgid "You are already a member of that group" -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ë¯¸ ì´ ê·¸ë£¹ì˜ ë©¤ë²„ìž…ë‹ˆë‹¤." #: actions/joingroup.php:128 #, php-format msgid "Could not join user %s to group %s" -msgstr "" +msgstr "그룹 %sì— %s는 ê°€ìž…í• ìˆ˜ 없습니다." #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s 는 그룹 %sì— ê°€ìž…í–ˆìŠµë‹ˆë‹¤." #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "ë°›ì€ìª½ì§€í•¨ì€ ê·¸ë£¹ì´ ì¼í•˜ê¸° 위해 ìˆ˜ì‹ ê°€ëŠ¥í•´ì•¼ 합니다." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "ê·¸ë£¹ì„ ë– ë‚˜ê¸° 위해서는 로그ì¸í•´ì•¼ 합니다." #: actions/leavegroup.php:88 msgid "No such group." -msgstr "" +msgstr "그러한 ê·¸ë£¹ì´ ì—†ìŠµë‹ˆë‹¤." #: actions/leavegroup.php:95 msgid "You are not a member of that group." -msgstr "" +msgstr "ë‹¹ì‹ ì€ í•´ë‹¹ ê·¸ë£¹ì˜ ë©¤ë²„ê°€ 아닙니다." #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ê´€ë¦¬ìžì¼ë™ì•ˆ 해당 ê·¸ë£¹ì„ ë– ë‚˜ì§€ ì•ŠëŠ”ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤." #: actions/leavegroup.php:130 msgid "Could not find membership record." -msgstr "" +msgstr "ë©¤ë²„ì‹ ê¸°ë¡ì„ ë°œê²¬í• ìˆ˜ 없습니다." #: actions/leavegroup.php:138 #, php-format msgid "Could not remove user %s to group %s" -msgstr "" +msgstr "그룹 %sì—ì„œ %s 사용ìžë¥¼ ì œê±°í• ìˆ˜ 없습니다." #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%sê°€ 그룹%s를 ë– ë‚¬ìŠµë‹ˆë‹¤." #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "사ì´íŠ¸ì— 로그ì¸í•˜ì„¸ìš”." #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "현재 ìƒíƒœê°€ 없습니다." #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "새로운 그룹" #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "새 ê·¸ë£¹ì„ ë§Œë“¤ê¸° 위해 ì´ ì–‘ì‹ì„ 사용하세요." #: actions/newgroup.php:177 msgid "Could not create group." -msgstr "" +msgstr "새 ê·¸ë£¹ì„ ë§Œë“¤ 수 없습니다." #: actions/newgroup.php:191 msgid "Could not set group membership." -msgstr "" +msgstr "그룹 맴버ì‹ì„ ì„¸íŒ…í• ìˆ˜ 없습니다." #: actions/newmessage.php:119 actions/newnotice.php:132 msgid "That's too long. " -msgstr "" +msgstr "너무 길어요." #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "ìžì‹ ì—게 메시지를 ì „ì†¡í•˜ì§€ ë§ì•„주세요." #: actions/newnotice.php:166 msgid "Notice posted" -msgstr "" +msgstr "ê²Œì‹œê¸€ì´ ë“±ë¡ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" -msgstr "" +msgstr "Ajax ì—러입니다." #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." -msgstr "" +msgstr "ì´ ì‚¬ìš©ìžëŠ” nudge를 허용하지 ì•Šì•˜ê³ , ì•„ì§ ê·¸ì˜ ì´ë©”ì¼ì„ ì¸ì¦í•˜ì§€ 않았습니다." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Nudge ê°€ 보내졌습니다." #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Nudgeê°€ 보내졌습니다!" #: actions/openidlogin.php:97 -#, fuzzy msgid "OpenID login" msgstr "OpenID 로그ì¸" @@ -3836,85 +3840,82 @@ msgid "Removing your only OpenID " msgstr "OpenID ì‚ì œ" #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "ë©”ì‹ ì € ì„¤ì •" +msgstr "기타 ì„¤ì •" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "다양한 다른 옵션관리" #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "URL ìžë™ 줄ì´ê¸°" #: actions/othersettings.php:112 -#, fuzzy msgid "Service" -msgstr "검색" +msgstr "서비스" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "ì‚¬ìš©í• ì„œë¹„ìŠ¤ ìžë™ 줄ì´ê¸° " #: actions/othersettings.php:144 msgid "URL shortening service is too long (max 50 chars)." -msgstr "" +msgstr "URL 줄ì´ê¸° 서비스 너무 ê¹ë‹ˆë‹¤. (최대 50글ìž)" #: actions/passwordsettings.php:69 msgid "Change your password." -msgstr "" +msgstr "비밀번호를 변경하세요." #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" -msgstr "비밀번호" +msgstr "비밀번호 변경" #: actions/peopletag.php:35 #, php-format msgid "Not a valid people tag: %s" -msgstr "" +msgstr "ìœ íš¨í•œ 태그가 아닙니다: %s" #: actions/peopletag.php:47 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "ì´ìš©ìž 셀프 í…Œí¬ %s - %d 페ì´ì§€" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "ì´ ì‚¬ëžŒë“¤ì€ ê·¸ë“¤ 스스로가 \"%s\" 태그를 추가했습니다." #: actions/profilesettings.php:91 msgid "Profile information" -msgstr "" +msgstr "프로필 ì •ë³´" #: actions/profilesettings.php:124 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "" +msgstr "ë‹¹ì‹ ì„ ìœ„í•œ 태그들 → (문ìž,숫ìž,-, ., ê·¸ë¦¬ê³ _) 콤마- í˜¹ì€ ê³µë°±ìœ¼ë¡œ 분리하세요." #: actions/profilesettings.php:144 msgid "Automatically subscribe to whoever " -msgstr "" +msgstr "누구ì—게나 ìžë™êµ¬ë…" #: actions/profilesettings.php:229 actions/tagother.php:176 #, php-format msgid "Invalid tag: \"%s\"" -msgstr "" +msgstr "ìœ íš¨í•˜ì§€ ì•Šì€íƒœê·¸: \"%s\"" #: actions/profilesettings.php:311 msgid "Couldn't save tags." -msgstr "" +msgstr "íƒœê·¸ë“¤ì„ ì €ìž¥í• ìˆ˜ 없습니다." #: actions/public.php:107 #, php-format msgid "Public timeline, page %d" -msgstr "" +msgstr "공개 타임ë¼ì¸, %d 페ì´ì§€" #: actions/public.php:173 msgid "Could not retrieve public stream." -msgstr "" +msgstr "공개 streamì„ ë¶ˆëŸ¬ì˜¬ 수 없습니다." #: actions/public.php:220 #, php-format @@ -3922,125 +3923,127 @@ msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service " msgstr "" +"%%site.name%% 는 마ì´í¬ë¡œë¸”로깅(http://en.wikipedia.org/wiki/Micro-blogging) 서비스 " +"입니다." #: actions/publictagcloud.php:57 msgid "Public tag cloud" -msgstr "" +msgstr "공개 태그 í´ë¼ìš°ë“œ" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "ì´ê²ƒì€ %ì—ì„œ 가장 ì¸ê¸°ìžˆëŠ” 최근 태그들입니다." #: actions/publictagcloud.php:119 msgid "Tag cloud" -msgstr "" +msgstr "태그 í´ë¼ìš°ë“œ" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "죄송합니다. 단지 ì´ˆëŒ€ëœ ì‚¬ëžŒë“¤ë§Œ 등ë¡í• 수 있습니다." #: actions/register.php:149 msgid "You can't register if you don't " -msgstr "" +msgstr "만약 ë‹¹ì‹ ì´ ì•„ë‹ˆë¼ë©´, ë‹¹ì‹ ì€ ë“±ë¡í• 수 없습니다." #: actions/register.php:286 msgid "With this form you can create " -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ ì–‘ì‹ìœ¼ë¡œ 만들 수 있습니다." #: actions/register.php:368 msgid "1-64 lowercase letters or numbers, " -msgstr "" +msgstr "1-64 ì†Œë¬¸ìž í˜¹ì€ ìˆ«ìž," #: actions/register.php:382 actions/register.php:386 msgid "Used only for updates, announcements, " -msgstr "" +msgstr "ì—…ë°ì´íŠ¸, 공지를 위해 ì˜¤ì§ ì‚¬ìš©ë©ë‹ˆë‹¤." #: actions/register.php:398 msgid "URL of your homepage, blog, " -msgstr "" +msgstr "ë‹¹ì‹ ì˜ í™ˆíŽ˜ì´ì§€, ë¸”ë¡œê·¸ì˜ URL" #: actions/register.php:404 msgid "Describe yourself and your " -msgstr "" +msgstr "ë‹¹ì‹ ì— ëŒ€í•´ 소개해주세요." #: actions/register.php:410 msgid "Where you are, like \"City, " -msgstr "" +msgstr "ë‹¹ì‹ ì´ ì‚¬ëŠ”ê³³, \"ë„,ì‹œ,êµ°,구,\"," #: actions/register.php:432 msgid " except this private data: password, " -msgstr "" +msgstr "ì´ ë¹„ë°€ ë°ì´í„°ë¥¼ ì œì™¸í•˜ì„¸ìš”: 비밀번호," #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "축하합니다, %s! ê·¸ë¦¬ê³ %%%site.name%%%%ì— ì˜¤ì‹ ê±¸ 환ì˜í•©ë‹ˆë‹¤." #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(ë‹¹ì‹ ì€ ì´ë©”ì¼ë¡œ 메시지를 받아야 합니다." #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "ê·¸ê²ƒì€ ë¡œì»¬í”„ë¡œí•„ìž…ë‹ˆë‹¤. 구ë…ì„ ìœ„í•´ì„œëŠ” 로긴하세요." #: actions/replies.php:118 #, php-format msgid "Replies to %s, page %d" -msgstr "" +msgstr "%sì— ë‹µìž¥, %d 페ì´ì§€" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "%s 좋아하는 게시글, %d 페ì´ì§€" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "%s 그룹" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "%s 그룹, %d 페ì´ì§€" #: actions/showgroup.php:206 msgid "Group profile" -msgstr "" +msgstr "그룹 프로필" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 msgid "URL" -msgstr "" +msgstr "URL" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 msgid "Note" -msgstr "" +msgstr "설명" #: actions/showgroup.php:270 msgid "Group actions" -msgstr "" +msgstr "그룹 í–‰ë™" #: actions/showgroup.php:323 #, php-format msgid "Notice feed for %s group" -msgstr "" +msgstr "%s ê·¸ë£¹ì„ ìœ„í•œ 공지피드" #: actions/showgroup.php:357 lib/groupnav.php:90 msgid "Members" -msgstr "" +msgstr "회ì›ë“¤" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(없습니다.)" #: actions/showgroup.php:370 msgid "All members" -msgstr "" +msgstr "ëª¨ë“ íšŒì›ë“¤" #: actions/showgroup.php:378 #, php-format @@ -4048,47 +4051,49 @@ msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** 는 %%%%site.name%%%% [마ì´í¬ë¡œë¸”로깅)(http://en.wikipedia.org/wiki/Micro-" +"blogging)ì˜ ì‚¬ìš©ìž ê·¸ë£¹ìž…ë‹ˆë‹¤. " #: actions/showmessage.php:98 msgid "Only the sender and recipient " -msgstr "" +msgstr "ì˜¤ì§ ë³´ë‚´ëŠ” 사람과 받는 사람" #: actions/showstream.php:73 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s, %d 페ì´ì§€" #: actions/showstream.php:143 msgid "'s profile" -msgstr "" +msgstr "'ì˜ í”„ë¡œí•„" #: actions/showstream.php:236 actions/tagother.php:77 msgid "User profile" -msgstr "" +msgstr "ì´ìš©ìž 프로필" #: actions/showstream.php:240 actions/tagother.php:81 msgid "Photo" -msgstr "" +msgstr "사진" #: actions/showstream.php:317 msgid "User actions" -msgstr "" +msgstr "ì‚¬ìš©ìž ë™ìž‘" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "ì´ íšŒì›ì—게 다ì´ë ‰íŠ¸ 메시지를 보냅니다." #: actions/showstream.php:343 msgid "Message" -msgstr "" +msgstr "메시지" #: actions/showstream.php:451 msgid "All subscribers" -msgstr "" +msgstr "ëª¨ë“ êµ¬ë…ìž" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "ëª¨ë“ ê·¸ë£¹" #: actions/showstream.php:542 #, php-format @@ -4096,18 +4101,20 @@ msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s**는 %%%%site.name%%%% [마ì´í¬ë¡œë¸”로깅](http://en.wikipedia.org/wiki/Micro-" +"blogging) ì„œë¹„ìŠ¤ì— ê³„ì •ì„ ê°–ê³ ìžˆìŠµë‹ˆë‹¤." #: actions/smssettings.php:128 msgid "Phone number, no punctuation or spaces, " -msgstr "" +msgstr "í°ë²ˆí˜¸, ì ì´ë‚˜ 공백없ì´" #: actions/smssettings.php:162 msgid "Send me notices through SMS; " -msgstr "" +msgstr "SMS를 통해 ê²Œì‹œê¸€ì„ ë‚´ê²Œ 보냅니다." #: actions/smssettings.php:335 msgid "A confirmation code was sent to the phone number you added. " -msgstr "" +msgstr "추가한 ì „í™” 번호로 ì¸ì¦ 코드를 보냈습니다." #: actions/smssettings.php:453 msgid "Mobile carrier" @@ -4115,257 +4122,257 @@ msgstr "" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ì´ í”„ë¡œí•„ì— êµ¬ë…ë˜ì§€ ì•Šê³ ìžˆìŠµë‹ˆë‹¤." #: actions/subedit.php:83 msgid "Could not save subscription." -msgstr "" +msgstr "구ë…ì„ ì €ìž¥í• ìˆ˜ 없습니다." #: actions/subscribe.php:55 msgid "Not a local user." -msgstr "" +msgstr "로컬 ì‚¬ìš©ìž ì•„ë‹™ë‹ˆë‹¤." #: actions/subscribe.php:69 msgid "Subscribed" -msgstr "" +msgstr "구ë…하였습니다." #: actions/subscribers.php:50 #, php-format msgid "%s subscribers" -msgstr "" +msgstr "%s 구ë…ìž" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "%s 구ë…ìž, %d 페ì´ì§€" #: actions/subscribers.php:63 msgid "These are the people who listen to " -msgstr "" +msgstr "ë“£ê³ ìžˆëŠ” 사람들" #: actions/subscribers.php:67 #, php-format msgid "These are the people who " -msgstr "" +msgstr "사람들" #: actions/subscriptions.php:52 #, php-format msgid "%s subscriptions" -msgstr "" +msgstr "%s 구ë…" #: actions/subscriptions.php:54 #, php-format msgid "%s subscriptions, page %d" -msgstr "" +msgstr "%s subscriptions, %d 페ì´ì§€" #: actions/subscriptions.php:65 msgid "These are the people whose notices " -msgstr "" +msgstr "게시글 쓰는 사람들" #: actions/subscriptions.php:69 #, php-format msgid "These are the people whose " -msgstr "" +msgstr "하는 사람들" #: actions/subscriptions.php:122 msgid "Jabber" -msgstr "" +msgstr "Jabber" #: actions/tag.php:43 #, php-format msgid "Notices tagged with %s, page %d" -msgstr "" +msgstr "%s 으로 íƒœê·¸ëœ ê²Œì‹œê¸€, %d 페ì´ì§€" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "가장 ìµœê·¼ì— \"%s\" 으로 íƒœê·¸ëœ ë©”ì‹œì§€ë“¤" #: actions/tagother.php:33 msgid "Not logged in" -msgstr "" +msgstr "로그ì¸ë˜ì§€ 않았습니다." #: actions/tagother.php:39 msgid "No id argument." -msgstr "" +msgstr "id ì¸ìžê°€ 없습니다." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "태그 %s" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "태그 사용ìž" #: actions/tagother.php:149 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" -msgstr "" +msgstr "사용ìžë¥¼ 위한 태그 (문ìž,숫ìž, -, . ,ê·¸ë¦¬ê³ _), 콤마 í˜¹ì€ ê³µë°±ìœ¼ë¡œ 분리하세요." #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì„¸ì…˜í† í°ê´€ë ¨ ë¬¸ì œê°€ 있습니다." #: actions/tagother.php:191 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." -msgstr "" +msgstr "ë‹¹ì‹ ì€ ë‹¹ì‹ ì´ êµ¬ë…하거나 ë‹¹ì‹ ì„ êµ¬ë…하는 ì‚¬ëžŒë“¤ì— ëŒ€í•´ ì˜¤ì§ íƒœê¹…í• ìˆ˜ 있다. " #: actions/tagother.php:198 msgid "Could not save tags." -msgstr "" +msgstr "태그를 ì €ìž¥í• ìˆ˜ 없습니다." #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "ë‹¹ì‹ ì˜ êµ¬ë…ìžë‚˜ 구ë…하는 ì‚¬ëžŒì— íƒœê¹…ì„ ìœ„í•´ ì´ ì–‘ì‹ì„ 사용하세요." #: actions/tagrss.php:35 msgid "No such tag." -msgstr "" +msgstr "그러한 태그가 없습니다." #: actions/tagrss.php:66 #, php-format msgid "Microblog tagged with %s" -msgstr "" +msgstr "마ì´í¬ë¡œë¸”로그는 %s 으로 태그ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "ì‚¬ìš©ìž ì°¨ë‹¨ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "ì‚¬ìš©ìž ì°¨ë‹¨ í•´ì œì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤." #: actions/twitapiusers.php:48 msgid "Not found." -msgstr "" +msgstr "ì°¾ì„ ìˆ˜ê°€ 없습니다." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "ìžë™ìœ¼ë¡œ ë³´ë‚´ë ¤ë©´ 트위터 ê³„ì •ì„ ì¶”ê°€í•˜ì‹ì‹œì˜¤." #: actions/twittersettings.php:119 msgid "Twitter user name" -msgstr "" +msgstr "트위터 ì‚¬ìš©ìž ì´ë¦„" #: actions/twittersettings.php:126 msgid "Twitter password" -msgstr "" +msgstr "트위터 비밀번호" #: actions/twittersettings.php:228 msgid "Twitter Friends" -msgstr "" +msgstr "트위터 친구들" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "Usernameì€ ë‹¨ì§€ 숫ìžë¥¼ ê°€ì ¸ì•¼ 합니다," #: actions/twittersettings.php:341 #, php-format msgid "Unable to retrieve account information " -msgstr "" +msgstr "ê³„ì •ì •ë³´ë¥¼ 불러올 수 없습니다." #: actions/unblock.php:108 msgid "Error removing the block." -msgstr "" +msgstr "차단 ì œê±° ì—러!" #: actions/unsubscribe.php:50 msgid "No profile id in request." -msgstr "" +msgstr "ìš”ì²í•œ 프로필idê°€ 없습니다." #: actions/unsubscribe.php:57 msgid "No profile with that id." -msgstr "" +msgstr "해당 idì˜ í”„ë¡œí•„ì´ ì—†ìŠµë‹ˆë‹¤." #: actions/unsubscribe.php:71 msgid "Unsubscribed" -msgstr "" +msgstr "구ë…취소 ë˜ì—ˆìŠµë‹ˆë‹¤." #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "%s 그룹" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "%s 그룹, %d 페ì´ì§€" #: classes/Notice.php:104 msgid "Problem saving notice. Unknown user." -msgstr "" +msgstr "게시글 ì €ìž¥ë¬¸ì œ. ì•Œë ¤ì§€ì§€ì•Šì€ íšŒì›" #: classes/Notice.php:109 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." -msgstr "" +msgstr "너무 ë§Žì€ ê²Œì‹œê¸€ì´ ë„ˆë¬´ ë¹ ë¥´ê²Œ 올ë¼ì˜µë‹ˆë‹¤. í•œìˆ¨ê³ ë¥´ê³ ëª‡ë¶„í›„ì— ë‹¤ì‹œ í¬ìŠ¤íŠ¸ë¥¼ 해보세요." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "ì´ ì‚¬ì´íŠ¸ì— 게시글 í¬ìŠ¤íŒ…으로부터 ë‹¹ì‹ ì€ ê¸ˆì§€ë˜ì—ˆìŠµë‹ˆë‹¤." #: lib/accountsettingsaction.php:108 msgid "Upload an avatar" -msgstr "" +msgstr "아바타를 업로드하세요." #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "ê·¸ ë°–ì˜ ë‹¤ë¥¸ê²ƒ" #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "다른 옵션들" #: lib/action.php:130 #, php-format msgid "%s - %s" -msgstr "" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "ì œëª©ì—†ëŠ” 페ì´ì§€" #: lib/action.php:316 msgid "Primary site navigation" -msgstr "" +msgstr "주 사ì´íŠ¸ 네비게ì´ì…˜" #: lib/action.php:322 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "ê°œì¸ í”„ë¡œí•„ê³¼ 친구 타임ë¼ì¸" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "프로필ì´ë‚˜ í…스트 검색" #: lib/action.php:328 msgid "Account" -msgstr "" +msgstr "ê³„ì •" #: lib/action.php:328 msgid "Change your email, avatar, password, profile" -msgstr "" +msgstr "ë‹¹ì‹ ì˜ ì´ë©”ì¼, 아바타, 비밀 번호, í”„ë¡œí•„ì„ ë³€ê²½í•˜ì„¸ìš”." #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "IM, SMS, íŠ¸ìœ„í„°ì— ì—°ê²°í•˜ê¸°" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "ì´ ì‚¬ì´íŠ¸ë¡œë¶€í„° 로그아웃" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "ì´ ì‚¬ì´íŠ¸ 로그ì¸" #: lib/action.php:338 msgid "Create an account" -msgstr "" +msgstr "ê³„ì • 만들기" #: lib/action.php:341 msgid "Login with OpenID" -msgstr "" +msgstr "오픈IDë¡œ 로그ì¸í•˜ê¸°" #: lib/action.php:344 #, fuzzy @@ -4374,137 +4381,136 @@ msgstr "ë„움ë§" #: lib/action.php:362 msgid "Site notice" -msgstr "" +msgstr "사ì´íŠ¸ 공지" #: lib/action.php:417 msgid "Local views" -msgstr "" +msgstr "로컬 ë·°" #: lib/action.php:472 msgid "Page notice" -msgstr "" +msgstr "페ì´ì§€ 공지" #: lib/action.php:562 msgid "Secondary site navigation" -msgstr "" +msgstr "ë³´ì¡° 사ì´íŠ¸ 네비게ì´ì…˜" #: lib/action.php:602 lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "ë¼ì½”니카 소프트웨어 ë¼ì´ì„ 스" #: lib/action.php:630 msgid "All " -msgstr "" +msgstr "ëª¨ë“ ê²ƒ" #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "ë¼ì´ì„ 스" #: lib/blockform.php:123 lib/blockform.php:153 msgid "Block this user" -msgstr "" +msgstr "ì´ ì‚¬ìš©ìž ì°¨ë‹¨í•˜ê¸°" #: lib/blockform.php:153 msgid "Block" -msgstr "" +msgstr "차단하기" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "ì´ ê²Œì‹œê¸€ 좋아하기 취소" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "ë‹¹ì‹ ì´ í•„ìš”í•œ 페ì´ìŠ¤ë¶ 어플리케ì´ì…˜ %sì˜ ì‚¬ìš©ì„ ìœ„í•´ì„œ 로그ì¸í•˜ì„¸ìš”." #: lib/facebookaction.php:271 msgid " a new account." -msgstr "" +msgstr "새로운 ê³„ì •" #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 msgid "Published" -msgstr "" +msgstr "발행ë˜ì—ˆìŠµë‹ˆë‹¤." #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" -msgstr "" +msgstr "ì´ ê²Œì‹œê¸€ì„ ì¢‹ì•„í•©ë‹ˆë‹¤." #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "ë°ì´í„° 반출하기" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "태그 í•„í„°ë§í•˜ê¸°" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "ëª¨ë“ ê²ƒ" #: lib/galleryaction.php:137 msgid "Tag" -msgstr "" +msgstr "태그" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "ì¢ì€ 리스트ì—ì„œ 태그 ì„ íƒí•˜ê¸°" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "Go " #: lib/groupeditform.php:148 msgid "URL of the homepage or blog of the group or topic" -msgstr "" +msgstr "그룹 í˜¹ì€ í† í”½ì˜ í™ˆíŽ˜ì´ì§€ë‚˜ 블로그 URL" #: lib/groupeditform.php:151 msgid "Description" -msgstr "" +msgstr "설명" #: lib/groupeditform.php:153 msgid "Describe the group or topic in 140 chars" -msgstr "" +msgstr "140글ìžë¡œ 그룹ì´ë‚˜ í† í”½ 설명하기" #: lib/groupeditform.php:158 msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "" +msgstr "ê·¸ë£¹ì˜ ìœ„ì¹˜, \"ì‹œ/êµ°/구, ë„, 나ë¼\"" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" -msgstr "" +msgstr "그룹" #: lib/groupnav.php:100 msgid "Admin" -msgstr "" +msgstr "관리ìž" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "%s 그룹 í™˜ê²½ì„¤ì • ìˆ˜ì •í•˜ê¸°" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "로그아웃" +msgstr "ë¡œê³ " #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "%s logo 추가 í˜¹ì€ ìˆ˜ì •" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "가장 ë§Žì€ íšŒì›ìˆ˜ë¥¼ 가진 그룹들" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "가장 ë§Žì€ ê²Œì‹œê¸€ì´ ìžˆëŠ” 그룹들" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "%s 그룹 ê²Œì‹œê¸€ì˜ íƒœê·¸" #: lib/htmloutputter.php:104 #, fuzzy @@ -4512,25 +4518,24 @@ msgid "This page is not available in a " msgstr "홈페ì´ì§€ 주소형ì‹ì´ 올바르지 않습니다." #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "로그ì¸" +msgstr "가입" #: lib/leaveform.php:114 msgid "Leave" -msgstr "" +msgstr "ë– ë‚˜ê¸°" #: lib/logingroupnav.php:76 msgid "Login with a username and password" -msgstr "" +msgstr "ì‚¬ìš©ìž ì´ë¦„ê³¼ 비밀번호로 로그ì¸" #: lib/logingroupnav.php:79 msgid "Sign up for a new account" -msgstr "" +msgstr "새 ê³„ì •ì„ ìœ„í•œ 회ì›ê°€ìž…" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "오픈IDë¡œ ë¡œê·¸ì¸ í˜¹ì€ íšŒì›ê°€ìž…" #: lib/mail.php:175 #, php-format @@ -4538,21 +4543,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"안녕, %s. \n" +"\n" #: lib/mail.php:236 #, php-format msgid "%1$s is now listening to " -msgstr "" +msgstr "%1$s 는 지금 ë“£ê³ ìžˆìŠµë‹ˆë‹¤." #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "위치" +msgstr "위치: %s\n" #: lib/mail.php:256 #, fuzzy, php-format msgid "Homepage: %s\n" -msgstr "홈페ì´ì§€" +msgstr "홈페ì´ì§€: %s\n" #: lib/mail.php:258 #, php-format @@ -4560,6 +4567,8 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"소개: %s\n" +"\n" #: lib/mail.php:461 #, php-format @@ -4578,40 +4587,40 @@ msgstr "" #: lib/mailbox.php:229 lib/noticelist.php:380 msgid "From" -msgstr "" +msgstr "ë¡œ 부터" #: lib/messageform.php:110 msgid "Send a direct notice" -msgstr "" +msgstr "다ì´ë ‰íŠ¸ 메시지를 보내다." #: lib/noticeform.php:125 msgid "Send a notice" -msgstr "" +msgstr "ê²Œì‹œê¸€ì„ ë³´ë‚´ë‹¤." #: lib/noticeform.php:152 #, fuzzy msgid "Available characters" -msgstr "6ê¸€ìž ì´ìƒ" +msgstr "가능한 글ìž" #: lib/noticelist.php:426 msgid "in reply to" -msgstr "" +msgstr "ì´ ê²Œì‹œê¸€ì— ëŒ€í•œ 답장" #: lib/noticelist.php:447 lib/noticelist.php:450 msgid "Reply to this notice" -msgstr "" +msgstr "ì´ ê²Œì‹œê¸€ì— ëŒ€í•´ 답장하기" #: lib/noticelist.php:451 msgid "Reply" -msgstr "" +msgstr "답장하기" #: lib/noticelist.php:471 lib/noticelist.php:474 msgid "Delete this notice" -msgstr "" +msgstr "ì´ ê²Œì‹œê¸€ ì‚ì œí•˜ê¸°" #: lib/noticelist.php:474 msgid "Delete" -msgstr "" +msgstr "ì‚ì œ" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -4628,91 +4637,91 @@ msgstr "" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "%sì˜ ê²Œì‹œê¸€ì˜ íƒœê·¸ë“¤" #: lib/profilelist.php:182 msgid "(none)" -msgstr "" +msgstr "(없습니다)" #: lib/publicgroupnav.php:76 msgid "Public" -msgstr "" +msgstr "공개" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "ì‚¬ìš©ìž ê·¸ë£¹" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 msgid "Recent tags" -msgstr "" +msgstr "최근 태그들" #: lib/publicgroupnav.php:86 msgid "Featured" -msgstr "" +msgstr "피ì³ë§ë¨" #: lib/publicgroupnav.php:90 msgid "Popular" -msgstr "" +msgstr "ì¸ê¸°ìžˆëŠ”" #: lib/searchgroupnav.php:82 msgid "Notice" -msgstr "" +msgstr "게시글" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "" +msgstr "ì´ ì‚¬ì´íŠ¸ì—ì„œ 그룹 찾기" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "ì œëª©ì—†ëŠ” 섹션" #: lib/subgroupnav.php:81 #, php-format msgid "People %s subscribes to" -msgstr "" +msgstr "%s ì‚¬ëžŒë“¤ì€ êµ¬ë…합니다." #: lib/subgroupnav.php:89 #, php-format msgid "People subscribed to %s" -msgstr "" +msgstr "%sì— ì˜í•´ 구ë…ë˜ëŠ” 사람들" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "%s ê·¸ë¦…ë“¤ì€ ì˜ ë©¤ë²„ìž…ë‹ˆë‹¤." #: lib/subgroupnav.php:104 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "%sì— ì¹œêµ¬ë¥¼ 가입시키기 위해 친구와 ë™ë£Œë¥¼ 초대합니다." #: lib/subs.php:53 msgid "User has blocked you." -msgstr "" +msgstr "회ì›ì´ ë‹¹ì‹ ì„ ì°¨ë‹¨í•´ì™”ìŠµë‹ˆë‹¤." #: lib/subscribeform.php:115 lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "" +msgstr "ì´ íšŒì›ì„ 구ë…합니다." #: lib/tagcloudsection.php:56 msgid "None" -msgstr "" +msgstr "없습니다." #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "ìƒìœ„ 게시글등ë¡ìž" #: lib/unblockform.php:120 lib/unblockform.php:150 msgid "Unblock this user" -msgstr "" +msgstr "ì´ ì‚¬ìš©ìžë¥¼ ì°¨ë‹¨í•´ì œí•©ë‹ˆë‹¤." #: lib/unblockform.php:150 msgid "Unblock" -msgstr "" +msgstr "ì°¨ë‹¨í•´ì œ" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" -msgstr "" +msgstr "ì´ ì‚¬ìš©ìžë¡œë¶€í„° 구ë…취소합니다." #~ msgid "Email address" #~ msgstr "ì´ë©”ì¼ ì£¼ì†Œ" diff --git a/locale/laconica.po b/locale/laconica.po index d3c1dc809..85b949a08 100644 --- a/locale/laconica.po +++ b/locale/laconica.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-25 16:24+0000\n" +"POT-Creation-Date: 2009-03-11 09:33+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -35,17 +35,18 @@ msgid " from " msgstr "" #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 -#: actions/twitapistatuses.php:347 +#: actions/twitapistatuses.php:347 actions/twitapistatuses.php:363 #, php-format msgid "%1$s / Updates replying to %2$s" msgstr "" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 +#: actions/invite.php:218 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: ../actions/invite.php:170 +#: ../actions/invite.php:170 actions/invite.php:220 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -77,6 +78,7 @@ msgid "" msgstr "" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 +#: lib/mail.php:236 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" @@ -93,7 +95,7 @@ msgid "" msgstr "" #: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415 -#: actions/twitapistatuses.php:350 +#: actions/twitapistatuses.php:350 actions/twitapistatuses.php:367 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -121,47 +123,49 @@ msgstr "" #: actions/allrss.php:60 actions/twitapistatuses.php:155 lib/personal.php:51 #: actions/all.php:65 actions/allrss.php:103 actions/facebookhome.php:164 #: actions/twitapistatuses.php:126 lib/personalgroupnav.php:99 +#: actions/all.php:68 actions/all.php:114 actions/allrss.php:106 +#: actions/facebookhome.php:163 actions/twitapistatuses.php:130 #, php-format msgid "%s and friends" msgstr "" #: ../actions/twitapistatuses.php:49 actions/twitapistatuses.php:49 -#: actions/twitapistatuses.php:33 +#: actions/twitapistatuses.php:33 actions/twitapistatuses.php:32 #, php-format msgid "%s public timeline" msgstr "" -#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 +#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 lib/mail.php:412 #, php-format msgid "%s status" msgstr "" #: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265 -#: actions/twitapistatuses.php:199 +#: actions/twitapistatuses.php:199 actions/twitapistatuses.php:209 #, php-format msgid "%s timeline" msgstr "" #: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52 -#: actions/twitapistatuses.php:36 +#: actions/twitapistatuses.php:36 actions/twitapistatuses.php:38 #, php-format msgid "%s updates from everyone!" msgstr "" -#: ../actions/register.php:213 +#: ../actions/register.php:213 actions/register.php:497 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" -#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 +#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 lib/action.php:702 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 +#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 lib/action.php:704 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" @@ -178,6 +182,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: ../actions/register.php:152 actions/register.php:166 +#: actions/register.php:368 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" @@ -197,6 +202,7 @@ msgid "6 or more characters. Required." msgstr "" #: ../actions/imsettings.php:197 actions/imsettings.php:205 +#: actions/imsettings.php:321 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -204,6 +210,7 @@ msgid "" msgstr "" #: ../actions/emailsettings.php:213 actions/emailsettings.php:231 +#: actions/emailsettings.php:350 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -233,7 +240,12 @@ msgstr "" #: actions/twitapistatuses.php:147 actions/twitapistatuses.php:228 #: actions/twitapistatuses.php:239 actions/twitapistatuses.php:392 #: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429 -#: actions/twitapiusers.php:32 +#: actions/twitapiusers.php:32 actions/twitapidirect_messages.php:120 +#: actions/twitapifavorites.php:91 actions/twitapifavorites.php:108 +#: actions/twitapistatuses.php:82 actions/twitapistatuses.php:159 +#: actions/twitapistatuses.php:246 actions/twitapistatuses.php:257 +#: actions/twitapistatuses.php:416 actions/twitapistatuses.php:426 +#: actions/twitapistatuses.php:453 msgid "API method not found!" msgstr "" @@ -256,11 +268,14 @@ msgstr "" #: actions/twitapidirect_messages.php:184 actions/twitapifavorites.php:143 #: actions/twitapihelp.php:52 actions/twitapilaconica.php:172 #: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37 -#: actions/twitapistatuses.php:562 +#: actions/twitapistatuses.php:562 actions/twitapiaccount.php:46 +#: actions/twitapiaccount.php:98 actions/twitapiaccount.php:104 +#: actions/twitapidirect_messages.php:193 actions/twitapifavorites.php:149 +#: actions/twitapistatuses.php:625 actions/twitapitrends.php:87 msgid "API method under construction." msgstr "" -#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 +#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 lib/action.php:661 msgid "About" msgstr "" @@ -276,6 +291,7 @@ msgstr "" #: actions/twittersettings.php:85 actions/emailsettings.php:120 #: actions/imsettings.php:127 actions/openidsettings.php:111 #: actions/smssettings.php:133 actions/twittersettings.php:163 +#: actions/twittersettings.php:166 msgid "Add" msgstr "" @@ -298,6 +314,7 @@ msgid "Address" msgstr "" #: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176 +#: actions/invite.php:181 msgid "Addresses of friends to invite (one per line)" msgstr "" @@ -332,7 +349,7 @@ msgid "Already subscribed!." msgstr "" #: ../actions/deletenotice.php:54 actions/deletenotice.php:55 -#: actions/deletenotice.php:113 +#: actions/deletenotice.php:113 actions/deletenotice.php:114 msgid "Are you sure you want to delete this notice?" msgstr "" @@ -342,11 +359,13 @@ msgid "Authorize subscription" msgstr "" #: ../actions/login.php:104 ../actions/register.php:178 -#: actions/register.php:192 +#: actions/register.php:192 actions/login.php:218 actions/openidlogin.php:117 +#: actions/register.php:416 msgid "Automatically login in the future; not for shared computers!" msgstr "" #: ../actions/profilesettings.php:65 actions/profilesettings.php:98 +#: actions/profilesettings.php:144 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" @@ -354,15 +373,17 @@ msgstr "" #: ../actions/avatar.php:32 ../lib/settingsaction.php:90 #: actions/profilesettings.php:34 actions/avatarsettings.php:65 #: actions/showgroup.php:209 lib/accountsettingsaction.php:107 +#: actions/avatarsettings.php:67 actions/showgroup.php:211 msgid "Avatar" msgstr "" #: ../actions/avatar.php:113 actions/profilesettings.php:350 -#: actions/avatarsettings.php:395 +#: actions/avatarsettings.php:395 actions/avatarsettings.php:346 msgid "Avatar updated." msgstr "" #: ../actions/imsettings.php:55 actions/imsettings.php:56 +#: actions/imsettings.php:108 #, php-format msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " @@ -370,6 +391,7 @@ msgid "" msgstr "" #: ../actions/emailsettings.php:54 actions/emailsettings.php:55 +#: actions/emailsettings.php:107 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -394,7 +416,7 @@ msgstr "" #: ../actions/updateprofile.php:103 actions/profilesettings.php:216 #: actions/register.php:89 actions/updateprofile.php:104 #: actions/profilesettings.php:205 actions/register.php:174 -#: actions/updateprofile.php:107 +#: actions/updateprofile.php:107 actions/updateprofile.php:109 msgid "Bio is too long (max 140 chars)." msgstr "" @@ -403,7 +425,7 @@ msgid "Can't delete this notice." msgstr "" #: ../actions/updateprofile.php:119 actions/updateprofile.php:120 -#: actions/updateprofile.php:123 +#: actions/updateprofile.php:123 actions/updateprofile.php:125 #, php-format msgid "Can't read avatar URL '%s'" msgstr "" @@ -411,6 +433,7 @@ msgstr "" #: ../actions/password.php:85 ../actions/recoverpassword.php:300 #: actions/profilesettings.php:404 actions/recoverpassword.php:313 #: actions/passwordsettings.php:169 actions/recoverpassword.php:347 +#: actions/passwordsettings.php:174 msgid "Can't save new password." msgstr "" @@ -423,6 +446,7 @@ msgid "Cancel" msgstr "" #: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130 +#: lib/openid.php:133 msgid "Cannot instantiate OpenID consumer object." msgstr "" @@ -432,7 +456,7 @@ msgid "Cannot normalize that Jabber ID" msgstr "" #: ../actions/emailsettings.php:181 actions/emailsettings.php:199 -#: actions/emailsettings.php:311 +#: actions/emailsettings.php:311 actions/emailsettings.php:318 msgid "Cannot normalize that email address" msgstr "" @@ -478,7 +502,7 @@ msgstr "" #: ../actions/smssettings.php:245 actions/emailsettings.php:256 #: actions/imsettings.php:230 actions/smssettings.php:253 #: actions/emailsettings.php:379 actions/imsettings.php:361 -#: actions/smssettings.php:374 +#: actions/smssettings.php:374 actions/emailsettings.php:386 msgid "Confirmation cancelled." msgstr "" @@ -492,7 +516,7 @@ msgstr "" msgid "Confirmation code not found." msgstr "" -#: ../actions/register.php:202 +#: ../actions/register.php:202 actions/register.php:473 #, php-format msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " @@ -512,7 +536,8 @@ msgid "" msgstr "" #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 -#: actions/finishopenidlogin.php:119 lib/action.php:330 +#: actions/finishopenidlogin.php:119 lib/action.php:330 lib/action.php:403 +#: lib/action.php:406 msgid "Connect" msgstr "" @@ -521,11 +546,12 @@ msgstr "" msgid "Connect existing account" msgstr "" -#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 +#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 lib/action.php:669 msgid "Contact" msgstr "" #: ../lib/openid.php:178 lib/openid.php:178 lib/openid.php:187 +#: lib/openid.php:190 #, php-format msgid "Could not create OpenID form: %s" msgstr "" @@ -543,17 +569,18 @@ msgid "Could not follow user: User not found." msgstr "" #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 +#: lib/openid.php:172 #, php-format msgid "Could not redirect to server: %s" msgstr "" #: ../actions/updateprofile.php:162 actions/updateprofile.php:163 -#: actions/updateprofile.php:166 +#: actions/updateprofile.php:166 actions/updateprofile.php:176 msgid "Could not save avatar info" msgstr "" #: ../actions/updateprofile.php:155 actions/updateprofile.php:156 -#: actions/updateprofile.php:159 +#: actions/updateprofile.php:159 actions/updateprofile.php:163 msgid "Could not save new profile info" msgstr "" @@ -581,6 +608,7 @@ msgstr "" #: actions/imsettings.php:226 actions/smssettings.php:249 #: actions/confirmaddress.php:126 actions/emailsettings.php:375 #: actions/imsettings.php:357 actions/smssettings.php:370 +#: actions/emailsettings.php:382 msgid "Couldn't delete email confirmation." msgstr "" @@ -589,7 +617,7 @@ msgid "Couldn't delete subscription." msgstr "" #: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98 -#: actions/twitapistatuses.php:84 +#: actions/twitapistatuses.php:84 actions/twitapistatuses.php:87 msgid "Couldn't find any statuses." msgstr "" @@ -602,7 +630,7 @@ msgstr "" #: ../actions/smssettings.php:206 actions/emailsettings.php:223 #: actions/imsettings.php:195 actions/smssettings.php:214 #: actions/emailsettings.php:337 actions/imsettings.php:311 -#: actions/smssettings.php:325 +#: actions/smssettings.php:325 actions/emailsettings.php:344 msgid "Couldn't insert confirmation code." msgstr "" @@ -614,6 +642,7 @@ msgstr "" #: ../actions/profilesettings.php:184 ../actions/twitapiaccount.php:96 #: actions/profilesettings.php:299 actions/twitapiaccount.php:94 #: actions/profilesettings.php:302 actions/twitapiaccount.php:81 +#: actions/twitapiaccount.php:82 msgid "Couldn't save profile." msgstr "" @@ -625,6 +654,8 @@ msgstr "" #: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294 #: actions/emailsettings.php:298 actions/emailsettings.php:312 #: actions/emailsettings.php:440 actions/emailsettings.php:462 +#: actions/emailsettings.php:447 actions/emailsettings.php:469 +#: actions/smssettings.php:515 actions/smssettings.php:539 msgid "Couldn't update user record." msgstr "" @@ -640,7 +671,8 @@ msgstr "" #: actions/emailsettings.php:411 actions/imsettings.php:252 #: actions/imsettings.php:395 actions/othersettings.php:162 #: actions/profilesettings.php:259 actions/smssettings.php:266 -#: actions/smssettings.php:408 +#: actions/smssettings.php:408 actions/emailsettings.php:287 +#: actions/emailsettings.php:418 msgid "Couldn't update user." msgstr "" @@ -684,23 +716,25 @@ msgid "Currently" msgstr "" #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 +#: classes/Notice.php:114 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" #: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698 +#: classes/Notice.php:757 #, php-format msgid "DB error inserting reply: %s" msgstr "" #: ../actions/deletenotice.php:41 actions/deletenotice.php:41 -#: actions/deletenotice.php:79 +#: actions/deletenotice.php:79 actions/deletenotice.php:111 msgid "Delete notice" msgstr "" #: ../actions/profilesettings.php:51 ../actions/register.php:172 #: actions/profilesettings.php:84 actions/register.php:186 -#: actions/profilesettings.php:114 +#: actions/profilesettings.php:114 actions/register.php:404 msgid "Describe yourself and your interests in 140 chars" msgstr "" @@ -735,6 +769,7 @@ msgid "Email address, like \"UserName@example.org\"" msgstr "" #: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174 +#: actions/invite.php:179 msgid "Email addresses" msgstr "" @@ -754,7 +789,7 @@ msgid "Error authorizing token" msgstr "" #: ../actions/finishopenidlogin.php:253 actions/finishopenidlogin.php:259 -#: actions/finishopenidlogin.php:297 +#: actions/finishopenidlogin.php:297 actions/finishopenidlogin.php:302 msgid "Error connecting user to OpenID." msgstr "" @@ -789,15 +824,17 @@ msgid "Error saving remote profile" msgstr "" #: ../lib/openid.php:226 lib/openid.php:226 lib/openid.php:235 +#: lib/openid.php:238 msgid "Error saving the profile." msgstr "" #: ../lib/openid.php:237 lib/openid.php:237 lib/openid.php:246 +#: lib/openid.php:249 msgid "Error saving the user." msgstr "" #: ../actions/password.php:80 actions/profilesettings.php:399 -#: actions/passwordsettings.php:164 +#: actions/passwordsettings.php:164 actions/passwordsettings.php:169 msgid "Error saving user; invalid." msgstr "" @@ -806,6 +843,7 @@ msgstr "" #: actions/login.php:47 actions/login.php:73 actions/recoverpassword.php:320 #: actions/register.php:108 actions/login.php:112 actions/login.php:138 #: actions/recoverpassword.php:354 actions/register.php:198 +#: actions/login.php:120 msgid "Error setting user." msgstr "" @@ -829,29 +867,31 @@ msgstr "" msgid "Existing nickname" msgstr "" -#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 +#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 lib/action.php:663 msgid "FAQ" msgstr "" #: ../actions/avatar.php:115 actions/profilesettings.php:352 -#: actions/avatarsettings.php:397 +#: actions/avatarsettings.php:397 actions/avatarsettings.php:349 msgid "Failed updating avatar." msgstr "" #: ../actions/all.php:61 ../actions/allrss.php:64 actions/all.php:61 #: actions/allrss.php:64 actions/all.php:75 actions/allrss.php:107 +#: actions/allrss.php:110 #, php-format msgid "Feed for friends of %s" msgstr "" #: ../actions/replies.php:65 ../actions/repliesrss.php:80 #: actions/replies.php:65 actions/repliesrss.php:66 actions/replies.php:134 -#: actions/repliesrss.php:71 +#: actions/repliesrss.php:71 actions/replies.php:136 #, php-format msgid "Feed for replies to %s" msgstr "" #: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61 +#: actions/tag.php:68 #, php-format msgid "Feed for tag %s" msgstr "" @@ -866,7 +906,7 @@ msgstr "" msgid "Find people on this site" msgstr "" -#: ../actions/login.php:122 +#: ../actions/login.php:122 actions/login.php:247 msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." @@ -877,6 +917,8 @@ msgstr "" #: actions/profilesettings.php:103 actions/register.php:391 #: actions/showgroup.php:235 actions/showstream.php:262 #: actions/tagother.php:105 lib/groupeditform.php:142 +#: actions/showgroup.php:237 actions/showstream.php:255 +#: actions/tagother.php:104 msgid "Full name" msgstr "" @@ -885,16 +927,17 @@ msgstr "" #: actions/register.php:86 actions/updateprofile.php:94 #: actions/editgroup.php:195 actions/newgroup.php:146 #: actions/profilesettings.php:202 actions/register.php:171 -#: actions/updateprofile.php:97 +#: actions/updateprofile.php:97 actions/updateprofile.php:99 msgid "Full name is too long (max 255 chars)." msgstr "" #: ../lib/util.php:322 lib/util.php:338 lib/action.php:344 lib/action.php:566 +#: lib/action.php:421 lib/action.php:659 msgid "Help" msgstr "" #: ../lib/util.php:298 lib/util.php:314 lib/action.php:322 -#: lib/facebookaction.php:200 +#: lib/facebookaction.php:200 lib/action.php:393 lib/facebookaction.php:213 msgid "Home" msgstr "" @@ -913,7 +956,7 @@ msgid "Homepage is not a valid URL." msgstr "" #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 -#: actions/emailsettings.php:173 +#: actions/emailsettings.php:173 actions/emailsettings.php:178 msgid "I want to post notices by email." msgstr "" @@ -939,13 +982,13 @@ msgid "" "connect it to your OpenID." msgstr "" -#: ../actions/openidsettings.php:45 +#: ../actions/openidsettings.php:45 actions/openidsettings.php:96 msgid "" "If you want to add an OpenID to your account, enter it in the box below and " "click \"Add\"." msgstr "" -#: ../actions/recoverpassword.php:137 +#: ../actions/recoverpassword.php:137 actions/recoverpassword.php:152 msgid "" "If you've forgotten or lost your password, you can get a new one sent to the " "email address you have stored in your account." @@ -958,28 +1001,29 @@ msgid "Incoming email" msgstr "" #: ../actions/emailsettings.php:283 actions/emailsettings.php:301 -#: actions/emailsettings.php:443 +#: actions/emailsettings.php:443 actions/emailsettings.php:450 +#: actions/smssettings.php:518 msgid "Incoming email address removed." msgstr "" #: ../actions/password.php:69 actions/profilesettings.php:388 -#: actions/passwordsettings.php:153 +#: actions/passwordsettings.php:153 actions/passwordsettings.php:158 msgid "Incorrect old password" msgstr "" #: ../actions/login.php:67 actions/login.php:67 actions/facebookhome.php:131 -#: actions/login.php:132 +#: actions/login.php:132 actions/facebookhome.php:130 actions/login.php:114 msgid "Incorrect username or password." msgstr "" -#: ../actions/recoverpassword.php:265 +#: ../actions/recoverpassword.php:265 actions/recoverpassword.php:304 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." msgstr "" #: ../actions/updateprofile.php:114 actions/updateprofile.php:115 -#: actions/updateprofile.php:118 +#: actions/updateprofile.php:118 actions/updateprofile.php:120 #, php-format msgid "Invalid avatar URL '%s'" msgstr "" @@ -990,13 +1034,13 @@ msgid "Invalid email address: %s" msgstr "" #: ../actions/updateprofile.php:98 actions/updateprofile.php:99 -#: actions/updateprofile.php:102 +#: actions/updateprofile.php:102 actions/updateprofile.php:104 #, php-format msgid "Invalid homepage '%s'" msgstr "" #: ../actions/updateprofile.php:82 actions/updateprofile.php:83 -#: actions/updateprofile.php:86 +#: actions/updateprofile.php:86 actions/updateprofile.php:88 #, php-format msgid "Invalid license URL '%s'" msgstr "" @@ -1017,7 +1061,7 @@ msgid "Invalid notice url" msgstr "" #: ../actions/updateprofile.php:87 actions/updateprofile.php:88 -#: actions/updateprofile.php:91 +#: actions/updateprofile.php:91 actions/updateprofile.php:93 #, php-format msgid "Invalid profile URL '%s'." msgstr "" @@ -1041,7 +1085,7 @@ msgstr "" #: ../actions/register.php:111 actions/finishopenidlogin.php:241 #: actions/register.php:103 actions/register.php:121 #: actions/finishopenidlogin.php:279 actions/register.php:193 -#: actions/register.php:211 +#: actions/register.php:211 actions/finishopenidlogin.php:284 msgid "Invalid username or password." msgstr "" @@ -1054,7 +1098,7 @@ msgid "Invitation(s) sent to the following people:" msgstr "" #: ../lib/util.php:306 lib/util.php:322 lib/facebookaction.php:207 -#: lib/subgroupnav.php:103 +#: lib/subgroupnav.php:103 lib/facebookaction.php:220 msgid "Invite" msgstr "" @@ -1062,7 +1106,7 @@ msgstr "" msgid "Invite new users" msgstr "" -#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 +#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 lib/action.php:706 #, php-format msgid "" "It runs the [Laconica](http://laconi.ca/) microblogging software, version %" @@ -1076,6 +1120,7 @@ msgid "Jabber ID already belongs to another user." msgstr "" #: ../actions/imsettings.php:62 actions/imsettings.php:63 +#: actions/imsettings.php:120 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1097,7 +1142,8 @@ msgstr "" #: actions/profilesettings.php:117 actions/register.php:408 #: actions/showgroup.php:244 actions/showstream.php:271 #: actions/tagother.php:113 lib/groupeditform.php:156 lib/grouplist.php:126 -#: lib/profilelist.php:125 +#: lib/profilelist.php:125 actions/showgroup.php:246 +#: actions/showstream.php:264 actions/tagother.php:112 lib/profilelist.php:123 msgid "Location" msgstr "" @@ -1106,7 +1152,7 @@ msgstr "" #: actions/register.php:92 actions/updateprofile.php:109 #: actions/editgroup.php:201 actions/newgroup.php:152 #: actions/profilesettings.php:208 actions/register.php:177 -#: actions/updateprofile.php:112 +#: actions/updateprofile.php:112 actions/updateprofile.php:114 msgid "Location is too long (max 255 chars)." msgstr "" @@ -1115,18 +1161,20 @@ msgstr "" #: actions/login.php:106 actions/openidlogin.php:77 lib/util.php:326 #: actions/facebooklogin.php:93 actions/login.php:186 actions/login.php:239 #: actions/openidlogin.php:112 lib/action.php:335 lib/facebookaction.php:288 -#: lib/facebookaction.php:315 lib/logingroupnav.php:75 +#: lib/facebookaction.php:315 lib/logingroupnav.php:75 actions/login.php:169 +#: actions/login.php:222 actions/openidlogin.php:121 lib/action.php:412 +#: lib/facebookaction.php:293 lib/facebookaction.php:319 #, php-format msgid "Login" msgstr "" #: ../actions/openidlogin.php:44 actions/openidlogin.php:52 -#: actions/openidlogin.php:62 +#: actions/openidlogin.php:62 actions/openidlogin.php:70 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "" -#: ../actions/login.php:126 +#: ../actions/login.php:126 actions/login.php:251 #, php-format msgid "" "Login with your username and password. Don't have a username yet? [Register]" @@ -1134,7 +1182,7 @@ msgid "" "%). " msgstr "" -#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 +#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 lib/action.php:409 msgid "Logout" msgstr "" @@ -1144,12 +1192,13 @@ msgid "Longer name, preferably your \"real\" name" msgstr "" #: ../actions/login.php:110 actions/login.php:110 actions/login.php:245 -#: lib/facebookaction.php:320 +#: lib/facebookaction.php:320 actions/login.php:228 lib/facebookaction.php:325 msgid "Lost or forgotten password?" msgstr "" #: ../actions/emailsettings.php:80 ../actions/smssettings.php:89 #: actions/emailsettings.php:81 actions/smssettings.php:89 +#: actions/emailsettings.php:139 actions/smssettings.php:150 msgid "Make a new email address for posting to; cancels the old one." msgstr "" @@ -1169,7 +1218,7 @@ msgstr "" msgid "Microblog by %s" msgstr "" -#: ../actions/smssettings.php:304 +#: ../actions/smssettings.php:304 actions/smssettings.php:464 #, php-format msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " @@ -1179,6 +1228,7 @@ msgstr "" #: ../actions/finishopenidlogin.php:79 ../actions/register.php:188 #: actions/finishopenidlogin.php:85 actions/register.php:202 #: actions/finishopenidlogin.php:107 actions/register.php:429 +#: actions/register.php:430 msgid "My text and files are available under " msgstr "" @@ -1194,7 +1244,8 @@ msgid "New email address for posting to %s" msgstr "" #: ../actions/emailsettings.php:297 actions/emailsettings.php:315 -#: actions/emailsettings.php:465 +#: actions/emailsettings.php:465 actions/emailsettings.php:472 +#: actions/smssettings.php:542 msgid "New incoming email address added." msgstr "" @@ -1214,7 +1265,7 @@ msgstr "" msgid "New password" msgstr "" -#: ../actions/recoverpassword.php:314 +#: ../actions/recoverpassword.php:314 actions/recoverpassword.php:361 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -1224,7 +1275,9 @@ msgstr "" #: actions/login.php:228 actions/profilesettings.php:98 #: actions/register.php:367 actions/showgroup.php:224 #: actions/showstream.php:251 actions/tagother.php:95 -#: lib/facebookaction.php:308 lib/groupeditform.php:137 +#: lib/facebookaction.php:308 lib/groupeditform.php:137 actions/login.php:211 +#: actions/showgroup.php:226 actions/showstream.php:244 +#: actions/tagother.php:94 lib/facebookaction.php:312 msgid "Nickname" msgstr "" @@ -1242,7 +1295,9 @@ msgstr "" #: actions/finishopenidlogin.php:171 actions/profilesettings.php:203 #: actions/register.php:74 actions/updateprofile.php:78 #: actions/finishopenidlogin.php:205 actions/profilesettings.php:192 -#: actions/updateprofile.php:81 +#: actions/updateprofile.php:81 actions/editgroup.php:179 +#: actions/newgroup.php:130 actions/register.php:156 +#: actions/updateprofile.php:83 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -1263,6 +1318,7 @@ msgstr "" #: ../actions/deletenotice.php:59 actions/deletenotice.php:60 #: actions/block.php:147 actions/deletenotice.php:118 +#: actions/deletenotice.php:116 msgid "No" msgstr "" @@ -1294,11 +1350,12 @@ msgstr "" #: ../actions/newnotice.php:44 actions/newmessage.php:53 #: actions/newnotice.php:44 classes/Command.php:197 actions/newmessage.php:109 #: actions/newnotice.php:126 classes/Command.php:223 +#: actions/newmessage.php:142 actions/newnotice.php:131 lib/command.php:223 msgid "No content!" msgstr "" #: ../actions/emailsettings.php:174 actions/emailsettings.php:192 -#: actions/emailsettings.php:304 +#: actions/emailsettings.php:304 actions/emailsettings.php:311 msgid "No email address." msgstr "" @@ -1307,7 +1364,8 @@ msgid "No id." msgstr "" #: ../actions/emailsettings.php:271 actions/emailsettings.php:289 -#: actions/emailsettings.php:430 +#: actions/emailsettings.php:430 actions/emailsettings.php:437 +#: actions/smssettings.php:505 msgid "No incoming email address." msgstr "" @@ -1325,7 +1383,7 @@ msgstr "" #: ../actions/smssettings.php:229 actions/emailsettings.php:240 #: actions/imsettings.php:214 actions/smssettings.php:237 #: actions/emailsettings.php:363 actions/imsettings.php:345 -#: actions/smssettings.php:358 +#: actions/smssettings.php:358 actions/emailsettings.php:370 msgid "No pending confirmation to cancel." msgstr "" @@ -1352,7 +1410,7 @@ msgstr "" #: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64 #: actions/noticesearch.php:69 actions/peoplesearch.php:69 #: actions/groupsearch.php:81 actions/noticesearch.php:104 -#: actions/peoplesearch.php:85 +#: actions/peoplesearch.php:85 actions/noticesearch.php:117 msgid "No results" msgstr "" @@ -1363,12 +1421,13 @@ msgstr "" #: ../actions/twitapistatuses.php:595 actions/twitapifavorites.php:136 #: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112 -#: actions/twitapistatuses.php:446 +#: actions/twitapistatuses.php:446 actions/twitapifavorites.php:118 +#: actions/twitapistatuses.php:470 msgid "No status found with that ID." msgstr "" #: ../actions/twitapistatuses.php:555 actions/twitapistatuses.php:478 -#: actions/twitapistatuses.php:418 +#: actions/twitapistatuses.php:418 actions/twitapistatuses.php:442 msgid "No status with that ID found." msgstr "" @@ -1422,7 +1481,9 @@ msgstr "" #: actions/usergroups.php:92 actions/userrss.php:38 actions/xrds.php:73 #: classes/Command.php:140 classes/Command.php:185 classes/Command.php:234 #: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82 -#: lib/subs.php:34 lib/subs.php:109 +#: lib/subs.php:34 lib/subs.php:109 actions/all.php:56 actions/allrss.php:68 +#: actions/favoritesrss.php:74 lib/command.php:140 lib/command.php:185 +#: lib/command.php:234 lib/command.php:271 lib/mailbox.php:84 msgid "No such user." msgstr "" @@ -1448,7 +1509,8 @@ msgstr "" #: ../lib/twitterapi.php:226 ../lib/twitterapi.php:247 #: ../lib/twitterapi.php:332 lib/twitterapi.php:391 lib/twitterapi.php:418 #: lib/twitterapi.php:502 lib/twitterapi.php:448 lib/twitterapi.php:476 -#: lib/twitterapi.php:566 +#: lib/twitterapi.php:566 lib/twitterapi.php:483 lib/twitterapi.php:511 +#: lib/twitterapi.php:601 msgid "Not a supported data format." msgstr "" @@ -1458,11 +1520,12 @@ msgid "Not a valid Jabber ID" msgstr "" #: ../lib/openid.php:131 lib/openid.php:131 lib/openid.php:140 +#: lib/openid.php:143 msgid "Not a valid OpenID." msgstr "" #: ../actions/emailsettings.php:185 actions/emailsettings.php:203 -#: actions/emailsettings.php:315 +#: actions/emailsettings.php:315 actions/emailsettings.php:322 msgid "Not a valid email address" msgstr "" @@ -1493,7 +1556,7 @@ msgid "Not a valid profile URL (no YADIS document)." msgstr "" #: ../actions/avatar.php:95 actions/profilesettings.php:332 -#: lib/imagefile.php:87 +#: lib/imagefile.php:87 lib/imagefile.php:90 msgid "Not an image or corrupt file." msgstr "" @@ -1508,7 +1571,7 @@ msgid "Not expecting this response!" msgstr "" #: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361 -#: actions/twitapistatuses.php:309 +#: actions/twitapistatuses.php:309 actions/twitapistatuses.php:327 msgid "Not found" msgstr "" @@ -1524,7 +1587,7 @@ msgstr "" #: actions/newmessage.php:83 actions/newnotice.php:90 actions/nudge.php:63 #: actions/subedit.php:31 actions/subscribe.php:30 actions/unblock.php:60 #: actions/unsubscribe.php:27 lib/deleteaction.php:66 -#: lib/settingsaction.php:72 +#: lib/settingsaction.php:72 actions/newmessage.php:87 msgid "Not logged in." msgstr "" @@ -1551,12 +1614,12 @@ msgstr "" #: ../actions/showstream.php:316 actions/showstream.php:331 #: actions/showstream.php:504 lib/facebookaction.php:477 lib/mailbox.php:116 -#: lib/noticelist.php:87 +#: lib/noticelist.php:87 lib/facebookaction.php:581 lib/mailbox.php:118 msgid "Notices" msgstr "" #: ../actions/tag.php:35 ../actions/tag.php:81 actions/tag.php:35 -#: actions/tag.php:81 actions/tag.php:41 +#: actions/tag.php:81 actions/tag.php:41 actions/tag.php:49 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -1568,7 +1631,7 @@ msgstr "" #: ../lib/settingsaction.php:96 ../lib/util.php:314 lib/settingsaction.php:90 #: lib/util.php:330 lib/accountsettingsaction.php:116 lib/action.php:341 -#: lib/logingroupnav.php:81 +#: lib/logingroupnav.php:81 lib/action.php:418 msgid "OpenID" msgstr "" @@ -1578,6 +1641,7 @@ msgid "OpenID Account Setup" msgstr "" #: ../lib/openid.php:180 lib/openid.php:180 lib/openid.php:266 +#: lib/openid.php:269 msgid "OpenID Auto-Submit" msgstr "" @@ -1585,12 +1649,14 @@ msgstr "" #: ../actions/openidlogin.php:60 actions/finishaddopenid.php:99 #: actions/finishopenidlogin.php:146 actions/openidlogin.php:68 #: actions/finishaddopenid.php:170 actions/openidlogin.php:80 +#: actions/openidlogin.php:89 msgid "OpenID Login" msgstr "" #: ../actions/openidlogin.php:65 ../actions/openidsettings.php:49 #: actions/openidlogin.php:74 actions/openidsettings.php:50 #: actions/openidlogin.php:102 actions/openidsettings.php:101 +#: actions/openidlogin.php:111 msgid "OpenID URL" msgstr "" @@ -1608,6 +1674,7 @@ msgid "OpenID authentication failed: %s" msgstr "" #: ../lib/openid.php:133 lib/openid.php:133 lib/openid.php:142 +#: lib/openid.php:145 #, php-format msgid "OpenID failure: %s" msgstr "" @@ -1623,11 +1690,12 @@ msgid "OpenID settings" msgstr "" #: ../actions/invite.php:135 actions/invite.php:143 actions/invite.php:180 +#: actions/invite.php:186 msgid "Optionally add a personal message to the invitation." msgstr "" #: ../actions/avatar.php:84 actions/profilesettings.php:321 -#: lib/imagefile.php:75 +#: lib/imagefile.php:75 lib/imagefile.php:79 msgid "Partial upload." msgstr "" @@ -1637,6 +1705,7 @@ msgstr "" #: actions/register.php:167 actions/finishopenidlogin.php:118 #: actions/login.php:231 actions/register.php:372 #: lib/accountsettingsaction.php:110 lib/facebookaction.php:311 +#: actions/login.php:214 lib/facebookaction.php:315 msgid "Password" msgstr "" @@ -1659,12 +1728,14 @@ msgstr "" #: ../actions/password.php:89 ../actions/recoverpassword.php:313 #: actions/profilesettings.php:408 actions/recoverpassword.php:326 #: actions/passwordsettings.php:173 actions/recoverpassword.php:200 +#: actions/passwordsettings.php:178 msgid "Password saved." msgstr "" #: ../actions/password.php:61 ../actions/register.php:88 #: actions/profilesettings.php:380 actions/register.php:98 #: actions/passwordsettings.php:145 actions/register.php:183 +#: actions/passwordsettings.php:150 msgid "Passwords don't match." msgstr "" @@ -1688,10 +1759,12 @@ msgid "Personal" msgstr "" #: ../actions/invite.php:133 actions/invite.php:141 actions/invite.php:178 +#: actions/invite.php:184 msgid "Personal message" msgstr "" #: ../actions/smssettings.php:69 actions/smssettings.php:69 +#: actions/smssettings.php:128 msgid "Phone number, no punctuation or spaces, with area code" msgstr "" @@ -1712,7 +1785,7 @@ msgstr "" #: actions/imsettings.php:68 actions/smssettings.php:94 #: actions/twittersettings.php:70 actions/emailsettings.php:147 #: actions/imsettings.php:133 actions/smssettings.php:157 -#: actions/twittersettings.php:134 +#: actions/twittersettings.php:134 actions/twittersettings.php:137 msgid "Preferences" msgstr "" @@ -1721,6 +1794,7 @@ msgstr "" #: actions/imsettings.php:152 actions/smssettings.php:171 #: actions/emailsettings.php:286 actions/imsettings.php:258 #: actions/othersettings.php:168 actions/smssettings.php:272 +#: actions/emailsettings.php:293 msgid "Preferences saved." msgstr "" @@ -1729,12 +1803,13 @@ msgstr "" msgid "Preferred language" msgstr "" -#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 +#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 lib/action.php:665 msgid "Privacy" msgstr "" #: ../classes/Notice.php:95 ../classes/Notice.php:106 classes/Notice.php:109 #: classes/Notice.php:119 classes/Notice.php:145 classes/Notice.php:155 +#: classes/Notice.php:178 classes/Notice.php:188 msgid "Problem saving notice." msgstr "" @@ -1757,6 +1832,7 @@ msgstr "" #: ../actions/postnotice.php:51 ../actions/updateprofile.php:52 #: actions/postnotice.php:52 actions/updateprofile.php:53 #: actions/postnotice.php:55 actions/updateprofile.php:56 +#: actions/updateprofile.php:58 msgid "Profile unknown" msgstr "" @@ -1765,7 +1841,7 @@ msgid "Public Stream Feed" msgstr "" #: ../actions/public.php:33 actions/public.php:33 actions/public.php:109 -#: lib/publicgroupnav.php:77 +#: lib/publicgroupnav.php:77 actions/public.php:112 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "" @@ -1775,7 +1851,7 @@ msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "" #: ../actions/emailsettings.php:94 actions/emailsettings.php:101 -#: actions/emailsettings.php:178 +#: actions/emailsettings.php:178 actions/emailsettings.php:183 msgid "Publish a MicroID for my email address." msgstr "" @@ -1803,6 +1879,7 @@ msgstr "" #: actions/register.php:152 actions/register.php:207 lib/util.php:328 #: actions/register.php:69 actions/register.php:436 lib/action.php:338 #: lib/facebookaction.php:277 lib/logingroupnav.php:78 +#: actions/register.php:438 lib/action.php:415 lib/facebookaction.php:279 msgid "Register" msgstr "" @@ -1823,12 +1900,12 @@ msgstr "" #: ../actions/login.php:103 ../actions/register.php:176 actions/login.php:103 #: actions/register.php:190 actions/login.php:234 actions/openidlogin.php:107 -#: actions/register.php:414 +#: actions/register.php:414 actions/login.php:217 actions/openidlogin.php:116 msgid "Remember me" msgstr "" #: ../actions/updateprofile.php:70 actions/updateprofile.php:71 -#: actions/updateprofile.php:74 +#: actions/updateprofile.php:74 actions/updateprofile.php:76 msgid "Remote profile with no matching profile" msgstr "" @@ -1847,6 +1924,7 @@ msgstr "" #: actions/emailsettings.php:134 actions/imsettings.php:102 #: actions/openidsettings.php:166 actions/smssettings.php:103 #: actions/smssettings.php:146 actions/twittersettings.php:115 +#: actions/twittersettings.php:118 msgid "Remove" msgstr "" @@ -1855,7 +1933,7 @@ msgstr "" msgid "Remove OpenID" msgstr "" -#: ../actions/openidsettings.php:73 +#: ../actions/openidsettings.php:73 actions/openidsettings.php:128 msgid "" "Removing your only OpenID would make it impossible to log in! If you need to " "remove it, add another OpenID first." @@ -1868,7 +1946,7 @@ msgstr "" #: ../actions/replies.php:47 ../actions/repliesrss.php:76 ../lib/stream.php:56 #: actions/replies.php:47 actions/repliesrss.php:62 lib/personal.php:56 #: actions/replies.php:116 actions/repliesrss.php:67 -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:104 actions/replies.php:118 #, php-format msgid "Replies to %s" msgstr "" @@ -1885,6 +1963,7 @@ msgstr "" #: ../lib/settingsaction.php:99 lib/settingsaction.php:93 #: actions/subscriptions.php:123 lib/connectsettingsaction.php:107 +#: actions/subscriptions.php:125 msgid "SMS" msgstr "" @@ -1898,7 +1977,7 @@ msgstr "" msgid "SMS Settings" msgstr "" -#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 +#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 lib/mail.php:438 msgid "SMS confirmation" msgstr "" @@ -1921,12 +2000,14 @@ msgstr "" #: actions/othersettings.php:117 actions/profilesettings.php:150 #: actions/smssettings.php:169 actions/subscriptions.php:124 #: actions/tagother.php:152 actions/twittersettings.php:161 -#: lib/groupeditform.php:171 +#: lib/groupeditform.php:171 actions/emailsettings.php:187 +#: actions/subscriptions.php:126 actions/tagother.php:154 +#: actions/twittersettings.php:164 msgid "Save" msgstr "" #: ../lib/searchaction.php:84 ../lib/util.php:300 lib/searchaction.php:84 -#: lib/util.php:316 lib/action.php:325 +#: lib/util.php:316 lib/action.php:325 lib/action.php:396 msgid "Search" msgstr "" @@ -1936,14 +2017,14 @@ msgid "Search Stream Feed" msgstr "" #: ../actions/noticesearch.php:30 actions/noticesearch.php:30 -#: actions/noticesearch.php:57 +#: actions/noticesearch.php:57 actions/noticesearch.php:68 #, php-format msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" -#: ../actions/peoplesearch.php:28 +#: ../actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " @@ -1957,7 +2038,8 @@ msgstr "" #: ../actions/invite.php:137 ../lib/util.php:1172 actions/invite.php:145 #: lib/util.php:1306 lib/util.php:1731 actions/invite.php:182 -#: lib/messageform.php:167 lib/noticeform.php:177 +#: lib/messageform.php:167 lib/noticeform.php:177 actions/invite.php:189 +#: lib/messageform.php:165 msgid "Send" msgstr "" @@ -1978,16 +2060,19 @@ msgid "Send me notices through Jabber/GTalk." msgstr "" #: ../actions/smssettings.php:97 actions/smssettings.php:97 +#: actions/smssettings.php:162 msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" #: ../actions/imsettings.php:76 actions/imsettings.php:77 +#: actions/imsettings.php:147 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215 +#: lib/facebookaction.php:228 msgid "Settings" msgstr "" @@ -2021,18 +2106,19 @@ msgstr "" msgid "Sorry, that is not your incoming email address." msgstr "" -#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 +#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 lib/action.php:667 msgid "Source" msgstr "" #: ../actions/showstream.php:296 actions/showstream.php:311 -#: actions/showstream.php:476 +#: actions/showstream.php:476 actions/showgroup.php:375 msgid "Statistics" msgstr "" #: ../actions/finishopenidlogin.php:182 ../actions/finishopenidlogin.php:246 #: actions/finishopenidlogin.php:188 actions/finishopenidlogin.php:252 #: actions/finishopenidlogin.php:222 actions/finishopenidlogin.php:290 +#: actions/finishopenidlogin.php:295 msgid "Stored OpenID not found." msgstr "" @@ -2052,12 +2138,12 @@ msgid "Subscribers" msgstr "" #: ../actions/userauthorization.php:310 actions/userauthorization.php:322 -#: actions/userauthorization.php:338 +#: actions/userauthorization.php:338 actions/userauthorization.php:344 msgid "Subscription authorized" msgstr "" #: ../actions/userauthorization.php:320 actions/userauthorization.php:332 -#: actions/userauthorization.php:349 +#: actions/userauthorization.php:349 actions/userauthorization.php:355 msgid "Subscription rejected" msgstr "" @@ -2070,14 +2156,15 @@ msgid "Subscriptions" msgstr "" #: ../actions/avatar.php:87 actions/profilesettings.php:324 -#: lib/imagefile.php:78 +#: lib/imagefile.php:78 lib/imagefile.php:82 msgid "System error uploading file." msgstr "" #: ../actions/tag.php:41 ../lib/util.php:301 actions/tag.php:41 #: lib/util.php:317 actions/profilesettings.php:122 actions/showstream.php:297 #: actions/tagother.php:147 actions/tagother.php:207 lib/profilelist.php:162 -#: lib/profilelist.php:164 +#: lib/profilelist.php:164 actions/showstream.php:290 actions/tagother.php:149 +#: actions/tagother.php:209 lib/profilelist.php:160 msgid "Tags" msgstr "" @@ -2086,7 +2173,7 @@ msgid "Text" msgstr "" #: ../actions/noticesearch.php:34 actions/noticesearch.php:34 -#: actions/noticesearch.php:67 +#: actions/noticesearch.php:67 actions/noticesearch.php:78 msgid "Text search" msgstr "" @@ -2106,6 +2193,7 @@ msgid "That confirmation code is not for you!" msgstr "" #: ../actions/emailsettings.php:191 actions/emailsettings.php:209 +#: actions/emailsettings.php:328 msgid "That email address already belongs to another user." msgstr "" @@ -2120,7 +2208,7 @@ msgid "That is already your Jabber ID." msgstr "" #: ../actions/emailsettings.php:188 actions/emailsettings.php:206 -#: actions/emailsettings.php:318 +#: actions/emailsettings.php:318 actions/emailsettings.php:325 msgid "That is already your email address." msgstr "" @@ -2135,7 +2223,7 @@ msgid "That is not your Jabber ID." msgstr "" #: ../actions/emailsettings.php:249 actions/emailsettings.php:267 -#: actions/emailsettings.php:397 +#: actions/emailsettings.php:397 actions/emailsettings.php:404 msgid "That is not your email address." msgstr "" @@ -2147,6 +2235,7 @@ msgstr "" #: ../actions/emailsettings.php:226 ../actions/imsettings.php:210 #: actions/emailsettings.php:244 actions/imsettings.php:218 #: actions/emailsettings.php:367 actions/imsettings.php:349 +#: actions/emailsettings.php:374 msgid "That is the wrong IM address." msgstr "" @@ -2163,15 +2252,18 @@ msgstr "" #: ../actions/newnotice.php:49 ../actions/twitapistatuses.php:408 #: actions/newnotice.php:49 actions/twitapistatuses.php:330 #: actions/facebookhome.php:243 actions/twitapistatuses.php:276 +#: actions/newnotice.php:136 actions/twitapistatuses.php:294 +#: lib/facebookaction.php:485 msgid "That's too long. Max notice size is 140 chars." msgstr "" #: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72 -#: actions/twitapiaccount.php:62 +#: actions/twitapiaccount.php:62 actions/twitapiaccount.php:63 msgid "That's too long. Max notice size is 255 chars." msgstr "" #: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92 +#: actions/confirmaddress.php:159 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" @@ -2180,18 +2272,18 @@ msgstr "" #: ../actions/smssettings.php:274 actions/emailsettings.php:282 #: actions/imsettings.php:258 actions/smssettings.php:282 #: actions/emailsettings.php:416 actions/imsettings.php:402 -#: actions/smssettings.php:413 +#: actions/smssettings.php:413 actions/emailsettings.php:423 msgid "The address was removed." msgstr "" -#: ../actions/userauthorization.php:312 +#: ../actions/userauthorization.php:312 actions/userauthorization.php:346 msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site's instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -#: ../actions/userauthorization.php:322 +#: ../actions/userauthorization.php:322 actions/userauthorization.php:357 msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site's instructions for details on how to fully reject the " @@ -2199,20 +2291,24 @@ msgid "" msgstr "" #: ../actions/subscribers.php:35 actions/subscribers.php:35 +#: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." msgstr "" #: ../actions/subscribers.php:33 actions/subscribers.php:33 +#: actions/subscribers.php:63 msgid "These are the people who listen to your notices." msgstr "" #: ../actions/subscriptions.php:35 actions/subscriptions.php:35 +#: actions/subscriptions.php:69 #, php-format msgid "These are the people whose notices %s listens to." msgstr "" #: ../actions/subscriptions.php:33 actions/subscriptions.php:33 +#: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." msgstr "" @@ -2221,11 +2317,11 @@ msgid "" "These people are already users and you were automatically subscribed to them:" msgstr "" -#: ../actions/recoverpassword.php:88 +#: ../actions/recoverpassword.php:88 actions/recoverpassword.php:97 msgid "This confirmation code is too old. Please start again." msgstr "" -#: ../lib/openid.php:195 +#: ../lib/openid.php:195 lib/openid.php:206 msgid "" "This form should automatically submit itself. If not, click the submit " "button to go to your OpenID provider." @@ -2244,6 +2340,7 @@ msgstr "" #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 +#: actions/twitapifavorites.php:103 actions/twitapistatuses.php:460 msgid "This method requires a POST or DELETE." msgstr "" @@ -2252,11 +2349,12 @@ msgstr "" #: actions/twitapidirect_messages.php:114 actions/twitapifriendships.php:44 #: actions/twitapistatuses.php:303 actions/twitapiaccount.php:53 #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 -#: actions/twitapistatuses.php:244 +#: actions/twitapistatuses.php:244 actions/twitapiaccount.php:54 +#: actions/twitapidirect_messages.php:131 actions/twitapistatuses.php:262 msgid "This method requires a POST." msgstr "" -#: ../lib/util.php:164 lib/util.php:246 +#: ../lib/util.php:164 lib/util.php:246 lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" msgstr "" @@ -2270,7 +2368,7 @@ msgstr "" msgid "Timezone not selected." msgstr "" -#: ../actions/remotesubscribe.php:43 +#: ../actions/remotesubscribe.php:43 actions/remotesubscribe.php:74 #, php-format msgid "" "To subscribe, you can [login](%%action.login%%), or [register](%%action." @@ -2285,7 +2383,7 @@ msgstr "" #: ../actions/profilesettings.php:48 ../actions/register.php:169 #: actions/profilesettings.php:81 actions/register.php:183 -#: actions/profilesettings.php:109 +#: actions/profilesettings.php:109 actions/register.php:398 msgid "URL of your homepage, blog, or profile on another site" msgstr "" @@ -2302,6 +2400,8 @@ msgstr "" #: actions/emailsettings.php:242 actions/grouplogo.php:317 #: actions/imsettings.php:214 actions/recoverpassword.php:44 #: actions/smssettings.php:236 actions/twittersettings.php:302 +#: actions/avatarsettings.php:263 actions/emailsettings.php:247 +#: actions/grouplogo.php:324 actions/twittersettings.php:306 msgid "Unexpected form submission." msgstr "" @@ -2339,11 +2439,12 @@ msgstr "" #: ../actions/postnotice.php:44 ../actions/updateprofile.php:45 #: actions/postnotice.php:45 actions/updateprofile.php:46 #: actions/postnotice.php:48 actions/updateprofile.php:49 +#: actions/updateprofile.php:51 msgid "Unsupported OMB version" msgstr "" #: ../actions/avatar.php:105 actions/profilesettings.php:342 -#: lib/imagefile.php:102 +#: lib/imagefile.php:102 lib/imagefile.php:99 msgid "Unsupported image file format." msgstr "" @@ -2358,19 +2459,20 @@ msgid "Updates by instant messenger (IM)" msgstr "" #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 -#: actions/twitapistatuses.php:129 +#: actions/twitapistatuses.php:129 actions/twitapistatuses.php:134 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "" #: ../actions/twitapistatuses.php:341 actions/twitapistatuses.php:268 -#: actions/twitapistatuses.php:202 +#: actions/twitapistatuses.php:202 actions/twitapistatuses.php:213 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "" #: ../actions/avatar.php:68 actions/profilesettings.php:161 #: actions/avatarsettings.php:162 actions/grouplogo.php:232 +#: actions/avatarsettings.php:165 actions/grouplogo.php:238 msgid "Upload" msgstr "" @@ -2392,7 +2494,8 @@ msgid "" msgstr "" #: ../actions/register.php:159 ../actions/register.php:162 -#: actions/register.php:173 actions/register.php:176 +#: actions/register.php:173 actions/register.php:176 actions/register.php:382 +#: actions/register.php:386 msgid "Used only for updates, announcements, and password recovery" msgstr "" @@ -2416,6 +2519,8 @@ msgstr "" #: actions/twitapifavorites.php:42 actions/twitapistatuses.php:167 #: actions/twitapistatuses.php:503 actions/twitapiusers.php:55 #: actions/usergroups.php:99 lib/galleryaction.php:67 lib/twitterapi.php:626 +#: actions/twitapiaccount.php:71 actions/twitapistatuses.php:179 +#: actions/twitapistatuses.php:535 actions/twitapiusers.php:59 msgid "User has no profile." msgstr "" @@ -2440,18 +2545,18 @@ msgstr "" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 -#: actions/profilesettings.php:119 +#: actions/profilesettings.php:119 actions/register.php:410 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 -#: actions/updateprofile.php:132 +#: actions/updateprofile.php:132 actions/updateprofile.php:134 #, php-format msgid "Wrong image type for '%s'" msgstr "" #: ../actions/updateprofile.php:123 actions/updateprofile.php:124 -#: actions/updateprofile.php:127 +#: actions/updateprofile.php:127 actions/updateprofile.php:129 #, php-format msgid "Wrong size image at '%s'" msgstr "" @@ -2459,7 +2564,7 @@ msgstr "" #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 #: actions/deletenotice.php:64 actions/deletenotice.php:79 #: actions/block.php:148 actions/deletenotice.php:122 -#: actions/deletenotice.php:141 +#: actions/deletenotice.php:141 actions/deletenotice.php:115 msgid "Yes" msgstr "" @@ -2502,20 +2607,21 @@ msgstr "" msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" -#: ../actions/openidsettings.php:86 +#: ../actions/openidsettings.php:86 actions/openidsettings.php:143 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." msgstr "" #: ../actions/imsettings.php:28 actions/imsettings.php:28 +#: actions/imsettings.php:70 #, php-format msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -#: ../actions/profilesettings.php:27 +#: ../actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" @@ -2529,16 +2635,16 @@ msgstr "" #: ../actions/finishopenidlogin.php:33 ../actions/register.php:61 #: actions/finishopenidlogin.php:38 actions/register.php:68 -#: actions/finishopenidlogin.php:43 +#: actions/finishopenidlogin.php:43 actions/register.php:149 msgid "You can't register if you don't agree to the license." msgstr "" #: ../actions/updateprofile.php:63 actions/updateprofile.php:64 -#: actions/updateprofile.php:67 +#: actions/updateprofile.php:67 actions/updateprofile.php:69 msgid "You did not send us that profile" msgstr "" -#: ../lib/mail.php:147 +#: ../lib/mail.php:147 lib/mail.php:289 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -2552,7 +2658,7 @@ msgid "" msgstr "" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 -#: actions/twitapistatuses.php:463 +#: actions/twitapistatuses.php:463 actions/twitapistatuses.php:486 msgid "You may not delete another user's status." msgstr "" @@ -2567,67 +2673,67 @@ msgid "" "on the site. Thanks for growing the community!" msgstr "" -#: ../actions/recoverpassword.php:149 +#: ../actions/recoverpassword.php:149 actions/recoverpassword.php:158 msgid "You've been identified. Enter a new password below. " msgstr "" #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 -#: actions/openidlogin.php:104 +#: actions/openidlogin.php:104 actions/openidlogin.php:113 msgid "Your OpenID URL" msgstr "" -#: ../actions/recoverpassword.php:164 +#: ../actions/recoverpassword.php:164 actions/recoverpassword.php:188 msgid "Your nickname on this server, or your registered email address." msgstr "" -#: ../actions/openidsettings.php:28 +#: ../actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" -#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 +#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 lib/util.php:756 msgid "a few seconds ago" msgstr "" -#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 +#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 lib/util.php:768 #, php-format msgid "about %d days ago" msgstr "" -#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 +#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 lib/util.php:764 #, php-format msgid "about %d hours ago" msgstr "" -#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 +#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 lib/util.php:760 #, php-format msgid "about %d minutes ago" msgstr "" -#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 +#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 lib/util.php:772 #, php-format msgid "about %d months ago" msgstr "" -#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 +#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 lib/util.php:766 msgid "about a day ago" msgstr "" -#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 +#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 lib/util.php:758 msgid "about a minute ago" msgstr "" -#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 +#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 lib/util.php:770 msgid "about a month ago" msgstr "" -#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 +#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 lib/util.php:774 msgid "about a year ago" msgstr "" -#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 +#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 lib/util.php:762 msgid "about an hour ago" msgstr "" @@ -2654,7 +2760,8 @@ msgid "same as password above" msgstr "" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 -#: actions/twitapistatuses.php:555 +#: actions/twitapistatuses.php:555 actions/twitapistatuses.php:596 +#: actions/twitapistatuses.php:618 msgid "unsupported file type" msgstr "" @@ -2675,6 +2782,14 @@ msgstr "" #: actions/finishopenidlogin.php:38 actions/invite.php:54 actions/nudge.php:80 #: actions/openidlogin.php:37 actions/recoverpassword.php:316 #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 +#: actions/avatarsettings.php:251 actions/emailsettings.php:229 +#: actions/grouplogo.php:314 actions/imsettings.php:200 actions/login.php:103 +#: actions/newmessage.php:133 actions/newnotice.php:96 +#: actions/openidsettings.php:188 actions/othersettings.php:136 +#: actions/passwordsettings.php:131 actions/profilesettings.php:172 +#: actions/register.php:113 actions/remotesubscribe.php:53 +#: actions/smssettings.php:216 actions/subedit.php:38 actions/tagother.php:166 +#: actions/twittersettings.php:294 actions/userauthorization.php:39 msgid "There was a problem with your session token. Try again, please." msgstr "" @@ -2690,7 +2805,7 @@ msgstr "" msgid "Favor" msgstr "" -#: actions/emailsettings.php:92 +#: actions/emailsettings.php:92 actions/emailsettings.php:157 msgid "Send me email when someone adds my notice as a favorite." msgstr "" @@ -2699,13 +2814,14 @@ msgid "Send me email when someone sends me a private message." msgstr "" #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 -#: actions/twitapifavorites.php:118 +#: actions/twitapifavorites.php:118 actions/twitapifavorites.php:124 msgid "This notice is already a favorite!" msgstr "" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 +#: actions/twitapifavorites.php:131 lib/command.php:152 msgid "Could not create favorite." msgstr "" @@ -2715,11 +2831,13 @@ msgstr "" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 +#: actions/favoritesrss.php:110 #, php-format msgid "%s favorite notices" msgstr "" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 +#: actions/favoritesrss.php:114 #, php-format msgid "Feed of favorite notices of %s" msgstr "" @@ -2759,33 +2877,38 @@ msgid "Login with your username and password. " msgstr "" #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 -#: actions/twitapidirect_messages.php:141 +#: actions/twitapidirect_messages.php:141 actions/newmessage.php:148 +#: actions/twitapidirect_messages.php:150 msgid "That's too long. Max message size is 140 chars." msgstr "" #: actions/newmessage.php:65 actions/newmessage.php:128 +#: actions/newmessage.php:155 msgid "No recipient specified." msgstr "" #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 +#: actions/newmessage.php:119 actions/newmessage.php:158 lib/command.php:237 msgid "You can't send a message to this user." msgstr "" #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 -#: classes/Command.php:240 +#: classes/Command.php:240 actions/newmessage.php:161 +#: actions/twitapidirect_messages.php:167 lib/command.php:240 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" #: actions/newmessage.php:108 actions/microsummary.php:62 -#: actions/newmessage.php:163 +#: actions/newmessage.php:163 actions/newmessage.php:114 msgid "No such user" msgstr "" #: actions/newmessage.php:117 actions/newmessage.php:67 +#: actions/newmessage.php:71 msgid "New message" msgstr "" @@ -2839,6 +2962,8 @@ msgstr "" #: actions/avatarsettings.php:104 actions/avatarsettings.php:179 #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 +#: actions/avatarsettings.php:106 actions/avatarsettings.php:182 +#: actions/grouplogo.php:183 actions/remotesubscribe.php:366 msgid "User without matching profile" msgstr "" @@ -2867,6 +2992,7 @@ msgid "New password successfully saved. " msgstr "" #: actions/register.php:95 actions/register.php:180 +#: actions/passwordsettings.php:147 msgid "Password must be 6 or more characters." msgstr "" @@ -2887,12 +3013,14 @@ msgid "To subscribe, you can [login](%%action.login%%)," msgstr "" #: actions/showfavorites.php:61 actions/showfavorites.php:145 +#: actions/showfavorites.php:147 #, php-format msgid "Feed for favorites of %s" msgstr "" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 +#: actions/showfavorites.php:179 msgid "Could not retrieve favorite notices." msgstr "" @@ -2900,7 +3028,7 @@ msgstr "" msgid "No such message." msgstr "" -#: actions/showmessage.php:42 +#: actions/showmessage.php:42 actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." msgstr "" @@ -2924,51 +3052,61 @@ msgid "Mobile carrier for your phone. " msgstr "" #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 +#: actions/twitapidirect_messages.php:67 #, php-format msgid "Direct messages to %s" msgstr "" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 +#: actions/twitapidirect_messages.php:68 #, php-format msgid "All the direct messages sent to %s" msgstr "" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 +#: actions/twitapidirect_messages.php:72 msgid "Direct Messages You've Sent" msgstr "" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 +#: actions/twitapidirect_messages.php:73 #, php-format msgid "All the direct messages sent from %s" msgstr "" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 +#: actions/twitapidirect_messages.php:146 msgid "No message text!" msgstr "" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 +#: actions/twitapidirect_messages.php:159 msgid "Recipient user not found." msgstr "" #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 +#: actions/twitapidirect_messages.php:162 msgid "Can't send direct messages to users who aren't your friend." msgstr "" #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 +#: actions/twitapifavorites.php:64 #, php-format msgid "%s / Favorites from %s" msgstr "" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 +#: actions/twitapifavorites.php:68 #, php-format msgid "%s updates favorited by %s / %s." msgstr "" #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 +#: actions/twitapifavorites.php:170 lib/mail.php:554 #, php-format msgid "%s added your notice as a favorite" msgstr "" @@ -2987,14 +3125,17 @@ msgid "" msgstr "" #: actions/twittersettings.php:41 actions/twittersettings.php:60 +#: actions/twittersettings.php:61 msgid "Twitter settings" msgstr "" #: actions/twittersettings.php:48 actions/twittersettings.php:105 +#: actions/twittersettings.php:106 msgid "Twitter Account" msgstr "" #: actions/twittersettings.php:56 actions/twittersettings.php:113 +#: actions/twittersettings.php:114 msgid "Current verified Twitter account." msgstr "" @@ -3003,6 +3144,7 @@ msgid "Twitter Username" msgstr "" #: actions/twittersettings.php:65 actions/twittersettings.php:123 +#: actions/twittersettings.php:126 msgid "No spaces, please." msgstr "" @@ -3011,24 +3153,28 @@ msgid "Twitter Password" msgstr "" #: actions/twittersettings.php:72 actions/twittersettings.php:139 +#: actions/twittersettings.php:142 msgid "Automatically send my notices to Twitter." msgstr "" #: actions/twittersettings.php:75 actions/twittersettings.php:146 +#: actions/twittersettings.php:149 msgid "Send local \"@\" replies to Twitter." msgstr "" #: actions/twittersettings.php:78 actions/twittersettings.php:153 +#: actions/twittersettings.php:156 msgid "Subscribe to my Twitter friends here." msgstr "" -#: actions/twittersettings.php:122 +#: actions/twittersettings.php:122 actions/twittersettings.php:331 msgid "" "Username must have only numbers, upper- and lowercase letters, and " "underscore (_). 15 chars max." msgstr "" #: actions/twittersettings.php:128 actions/twittersettings.php:334 +#: actions/twittersettings.php:338 msgid "Could not verify your Twitter credentials!" msgstr "" @@ -3039,33 +3185,39 @@ msgstr "" #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 +#: actions/twittersettings.php:352 actions/twittersettings.php:372 msgid "Unable to save your Twitter settings!" msgstr "" #: actions/twittersettings.php:174 actions/twittersettings.php:376 +#: actions/twittersettings.php:380 msgid "Twitter settings saved." msgstr "" #: actions/twittersettings.php:192 actions/twittersettings.php:395 +#: actions/twittersettings.php:399 msgid "That is not your Twitter account." msgstr "" #: actions/twittersettings.php:200 actions/twittersettings.php:208 -#: actions/twittersettings.php:403 +#: actions/twittersettings.php:403 actions/twittersettings.php:407 msgid "Couldn't remove Twitter user." msgstr "" #: actions/twittersettings.php:212 actions/twittersettings.php:407 +#: actions/twittersettings.php:411 msgid "Twitter account removed." msgstr "" #: actions/twittersettings.php:225 actions/twittersettings.php:239 #: actions/twittersettings.php:428 actions/twittersettings.php:439 -#: actions/twittersettings.php:453 +#: actions/twittersettings.php:453 actions/twittersettings.php:432 +#: actions/twittersettings.php:443 actions/twittersettings.php:457 msgid "Couldn't save Twitter preferences." msgstr "" #: actions/twittersettings.php:245 actions/twittersettings.php:461 +#: actions/twittersettings.php:465 msgid "Twitter preferences saved." msgstr "" @@ -3082,18 +3234,19 @@ msgid "The subscription has been rejected, but no " msgstr "" #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 +#: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" -#: classes/Channel.php:148 classes/Channel.php:204 +#: classes/Channel.php:148 classes/Channel.php:204 lib/channel.php:210 msgid "Command complete" msgstr "" -#: classes/Channel.php:158 classes/Channel.php:215 +#: classes/Channel.php:158 classes/Channel.php:215 lib/channel.php:221 msgid "Command failed" msgstr "" -#: classes/Command.php:39 classes/Command.php:44 +#: classes/Command.php:39 classes/Command.php:44 lib/command.php:44 msgid "Sorry, this command is not yet implemented." msgstr "" @@ -3103,89 +3256,89 @@ msgid "Subscriptions: %1$s\n" msgstr "" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 -#: classes/Command.php:276 +#: classes/Command.php:276 lib/command.php:145 lib/command.php:276 msgid "User has no last notice" msgstr "" -#: classes/Command.php:146 classes/Command.php:166 +#: classes/Command.php:146 classes/Command.php:166 lib/command.php:166 msgid "Notice marked as fave." msgstr "" -#: classes/Command.php:166 classes/Command.php:189 +#: classes/Command.php:166 classes/Command.php:189 lib/command.php:189 #, php-format msgid "%1$s (%2$s)" msgstr "" -#: classes/Command.php:169 classes/Command.php:192 +#: classes/Command.php:169 classes/Command.php:192 lib/command.php:192 #, php-format msgid "Fullname: %s" msgstr "" -#: classes/Command.php:172 classes/Command.php:195 +#: classes/Command.php:172 classes/Command.php:195 lib/command.php:195 #, php-format msgid "Location: %s" msgstr "" -#: classes/Command.php:175 classes/Command.php:198 +#: classes/Command.php:175 classes/Command.php:198 lib/command.php:198 #, php-format msgid "Homepage: %s" msgstr "" -#: classes/Command.php:178 classes/Command.php:201 +#: classes/Command.php:178 classes/Command.php:201 lib/command.php:201 #, php-format msgid "About: %s" msgstr "" -#: classes/Command.php:200 classes/Command.php:228 +#: classes/Command.php:200 classes/Command.php:228 lib/command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" msgstr "" -#: classes/Command.php:214 classes/Command.php:245 +#: classes/Command.php:214 classes/Command.php:245 lib/command.php:245 #, php-format msgid "Direct message to %s sent" msgstr "" -#: classes/Command.php:216 classes/Command.php:247 +#: classes/Command.php:216 classes/Command.php:247 lib/command.php:247 msgid "Error sending direct message." msgstr "" -#: classes/Command.php:263 classes/Command.php:300 +#: classes/Command.php:263 classes/Command.php:300 lib/command.php:300 msgid "Specify the name of the user to subscribe to" msgstr "" -#: classes/Command.php:270 classes/Command.php:307 +#: classes/Command.php:270 classes/Command.php:307 lib/command.php:307 #, php-format msgid "Subscribed to %s" msgstr "" -#: classes/Command.php:288 classes/Command.php:328 +#: classes/Command.php:288 classes/Command.php:328 lib/command.php:328 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: classes/Command.php:295 classes/Command.php:335 +#: classes/Command.php:295 classes/Command.php:335 lib/command.php:335 #, php-format msgid "Unsubscribed from %s" msgstr "" #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 -#: classes/Command.php:376 +#: classes/Command.php:376 lib/command.php:353 lib/command.php:376 msgid "Command not yet implemented." msgstr "" -#: classes/Command.php:313 classes/Command.php:356 +#: classes/Command.php:313 classes/Command.php:356 lib/command.php:356 msgid "Notification off." msgstr "" -#: classes/Command.php:315 classes/Command.php:358 +#: classes/Command.php:315 classes/Command.php:358 lib/command.php:358 msgid "Can't turn off notification." msgstr "" -#: classes/Command.php:333 classes/Command.php:379 +#: classes/Command.php:333 classes/Command.php:379 lib/command.php:379 msgid "Notification on." msgstr "" -#: classes/Command.php:335 classes/Command.php:381 +#: classes/Command.php:335 classes/Command.php:381 lib/command.php:381 msgid "Can't turn on notification." msgstr "" @@ -3212,7 +3365,7 @@ msgid "" "\n" msgstr "" -#: lib/mail.php:249 lib/mail.php:508 +#: lib/mail.php:249 lib/mail.php:508 lib/mail.php:509 #, php-format msgid "New private message from %s" msgstr "" @@ -3224,7 +3377,7 @@ msgid "" "\n" msgstr "" -#: lib/mailbox.php:43 lib/mailbox.php:89 +#: lib/mailbox.php:43 lib/mailbox.php:89 lib/mailbox.php:91 msgid "Only the user can read their own mailboxes." msgstr "" @@ -3270,6 +3423,7 @@ msgid "Twitter integration options" msgstr "" #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 +#: lib/messageform.php:137 lib/noticelist.php:425 msgid "To" msgstr "" @@ -3277,7 +3431,8 @@ msgstr "" msgid "Could not parse message." msgstr "" -#: actions/all.php:63 actions/facebookhome.php:162 +#: actions/all.php:63 actions/facebookhome.php:162 actions/all.php:66 +#: actions/facebookhome.php:161 #, php-format msgid "%s and friends, page %d" msgstr "" @@ -3287,21 +3442,27 @@ msgid "You can upload your personal avatar." msgstr "" #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 -#: actions/grouplogo.php:250 +#: actions/grouplogo.php:250 actions/avatarsettings.php:119 +#: actions/avatarsettings.php:194 actions/grouplogo.php:256 msgid "Avatar settings" msgstr "" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 +#: actions/avatarsettings.php:126 actions/avatarsettings.php:202 +#: actions/grouplogo.php:204 actions/grouplogo.php:264 msgid "Original" msgstr "" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 +#: actions/avatarsettings.php:141 actions/avatarsettings.php:214 +#: actions/grouplogo.php:215 actions/grouplogo.php:276 msgid "Preview" msgstr "" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 +#: actions/avatarsettings.php:228 actions/grouplogo.php:291 msgid "Crop" msgstr "" @@ -3318,21 +3479,24 @@ msgid "There was a problem with your session token. " msgstr "" #: actions/avatarsettings.php:303 actions/grouplogo.php:360 +#: actions/avatarsettings.php:308 msgid "Pick a square area of the image to be your avatar" msgstr "" #: actions/avatarsettings.php:327 actions/grouplogo.php:384 +#: actions/avatarsettings.php:323 actions/grouplogo.php:382 msgid "Lost our file data." msgstr "" #: actions/avatarsettings.php:334 actions/grouplogo.php:391 -#: classes/User_group.php:112 +#: classes/User_group.php:112 lib/imagefile.php:112 msgid "Lost our file." msgstr "" #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 -#: classes/User_group.php:129 classes/User_group.php:161 +#: classes/User_group.php:129 classes/User_group.php:161 lib/imagefile.php:144 +#: lib/imagefile.php:191 msgid "Unknown file type" msgstr "" @@ -3381,27 +3545,30 @@ msgstr "" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 +#: actions/grouplogo.php:70 actions/grouprss.php:80 msgid "Inboxes must be enabled for groups to work" msgstr "" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 +#: actions/grouplogo.php:75 msgid "You must be logged in to create a group." msgstr "" #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 -#: actions/showgroup.php:121 +#: actions/showgroup.php:121 actions/grouplogo.php:91 actions/grouprss.php:96 msgid "No nickname" msgstr "" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 -#: actions/showgroup.php:128 +#: actions/showgroup.php:128 actions/grouplogo.php:104 +#: actions/grouprss.php:103 msgid "No such group" msgstr "" #: actions/editgroup.php:106 actions/editgroup.php:165 -#: actions/grouplogo.php:107 +#: actions/grouplogo.php:107 actions/grouplogo.php:111 msgid "You must be an admin to edit the group" msgstr "" @@ -3438,7 +3605,7 @@ msgstr "" msgid "Send me email when someone " msgstr "" -#: actions/emailsettings.php:168 +#: actions/emailsettings.php:168 actions/emailsettings.php:173 msgid "Allow friends to nudge me and send me an email." msgstr "" @@ -3464,23 +3631,26 @@ msgstr "" msgid "Allow %s to update my Facebook status" msgstr "" -#: actions/facebookhome.php:218 +#: actions/facebookhome.php:218 actions/facebookhome.php:223 msgid "Skip" msgstr "" -#: actions/facebookhome.php:235 +#: actions/facebookhome.php:235 lib/facebookaction.php:479 msgid "No notice content!" msgstr "" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 +#: actions/facebookhome.php:253 lib/action.php:973 lib/facebookaction.php:433 msgid "Pagination" msgstr "" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 +#: actions/facebookhome.php:262 lib/action.php:982 lib/facebookaction.php:442 msgid "After" msgstr "" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 +#: actions/facebookhome.php:270 lib/action.php:990 lib/facebookaction.php:450 msgid "Before" msgstr "" @@ -3493,22 +3663,22 @@ msgstr "" msgid "Invitations have been sent to the following users:" msgstr "" -#: actions/facebookinvite.php:96 +#: actions/facebookinvite.php:96 actions/facebookinvite.php:102 #, php-format msgid "You have been invited to %s" msgstr "" -#: actions/facebookinvite.php:105 +#: actions/facebookinvite.php:105 actions/facebookinvite.php:111 #, php-format msgid "Invite your friends to use %s" msgstr "" -#: actions/facebookinvite.php:113 +#: actions/facebookinvite.php:113 actions/facebookinvite.php:126 #, php-format msgid "Friends already using %s:" msgstr "" -#: actions/facebookinvite.php:130 +#: actions/facebookinvite.php:130 actions/facebookinvite.php:143 #, php-format msgid "Send invitations" msgstr "" @@ -3555,7 +3725,8 @@ msgid "Disfavor favorite" msgstr "" #: actions/favorited.php:65 lib/popularnoticesection.php:76 -#: lib/publicgroupnav.php:91 +#: lib/publicgroupnav.php:91 lib/popularnoticesection.php:82 +#: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "" @@ -3569,7 +3740,7 @@ msgid "The most popular notices on the site right now." msgstr "" #: actions/featured.php:69 lib/featureduserssection.php:82 -#: lib/publicgroupnav.php:87 +#: lib/publicgroupnav.php:87 lib/publicgroupnav.php:89 msgid "Featured users" msgstr "" @@ -3592,6 +3763,7 @@ msgid "No ID" msgstr "" #: actions/grouplogo.php:138 actions/grouplogo.php:191 +#: actions/grouplogo.php:144 actions/grouplogo.php:197 msgid "Group logo" msgstr "" @@ -3599,11 +3771,11 @@ msgstr "" msgid "You can upload a logo image for your group." msgstr "" -#: actions/grouplogo.php:448 +#: actions/grouplogo.php:448 actions/grouplogo.php:401 msgid "Logo updated." msgstr "" -#: actions/grouplogo.php:450 +#: actions/grouplogo.php:450 actions/grouplogo.php:403 msgid "Failed updating logo." msgstr "" @@ -3622,7 +3794,7 @@ msgid "A list of the users in this group." msgstr "" #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 -#: lib/subgroupnav.php:96 +#: lib/subgroupnav.php:96 lib/publicgroupnav.php:81 msgid "Groups" msgstr "" @@ -3637,6 +3809,7 @@ msgid "%%%%site.name%%%% groups let you find and talk with " msgstr "" #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 +#: actions/usergroups.php:125 msgid "Create a new group" msgstr "" @@ -3706,21 +3879,21 @@ msgstr "" msgid "You may not leave a group while you are its administrator." msgstr "" -#: actions/leavegroup.php:130 +#: actions/leavegroup.php:130 actions/leavegroup.php:124 msgid "Could not find membership record." msgstr "" -#: actions/leavegroup.php:138 +#: actions/leavegroup.php:138 actions/leavegroup.php:132 #, php-format msgid "Could not remove user %s to group %s" msgstr "" -#: actions/leavegroup.php:145 +#: actions/leavegroup.php:145 actions/leavegroup.php:139 #, php-format msgid "%s left group %s" msgstr "" -#: actions/login.php:225 lib/facebookaction.php:304 +#: actions/login.php:225 lib/facebookaction.php:304 actions/login.php:208 msgid "Login to site" msgstr "" @@ -3752,11 +3925,12 @@ msgstr "" msgid "Don't send a message to yourself; " msgstr "" -#: actions/newnotice.php:166 +#: actions/newnotice.php:166 actions/newnotice.php:174 msgid "Notice posted" msgstr "" -#: actions/newnotice.php:200 classes/Channel.php:163 +#: actions/newnotice.php:200 classes/Channel.php:163 actions/newnotice.php:208 +#: lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -3773,7 +3947,7 @@ msgstr "" msgid "Nudge sent!" msgstr "" -#: actions/openidlogin.php:97 +#: actions/openidlogin.php:97 actions/openidlogin.php:106 msgid "OpenID login" msgstr "" @@ -3813,12 +3987,12 @@ msgstr "" msgid "Password change" msgstr "" -#: actions/peopletag.php:35 +#: actions/peopletag.php:35 actions/peopletag.php:70 #, php-format msgid "Not a valid people tag: %s" msgstr "" -#: actions/peopletag.php:47 +#: actions/peopletag.php:47 actions/peopletag.php:144 #, php-format msgid "Users self-tagged with %s - page %d" msgstr "" @@ -3842,6 +4016,7 @@ msgid "Automatically subscribe to whoever " msgstr "" #: actions/profilesettings.php:229 actions/tagother.php:176 +#: actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "" @@ -3850,12 +4025,12 @@ msgstr "" msgid "Couldn't save tags." msgstr "" -#: actions/public.php:107 +#: actions/public.php:107 actions/public.php:110 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:173 +#: actions/public.php:173 actions/public.php:184 msgid "Could not retrieve public stream." msgstr "" @@ -3928,7 +4103,7 @@ msgstr "" msgid "That's a local profile! Login to subscribe." msgstr "" -#: actions/replies.php:118 +#: actions/replies.php:118 actions/replies.php:120 #, php-format msgid "Replies to %s, page %d" msgstr "" @@ -3948,40 +4123,45 @@ msgstr "" msgid "%s group, page %d" msgstr "" -#: actions/showgroup.php:206 +#: actions/showgroup.php:206 actions/showgroup.php:208 msgid "Group profile" msgstr "" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 +#: actions/showgroup.php:253 actions/showstream.php:271 +#: actions/tagother.php:118 lib/profilelist.php:131 msgid "URL" msgstr "" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 +#: actions/showgroup.php:264 actions/showstream.php:282 +#: actions/tagother.php:128 lib/profilelist.php:142 msgid "Note" msgstr "" -#: actions/showgroup.php:270 +#: actions/showgroup.php:270 actions/showgroup.php:272 msgid "Group actions" msgstr "" -#: actions/showgroup.php:323 +#: actions/showgroup.php:323 actions/showgroup.php:304 #, php-format msgid "Notice feed for %s group" msgstr "" -#: actions/showgroup.php:357 lib/groupnav.php:90 +#: actions/showgroup.php:357 lib/groupnav.php:90 actions/showgroup.php:339 +#: actions/showgroup.php:384 msgid "Members" msgstr "" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 -#: lib/tagcloudsection.php:71 +#: lib/tagcloudsection.php:71 actions/showgroup.php:344 msgid "(None)" msgstr "" -#: actions/showgroup.php:370 +#: actions/showgroup.php:370 actions/showgroup.php:350 msgid "All members" msgstr "" @@ -4006,14 +4186,16 @@ msgid "'s profile" msgstr "" #: actions/showstream.php:236 actions/tagother.php:77 +#: actions/showstream.php:220 msgid "User profile" msgstr "" #: actions/showstream.php:240 actions/tagother.php:81 +#: actions/showstream.php:224 msgid "Photo" msgstr "" -#: actions/showstream.php:317 +#: actions/showstream.php:317 actions/showstream.php:309 msgid "User actions" msgstr "" @@ -4110,16 +4292,16 @@ msgstr "" msgid "These are the people whose " msgstr "" -#: actions/subscriptions.php:122 +#: actions/subscriptions.php:122 actions/subscriptions.php:124 msgid "Jabber" msgstr "" -#: actions/tag.php:43 +#: actions/tag.php:43 actions/tag.php:51 #, php-format msgid "Notices tagged with %s, page %d" msgstr "" -#: actions/tag.php:66 +#: actions/tag.php:66 actions/tag.php:73 #, php-format msgid "Messages tagged \"%s\", most recent first" msgstr "" @@ -4141,7 +4323,7 @@ msgstr "" msgid "Tag user" msgstr "" -#: actions/tagother.php:149 +#: actions/tagother.php:149 actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" @@ -4151,16 +4333,16 @@ msgstr "" msgid "There was a problem with your session token." msgstr "" -#: actions/tagother.php:191 +#: actions/tagother.php:191 actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" -#: actions/tagother.php:198 +#: actions/tagother.php:198 actions/tagother.php:200 msgid "Could not save tags." msgstr "" -#: actions/tagother.php:233 +#: actions/tagother.php:233 actions/tagother.php:235 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" @@ -4168,7 +4350,7 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/tagrss.php:66 +#: actions/tagrss.php:66 actions/tagrss.php:64 #, php-format msgid "Microblog tagged with %s" msgstr "" @@ -4181,7 +4363,7 @@ msgstr "" msgid "Unblock user failed." msgstr "" -#: actions/twitapiusers.php:48 +#: actions/twitapiusers.php:48 actions/twitapiusers.php:52 msgid "Not found." msgstr "" @@ -4189,15 +4371,15 @@ msgstr "" msgid "Add your Twitter account to automatically send " msgstr "" -#: actions/twittersettings.php:119 +#: actions/twittersettings.php:119 actions/twittersettings.php:122 msgid "Twitter user name" msgstr "" -#: actions/twittersettings.php:126 +#: actions/twittersettings.php:126 actions/twittersettings.php:129 msgid "Twitter password" msgstr "" -#: actions/twittersettings.php:228 +#: actions/twittersettings.php:228 actions/twittersettings.php:232 msgid "Twitter Friends" msgstr "" @@ -4236,16 +4418,16 @@ msgstr "" msgid "%s groups, page %d" msgstr "" -#: classes/Notice.php:104 +#: classes/Notice.php:104 classes/Notice.php:128 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:109 +#: classes/Notice.php:109 classes/Notice.php:133 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:116 +#: classes/Notice.php:116 classes/Notice.php:145 msgid "You are banned from posting notices on this site." msgstr "" @@ -4261,84 +4443,84 @@ msgstr "" msgid "Other options" msgstr "" -#: lib/action.php:130 +#: lib/action.php:130 lib/action.php:132 #, php-format msgid "%s - %s" msgstr "" -#: lib/action.php:145 +#: lib/action.php:145 lib/action.php:147 msgid "Untitled page" msgstr "" -#: lib/action.php:316 +#: lib/action.php:316 lib/action.php:387 msgid "Primary site navigation" msgstr "" -#: lib/action.php:322 +#: lib/action.php:322 lib/action.php:393 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:325 +#: lib/action.php:325 lib/action.php:396 msgid "Search for people or text" msgstr "" -#: lib/action.php:328 +#: lib/action.php:328 lib/action.php:399 msgid "Account" msgstr "" -#: lib/action.php:328 +#: lib/action.php:328 lib/action.php:399 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:330 +#: lib/action.php:330 lib/action.php:403 msgid "Connect to IM, SMS, Twitter" msgstr "" -#: lib/action.php:332 +#: lib/action.php:332 lib/action.php:409 msgid "Logout from the site" msgstr "" -#: lib/action.php:335 +#: lib/action.php:335 lib/action.php:412 msgid "Login to the site" msgstr "" -#: lib/action.php:338 +#: lib/action.php:338 lib/action.php:415 msgid "Create an account" msgstr "" -#: lib/action.php:341 +#: lib/action.php:341 lib/action.php:418 msgid "Login with OpenID" msgstr "" -#: lib/action.php:344 +#: lib/action.php:344 lib/action.php:421 msgid "Help me!" msgstr "" -#: lib/action.php:362 +#: lib/action.php:362 lib/action.php:441 msgid "Site notice" msgstr "" -#: lib/action.php:417 +#: lib/action.php:417 lib/action.php:504 msgid "Local views" msgstr "" -#: lib/action.php:472 +#: lib/action.php:472 lib/action.php:559 msgid "Page notice" msgstr "" -#: lib/action.php:562 +#: lib/action.php:562 lib/action.php:654 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:602 lib/action.php:623 +#: lib/action.php:602 lib/action.php:623 lib/action.php:699 lib/action.php:720 msgid "Laconica software license" msgstr "" -#: lib/action.php:630 +#: lib/action.php:630 lib/action.php:727 msgid "All " msgstr "" -#: lib/action.php:635 +#: lib/action.php:635 lib/action.php:732 msgid "license." msgstr "" @@ -4359,11 +4541,12 @@ msgstr "" msgid "To use the %s Facebook Application you need to login " msgstr "" -#: lib/facebookaction.php:271 +#: lib/facebookaction.php:271 lib/facebookaction.php:273 msgid " a new account." msgstr "" #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 +#: lib/facebookaction.php:675 lib/mailbox.php:216 lib/noticelist.php:357 msgid "Published" msgstr "" @@ -4500,7 +4683,7 @@ msgid "" "\n" msgstr "" -#: lib/mail.php:461 +#: lib/mail.php:461 lib/mail.php:462 #, php-format msgid "You've been nudged by %s" msgstr "" @@ -4515,11 +4698,12 @@ msgstr "" msgid "%1$s just added your notice from %2$s" msgstr "" -#: lib/mailbox.php:229 lib/noticelist.php:380 +#: lib/mailbox.php:229 lib/noticelist.php:380 lib/mailbox.php:231 +#: lib/noticelist.php:383 msgid "From" msgstr "" -#: lib/messageform.php:110 +#: lib/messageform.php:110 lib/messageform.php:109 msgid "Send a direct notice" msgstr "" @@ -4531,23 +4715,26 @@ msgstr "" msgid "Available characters" msgstr "" -#: lib/noticelist.php:426 +#: lib/noticelist.php:426 lib/noticelist.php:429 msgid "in reply to" msgstr "" -#: lib/noticelist.php:447 lib/noticelist.php:450 +#: lib/noticelist.php:447 lib/noticelist.php:450 lib/noticelist.php:451 +#: lib/noticelist.php:454 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:451 +#: lib/noticelist.php:451 lib/noticelist.php:455 msgid "Reply" msgstr "" -#: lib/noticelist.php:471 lib/noticelist.php:474 +#: lib/noticelist.php:471 lib/noticelist.php:474 lib/noticelist.php:476 +#: lib/noticelist.php:479 msgid "Delete this notice" msgstr "" -#: lib/noticelist.php:474 +#: lib/noticelist.php:474 actions/avatarsettings.php:148 +#: lib/noticelist.php:479 msgid "Delete" msgstr "" @@ -4568,27 +4755,28 @@ msgstr "" msgid "Tags in %s's notices" msgstr "" -#: lib/profilelist.php:182 +#: lib/profilelist.php:182 lib/profilelist.php:180 msgid "(none)" msgstr "" -#: lib/publicgroupnav.php:76 +#: lib/publicgroupnav.php:76 lib/publicgroupnav.php:78 msgid "Public" msgstr "" -#: lib/publicgroupnav.php:80 +#: lib/publicgroupnav.php:80 lib/publicgroupnav.php:82 msgid "User groups" msgstr "" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 +#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" msgstr "" -#: lib/publicgroupnav.php:86 +#: lib/publicgroupnav.php:86 lib/publicgroupnav.php:88 msgid "Featured" msgstr "" -#: lib/publicgroupnav.php:90 +#: lib/publicgroupnav.php:90 lib/publicgroupnav.php:92 msgid "Popular" msgstr "" @@ -4651,3 +4839,462 @@ msgstr "" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" msgstr "" + +#: actions/all.php:77 +#, php-format +msgid "Feed for friends of %s (RSS 1.0)" +msgstr "" + +#: actions/all.php:82 +#, php-format +msgid "Feed for friends of %s (RSS 2.0)" +msgstr "" + +#: actions/all.php:87 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "" + +#: actions/all.php:112 +msgid "You and friends" +msgstr "" + +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "" + +#: actions/avatarsettings.php:373 +msgid "Avatar deleted." +msgstr "" + +#: actions/block.php:129 +msgid "" +"Are you sure you want to block this user? Afterwards, they will be " +"unsubscribed from you, unable to subscribe to you in the future, and you " +"will not be notified of any @-replies from them." +msgstr "" + +#: actions/deletenotice.php:73 +msgid "" +"You are about to permanently delete a notice. Once this is done, it cannot " +"be undone." +msgstr "" + +#: actions/deletenotice.php:127 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: actions/emailsettings.php:168 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "" + +#: actions/facebookhome.php:193 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" + +#: actions/facebookhome.php:217 +#, php-format +msgid "Okay, do it!" +msgstr "" + +#: actions/facebooksettings.php:124 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: actions/grouplogo.php:155 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "" + +#: actions/grouplogo.php:367 +msgid "Pick a square area of the image to be the logo." +msgstr "" + +#: actions/grouprss.php:136 +#, php-format +msgid "Microblog by %s group" +msgstr "" + +#: actions/groupsearch.php:57 +#, php-format +msgid "" +"Search for groups on %%site.name%% by their name, location, or description. " +"Separate the terms by spaces; they must be 3 characters or more." +msgstr "" + +#: actions/groups.php:90 +#, php-format +msgid "" +"%%%%site.name%%%% groups let you find and talk with people of similar " +"interests. After you join a group you can send messages to all other members " +"using the syntax \"!groupname\". Don't see a group you like? Try [searching " +"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" +"%%%%)" +msgstr "" + +#: actions/newmessage.php:102 +msgid "Only logged-in users can send direct messages." +msgstr "" + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%s\" on %s" +msgstr "" + +#: actions/openidlogin.php:66 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#: actions/public.php:125 +msgid "Public Stream Feed (RSS 1.0)" +msgstr "" + +#: actions/public.php:130 +msgid "Public Stream Feed (RSS 2.0)" +msgstr "" + +#: actions/public.php:135 +msgid "Public Stream Feed (Atom)" +msgstr "" + +#: actions/public.php:210 +#, php-format +msgid "" +"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" +"blogging) service based on the Free Software [Laconica](http://laconi.ca/) " +"tool. [Join now](%%action.register%%) to share notices about yourself with " +"friends, family, and colleagues! ([Read more](%%doc.help%%))" +msgstr "" + +#: actions/register.php:286 +#, php-format +msgid "" +"With this form you can create a new account. You can then post notices and " +"link up to friends and colleagues. (Have an [OpenID](http://openid.net/)? " +"Try our [OpenID registration](%%action.openidlogin%%)!)" +msgstr "" + +#: actions/register.php:432 +msgid "Creative Commons Attribution 3.0" +msgstr "" + +#: actions/register.php:433 +msgid "" +" except this private data: password, email address, IM address, and phone " +"number." +msgstr "" + +#: actions/showgroup.php:378 +msgid "Created" +msgstr "" + +#: actions/showgroup.php:393 +#, php-format +msgid "" +"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[Laconica](http://laconi.ca/) tool. Its members share short messages about " +"their life and interests. [Join now](%%%%action.register%%%%) to become part " +"of this group and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" + +#: actions/showstream.php:147 +msgid "Your profile" +msgstr "" + +#: actions/showstream.php:149 +#, php-format +msgid "%s's profile" +msgstr "" + +#: actions/showstream.php:163 +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "" + +#: actions/showstream.php:170 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "" + +#: actions/showstream.php:177 +#, php-format +msgid "Notice feed for %s (Atom)" +msgstr "" + +#: actions/showstream.php:182 +#, php-format +msgid "FOAF for %s" +msgstr "" + +#: actions/showstream.php:237 +msgid "Edit Avatar" +msgstr "" + +#: actions/showstream.php:316 +msgid "Edit profile settings" +msgstr "" + +#: actions/showstream.php:317 +msgid "Edit" +msgstr "" + +#: actions/showstream.php:542 +#, php-format +msgid "" +"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[Laconica](http://laconi.ca/) tool. [Join now](%%%%action.register%%%%) to " +"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" + +#: actions/smssettings.php:335 +msgid "" +"A confirmation code was sent to the phone number you added. Check your phone " +"for the code and instructions on how to use it." +msgstr "" + +#: actions/twitapifavorites.php:171 lib/mail.php:556 +#, php-format +msgid "" +"%1$s just added your notice from %2$s as one of their favorites.\n" +"\n" +"In case you forgot, you can see the text of your notice here:\n" +"\n" +"%3$s\n" +"\n" +"You can see the list of %1$s's favorites here:\n" +"\n" +"%4$s\n" +"\n" +"Faithfully yours,\n" +"%5$s\n" +msgstr "" + +#: actions/twitapistatuses.php:124 +msgid "No such user!" +msgstr "" + +#: actions/twittersettings.php:72 +msgid "" +"Add your Twitter account to automatically send your notices to Twitter, and " +"subscribe to Twitter friends already here." +msgstr "" + +#: actions/twittersettings.php:345 +#, php-format +msgid "Unable to retrieve account information For \"%s\" from Twitter." +msgstr "" + +#: actions/userauthorization.php:86 +msgid "" +"Please check these details to make sure that you want to subscribe to this " +"user's notices. If you didn't just ask to subscribe to someone's notices, " +"click \"Reject\"." +msgstr "" + +#: actions/usergroups.php:131 +msgid "Search for more groups" +msgstr "" + +#: classes/Notice.php:138 +msgid "" +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." +msgstr "" + +#: lib/action.php:406 +msgid "Connect to SMS, Twitter" +msgstr "" + +#: lib/action.php:671 +msgid "Badge" +msgstr "" + +#: lib/command.php:113 +#, php-format +msgid "" +"Subscriptions: %1$s\n" +"Subscribers: %2$s\n" +"Notices: %3$s" +msgstr "" + +#: lib/command.php:392 +msgid "" +"Commands:\n" +"on - turn on notifications\n" +"off - turn off notifications\n" +"help - show this help\n" +"follow <nickname> - subscribe to user\n" +"leave <nickname> - unsubscribe from user\n" +"d <nickname> <text> - direct message to user\n" +"get <nickname> - get last notice from user\n" +"whois <nickname> - get profile info on user\n" +"fav <nickname> - add user's last notice as a 'fave'\n" +"stats - get your stats\n" +"stop - same as 'off'\n" +"quit - same as 'off'\n" +"sub <nickname> - same as 'follow'\n" +"unsub <nickname> - same as 'leave'\n" +"last <nickname> - same as 'get'\n" +"on <nickname> - not yet implemented.\n" +"off <nickname> - not yet implemented.\n" +"nudge <nickname> - not yet implemented.\n" +"invite <phone number> - not yet implemented.\n" +"track <word> - not yet implemented.\n" +"untrack <word> - not yet implemented.\n" +"track off - not yet implemented.\n" +"untrack all - not yet implemented.\n" +"tracks - not yet implemented.\n" +"tracking - not yet implemented.\n" +msgstr "" + +#: lib/dberroraction.php:60 +msgid "Database error" +msgstr "" + +#: lib/facebookaction.php:271 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet? " +msgstr "" + +#: lib/feed.php:85 +msgid "RSS 1.0" +msgstr "" + +#: lib/feed.php:87 +msgid "RSS 2.0" +msgstr "" + +#: lib/feed.php:89 +msgid "Atom" +msgstr "" + +#: lib/feed.php:91 +msgid "FOAF" +msgstr "" + +#: lib/imagefile.php:75 +#, php-format +msgid "That file is too big. The maximum file size is %d." +msgstr "" + +#: lib/mail.php:175 +#, php-format +msgid "" +"Hey, %s.\n" +"\n" +"Someone just entered this email address on %s.\n" +"\n" +"If it was you, and you want to confirm your entry, use the URL below:\n" +"\n" +"\t%s\n" +"\n" +"If not, just ignore this message.\n" +"\n" +"Thanks for your time, \n" +"%s\n" +msgstr "" + +#: lib/mail.php:241 +#, php-format +msgid "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Faithfully yours,\n" +"%7$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %8$s\n" +msgstr "" + +#: lib/mail.php:466 +#, php-format +msgid "" +"%1$s (%2$s) is wondering what you are up to these days and is inviting you " +"to post some news.\n" +"\n" +"So let's hear from you :)\n" +"\n" +"%3$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%4$s\n" +msgstr "" + +#: lib/mail.php:513 +#, php-format +msgid "" +"%1$s (%2$s) sent you a private message:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"You can reply to their message here:\n" +"\n" +"%4$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%5$s\n" +msgstr "" + +#: lib/mail.php:598 +#, php-format +msgid "%s sent a notice to your attention" +msgstr "" + +#: lib/mail.php:600 +#, php-format +msgid "" +"%1$s just sent a notice to your attention (an '@-reply') on %2$s.\n" +"\n" +"The notice is here:\n" +"\n" +"\t%3$s\n" +"\n" +"It reads:\n" +"\n" +"\t%4$s\n" +"\n" +"You can reply back here:\n" +"\n" +"\t%5$s\n" +"\n" +"The list of all @-replies for you here:\n" +"\n" +"%6$s\n" +"\n" +"Faithfully yours,\n" +"%2$s\n" +"\n" +"P.S. You can turn off these email notifications here: %7$s\n" +msgstr "" + +#: lib/searchaction.php:122 +msgid "Search site" +msgstr "" + +#: lib/section.php:106 +msgid "More..." +msgstr "" diff --git a/locale/nb_NO/LC_MESSAGES/laconica.mo b/locale/nb_NO/LC_MESSAGES/laconica.mo Binary files differindex 84e90242e..480d559c9 100644 --- a/locale/nb_NO/LC_MESSAGES/laconica.mo +++ b/locale/nb_NO/LC_MESSAGES/laconica.mo diff --git a/locale/nb_NO/LC_MESSAGES/laconica.po b/locale/nb_NO/LC_MESSAGES/laconica.po index 38d4248b7..b349f7d6b 100644 --- a/locale/nb_NO/LC_MESSAGES/laconica.po +++ b/locale/nb_NO/LC_MESSAGES/laconica.po @@ -4,22 +4,20 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2009-02-07 22:33+0000\n" +"Last-Translator: Jimmy Volatile <spam@useful.no>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# laconica.po #-#-#-#-#\n" +"X-Generator: Pootle 1.1.0\n" "X-Poedit-Language: Norwegian Bokmal\n" "X-Poedit-Country: NORWAY\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 @@ -139,7 +137,7 @@ msgstr "" #: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 #, php-format msgid "%s status" -msgstr "" +msgstr "%s status" #: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265 #: actions/twitapistatuses.php:199 @@ -151,13 +149,15 @@ msgstr "" #: actions/twitapistatuses.php:36 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "%s oppdatering fra alle!" #: ../actions/register.php:213 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" +"(Du vil straks motta en e-post med instruksjoner om hvordan du kan bekrefte " +"din e-postadresse.)" #: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 #, php-format @@ -194,12 +194,12 @@ msgstr "6 eller flere tegn" #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 msgid "6 or more characters, and don't forget it!" -msgstr "" +msgstr "6 eller flere tegn. Og ikke glem det, nÃ¥!" #: ../actions/register.php:154 actions/register.php:168 #: actions/register.php:373 msgid "6 or more characters. Required." -msgstr "" +msgstr "6 eller flere tegn. PÃ¥krevd." #: ../actions/imsettings.php:197 actions/imsettings.php:205 #, php-format diff --git a/locale/nn_NO/LC_MESSAGES/laconica.mo b/locale/nn_NO/LC_MESSAGES/laconica.mo Binary files differindex 63b730aff..45463ff8c 100644 --- a/locale/nn_NO/LC_MESSAGES/laconica.mo +++ b/locale/nn_NO/LC_MESSAGES/laconica.mo diff --git a/locale/nn_NO/LC_MESSAGES/laconica.po b/locale/nn_NO/LC_MESSAGES/laconica.po index dca3c60a4..a5a973e73 100644 --- a/locale/nn_NO/LC_MESSAGES/laconica.po +++ b/locale/nn_NO/LC_MESSAGES/laconica.po @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: Laconica 0.6.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-28 13:27+0000\n" -"Last-Translator: Simon Hansen <simonboba@gmail.com>\n" +"PO-Revision-Date: 2009-02-18 22:11+0000\n" +"Last-Translator: Tor Christian <tctovsli@gmail.com>\n" "Language-Team: Norwegian/Nynorsk <i18n-nn@lister.ping.uio.no>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -80,7 +80,7 @@ msgstr "" "%$2s er ei mikrobloggingteneste som let deg halda deg oppdatert pÃ¥ folk du " "kjenner og/eller som interesserer deg.\n" "\n" -"Du kan óg dela nyhende om deg sjølv, dine tankar eller livet ditt pÃ¥ nettet " +"Du kan òg dela nyhende om deg sjølv, dine tankar eller livet ditt pÃ¥ nettet " "med folk som kjenner til deg. Det er supert for Ã¥ møte nye folk med like " "interesser.\n" "\n" @@ -92,7 +92,7 @@ msgstr "" "\n" "%5$s\n" "\n" -"Viss du vil prøva tenesta, klikk pÃ¥ lenka nedonfor for Ã¥ akseptera " +"Viss du vil prøva tenesta, klikk pÃ¥ lenka nedanfor for Ã¥ akseptera " "invitasjonen.\n" "\n" "Beste helsing, %2$s\n" @@ -100,7 +100,7 @@ msgstr "" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s høyrer no pÃ¥ notisane dine pÃ¥ %2$s." +msgstr "%1$s høyrar no pÃ¥ notisane dine pÃ¥ %2$s." #: ../lib/mail.php:126 #, php-format @@ -426,7 +426,6 @@ msgid "Awaiting confirmation on this phone number." msgstr "Ventar pÃ¥ godkjenning for dette telefonnummeret." #: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy msgid "Before »" msgstr "Før »" @@ -540,7 +539,6 @@ msgstr "Fann ikkje stadfestingskode." #: ../actions/register.php:202 #, php-format -#, fuzzy msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to...\n" @@ -557,9 +555,19 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Gratulerer, %s! Velkomen til %%%%site.name%%%%. Du vil kanhenda...\n" +"Gratulerer, %s! Og velkomen til %%%%site.name%%%%. FrÃ¥ her kann det henda du " +"vil...\n" +"\n" +"* GÃ¥ til [profilen din](%s) og skriva den fyrste meldinga.\n" +"* Leggja til ei [Jabber/GTalk adresse](%%%%action.imsettings%%%%) so du kann " +"laga nye meldingar ved hjelp av direktemeldingar.\n" +"* [Søkje etter folk](%%%%action.profilesettings%%%%) det kan hende du " +"kjenner, eller som du delar interesser med.\n" +"* Uppdatere dine [profilval] so du kann fortelja andre meir um deg sjølv.* " +"Lesa [hjelpetekstane](%%%%doc.help%%%%) for Ã¥ finna ut meir um funksjonar du " +"kann ha gÃ¥dd glipp av.\n" "\n" -"* GÃ¥ til [profilen din](%s) og " +"Takk for at du blei med, og vi hÃ¥par du vil lika tenesta!" #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 #: actions/finishopenidlogin.php:119 lib/action.php:330 @@ -594,9 +602,8 @@ msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 #, php-format -#, fuzzy msgid "Could not redirect to server: %s" -msgstr "Kan ikkje " +msgstr "Klarte ikkje Ã¥ omdirigera til tenaren: %s" #: ../actions/updateprofile.php:162 actions/updateprofile.php:163 #: actions/updateprofile.php:166 @@ -619,13 +626,12 @@ msgstr "Kan ikkje tinga." #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "Kan ikkje oppdatera brukar med stadfesta epostadresse." +msgstr "Kan ikkje oppdatera brukar med stadfesta e-postadresse." #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 -#, fuzzy msgid "Couldn't convert request tokens to access tokens." -msgstr "Kan ikkje konvertera spyrje" +msgstr "Kan ikkje konvertera spyrjebillett til tilgongsbillett." #: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234 #: ../actions/imsettings.php:218 ../actions/smssettings.php:241 @@ -634,7 +640,7 @@ msgstr "Kan ikkje konvertera spyrje" #: actions/confirmaddress.php:126 actions/emailsettings.php:375 #: actions/imsettings.php:357 actions/smssettings.php:370 msgid "Couldn't delete email confirmation." -msgstr "Kan ikkje sletta epostgodkjenning." +msgstr "Kan ikkje sletta e-postgodkjenning." #: ../lib/subs.php:103 lib/subs.php:116 lib/subs.php:134 msgid "Couldn't delete subscription." @@ -648,7 +654,7 @@ msgstr "Kan ikkje finna einkvan status." #: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136 #: actions/remotesubscribe.php:178 msgid "Couldn't get a request token." -msgstr "Fekk ikkje spørjingsbillett (request token)" +msgstr "Fekk ikkje spørjingsbillett (request token)." #: ../actions/emailsettings.php:205 ../actions/imsettings.php:187 #: ../actions/smssettings.php:206 actions/emailsettings.php:223 @@ -1000,7 +1006,7 @@ msgid "" "If you want to add an OpenID to your account, enter it in the box below and " "click \"Add\"." msgstr "" -"Skriv OpenID-en din i boksen nedanfor og trykk «Legg til» om du ynskjerÃ¥ " +"Skriv OpenID-en din i boksen nedanfor og trykk «Legg til» om du ynskjer Ã¥ " "leggja han til." #: ../actions/recoverpassword.php:137 @@ -1082,17 +1088,17 @@ msgstr "Ugyldig notis-adresse" #: actions/updateprofile.php:91 #, php-format msgid "Invalid profile URL '%s'." -msgstr "Ugyldig profil-netadresse «%s»" +msgstr "Ugyldig profil-nettadresse «%s»" #: ../actions/remotesubscribe.php:96 actions/remotesubscribe.php:105 #: actions/remotesubscribe.php:135 msgid "Invalid profile URL (bad format)" -msgstr "Ugyldig profil-netadresse (feil format)" +msgstr "Ugyldig profil-nettadresse (feil format)" #: ../actions/finishremotesubscribe.php:77 #: actions/finishremotesubscribe.php:79 actions/finishremotesubscribe.php:80 msgid "Invalid profile URL returned by server." -msgstr "Ugyldig profil-netadresse returnert av tenar." +msgstr "Ugyldig profil-nettadresse returnert av tenar." #: ../actions/avatarbynickname.php:37 actions/avatarbynickname.php:37 #: actions/avatarbynickname.php:69 @@ -1227,7 +1233,7 @@ msgstr "Vel ny epostadresse til Ã¥ oppdatera med; fjerner den gamle." #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "Styr korleis du fær epost frÃ¥ %%site.name%%." +msgstr "Styr korleis du fÃ¥r epost frÃ¥ %%site.name%%." #: ../actions/showstream.php:300 actions/showstream.php:315 #: actions/showstream.php:480 @@ -1409,7 +1415,7 @@ msgstr "Ingen telefonnummer." #: ../actions/finishremotesubscribe.php:72 #: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75 msgid "No profile URL returned by server." -msgstr "Ingen profil-netadresse returnert av tenar." +msgstr "Ingen profil-nettadresse returnert av tenar." #: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232 #: actions/recoverpassword.php:266 @@ -1419,7 +1425,7 @@ msgstr "Ingen registrert epostadresse for den brukaren." #: ../actions/userauthorization.php:49 actions/userauthorization.php:55 #: actions/userauthorization.php:57 msgid "No request found!" -msgstr "Fann ingen spørjing." +msgstr "Fann inga spørjing." #: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64 #: actions/noticesearch.php:69 actions/peoplesearch.php:69 @@ -1468,7 +1474,7 @@ msgstr "Opprettingskoden finst ikkje." #: ../actions/postnotice.php:56 actions/postnotice.php:57 #: actions/postnotice.php:60 msgid "No such subscription" -msgstr "Tingingi finst ikkje." +msgstr "Tinginga finst ikkje." #: ../actions/all.php:34 ../actions/allrss.php:35 #: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40 @@ -2272,6 +2278,9 @@ msgid "" "with the site's instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" +"Tingina har blitt autorisert, men ingen henvisnings URL er tilgjengleg. " +"Sjekk med sida sine instruksjonar for korleis autorisering til tinginga skal " +"gjennomførast. Ditt tingings teikn er: " #: ../actions/userauthorization.php:322 msgid "" @@ -2279,6 +2288,8 @@ msgid "" "with the site's instructions for details on how to fully reject the " "subscription." msgstr "" +"Tingina har blitt avvist, men ingen henvisnings URL er tilgjengleg. Sjekk " +"med sida sine instruksjonar for korleis ein skal avvise tinginga." #: ../actions/subscribers.php:35 actions/subscribers.php:35 #, php-format @@ -2292,7 +2303,7 @@ msgstr "Dette er folk som lyttar til dine notisar." #: ../actions/subscriptions.php:35 actions/subscriptions.php:35 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "" +msgstr "Dette er folka som %s tingar oppdateringar frÃ¥." #: ../actions/subscriptions.php:33 actions/subscriptions.php:33 msgid "These are the people whose notices you listen to." @@ -2313,6 +2324,8 @@ msgid "" "This form should automatically submit itself. If not, click the submit " "button to go to your OpenID provider." msgstr "" +"Skjemaet burde automatisk sendast inn av seg sjølv. Om det ikkje gjer det, " +"kann du klikka pÃ¥ knappen for Ã¥ gÃ¥ til OpenID-tilbydaren din." #: ../actions/finishopenidlogin.php:56 actions/finishopenidlogin.php:61 #: actions/finishopenidlogin.php:67 @@ -2322,13 +2335,16 @@ msgid "" "to a local account. You can either create a new account, or connect with " "your existing account, if you have one." msgstr "" +"Dette er den fyrste gongen du hev logga inn pÃ¥ %s, so vi mÃ¥ kopla din OpenID " +"til den lokale kontoen din. Du kann anten laga ein ny konto, eller kopla " +"til ein eksisterande konto, om du hev ein frÃ¥ før." #: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586 #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Dette krev anten ein POST eller DELETE." #: ../actions/twitapiaccount.php:65 ../actions/twitapifriendships.php:44 #: ../actions/twitapistatuses.php:381 actions/twitapiaccount.php:63 @@ -2337,11 +2353,11 @@ msgstr "" #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 #: actions/twitapistatuses.php:244 msgid "This method requires a POST." -msgstr "" +msgstr "Dette krev ein POST." #: ../lib/util.php:164 lib/util.php:246 msgid "This page is not available in a media type you accept" -msgstr "" +msgstr "Denne sida er ikkje tilgjengeleg i nokon mediatype du aksepterer." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:138 @@ -2351,7 +2367,7 @@ msgstr "Tidssone" #: ../actions/profilesettings.php:107 actions/profilesettings.php:222 #: actions/profilesettings.php:211 msgid "Timezone not selected." -msgstr "" +msgstr "Tidssone er ikkje valt." #: ../actions/remotesubscribe.php:43 #, php-format @@ -2360,22 +2376,26 @@ msgid "" "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" +"For Ã¥ tinga kann du [logga inn](%%action.login%%), eller " +"[registrera](%%action.register%%) ein ny konto. Um du allereie hev ein " +"konto pÃ¥ ei [kompatibel mikrobloggingside](%%doc.openmublog%%), kann du " +"oppgje URLen til profilen under." #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 msgid "Two user ids or screen_names must be supplied." -msgstr "" +msgstr "To brukar IDer eller kallenamn er naudsynte." #: ../actions/profilesettings.php:48 ../actions/register.php:169 #: actions/profilesettings.php:81 actions/register.php:183 #: actions/profilesettings.php:109 msgid "URL of your homepage, blog, or profile on another site" -msgstr "" +msgstr "URL til heimesida di, bloggen din, eller ein profil pÃ¥ ei anna side." #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 msgid "URL of your profile on another compatible microblogging service" -msgstr "" +msgstr "URL til profilsida di pÃ¥ ei anna kompatibel mikrobloggingteneste." #: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 #: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 @@ -2386,33 +2406,35 @@ msgstr "" #: actions/imsettings.php:214 actions/recoverpassword.php:44 #: actions/smssettings.php:236 actions/twittersettings.php:302 msgid "Unexpected form submission." -msgstr "" +msgstr "Uventa skjemasending." #: ../actions/recoverpassword.php:276 actions/recoverpassword.php:289 #: actions/recoverpassword.php:323 msgid "Unexpected password reset." -msgstr "" +msgstr "Uventa passordnullstilling." #: ../index.php:57 index.php:57 actions/recoverpassword.php:202 msgid "Unknown action" -msgstr "" +msgstr "Uventa handling." #: ../actions/finishremotesubscribe.php:58 #: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61 msgid "Unknown version of OMB protocol." -msgstr "" +msgstr "Ukjend versjon av OMB-protokollen." #: ../lib/util.php:269 lib/util.php:285 msgid "" "Unless otherwise specified, contents of this site are copyright by the " "contributors and available under the " msgstr "" +"Vist anna ikkje er spesifert er innhaldet pÃ¥ denne sida opphavsrettslig " +"beskyttet av bidragsytaren og er tilgjengleg under " #: ../actions/confirmaddress.php:48 actions/confirmaddress.php:48 #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" -msgstr "" +msgstr "Ukjend adressetype %s" #: ../actions/showstream.php:209 actions/showstream.php:219 #: lib/unsubscribeform.php:137 @@ -2423,39 +2445,39 @@ msgstr "Fjern tinging" #: actions/postnotice.php:45 actions/updateprofile.php:46 #: actions/postnotice.php:48 actions/updateprofile.php:49 msgid "Unsupported OMB version" -msgstr "" +msgstr "Støttar ikkje OMB-versjonen" #: ../actions/avatar.php:105 actions/profilesettings.php:342 #: lib/imagefile.php:102 msgid "Unsupported image file format." -msgstr "" +msgstr "Støttar ikkje bileteformatet." #: ../lib/settingsaction.php:100 lib/settingsaction.php:94 #: lib/connectsettingsaction.php:108 msgid "Updates by SMS" -msgstr "" +msgstr "Oppdateringar over SMS" #: ../lib/settingsaction.php:103 lib/settingsaction.php:97 #: lib/connectsettingsaction.php:105 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Oppdateringar over direktemeldingar (IM)" #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 #: actions/twitapistatuses.php:129 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "Oppdateringar frÃ¥ %1$s og vener pÃ¥ %2$s!" #: ../actions/twitapistatuses.php:341 actions/twitapistatuses.php:268 #: actions/twitapistatuses.php:202 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Oppdateringar frÃ¥ %1$s pÃ¥ %2$s!" #: ../actions/avatar.php:68 actions/profilesettings.php:161 #: actions/avatarsettings.php:162 actions/grouplogo.php:232 msgid "Upload" -msgstr "Lasta opp" +msgstr "Last opp" #: ../actions/avatar.php:27 msgid "" @@ -2464,25 +2486,32 @@ msgid "" "site license, also. Use a picture that belongs to you and that you want to " "share." msgstr "" +"Last opp ein ny «avatar» (brukarbilete) her. Du kan ikkje redigera bilete " +"etter du har lasta det opp, so sørg for at det er meir eller mindre " +"firkanta. Det mÃ¥ ogso vera under den same lisensen. Nytta eit bilete som " +"tilhøyrer deg, og som du vil dela." #: ../lib/settingsaction.php:91 msgid "Upload a new profile image" -msgstr "Last opp eit nytt brukarbilete" +msgstr "Last opp eit nytt profilbilete" #: ../actions/invite.php:114 actions/invite.php:121 actions/invite.php:154 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"Bruk dette skjemaet for Ã¥ invitera vener og kolleger til Ã¥ nytta denne " +"tenesta." #: ../actions/register.php:159 ../actions/register.php:162 #: actions/register.php:173 actions/register.php:176 msgid "Used only for updates, announcements, and password recovery" msgstr "" +"Blir berre brukt for uppdateringar, viktige meldingar og for gløymde passord" #: ../actions/finishremotesubscribe.php:86 #: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 msgid "User being listened to doesn't exist." -msgstr "" +msgstr "Brukaren du lyttar til eksisterer ikkje." #: ../actions/all.php:41 ../actions/avatarbynickname.php:48 #: ../actions/foaf.php:47 ../actions/replies.php:41 @@ -2500,7 +2529,7 @@ msgstr "" #: actions/twitapistatuses.php:503 actions/twitapiusers.php:55 #: actions/usergroups.php:99 lib/galleryaction.php:67 lib/twitterapi.php:626 msgid "User has no profile." -msgstr "" +msgstr "Brukaren har inga profil." #: ../actions/remotesubscribe.php:71 actions/remotesubscribe.php:80 #: actions/remotesubscribe.php:105 @@ -2509,87 +2538,91 @@ msgstr "Brukaren sitt kallenamn" #: ../actions/twitapiusers.php:75 actions/twitapiusers.php:80 msgid "User not found." -msgstr "" +msgstr "Fant ikkje brukaren." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:139 msgid "What timezone are you normally in?" -msgstr "" +msgstr "Kva tidssone er du vanlegvis i?" #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 #, php-format msgid "What's up, %s?" -msgstr "Kva skjer %s?" +msgstr "Kva skjer, %s?" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 #: actions/profilesettings.php:119 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "Kvar er du, t.d. «Stavanger, Rogaland, Noreg»" +msgstr "Kvar er du, t.d. «By, Fylke (eller Region), Land»" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 #: actions/updateprofile.php:132 #, php-format msgid "Wrong image type for '%s'" -msgstr "" +msgstr "Feil biletetype for '%s'" #: ../actions/updateprofile.php:123 actions/updateprofile.php:124 #: actions/updateprofile.php:127 #, php-format msgid "Wrong size image at '%s'" -msgstr "" +msgstr "Feil storleik pÃ¥ biletet, pÃ¥ '%s'" #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 #: actions/deletenotice.php:64 actions/deletenotice.php:79 #: actions/block.php:148 actions/deletenotice.php:122 #: actions/deletenotice.php:141 msgid "Yes" -msgstr "Ja" +msgstr "Jau" #: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64 #: actions/finishaddopenid.php:112 msgid "You already have this OpenID!" -msgstr "" +msgstr "Du hev denne OpenIDen allereie!" #: ../actions/deletenotice.php:37 actions/deletenotice.php:37 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Du er i ferd med Ã¥ sletta ei melding. NÃ¥r den fyrst er sletta, kann du " +"ikkje finne ho att." #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "Du er allereie innlogga." +msgstr "Du er allereie logga inn!" #: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "Du tingar allereie oppdatering frÃ¥ desse brukarane:" #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "" +msgstr "Du er ikkje ven med brukaren." #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" -msgstr "" +msgstr "Du kan endra passord her. Vel eit godt passord!" #: ../actions/register.php:135 actions/register.php:145 msgid "You can create a new account to start posting notices." -msgstr "" +msgstr "Du kan laga ein ny konto og byrja skriva meldingar." #: ../actions/smssettings.php:28 actions/smssettings.php:28 #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Du kan motta SMS-meldingar gjennom e-post frÃ¥ %%site.name%%." #: ../actions/openidsettings.php:86 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." msgstr "" +"Du kan fjerna OpenID frÃ¥ kontoen din ved Ã¥ klikka pÃ¥ knappen som seier " +"«Fjern»." #: ../actions/imsettings.php:28 actions/imsettings.php:28 #, php-format @@ -2597,29 +2630,33 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" +"Du kan sende og motta meldingar gjennom Jabber/GTalk " +"[direktemeldingar](%%doc.im%%). Set opp adressa og innstillingar under." #: ../actions/profilesettings.php:27 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" +"Du kan oppdatera informasjonen i profilen din her, so folk kan vite meir om " +"deg." #: ../actions/finishremotesubscribe.php:31 ../actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:31 actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:33 actions/finishremotesubscribe.php:85 #: actions/finishremotesubscribe.php:101 actions/remotesubscribe.php:35 msgid "You can use the local subscription!" -msgstr "" +msgstr "Du kan nytta det lokale abonnementet!" #: ../actions/finishopenidlogin.php:33 ../actions/register.php:61 #: actions/finishopenidlogin.php:38 actions/register.php:68 #: actions/finishopenidlogin.php:43 msgid "You can't register if you don't agree to the license." -msgstr "" +msgstr "Du kan ikkje registrera deg om du ikkje godtek vilkÃ¥ra i lisensen." #: ../actions/updateprofile.php:63 actions/updateprofile.php:64 #: actions/updateprofile.php:67 msgid "You did not send us that profile" -msgstr "" +msgstr "Du sende oss ikkje den profilen" #: ../lib/mail.php:147 #, php-format @@ -2633,26 +2670,35 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"Du hev ei ny posteadresse pÃ¥ %1½s.\n" +"\n" +"Send e-post til %2$s for Ã¥ posta nyte meldingar.\n" +"\n" +"Fleiere e-postinstruksjonar finn du pÃ¥ %3½s.\n" +"\n" +"Helsing frÃ¥ %4$s" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 #: actions/twitapistatuses.php:463 msgid "You may not delete another user's status." -msgstr "" +msgstr "Du kan ikkje sletta statusen til ein annan brukar." #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "" +msgstr "Du mÃ¥ verta logga inn for Ã¥ invitera andre brukarar til %s" #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Du vil fÃ¥ ein notis nÃ¥r dei du har invitert har akseptert invitasjonen og " +"har registrert seg pÃ¥ sida. Takk for Ã¥ bidra til fellesskapet her!" #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " -msgstr "" +msgstr "Du har blitt identifisert. Skriv inn eit nytt passord under her." #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 #: actions/openidlogin.php:104 @@ -2661,7 +2707,7 @@ msgstr "Din OpenID" #: ../actions/recoverpassword.php:164 msgid "Your nickname on this server, or your registered email address." -msgstr "" +msgstr "Ditt kallenamn pÃ¥ denne servere, eller din registrerte epost addresse." #: ../actions/openidsettings.php:28 #, php-format @@ -2669,6 +2715,8 @@ msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" +"[OpenID](%%doc.openid%%) lar deg logge inn pÃ¥ mangen sider med den samme " +"brukar kontoen. Velikehold dine OpenID herfra." #: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 msgid "a few seconds ago" @@ -2696,7 +2744,7 @@ msgstr "~%d mÃ¥nadar sidan" #: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 msgid "about a day ago" -msgstr "Omtrent ein dag sidan" +msgstr "omtrent ein dag sidan" #: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 msgid "about a minute ago" @@ -2739,10 +2787,9 @@ msgstr "same passord som ovanfor" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 #: actions/twitapistatuses.php:555 msgid "unsupported file type" -msgstr "" +msgstr "ikkje støtta fil type" #: ../lib/util.php:1309 lib/util.php:1443 -#, fuzzy msgid "« After" msgstr "« Etter" @@ -2760,53 +2807,53 @@ msgstr "« Etter" #: actions/openidlogin.php:37 actions/recoverpassword.php:316 #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "Der var eit problem med sesjonen din. Vennlegst prøv pÃ¥ nytt." #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Denne notisen er ikkje ein favoritt!" #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Kunne ikkje slette favoritt." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Tjeneste" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Send meg ein epost nÃ¥r nokon legg til ein av mine notisar som favoritt." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Send meg ein epost nÃ¥r nokon sender meg ei privat melding." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Denne notisen er alt ein favoritt!" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "Kunne ikkje lagre favoritt." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "Fjern favoritt" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "%s sine favorittar" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "Favoritt straum for %s" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format @@ -2820,7 +2867,7 @@ msgstr "Innboks for %s" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "Dette er innboksen for dine private meldingar." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2828,34 +2875,36 @@ msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" msgstr "" +"%1$s har invitert deg til Ã¥ bli med dei pÃ¥ %2$s (%3$s).\n" +"\n" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Logg inn automatisk i framtida;" #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "Av Ã¥syn til tryggleiken, skriv inn" #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Logg inn med ditt brukarnamn og passord." #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "Det er for langt. Ein notis kan berre være 140 teikn." #: actions/newmessage.php:65 actions/newmessage.php:128 msgid "No recipient specified." -msgstr "" +msgstr "Ingen mottakar spesifisert." #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "Du kan ikkje sende melding til denne brukaren." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 @@ -2863,11 +2912,13 @@ msgstr "" msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" +"Ikkje send ei melding til deg sjølv; berre sei det til deg sjølv stille og " +"fredleg." #: actions/newmessage.php:108 actions/microsummary.php:62 #: actions/newmessage.php:163 msgid "No such user" -msgstr "" +msgstr "Ingen slik brukar" #: actions/newmessage.php:117 actions/newmessage.php:67 msgid "New message" @@ -2875,48 +2926,49 @@ msgstr "Ny melding" #: actions/noticesearch.php:95 actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "Notis utan tiløyrande profil" #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[OpenID](%%doc.openid%%) lar deg logge inn til mangen sider" #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "Vist du ønskjer Ã¥ legge til ein OpenID til din konto," #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "Ved Ã¥ fjerne din einaste OpenID vil gjere det umuleg Ã¥ logge inn!" #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "Du kan fjerne ein OpenID fra din konto." #: actions/outbox.php:28 actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "Utboks for %s - side %d" #: actions/outbox.php:30 actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Utboks for %s" #: actions/outbox.php:53 actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "Dette er din utboks som syner alle private meldingar du har sendt." #: actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " msgstr "" +"Søk etter folk pÃ¥ %%site.name%% etter deira namn, lokasjon eller interesser." #: actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" +msgstr "Du kan oppdatere din personlege profil her" #: actions/profilesettings.php:115 actions/remotesubscribe.php:320 #: actions/userauthorization.php:159 actions/userrss.php:76 @@ -2924,35 +2976,35 @@ msgstr "" #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 msgid "User without matching profile" -msgstr "" +msgstr "Kan ikkje finne brukar" #: actions/recoverpassword.php:91 actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "Godkjenningskoden er for gammal." #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "Vist du har gløymt eller mista ditt" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "Du har blitt identifisert. Skriv inn" #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "Ditt kallenamn pÃ¥ denne serveren," #: actions/recoverpassword.php:271 actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "Instruksjonar for Ã¥ hente fram passordet ditt" #: actions/recoverpassword.php:327 actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "Nytt passord lagra." #: actions/register.php:95 actions/register.php:180 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Passord mÃ¥ være minst 6 teikn." #: actions/register.php:216 #, php-format @@ -2960,43 +3012,45 @@ msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." msgstr "" +"Gratulerer, %s! Og velkomen til %%%%site.name%%%%. HerfrÃ¥ kann det hende " +"du vil..." #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(Du burde motteke ein e-post snart, med" #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "For Ã¥ tinga mÃ¥ du [logga inn](%%action.login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "Straum for %s sine favorittar" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Kunne ikkje hente fram favorittane." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "Kan ikkje finne den meldinga." #: actions/showmessage.php:42 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Kun sendaren og mottakaren kan lese denne meldinga." #: actions/showmessage.php:61 actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Melding til %1$s pÃ¥ %2$s" #: actions/showmessage.php:66 actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Melding fra %1$s pÃ¥ %2$s" #: actions/showstream.php:154 msgid "Send a message" @@ -3005,26 +3059,26 @@ msgstr "Send ei melding" #: actions/smssettings.php:312 actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "Tenestetilbydar for telefonen din." #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "Direkte meldingar til %s" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Alle direkte meldingar sendt til %s" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "Alle direkte meldingar du har sendt" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Alle direkte meldingar sendt fra %s" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 @@ -3034,28 +3088,28 @@ msgstr "Inga meldingstekst!" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 msgid "Recipient user not found." -msgstr "" +msgstr "Kunne ikkje finne mottakar." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "Kan ikkje senda direktemeldingar til brukarar som du ikkje er ven med." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / Favorittar frÃ¥ %s" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s oppdateringar favorisert av %s / %s." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s la til di melding som ein favoritt" #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3064,11 +3118,15 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s la akkurat til di melding frÃ¥ %2$s som ein av deira favorittar.\n" +"\n" #: actions/twittersettings.php:27 msgid "" "Add your Twitter account to automatically send your notices to Twitter, " msgstr "" +"Legg til Twitter-kontoen din for Ã¥ automatisk senda dine uppdateringar til " +"Twitter," #: actions/twittersettings.php:41 actions/twittersettings.php:60 msgid "Twitter settings" @@ -3121,12 +3179,12 @@ msgstr "Twitter-informasjonen fungerer ikkje mot Twitter." #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "Klarte ikkje Ã¥ hente informasjon fra kontoen din, «%s», frÃ¥ Twitter." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "Klarte ikkje Ã¥ lagra Twitter-innstillingane dine!" #: actions/twittersettings.php:174 actions/twittersettings.php:376 msgid "Twitter settings saved." @@ -3149,39 +3207,39 @@ msgstr "Fjerna Twitter-brukar." #: actions/twittersettings.php:428 actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "Klarte ikkje Ã¥ lagra Twitter-innstillingar." #: actions/twittersettings.php:245 actions/twittersettings.php:461 msgid "Twitter preferences saved." -msgstr "" +msgstr "Twitter-innstillingar lagra." #: actions/userauthorization.php:84 actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "Ver venleg Ã¥ sjekke denne informasjonen for Ã¥ forsikra um at" #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "Abonnementet blei godkjend, men ingen" #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "Abonnementet blei avslÃ¥dd, men ingen" #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 msgid "Command results" -msgstr "" +msgstr "Resultat frÃ¥ kommandoen" #: classes/Channel.php:148 classes/Channel.php:204 msgid "Command complete" -msgstr "" +msgstr "Kommandoen utførd" #: classes/Channel.php:158 classes/Channel.php:215 msgid "Command failed" -msgstr "" +msgstr "Kommandoen feila" #: classes/Command.php:39 classes/Command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Orsak, men kommandoen er ikkje laga enno." #: classes/Command.php:96 classes/Command.php:113 #, php-format @@ -3195,7 +3253,7 @@ msgstr "Brukaren har ikkje siste notis" #: classes/Command.php:146 classes/Command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "Notis markert som favoritt." #: classes/Command.php:166 classes/Command.php:189 #, php-format @@ -3225,20 +3283,20 @@ msgstr "Om: %s" #: classes/Command.php:200 classes/Command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" #: classes/Command.php:214 classes/Command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "Direkte melding til %s sendt" #: classes/Command.php:216 classes/Command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "Ein feil oppstod ved sending av direkte melding." #: classes/Command.php:263 classes/Command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "Spesifer namnet til brukaren du vil tinge" #: classes/Command.php:270 classes/Command.php:307 #, php-format @@ -3247,7 +3305,7 @@ msgstr "Tingar %s" #: classes/Command.php:288 classes/Command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "Spesifer namnet til brukar du vil fjerne tinging pÃ¥" #: classes/Command.php:295 classes/Command.php:335 #, php-format @@ -3257,7 +3315,7 @@ msgstr "Tingar ikkje %s lengre" #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 #: classes/Command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "Kommando ikkje implementert." #: classes/Command.php:313 classes/Command.php:356 msgid "Notification off." @@ -3281,15 +3339,15 @@ msgstr "Komandoar:\n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "Kunne ikkje lagre melding." #: classes/Message.php:63 classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "Kunne ikkje oppdatere melding med ny URI." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "Kunne ikkje finne ein brukar med den profilen i systemet." #: lib/mail.php:147 lib/mail.php:289 #, php-format @@ -3297,11 +3355,13 @@ msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"Du har ei ny addresse Ã¥ sende til pÃ¥ %1$s.\n" +"\n" #: lib/mail.php:249 lib/mail.php:508 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Ny privat melding fra %s" #: lib/mail.php:253 lib/mail.php:512 #, php-format @@ -3309,23 +3369,25 @@ msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"%1$s (%2$s) sendte deg ei privat melding: \n" +"\n" #: lib/mailbox.php:43 lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Kun brukaren kan lese sine eigne meldingar." #: lib/openid.php:195 lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "Dette skjemaet vil automatisk bli sendt." #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Favorittar" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "%s's favoritt meldingar" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" @@ -3364,33 +3426,32 @@ msgid "Could not parse message." msgstr "Kunne ikkje prosessera melding." #: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#, php-format msgid "%s and friends, page %d" -msgstr "%s med vener" +msgstr "%s med vener, side %d" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "Du kan laste opp ein personleg avatar." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "Twitter-innstillingar" +msgstr "Avatar-innstillingar" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "Original" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "Forhandsvis" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 msgid "Crop" -msgstr "" +msgstr "Skaler" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3402,606 +3463,553 @@ msgstr "" #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "Der var eit problem med sesjonen." #: actions/avatarsettings.php:303 actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Velg eit utvalg av bildet som vil blir din avatar." #: actions/avatarsettings.php:327 actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "Fant ikkje igjen fil data." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 -#, fuzzy msgid "Lost our file." -msgstr "Denne notisen finst ikkje." +msgstr "Mista fila vÃ¥r." #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 #: classes/User_group.php:129 classes/User_group.php:161 msgid "Unknown file type" -msgstr "" +msgstr "Ukjend fil type" #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 -#, fuzzy msgid "No profile specified." -msgstr "Ingen mobiloperatør vald." +msgstr "Ingen vald profil." #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 #: actions/unblock.php:75 -#, fuzzy msgid "No profile with that ID." -msgstr "Fann ingen status med den ID-en." +msgstr "Fann ingen profil med den IDen." #: actions/block.php:111 -#, fuzzy msgid "Block user" -msgstr "Brukaren finst ikkje." +msgstr "Blokker brukaren" #: actions/block.php:129 -#, fuzzy msgid "Are you sure you want to block this user? " -msgstr "Sikker pÃ¥ at du vil sletta notisen?" +msgstr "Er du sikker pÃ¥ at du vil blokkera denne brukaren?" #: actions/block.php:162 -#, fuzzy msgid "You have already blocked this user." -msgstr "Du er allereie innlogga." +msgstr "Du har allereie blokkert denne brukaren." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "Lagring av informasjon feila." #: actions/confirmaddress.php:159 -#, fuzzy, php-format +#, php-format msgid "The address \"%s\" has been " -msgstr "Addressa blei fjerna." +msgstr "Addressa «%s» blei" #: actions/deletenotice.php:73 -#, fuzzy msgid "You are about to permanently delete a notice. " -msgstr "Sikker pÃ¥ at du vil sletta notisen?" +msgstr "Du er i ferd med Ã¥ fjerne ein oppdatering for godt." #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Legg til i favorittar" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "Rediger %s gruppa" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "Innboks mÃ¥ være slÃ¥tt pÃ¥ for at grupper skal virke" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Du mÃ¥ være logga inn for Ã¥ lage ei gruppe." #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "Ingen kallenamn." +msgstr "Ingen kallenamn" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 #: actions/showgroup.php:128 -#, fuzzy msgid "No such group" -msgstr "Denne notisen finst ikkje." +msgstr "Fann ikkje gruppa" #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "Du mÃ¥ være administrator for Ã¥ redigere gruppa" #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "Bruk dette skjemaet for Ã¥ redigere gruppa" #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "Kallenamn mÃ¥ berre ha smÃ¥ bokstavar og nummer, ingen mellomrom." +msgstr "Kallenamn kann berre ha smÃ¥ bokstavar" #: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy msgid "description is too long (max 140 chars)." -msgstr "«Om meg» er for lang (maks 140 " +msgstr "skildringa er for lang (maks 140 teikn)." #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Kan ikkje oppdatera brukar." +msgstr "Kann ikkje oppdatera gruppa." #: actions/editgroup.php:226 -#, fuzzy msgid "Options saved." msgstr "Lagra innstillingar." #: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "Ventar pÃ¥ godkjenning for dette telefonnummeret." +msgstr "Ventar pÃ¥ godkjenning for denne adressa." #: actions/emailsettings.php:139 actions/smssettings.php:150 -#, fuzzy msgid "Make a new email address for posting to; " -msgstr "Ny epostadresse for Ã¥ oppdatera %s" +msgstr "Lag ei ny e-postadresse for Ã¥ posta til;" #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "Send meg ein epost nÃ¥r nokon " #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Tillat vennar Ã¥ sende meg ein epost." #: actions/emailsettings.php:321 -#, fuzzy msgid "That email address already belongs " -msgstr "Den epost addressa er alt registrert hos ein annan brukar." +msgstr "Den e-postadressa er alt registrert hjÃ¥" #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " -msgstr "" -"Sendte konfirmasjonskode til ljonmeldingsadressa du la til. Du mÃ¥ godtaka %" -"sfor Ã¥ senda meldinger til deg." +msgstr "Sendte konfirmasjonskode til e-postadresse du la til." #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "Server feil - kunne ikkje hente brukar!" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "Vist du ønskjer at %s applikasjon skal automatisk oppgradere" #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Tillat %s Ã¥ oppdatere min Facebook status" #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "Hopp over" #: actions/facebookhome.php:235 -#, fuzzy msgid "No notice content!" msgstr "Ingen innhald." #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "Paginering" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 -#, fuzzy msgid "After" msgstr "« Etter" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy msgid "Before" msgstr "Før »" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "Takk for at du inviterar vennane dine til Ã¥ bruke %s" #: actions/facebookinvite.php:72 -#, fuzzy msgid "Invitations have been sent to the following users:" msgstr "Invitasjon(er) sendt til fylgjande folk:" #: actions/facebookinvite.php:96 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "Du har blitt invitert til %s" #: actions/facebookinvite.php:105 -#, fuzzy, php-format +#, php-format msgid "Invite your friends to use %s" -msgstr "Straum for vener av %s" +msgstr "Inviter venane dine til Ã¥ nytta %s" #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Vennar som alt brukar %s:" #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "Send invitasjonar" #: actions/facebookremove.php:56 -#, fuzzy msgid "Couldn't remove Facebook user." -msgstr "Kunne ikkje fjerna Twitter-brukar." +msgstr "Kunne ikkje fjerna Facebook-brukar." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "Der oppstod eit problem med Ã¥ lagre synkroniserings innstillingane!" #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." -msgstr "Lagra brukarval." +msgstr "Synkroniserings innstillingar blei lagra." #: actions/facebooksettings.php:90 -#, fuzzy msgid "Automatically update my Facebook status with my notices." -msgstr "Send mine notisar til Twitter." +msgstr "Automatisk uppdater Facebook-statusen min med nye uppdateringar." #: actions/facebooksettings.php:97 -#, fuzzy msgid "Send \"@\" replies to Facebook." -msgstr "Send lokale «@»-svar til Twitter." +msgstr "Send lokale «@»-svar til Facebook." #: actions/facebooksettings.php:106 -#, fuzzy msgid "Prefix" -msgstr "Profil" +msgstr "Førestaving" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Ein tekst Ã¥ legge til før alle notisar." #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "Vist du ønskjer at %s skal atuomatisk oppdatere" #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" -msgstr "Brukarval" +msgstr "Synkronisering" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Fjern favoritt" #: actions/favorited.php:65 lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 -#, fuzzy msgid "Popular notices" -msgstr "Denne notisen finst ikkje." +msgstr "Populære notisar" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "Denne notisen finst ikkje." +msgstr "Populære notisar, side %d" #: actions/favorited.php:79 -#, fuzzy msgid "The most popular notices on the site right now." -msgstr "Viser dei mest populære merkelappane fra siste veka" +msgstr "Viser dei mest populære notisane pÃ¥ sida akkurat no." #: actions/featured.php:69 lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 msgid "Featured users" -msgstr "" +msgstr "Profilerte folk" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Profilerte folk, side %d" #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "Eit utval av nokre av dei flotte folka pÃ¥ %s" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Brukaren tillet deg ikkje Ã¥ tinga meldingane sine." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "Ingen ID" #: actions/grouplogo.php:138 actions/grouplogo.php:191 msgid "Group logo" -msgstr "" +msgstr "Logo Ã¥t gruppa" #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "Du kan lasta opp ein logo for gruppa." #: actions/grouplogo.php:448 -#, fuzzy msgid "Logo updated." -msgstr "Lasta opp brukarbilete." +msgstr "Logo oppdatert." #: actions/grouplogo.php:450 -#, fuzzy msgid "Failed updating logo." -msgstr "Feil ved oppdatering av brukarbilete." +msgstr "Feil ved oppdatering av logo." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "%s medlemmar i gruppa" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "%s medlemmar i gruppa, side %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "Ei liste over brukarane i denne gruppa." #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "Grupper" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Grupper, side %d" #: actions/groups.php:90 #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " -msgstr "" +msgstr "%%%%site.name%%%% grupper lar deg finne og snakke med" #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 -#, fuzzy msgid "Create a new group" -msgstr "Opprett ny konto" +msgstr "Opprett ei ny gruppe" #: actions/groupsearch.php:57 -#, fuzzy, php-format +#, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " -msgstr "" -"Søk for mennesker pÃ¥ %%site.name%% i namn, lokasjon eller interesse. Separer " -"nøkkelord med mellomrom; dei mÃ¥ være minimum 3 bokstavar eller meir." +msgstr "Søk etter grupper pÃ¥ %%site.name%% etter namn, stad eller skildring." #: actions/groupsearch.php:63 -#, fuzzy msgid "Group search" -msgstr "Søk etter folk" +msgstr "Gruppesøk" #: actions/imsettings.php:70 msgid "You can send and receive notices through " -msgstr "" +msgstr "Du kan sende og motta meldingar gjennom" #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "Jabber eller GTalk addresse," #: actions/imsettings.php:147 -#, fuzzy msgid "Send me replies through Jabber/GTalk " -msgstr "Send meg ein notis via Jabber/GTalk." +msgstr "Send meg svar pÃ¥ Jabber/GTalk." #: actions/imsettings.php:321 -#, fuzzy, php-format +#, php-format msgid "A confirmation code was sent " -msgstr "Ingen stadfestingskode." +msgstr "Ein stadfestingskode vart sendt" #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Du mÃ¥ være logga inn for Ã¥ bli med i ei gruppe." #: actions/joingroup.php:95 -#, fuzzy msgid "You are already a member of that group" -msgstr "Du er allereie innlogga." +msgstr "Du er allereie medlem av den gruppa" #: actions/joingroup.php:128 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" +msgstr "Kunne ikkje melde brukaren %s inn i gruppa %s" #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s blei medlem av gruppe %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "Innboks mÃ¥ være slÃ¥tt pÃ¥ for at grupper skal kunne fungere." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Du mÃ¥ være innlogga for Ã¥ melde deg ut av ei gruppe." #: actions/leavegroup.php:88 -#, fuzzy msgid "No such group." -msgstr "Denne notisen finst ikkje." +msgstr "Denne gruppa finst ikkje." #: actions/leavegroup.php:95 -#, fuzzy msgid "You are not a member of that group." -msgstr "Kan ikkje tinga andre til deg." +msgstr "Du er ikkje medlem av den gruppa." #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "Du kan ikkje melde deg ut av ei gruppe nÃ¥r du er administrator i den." #: actions/leavegroup.php:130 -#, fuzzy msgid "Could not find membership record." -msgstr "Kan ikkje oppdatera brukarinformajon." +msgstr "Kan ikkje finne brukar." #: actions/leavegroup.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" +msgstr "Kunne ikkje fjerne %s fra %s gruppa " #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s forlot %s gruppa" #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "Logg inn " #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "Ingen status" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Ny gruppe" #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "Bruk dette skjemaet for Ã¥ lage ein ny gruppe." #: actions/newgroup.php:177 -#, fuzzy msgid "Could not create group." -msgstr "Kan ikkje lagra brukarbilete-informasjon" +msgstr "Kunne ikkje laga gruppa." #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." -msgstr "Kan ikkje sletta tinging." +msgstr "Kunne ikkje bli med i gruppa." #: actions/newmessage.php:119 actions/newnotice.php:132 -#, fuzzy msgid "That's too long. " -msgstr "Fila er for stor." +msgstr "Det er for langt." #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "Ikkje send melding til deg sjølv;" #: actions/newnotice.php:166 -#, fuzzy msgid "Notice posted" -msgstr "Notisar" +msgstr "Melding lagra" #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" -msgstr "" +msgstr "Ajax feil" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"Denne brukaren tillét ikkje Ã¥ bli dytta, eller har ikkje stadfasta eller sat " +"e-postadressa si enno." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Dytta!" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Dytta!" #: actions/openidlogin.php:97 -#, fuzzy msgid "OpenID login" -msgstr "OpenID-adresse" +msgstr "OpenID-innlogging" #: actions/openidsettings.php:128 -#, fuzzy msgid "Removing your only OpenID " -msgstr "Fjern OpenID" +msgstr "Fjernar din einaste OpenID" #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "Twitter-innstillingar" +msgstr "Andre innstillingar" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "Velikehald andre innstillingar" #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "URL forkorting" #: actions/othersettings.php:112 -#, fuzzy msgid "Service" -msgstr "Søk" +msgstr "Teneste" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "Den automatisk forkortingstenesta du vil bruke" #: actions/othersettings.php:144 -#, fuzzy msgid "URL shortening service is too long (max 50 chars)." -msgstr "SprÃ¥k er for langt (maksimalt 50 teikn)." +msgstr "Adressa til forkortingstenesta er for lang (maksimalt 50 teikn)." #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." msgstr "Endra passordet ditt" #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" -msgstr "Lagra passord." +msgstr "Endra passord" #: actions/peopletag.php:35 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s" -msgstr "Ikkje ei gyldig epostadresse" +msgstr "Ikkje gyldig merkelapp: %s" #: actions/peopletag.php:47 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "Brukarar sjølv-merka med %s, side %d" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "Desse brukarane har merka seg sjølve med «%s»" #: actions/profilesettings.php:91 -#, fuzzy msgid "Profile information" -msgstr "Ukjend profil" +msgstr "Profil informasjon" #: actions/profilesettings.php:124 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" +"merkelappar for deg sjølv ( bokstavar, nummer, -, ., og _ ), komma eller " +"mellomroms separert." #: actions/profilesettings.php:144 -#, fuzzy msgid "Automatically subscribe to whoever " -msgstr "" -"Automatisk ting notisane til dei som tingar mine (best for ikkje-menneskje)" +msgstr "Automatisk tinging av alle som" #: actions/profilesettings.php:229 actions/tagother.php:176 -#, fuzzy, php-format +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "Ugyldig heimeside «%s»" +msgstr "Ugyldig merkelapp: %s" #: actions/profilesettings.php:311 -#, fuzzy msgid "Couldn't save tags." -msgstr "Kan ikkje lagra profil." +msgstr "Kan ikkje lagra merkelapp." #: actions/public.php:107 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "Offentleg tidsline" +msgstr "Offentleg tidsline, side %d" #: actions/public.php:173 -#, fuzzy msgid "Could not retrieve public stream." -msgstr "Kan ikkje tinga." +msgstr "Kan ikkje hente offentleg straum." #: actions/public.php:220 #, php-format @@ -4009,136 +4017,127 @@ msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service " msgstr "" +"Dette er %%site.name%%, ei [mikroblogging](http://en.wikipedia.org/wiki" +"/Micro-blogging)-teneste" #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Offentleg straum" +msgstr "Offentleg emne sky" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Dei mest populære emna pÃ¥ %s" #: actions/publictagcloud.php:119 msgid "Tag cloud" -msgstr "" +msgstr "Emne sky" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Beklage, men kun inviterte kan registrere seg." #: actions/register.php:149 msgid "You can't register if you don't " -msgstr "" +msgstr "Du kan ikkje registrera om du ikkje" #: actions/register.php:286 msgid "With this form you can create " -msgstr "" +msgstr "Med dette skjemaet kan du laga" #: actions/register.php:368 -#, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "" -"1-64 smÃ¥ bokstavar eller tal, ingen punktum (og liknande) eller mellomrom" +msgstr "1-64 smÃ¥ bokstavar eller tal," #: actions/register.php:382 actions/register.php:386 msgid "Used only for updates, announcements, " -msgstr "" +msgstr "Berre nytta for oppdatering, annonseringar," #: actions/register.php:398 msgid "URL of your homepage, blog, " -msgstr "" +msgstr "URL til heimesida, bloggen," #: actions/register.php:404 -#, fuzzy msgid "Describe yourself and your " -msgstr "Skriv om deg og interessene dine med 140 teikn" +msgstr "Skildra deg sjølv og din" #: actions/register.php:410 -#, fuzzy msgid "Where you are, like \"City, " -msgstr "Kvar er du, t.d. «Stavanger, Rogaland, Noreg»" +msgstr "Kvar er du, t.d. «Stad, Fylke, Land»" #: actions/register.php:432 -#, fuzzy msgid " except this private data: password, " -msgstr "" -" unnateke privat data: passord, epostadresse, ljonmeldingsadresse og " -"telefonnummer." +msgstr " unnateke privat data: passord," #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "Gratulerer, %s! Og velkomen til %%%%site.name%%%%." #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(Du skal fÃ¥ ein beskjed via epost )" #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "Det er ikkje ein lokal profil! Log inn for Ã¥ tinge." #: actions/replies.php:118 -#, fuzzy, php-format +#, php-format msgid "Replies to %s, page %d" -msgstr "Svar til %s" +msgstr "Svar til %s, side %d" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "%s favoritt meldingar, side %d" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "%s gruppe" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "%s gruppe, side %d" #: actions/showgroup.php:206 -#, fuzzy msgid "Group profile" -msgstr "Denne notisen finst ikkje." +msgstr "Gruppe profil" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 msgid "URL" -msgstr "" +msgstr "URL" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy msgid "Note" -msgstr "Notisar" +msgstr "Merknad" #: actions/showgroup.php:270 msgid "Group actions" -msgstr "" +msgstr "Gruppe handlingar" #: actions/showgroup.php:323 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group" -msgstr "Notisstraum for %s" +msgstr "Notisstraum for %s gruppa" #: actions/showgroup.php:357 lib/groupnav.php:90 -#, fuzzy msgid "Members" -msgstr "Medlem sidan" +msgstr "Medlemmar" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(Ingen)" #: actions/showgroup.php:370 msgid "All members" -msgstr "" +msgstr "Alle medlemmar" #: actions/showgroup.php:378 #, php-format @@ -4146,51 +4145,49 @@ msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** er ei brukargruppe pÃ¥ %%%%site.name%%%%, ei " +"[mikroblogging](http://en.wikipedia.org/wiki/Micro-blogging)-teneste" #: actions/showmessage.php:98 msgid "Only the sender and recipient " -msgstr "" +msgstr "Berre sendaren og mottakaren" #: actions/showstream.php:73 -#, fuzzy, php-format +#, php-format msgid "%s, page %d" -msgstr "Innboks for %s - side %d" +msgstr "%s, side %d" #: actions/showstream.php:143 -#, fuzzy msgid "'s profile" -msgstr "Profil" +msgstr " sin profil" #: actions/showstream.php:236 actions/tagother.php:77 -#, fuzzy msgid "User profile" -msgstr "Denne notisen finst ikkje." +msgstr "Brukarprofil" #: actions/showstream.php:240 actions/tagother.php:81 msgid "Photo" -msgstr "" +msgstr "Bilete" #: actions/showstream.php:317 msgid "User actions" -msgstr "" +msgstr "Brukarverkty" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "Send ei direktemelding til denne brukaren" #: actions/showstream.php:343 -#, fuzzy msgid "Message" -msgstr "Ny melding" +msgstr "Melding" #: actions/showstream.php:451 -#, fuzzy msgid "All subscribers" msgstr "Tingarar" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "Alle gruppar" #: actions/showstream.php:542 #, php-format @@ -4198,485 +4195,446 @@ msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** har ein konto pÃ¥ %%%%site.name%%%%, ei " +"[mikroblogging](http://en.wikipedia.org/wiki/Micro-blogging)-teneste" #: actions/smssettings.php:128 -#, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "Telefonnummer, kun tall, med landskode" +msgstr "Telefonnummer, ingen punktum eller mellomrom," #: actions/smssettings.php:162 -#, fuzzy msgid "Send me notices through SMS; " -msgstr "Send meg ein notis via Jabber/GTalk." +msgstr "Send meg notisar pÃ¥ SMS;" #: actions/smssettings.php:335 -#, fuzzy msgid "A confirmation code was sent to the phone number you added. " -msgstr "Ventar pÃ¥ godkjenning for dette telefonnummeret." +msgstr "Ei stadfestingskode vart sendt til telefonnummeret du la til." #: actions/smssettings.php:453 -#, fuzzy msgid "Mobile carrier" -msgstr "Velg ein tilbydar" +msgstr "Telefontilbydar" #: actions/subedit.php:70 -#, fuzzy msgid "You are not subscribed to that profile." -msgstr "Kan ikkje tinga andre til deg." +msgstr "Du tingar ikkje oppdateringar til den profilen." #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "Kan ikkje sletta tinging." +msgstr "Kunne ikkje lagra abonnement." #: actions/subscribe.php:55 -#, fuzzy msgid "Not a local user." -msgstr "Brukaren finst ikkje." +msgstr "Ikkje ein lokal brukar." #: actions/subscribe.php:69 -#, fuzzy msgid "Subscribed" -msgstr "Ting" +msgstr "Abonnent" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "Tingarar" +msgstr "%s tingarar" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "%s tingarar, side %d" #: actions/subscribers.php:63 -#, fuzzy msgid "These are the people who listen to " -msgstr "Dette er folk som lyttar til %s's notisar" +msgstr "Dette er folk som lyttar til" #: actions/subscribers.php:67 -#, fuzzy, php-format +#, php-format msgid "These are the people who " -msgstr "Dette er folk som lyttar til %s's notisar" +msgstr "Dette er folk som" #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "Alle tingingar" +msgstr "%s tingarar" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "Alle tingingar" +msgstr "%s tingingar, side %d" #: actions/subscriptions.php:65 -#, fuzzy msgid "These are the people whose notices " msgstr "Dette er dei du lyttar til." #: actions/subscriptions.php:69 -#, fuzzy, php-format +#, php-format msgid "These are the people whose " -msgstr "Dette er folk som lyttar til %s's notisar" +msgstr "Dette er folk som" #: actions/subscriptions.php:122 -#, fuzzy msgid "Jabber" -msgstr "Nei Jabber-ID" +msgstr "Jabber" #: actions/tag.php:43 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "Notisar merka med %s" +msgstr "Notisar merka med %s, side %d" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "Meldingar merka med «%s», dei siste fyrst" #: actions/tagother.php:33 -#, fuzzy msgid "Not logged in" msgstr "Ikkje logga inn" #: actions/tagother.php:39 -#, fuzzy msgid "No id argument." -msgstr "Slikt dokument finst ikkje." +msgstr "Manglar argumentet ID." #: actions/tagother.php:65 -#, fuzzy, php-format +#, php-format msgid "Tag %s" -msgstr "Merkelappar" +msgstr "Merkelapp %s" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" -msgstr "Merkelappar" +msgstr "Merk brukar" #: actions/tagother.php:149 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Emneord for denne brukaren (bokstavar, tal, <kbd>-</kbd>, <kbd>.</kbd>, og " +"<kbd>_</kbd>, separert med komma eller mellomrom" #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "Det var eit problem med sesjons billetten din." #: actions/tagother.php:191 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Du kan berre leggje til emneord pÃ¥ folk som du tingar notisar frÃ¥, eller som " +"tingar notisar frÃ¥ deg." #: actions/tagother.php:198 -#, fuzzy msgid "Could not save tags." -msgstr "Kan ikkje lagra brukarbilete-informasjon" +msgstr "Kunne ikkje lagra emneord." #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"Bruk dette skjemaet for Ã¥ leggje til emneord til dei som tingar notisar frÃ¥ " +"deg, eller som du tingar notisar frÃ¥." #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Denne notisen finst ikkje." +msgstr "Dette emneord finst ikkje." #: actions/tagrss.php:66 -#, fuzzy, php-format +#, php-format msgid "Microblog tagged with %s" -msgstr "Notisar merka med %s" +msgstr "Mikroblogg merka med emneordet %s" #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "Blokkering av brukar feila." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "De-blokkering av brukar feila." #: actions/twitapiusers.php:48 -#, fuzzy msgid "Not found." -msgstr "Fann ikkje" +msgstr "Finst ikkje." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "Legg til Twitter-kontoen din for Ã¥ automatisk sende" #: actions/twittersettings.php:119 -#, fuzzy msgid "Twitter user name" -msgstr "Brukarnamn pÃ¥ twitter" +msgstr "Brukarnamn hjÃ¥ Twitter" #: actions/twittersettings.php:126 -#, fuzzy msgid "Twitter password" -msgstr "Passord pÃ¥ Twitter" +msgstr "Passord hjÃ¥ Twitter" #: actions/twittersettings.php:228 -#, fuzzy msgid "Twitter Friends" -msgstr "Twitter-innstillingar" +msgstr "Vener pÃ¥ Twitter" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "Brukarnamn kan berre innehalde tal," #: actions/twittersettings.php:341 -#, fuzzy, php-format +#, php-format msgid "Unable to retrieve account information " -msgstr "Kan ikkje sletta epostgodkjenning." +msgstr "Klarte ikkje Ã¥ hente informasjon om kontoen." #: actions/unblock.php:108 -#, fuzzy msgid "Error removing the block." -msgstr "Feil ved lagring av brukar" +msgstr "Feil ved fjerning av blokka." #: actions/unsubscribe.php:50 -#, fuzzy msgid "No profile id in request." -msgstr "Ingen profil-netadresse returnert av tenar." +msgstr "Ingen profil-ID i førespurnaden." #: actions/unsubscribe.php:57 -#, fuzzy msgid "No profile with that id." -msgstr "Fann ingen status med den ID-en." +msgstr "Fann ingen profil med den IDen." #: actions/unsubscribe.php:71 -#, fuzzy msgid "Unsubscribed" -msgstr "Fjern tinging" +msgstr "Fjerna tinging" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "%s grupper" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "%s grupper, side %d" #: classes/Notice.php:104 -#, fuzzy msgid "Problem saving notice. Unknown user." -msgstr "Feil ved lagring av brukar" +msgstr "Feil ved lagring av notis. Ukjend brukar." #: classes/Notice.php:109 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Du kan ikkje lengre legge inn notisar pÃ¥ denne sida." #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "Feil ved oppdatering av brukarbilete." +msgstr "Last opp ein avatar" #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "Anna" #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "Andre val" #: lib/action.php:130 -#, fuzzy, php-format +#, php-format msgid "%s - %s" -msgstr "%s (%s)" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "Ingen tittel" #: lib/action.php:316 msgid "Primary site navigation" -msgstr "" +msgstr "Navigasjon for hovudsida" #: lib/action.php:322 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Personleg profil og oversyn over vener" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "Søk etter folk eller innhald" #: lib/action.php:328 -#, fuzzy msgid "Account" -msgstr "Om" +msgstr "Konto" #: lib/action.php:328 -#, fuzzy msgid "Change your email, avatar, password, profile" -msgstr "Endra passordet ditt" +msgstr "Endra e-posten, avataren, passordet eller profilen" #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "Kopla til IM, SMS, Twitter" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Logg ut or sida" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Logg inn or sida" #: lib/action.php:338 -#, fuzzy msgid "Create an account" msgstr "Opprett ny konto" #: lib/action.php:341 -#, fuzzy msgid "Login with OpenID" -msgstr "Fann ingen slik OpenID." +msgstr "Logg inn med OpenID" #: lib/action.php:344 -#, fuzzy msgid "Help me!" -msgstr "Hjelp" +msgstr "Hjelp meg!" #: lib/action.php:362 -#, fuzzy msgid "Site notice" -msgstr "Ny notis" +msgstr "Statusmelding" #: lib/action.php:417 msgid "Local views" -msgstr "" +msgstr "Lokale syningar" #: lib/action.php:472 -#, fuzzy msgid "Page notice" -msgstr "Ny notis" +msgstr "Sidenotis" #: lib/action.php:562 -#, fuzzy msgid "Secondary site navigation" -msgstr "Tingingar" +msgstr "AndrenivÃ¥s side navigasjon" #: lib/action.php:602 lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "Laconicas programvarelisens" #: lib/action.php:630 msgid "All " -msgstr "" +msgstr "Alle" #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "lisens." #: lib/blockform.php:123 lib/blockform.php:153 -#, fuzzy msgid "Block this user" -msgstr "Brukaren finst ikkje." +msgstr "Blokkér denne brukaren" #: lib/blockform.php:153 msgid "Block" -msgstr "Blokker" +msgstr "Blokkér" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "Fjern favoriseringsmerket" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "For Ã¥ nytta %s Facebook-programmet mÃ¥ du logga inn" #: lib/facebookaction.php:271 -#, fuzzy msgid " a new account." -msgstr "Opprett ny konto" +msgstr "ein ny konto." #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 msgid "Published" -msgstr "" +msgstr "Publisert" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" -msgstr "Denne notisen finst ikkje." +msgstr "Favoriser denne notisen" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Eksporter data" #: lib/galleryaction.php:121 -#, fuzzy msgid "Filter tags" -msgstr "Straum for merkelapp %s" +msgstr "Filtrer emneord" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Alle" #: lib/galleryaction.php:137 -#, fuzzy msgid "Tag" -msgstr "Merkelappar" +msgstr "Merkelapp" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Velg ein merkelapp for Ã¥ begrense lista" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "GÃ¥" #: lib/groupeditform.php:148 msgid "URL of the homepage or blog of the group or topic" -msgstr "" +msgstr "URL til heimesida eller bloggen for gruppa eller emnet" #: lib/groupeditform.php:151 -#, fuzzy msgid "Description" -msgstr "Tingingar" +msgstr "Beskriving" #: lib/groupeditform.php:153 -#, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Skriv om deg og interessene dine med 140 teikn" +msgstr "Beskriv gruppa eller emnet med 140 teikn" #: lib/groupeditform.php:158 -#, fuzzy msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" msgstr "Kvar er du, t.d. «Stavanger, Rogaland, Noreg»" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" -msgstr "" +msgstr "Gruppe" #: lib/groupnav.php:100 msgid "Admin" -msgstr "" +msgstr "Administrator" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Rediger %s gruppa sine eigenskapar" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "Logg ut" +msgstr "Logo" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Legg til eller rediger logoen til %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Grupper med flest medlemmar" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Grupper med flest innlegg" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Merkelappar i %s gruppa sine notisar" #: lib/htmloutputter.php:104 -#, fuzzy msgid "This page is not available in a " -msgstr "Heimesida er ikkje ei gyldig internettadresse." +msgstr "Denne sida er ikkje tilgjengleg i eit" #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Logg inn" +msgstr "Bli med" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "Lagra" +msgstr "Forlat" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "Ugyldig brukarnamn eller passord." +msgstr "Log inn med brukarnamn og passord." #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" msgstr "Opprett ny konto" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Login eller registrer med OpenID" #: lib/mail.php:175 #, php-format @@ -4684,21 +4642,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Hei, %s\n" +"\n" #: lib/mail.php:236 -#, fuzzy, php-format +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s høyrer no pÃ¥ notisane dine pÃ¥ %2$s." +msgstr "%1$s høyrer no pÃ¥" #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "Stad: %s" +msgstr "Stad: %s\n" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Heimeside: %s" +msgstr "Heimeside: %s\n" #: lib/mail.php:258 #, php-format @@ -4706,176 +4666,160 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"Bio: %s\n" +"\n" #: lib/mail.php:461 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "Du har blitt dulta av %s" #: lib/mail.php:465 #, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" +msgstr "%1$s (%2$s) lurer pÃ¥ kva du gjer pÃ¥" #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s høyrer no pÃ¥ notisane dine pÃ¥ %2$s." +msgstr "%1$s lyttar no til notisane dine pÃ¥ %2$s" #: lib/mailbox.php:229 lib/noticelist.php:380 -#, fuzzy msgid "From" -msgstr " frÃ¥ " +msgstr "FrÃ¥" #: lib/messageform.php:110 -#, fuzzy msgid "Send a direct notice" -msgstr "Slett notis" +msgstr "Send ei direkte melding" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" msgstr "Send ei melding" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" -msgstr "6 eller fleire teikn" +msgstr "Tilgjenglege teikn" #: lib/noticelist.php:426 -#, fuzzy msgid "in reply to" -msgstr "som svar pÃ¥..." +msgstr "som svar pÃ¥" #: lib/noticelist.php:447 lib/noticelist.php:450 -#, fuzzy msgid "Reply to this notice" -msgstr "Kan ikkje sletta notisen." +msgstr "Svar pÃ¥ denne notisen" #: lib/noticelist.php:451 -#, fuzzy msgid "Reply" -msgstr "svar" +msgstr "Svar" #: lib/noticelist.php:471 lib/noticelist.php:474 -#, fuzzy msgid "Delete this notice" -msgstr "Slett notis" +msgstr "Slett denne notisen" #: lib/noticelist.php:474 -#, fuzzy msgid "Delete" -msgstr "slett" +msgstr "Slett" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Dult denne brukaren" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Dult" #: lib/nudgeform.php:128 -#, fuzzy msgid "Send a nudge to this user" -msgstr "Send ei melding" +msgstr "Send eit dult til denne brukaren" #: lib/personaltagcloudsection.php:56 -#, fuzzy, php-format +#, php-format msgid "Tags in %s's notices" -msgstr "Brukaren har ikkje siste notis" +msgstr "Merkelappar i %s sine notisar" #: lib/profilelist.php:182 msgid "(none)" -msgstr "" +msgstr "(ingen)" #: lib/publicgroupnav.php:76 msgid "Public" -msgstr "" +msgstr "Offentleg" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Brukar grupper" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 -#, fuzzy msgid "Recent tags" -msgstr "Nylege merkelappar" +msgstr "Nylege emneord" #: lib/publicgroupnav.php:86 msgid "Featured" -msgstr "" +msgstr "Framheva" #: lib/publicgroupnav.php:90 -#, fuzzy msgid "Popular" -msgstr "Folk" +msgstr "Populære" #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" -msgstr "Notisar" +msgstr "Notis" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" -msgstr "Finn folk pÃ¥ denne sida" +msgstr "Finn grupper pÃ¥ denne sida" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Seksjon utan tittel" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Eksternt abbonement" +msgstr "Mennesker %s tingar" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Tingar %s" +msgstr "Mennesker som tingar %s" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "Grupper %s er medlem av" #: lib/subgroupnav.php:104 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Inviter vennar og kollega til Ã¥ bli med deg pÃ¥ %s" #: lib/subs.php:53 msgid "User has blocked you." msgstr "Brukar har blokkert deg." #: lib/subscribeform.php:115 lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Tingar %s" +msgstr "Lagre tinging for brukar: %s" #: lib/tagcloudsection.php:56 -#, fuzzy msgid "None" -msgstr "Nei" +msgstr "Ingen" #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Med flest meldingar" #: lib/unblockform.php:120 lib/unblockform.php:150 -#, fuzzy msgid "Unblock this user" -msgstr "Brukaren finst ikkje." +msgstr "LÃ¥s opp brukaren" #: lib/unblockform.php:150 msgid "Unblock" msgstr "LÃ¥s opp" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 -#, fuzzy msgid "Unsubscribe from this user" -msgstr "Tingar ikkje %s lengre" +msgstr "Fjern tinging fra denne brukaren" #, fuzzy #~ msgid "Code not yet ready." diff --git a/locale/pl_PL/LC_MESSAGES/laconica.mo b/locale/pl_PL/LC_MESSAGES/laconica.mo Binary files differindex 2d425ab15..9a9cdccf3 100644 --- a/locale/pl_PL/LC_MESSAGES/laconica.mo +++ b/locale/pl_PL/LC_MESSAGES/laconica.mo diff --git a/locale/pl_PL/LC_MESSAGES/laconica.po b/locale/pl_PL/LC_MESSAGES/laconica.po index cc2495a4d..8da9dd59b 100644 --- a/locale/pl_PL/LC_MESSAGES/laconica.po +++ b/locale/pl_PL/LC_MESSAGES/laconica.po @@ -1,43 +1,33 @@ -# #-#-#-#-# laconica.pot (PACKAGE VERSION) #-#-#-#-# -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. +# translation of pl.po to Polish # PaweÅ‚ Wilk <siefca@gnu.org>, 2008. +# Piotr DrÄ…g <piotrdrag@gmail.com>, 2009. # -# #-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-# -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# Polish language has 3 plural forms. +# Special case is used for one and some numbers ending in 2, 3, or 4. +# Example: +# 1 WINDOW -> 1 OKNO +# x2 to x4 WINDOWS -> x2 do x4 OKNA (x != 1) +# 5 or more WINDOWS -> 5 lub wiÄ™cej OKIEN # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" +"POT-Creation-Date: 2009-03-11 09:33+0000\n" +"PO-Revision-Date: 2009-04-10 00:39+0200\n" +"Last-Translator: Piotr DrÄ…g <piotrdrag@gmail.com>\n" +"Language-Team: Polish <pl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# laconica.pot (PACKAGE VERSION) #-#-#-#-#\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" - -# Polish language has 3 plural forms. -# Special case is used for one and some numbers ending in 2, 3, or 4. -# Example: -# 1 WINDOW -> 1 OKNO -# x2 to x4 WINDOWS -> x2 do x4 OKNA (x != 1) -# 5 or more WINDOWS -> 5 lub wiÄ™cej OKIEN +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%" +"100<10 || n%100>=20) ? 1 : 2);\n" + #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 #, php-format msgid " Search Stream for \"%s\"" -msgstr "Szukaj strumienia dla \"%s\"" +msgstr " Znajdź strumieÅ„ dla \"%s\"" #: ../actions/finishopenidlogin.php:82 ../actions/register.php:191 #: actions/finishopenidlogin.php:88 actions/register.php:205 @@ -45,26 +35,27 @@ msgstr "Szukaj strumienia dla \"%s\"" msgid "" " except this private data: password, email address, IM address, phone number." msgstr "" -"z wyÅ‚Ä…czeniem tych prywatnych danych: e-maila, identyfikatora IM, numeru " +" poza tymi prywatnymi danymi: hasÅ‚o, adres e-mail, adres komunikatora, numer " "telefonu." #: ../actions/showstream.php:400 ../lib/stream.php:109 #: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76 msgid " from " -msgstr "" +msgstr " od " #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 -#: actions/twitapistatuses.php:347 +#: actions/twitapistatuses.php:347 actions/twitapistatuses.php:363 #, php-format msgid "%1$s / Updates replying to %2$s" -msgstr "" +msgstr "%1$s/aktualizacje odpowiadajÄ…ce na %2$s" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 +#: actions/invite.php:218 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s zapraszajÄ… CiÄ™, abyÅ› doÅ‚Ä…czyÅ‚ do nich w %2$s" -#: ../actions/invite.php:170 +#: ../actions/invite.php:170 actions/invite.php:220 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -94,11 +85,38 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" +"Użytkownik %1$s zapraszajÄ… CiÄ™, abyÅ› doÅ‚Ä…czyÅ‚ do nich w %2$s (%3$s).\n" +"\n" +"%2$s jest usÅ‚ugÄ… mikroblogowania, która umożliwia pozostawanie w kontakcie z " +"osobami, których znasz i z tymi, którzy CiÄ™ interesujÄ….\n" +"\n" +"Możesz także dzielić siÄ™ w sieci nowinkami o sobie, swoimi przemyÅ›leniami, " +"lub swoim życiem z osobami, którzy CiÄ™ znajÄ…. To także wspaniaÅ‚y sposób na " +"poznawanie nowych osób, którzy dzielÄ… Twoje zainteresowania.\n" +"\n" +"Użytkownik %1$s powiedziaÅ‚:\n" +"\n" +"%4$s\n" +"\n" +"Możesz zobaczyć stronÄ™ profilu %1$s na %2$s tutaj:\n" +"\n" +"%5$s\n" +"\n" +"JeÅ›li chcesz wypróbować usÅ‚ugÄ™, naciÅ›nij na poniższy odnoÅ›nik, aby " +"zaakceptować zaproszenie.\n" +"\n" +"%6$s\n" +"\n" +"JeÅ›li nie, możesz zignorować tÄ™ wiadomość. DziÄ™kujemy za TwojÄ… cierpliwość i " +"czas.\n" +"\n" +"Z poważaniem, %2$s\n" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 +#: lib/mail.php:236 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s obserwuje teraz Twoje wpisy na %2$s." +msgstr "Użytkownik %1$s obserwuje teraz Twoje wpisy na %2$s." #: ../lib/mail.php:126 #, php-format @@ -110,16 +128,18 @@ msgid "" "Faithfully yours,\n" "%4$s.\n" msgstr "" -"%1$s obserwuje teraz Twoje wpisy na %2$s.\n" +"Użytkownik %1$s obserwuje teraz Twoje wpisy na %2$s.\n" +"\n" +"\t%3$s\n" "\n" -"KÅ‚aniam siÄ™,\n" +"Z poważaniem,\n" "%4$s.\n" #: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415 -#: actions/twitapistatuses.php:350 +#: actions/twitapistatuses.php:350 actions/twitapistatuses.php:367 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "" +msgstr "%1$s aktualizuje tÄ™ odpowiedź na aktualizacje od %2$s/%3$s." #: ../actions/shownotice.php:45 actions/shownotice.php:45 #: actions/shownotice.php:161 @@ -131,7 +151,7 @@ msgstr "Status użytkownika %1$s na %2$s" #: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131 #, php-format msgid "%s (%s)" -msgstr "" +msgstr "%s (%s)" #: ../actions/publicrss.php:62 actions/publicrss.php:48 #: actions/publicrss.php:90 @@ -144,68 +164,74 @@ msgstr "Publiczny strumieÅ„ %s" #: actions/allrss.php:60 actions/twitapistatuses.php:155 lib/personal.php:51 #: actions/all.php:65 actions/allrss.php:103 actions/facebookhome.php:164 #: actions/twitapistatuses.php:126 lib/personalgroupnav.php:99 +#: actions/all.php:68 actions/all.php:114 actions/allrss.php:106 +#: actions/facebookhome.php:163 actions/twitapistatuses.php:130 #, php-format msgid "%s and friends" msgstr "%s i przyjaciele" #: ../actions/twitapistatuses.php:49 actions/twitapistatuses.php:49 -#: actions/twitapistatuses.php:33 +#: actions/twitapistatuses.php:33 actions/twitapistatuses.php:32 #, php-format msgid "%s public timeline" -msgstr "" +msgstr "Publiczna oÅ› czasu %s" -#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 +#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 lib/mail.php:412 #, php-format msgid "%s status" -msgstr "" +msgstr "Status %s" #: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265 -#: actions/twitapistatuses.php:199 +#: actions/twitapistatuses.php:199 actions/twitapistatuses.php:209 #, php-format msgid "%s timeline" -msgstr "" +msgstr "OÅ› czasu %s" #: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52 -#: actions/twitapistatuses.php:36 +#: actions/twitapistatuses.php:36 actions/twitapistatuses.php:38 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "%s aktualizuje od każdego!" -#: ../actions/register.php:213 +#: ../actions/register.php:213 actions/register.php:497 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" +"(PowinieneÅ› wÅ‚aÅ›nie otrzymać wiadomość e-mail, zawierajÄ…cÄ… instrukcje " +"potwierdzenia adresu e-mail)" -#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 +#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 lib/action.php:702 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -"**%%site.name%%** to serwis z mikroblogami prowadzony przez [%%site.broughtby" -"%%](%%site.broughtbyurl%%)." +"**%%site.name%%** jest usÅ‚ugÄ… mikroblogowania prowadzony przez [%%site." +"broughtby%%](%%site.broughtbyurl%%). " -#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 +#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 lib/action.php:704 #, php-format msgid "**%%site.name%%** is a microblogging service. " -msgstr "**%%site.name%%** to serwis do mikroblogowania." +msgstr "**%%site.name%%** jest usÅ‚ugÄ… mikroblogowania. " #: ../lib/util.php:274 lib/util.php:290 msgid ". Contributors should be attributed by full name or nickname." msgstr "" -". Współpracownicy powinni być wymienieni z imienia i nazwiska lub pseudonimu." +". Współtwórcy powinni być wymienieni z imienia i nazwiska lub pseudonimu." #: ../actions/finishopenidlogin.php:73 ../actions/profilesettings.php:43 #: actions/finishopenidlogin.php:79 actions/profilesettings.php:76 #: actions/finishopenidlogin.php:101 actions/profilesettings.php:100 #: lib/groupeditform.php:139 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "Max. 64 znaki alfanumeryczne, bez spacji i znaków przestankowych" +msgstr "1-64 maÅ‚e litery lub liczby, bez spacji i znaków przestankowych" #: ../actions/register.php:152 actions/register.php:166 +#: actions/register.php:368 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" +"1-64 maÅ‚e litery lub liczby, bez spacji i znaków przestankowych. Wymagane." #: ../actions/password.php:42 actions/profilesettings.php:181 #: actions/passwordsettings.php:102 @@ -215,33 +241,41 @@ msgstr "6 lub wiÄ™cej znaków" #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 msgid "6 or more characters, and don't forget it!" -msgstr "6 lub wiÄ™cej znaków – nie zapomnij go!" +msgstr "6 lub wiÄ™cej znaków, i nie zapomnij go!" #: ../actions/register.php:154 actions/register.php:168 #: actions/register.php:373 msgid "6 or more characters. Required." -msgstr "" +msgstr "6 lub wiÄ™cej znaków. Wymagane." #: ../actions/imsettings.php:197 actions/imsettings.php:205 +#: actions/imsettings.php:321 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"Na Twój adres komunikatora zostaÅ‚ wysÅ‚any kod potwierdzajÄ…cy. Musisz " +"Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any na dodany adres komunikatora. Musisz " "zaakceptować otrzymywanie wiadomoÅ›ci od %s." #: ../actions/emailsettings.php:213 actions/emailsettings.php:231 +#: actions/emailsettings.php:350 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" +"Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any na dodany adres e-mail. Sprawdź w swojej " +"skrzynce odbiorczej (także w wiadomoÅ›ciach niechcianych!), czy otrzymaÅ‚eÅ› " +"kod i instrukcje dotyczÄ…ce jego użycia." #: ../actions/smssettings.php:216 actions/smssettings.php:224 msgid "" "A confirmation code was sent to the phone number you added. Check your inbox " "(and spam box!) for the code and instructions on how to use it." msgstr "" +"Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any na dodany numer telefonu. Sprawdź w swojej " +"skrzynce odbiorczej (także w wiadomoÅ›ciach niechcianych!), czy otrzymaÅ‚eÅ› " +"kod i instrukcje dotyczÄ…ce jego użycia." #: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45 #: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259 @@ -261,9 +295,14 @@ msgstr "" #: actions/twitapistatuses.php:147 actions/twitapistatuses.php:228 #: actions/twitapistatuses.php:239 actions/twitapistatuses.php:392 #: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429 -#: actions/twitapiusers.php:32 +#: actions/twitapiusers.php:32 actions/twitapidirect_messages.php:120 +#: actions/twitapifavorites.php:91 actions/twitapifavorites.php:108 +#: actions/twitapistatuses.php:82 actions/twitapistatuses.php:159 +#: actions/twitapistatuses.php:246 actions/twitapistatuses.php:257 +#: actions/twitapistatuses.php:416 actions/twitapistatuses.php:426 +#: actions/twitapistatuses.php:453 msgid "API method not found!" -msgstr "" +msgstr "Nie znaleziono metody API!" #: ../actions/twitapiaccount.php:57 ../actions/twitapiaccount.php:113 #: ../actions/twitapiaccount.php:119 ../actions/twitapiblocks.php:28 @@ -284,18 +323,21 @@ msgstr "" #: actions/twitapidirect_messages.php:184 actions/twitapifavorites.php:143 #: actions/twitapihelp.php:52 actions/twitapilaconica.php:172 #: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37 -#: actions/twitapistatuses.php:562 +#: actions/twitapistatuses.php:562 actions/twitapiaccount.php:46 +#: actions/twitapiaccount.php:98 actions/twitapiaccount.php:104 +#: actions/twitapidirect_messages.php:193 actions/twitapifavorites.php:149 +#: actions/twitapistatuses.php:625 actions/twitapitrends.php:87 msgid "API method under construction." -msgstr "" +msgstr "Metoda API jest w trakcie tworzenia." -#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 +#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 lib/action.php:661 msgid "About" -msgstr "O serwisie" +msgstr "O usÅ‚udze" #: ../actions/userauthorization.php:119 actions/userauthorization.php:126 #: actions/userauthorization.php:143 msgid "Accept" -msgstr "Akceptuj" +msgstr "Zaakceptuj" #: ../actions/emailsettings.php:62 ../actions/imsettings.php:63 #: ../actions/openidsettings.php:57 ../actions/smssettings.php:71 @@ -304,6 +346,7 @@ msgstr "Akceptuj" #: actions/twittersettings.php:85 actions/emailsettings.php:120 #: actions/imsettings.php:127 actions/openidsettings.php:111 #: actions/smssettings.php:133 actions/twittersettings.php:163 +#: actions/twittersettings.php:166 msgid "Add" msgstr "Dodaj" @@ -315,7 +358,7 @@ msgstr "Dodaj konto OpenID" #: ../lib/settingsaction.php:97 lib/settingsaction.php:91 #: lib/accountsettingsaction.php:117 msgid "Add or remove OpenIDs" -msgstr "" +msgstr "Dodaj lub usuÅ„ konta OpenID" #: ../actions/emailsettings.php:38 ../actions/imsettings.php:39 #: ../actions/smssettings.php:39 actions/emailsettings.php:39 @@ -326,13 +369,14 @@ msgid "Address" msgstr "Adres" #: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176 +#: actions/invite.php:181 msgid "Addresses of friends to invite (one per line)" -msgstr "" +msgstr "Adresy przyjaciół, których zapraszasz (jeden na wiersz)" #: ../actions/showstream.php:273 actions/showstream.php:288 #: actions/showstream.php:422 msgid "All subscriptions" -msgstr "Wszyscy obserwowani" +msgstr "Wszystkie subskrypcje" #: ../actions/publicrss.php:64 actions/publicrss.php:50 #: actions/publicrss.php:92 @@ -344,7 +388,7 @@ msgstr "Wszystkie aktualizacje od %s" #: actions/noticesearchrss.php:90 #, php-format msgid "All updates matching search term \"%s\"" -msgstr "Wszystkie aktualizacje pasujÄ…ce do wzorca wyszukiwania \"%s\"" +msgstr "Wszystkie aktualizacje pasujÄ…ce do wyszukiwanego terminu \"%s\"" #: ../actions/finishopenidlogin.php:29 ../actions/login.php:31 #: ../actions/openidlogin.php:29 ../actions/register.php:30 @@ -357,64 +401,72 @@ msgstr "JesteÅ› już zalogowany." #: ../lib/subs.php:42 lib/subs.php:42 lib/subs.php:49 msgid "Already subscribed!." -msgstr "Już obserwujesz!" +msgstr "Już subskrybowane!" #: ../actions/deletenotice.php:54 actions/deletenotice.php:55 -#: actions/deletenotice.php:113 +#: actions/deletenotice.php:113 actions/deletenotice.php:114 msgid "Are you sure you want to delete this notice?" -msgstr "" +msgstr "JesteÅ› pewien, że chcesz usunąć ten wpis?" #: ../actions/userauthorization.php:77 actions/userauthorization.php:83 #: actions/userauthorization.php:81 msgid "Authorize subscription" -msgstr "Pozwól na obserwacjÄ™" +msgstr "Upoważnij subskrypcjÄ™" #: ../actions/login.php:104 ../actions/register.php:178 -#: actions/register.php:192 +#: actions/register.php:192 actions/login.php:218 actions/openidlogin.php:117 +#: actions/register.php:416 msgid "Automatically login in the future; not for shared computers!" msgstr "" -"Automatycznie loguj mnie na konto. Nie używać w przypadku współdzielonych " -"komputerów!" +"Automatyczne logowanie. Nie użyj na komputerach używanych przez wiele osób!" #: ../actions/profilesettings.php:65 actions/profilesettings.php:98 +#: actions/profilesettings.php:144 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" +"Automatycznie zasubskrybuj każdego, kto mnie zasubskrybuje (najlepsze dla " +"botów)" #: ../actions/avatar.php:32 ../lib/settingsaction.php:90 #: actions/profilesettings.php:34 actions/avatarsettings.php:65 #: actions/showgroup.php:209 lib/accountsettingsaction.php:107 +#: actions/avatarsettings.php:67 actions/showgroup.php:211 msgid "Avatar" msgstr "Awatar" #: ../actions/avatar.php:113 actions/profilesettings.php:350 -#: actions/avatarsettings.php:395 +#: actions/avatarsettings.php:395 actions/avatarsettings.php:346 msgid "Avatar updated." -msgstr "Awatar zaÅ‚adowany." +msgstr "Zaktualizowano awatar." #: ../actions/imsettings.php:55 actions/imsettings.php:56 +#: actions/imsettings.php:108 #, php-format msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" -"Oczekiwanie na potwierdzenie z tego adresu. Sprawdź czy na Twoje konto " -"Jabbera/GTalka przyszÅ‚a wiadomość z dalszymi instrukcjami. (Nie zapomnij " -"dodać %s do listy znajomych.)" +"Oczekiwanie na potwierdzenie tego adresu. Sprawdź swoje konto Jabbera/GTalk, " +"czy otrzymaÅ‚eÅ› wiadomość z dalszymi instrukcjami (dodaÅ‚eÅ› %s do listy " +"znajomych?)." #: ../actions/emailsettings.php:54 actions/emailsettings.php:55 +#: actions/emailsettings.php:107 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" +"Oczekiwanie na potwierdzenie tego adresu. Sprawdź swojÄ… skrzynkÄ™ odbiorczÄ… " +"(także w wiadomoÅ›ciach niechcianych!), czy otrzymaÅ‚eÅ› wiadomość z dalszymi " +"instrukcjami." #: ../actions/smssettings.php:58 actions/smssettings.php:58 #: actions/smssettings.php:111 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "Oczekiwanie na potwierdzenie tego numeru telefonu." #: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy msgid "Before »" msgstr "WczeÅ›niej »" @@ -428,23 +480,24 @@ msgstr "O mnie" #: ../actions/updateprofile.php:103 actions/profilesettings.php:216 #: actions/register.php:89 actions/updateprofile.php:104 #: actions/profilesettings.php:205 actions/register.php:174 -#: actions/updateprofile.php:107 +#: actions/updateprofile.php:107 actions/updateprofile.php:109 msgid "Bio is too long (max 140 chars)." -msgstr "Wpis \"O mnie\" jest za dÅ‚ugi (maks. 140 znaków)" +msgstr "Wpis \"O mnie\" jest za dÅ‚ugi (maksymalnie 140 znaków)." #: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69 msgid "Can't delete this notice." -msgstr "" +msgstr "Nie można usunąć tego wpisu." #: ../actions/updateprofile.php:119 actions/updateprofile.php:120 -#: actions/updateprofile.php:123 +#: actions/updateprofile.php:123 actions/updateprofile.php:125 #, php-format msgid "Can't read avatar URL '%s'" -msgstr "Nie można odczytać URL-a awatara '%s'" +msgstr "Nie można odczytać adresu URL awatara \"%s\"" #: ../actions/password.php:85 ../actions/recoverpassword.php:300 #: actions/profilesettings.php:404 actions/recoverpassword.php:313 #: actions/passwordsettings.php:169 actions/recoverpassword.php:347 +#: actions/passwordsettings.php:174 msgid "Can't save new password." msgstr "Nie można zapisać nowego hasÅ‚a." @@ -457,8 +510,9 @@ msgid "Cancel" msgstr "Anuluj" #: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130 +#: lib/openid.php:133 msgid "Cannot instantiate OpenID consumer object." -msgstr "Nie można stworzyć instancji obiektu OpenID." +msgstr "Nie można utworzyć instancji obiektu klienta OpenID." #: ../actions/imsettings.php:163 actions/imsettings.php:171 #: actions/imsettings.php:286 @@ -466,9 +520,9 @@ msgid "Cannot normalize that Jabber ID" msgstr "Nie można znormalizować tego identyfikatora Jabbera" #: ../actions/emailsettings.php:181 actions/emailsettings.php:199 -#: actions/emailsettings.php:311 +#: actions/emailsettings.php:311 actions/emailsettings.php:318 msgid "Cannot normalize that email address" -msgstr "" +msgstr "Nie można znormalizować tego adresu e-mail" #: ../actions/password.php:45 actions/profilesettings.php:184 #: actions/passwordsettings.php:110 @@ -478,7 +532,7 @@ msgstr "ZmieÅ„" #: ../lib/settingsaction.php:88 lib/settingsaction.php:88 #: lib/accountsettingsaction.php:114 msgid "Change email handling" -msgstr "" +msgstr "ZmieÅ„ obsÅ‚ugÄ™ adresu e-mail" #: ../actions/password.php:32 actions/profilesettings.php:36 #: actions/passwordsettings.php:58 @@ -487,12 +541,12 @@ msgstr "ZmieÅ„ hasÅ‚o" #: ../lib/settingsaction.php:94 lib/accountsettingsaction.php:111 msgid "Change your password" -msgstr "" +msgstr "ZmieÅ„ hasÅ‚o" #: ../lib/settingsaction.php:85 lib/settingsaction.php:85 #: lib/accountsettingsaction.php:105 msgid "Change your profile settings" -msgstr "" +msgstr "ZmieÅ„ ustawienia profilu" #: ../actions/password.php:43 ../actions/recoverpassword.php:181 #: ../actions/register.php:155 ../actions/smssettings.php:65 @@ -512,21 +566,21 @@ msgstr "Potwierdź adres" #: ../actions/smssettings.php:245 actions/emailsettings.php:256 #: actions/imsettings.php:230 actions/smssettings.php:253 #: actions/emailsettings.php:379 actions/imsettings.php:361 -#: actions/smssettings.php:374 +#: actions/smssettings.php:374 actions/emailsettings.php:386 msgid "Confirmation cancelled." msgstr "Anulowano potwierdzenie." #: ../actions/smssettings.php:63 actions/smssettings.php:63 #: actions/smssettings.php:118 msgid "Confirmation code" -msgstr "" +msgstr "Kod potwierdzajÄ…cy" #: ../actions/confirmaddress.php:38 actions/confirmaddress.php:38 #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Nie znaleziono kodu potwierdzajÄ…cego." -#: ../actions/register.php:202 +#: ../actions/register.php:202 actions/register.php:473 #, php-format msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " @@ -544,9 +598,24 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" +"Gratulacje, %s! Witaj na %%%%site.name%%%%. StÄ…d możesz chcieć...\n" +"\n" +"* Przejść do [swojego profilu](%s) i wysÅ‚ać swojÄ… pierwszÄ… wiadomość.\n" +"* Dodać [adres Jabbera/GTalk](%%%%action.imsettings%%%%), abyÅ› mógÅ‚ wysyÅ‚ać " +"wpisy przez komunikatora.\n" +"* [Poszukać osób](%%%%action.peoplesearch%%%%), których możesz znać lub " +"którzy dzielÄ… Twoje zainteresowania. \n" +"* Zaktualizować swoje [ustawienia profilu](%%%%action.profilesettings%%%%), " +"aby powiedzieć innym wiÄ™cej o sobie. \n" +"* Przeczytać [dokumentacjÄ™ w sieci](%%%%doc.help%%%%), aby dowiedzieć siÄ™ o " +"funkcjach, które mogÅ‚eÅ› pominąć. \n" +"\n" +"DziÄ™kujemy za zarejestrowanie siÄ™ i mamy nadziejÄ™, że używanie tej usÅ‚ugi " +"sprawi Ci przyjemność." #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 -#: actions/finishopenidlogin.php:119 lib/action.php:330 +#: actions/finishopenidlogin.php:119 lib/action.php:330 lib/action.php:403 +#: lib/action.php:406 msgid "Connect" msgstr "PoÅ‚Ä…cz" @@ -555,11 +624,12 @@ msgstr "PoÅ‚Ä…cz" msgid "Connect existing account" msgstr "PoÅ‚Ä…cz z istniejÄ…cym kontem" -#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 +#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 lib/action.php:669 msgid "Contact" msgstr "Kontakt" #: ../lib/openid.php:178 lib/openid.php:178 lib/openid.php:187 +#: lib/openid.php:190 #, php-format msgid "Could not create OpenID form: %s" msgstr "Nie można utworzyć formularza OpenID: %s" @@ -569,45 +639,46 @@ msgstr "Nie można utworzyć formularza OpenID: %s" #: actions/twitapifriendships.php:48 actions/twitapifriendships.php:64 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "Nie można obserwować użytkownika: %s jest już na Twojej liÅ›cie." #: ../actions/twitapifriendships.php:53 actions/twitapifriendships.php:53 #: actions/twitapifriendships.php:41 msgid "Could not follow user: User not found." -msgstr "" +msgstr "Nie można obserwować użytkownika: nie znaleziono użytkownika." #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 +#: lib/openid.php:172 #, php-format msgid "Could not redirect to server: %s" msgstr "Nie można przekierować do serwera: %s" #: ../actions/updateprofile.php:162 actions/updateprofile.php:163 -#: actions/updateprofile.php:166 +#: actions/updateprofile.php:166 actions/updateprofile.php:176 msgid "Could not save avatar info" msgstr "Nie można zapisać informacji o awatarze" #: ../actions/updateprofile.php:155 actions/updateprofile.php:156 -#: actions/updateprofile.php:159 +#: actions/updateprofile.php:159 actions/updateprofile.php:163 msgid "Could not save new profile info" msgstr "Nie można zapisać informacji o nowym profilu" #: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72 msgid "Could not subscribe other to you." -msgstr "" +msgstr "Nie można zasubskrybować innych do Ciebie." #: ../lib/subs.php:46 lib/subs.php:46 lib/subs.php:57 msgid "Could not subscribe." -msgstr "" +msgstr "Nie można zasubskrybować." #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Nie można zaktualizować użytkownika z potwierdzonym adresem e-mail." #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 msgid "Couldn't convert request tokens to access tokens." -msgstr "Nie można przeksztaÅ‚cić tokenów z żądaniami na tokeny dostÄ™pu." +msgstr "Nie można przekonwertować tokenów żądaÅ„ na tokeny dostÄ™pu." #: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234 #: ../actions/imsettings.php:218 ../actions/smssettings.php:241 @@ -615,52 +686,56 @@ msgstr "Nie można przeksztaÅ‚cić tokenów z żądaniami na tokeny dostÄ™pu." #: actions/imsettings.php:226 actions/smssettings.php:249 #: actions/confirmaddress.php:126 actions/emailsettings.php:375 #: actions/imsettings.php:357 actions/smssettings.php:370 +#: actions/emailsettings.php:382 msgid "Couldn't delete email confirmation." -msgstr "Nie można skasować potwierdzenia adresu e-mail." +msgstr "Nie można usunąć potwierdzenia adresu e-mail." #: ../lib/subs.php:103 lib/subs.php:116 lib/subs.php:134 msgid "Couldn't delete subscription." -msgstr "Nie można usunąć obserwacji." +msgstr "Nie można usunąć subskrypcji." #: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98 -#: actions/twitapistatuses.php:84 +#: actions/twitapistatuses.php:84 actions/twitapistatuses.php:87 msgid "Couldn't find any statuses." -msgstr "" +msgstr "Nie można znaleźć żadnych statusów." #: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136 #: actions/remotesubscribe.php:178 msgid "Couldn't get a request token." -msgstr "Nie można uzyskać tokena z żądaniem." +msgstr "Nie można uzyskać tokenu żądana." #: ../actions/emailsettings.php:205 ../actions/imsettings.php:187 #: ../actions/smssettings.php:206 actions/emailsettings.php:223 #: actions/imsettings.php:195 actions/smssettings.php:214 #: actions/emailsettings.php:337 actions/imsettings.php:311 -#: actions/smssettings.php:325 +#: actions/smssettings.php:325 actions/emailsettings.php:344 msgid "Couldn't insert confirmation code." msgstr "Nie można wprowadzić kodu potwierdzajÄ…cego." #: ../actions/finishremotesubscribe.php:180 #: actions/finishremotesubscribe.php:182 actions/finishremotesubscribe.php:218 msgid "Couldn't insert new subscription." -msgstr "Nie można wprowadzić nowej obserwacji." +msgstr "Nie można wprowadzić nowej subskrypcji." #: ../actions/profilesettings.php:184 ../actions/twitapiaccount.php:96 #: actions/profilesettings.php:299 actions/twitapiaccount.php:94 #: actions/profilesettings.php:302 actions/twitapiaccount.php:81 +#: actions/twitapiaccount.php:82 msgid "Couldn't save profile." msgstr "Nie można zapisać profilu." #: ../actions/profilesettings.php:161 actions/profilesettings.php:276 #: actions/profilesettings.php:279 msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "Nie można zaktualizować użytkownika do automatycznej subskrypcji." #: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294 #: actions/emailsettings.php:298 actions/emailsettings.php:312 #: actions/emailsettings.php:440 actions/emailsettings.php:462 +#: actions/emailsettings.php:447 actions/emailsettings.php:469 +#: actions/smssettings.php:515 actions/smssettings.php:539 msgid "Couldn't update user record." -msgstr "" +msgstr "Nie można zaktualizować wpisu użytkownika." #: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156 #: ../actions/emailsettings.php:259 ../actions/imsettings.php:138 @@ -674,7 +749,8 @@ msgstr "" #: actions/emailsettings.php:411 actions/imsettings.php:252 #: actions/imsettings.php:395 actions/othersettings.php:162 #: actions/profilesettings.php:259 actions/smssettings.php:266 -#: actions/smssettings.php:408 +#: actions/smssettings.php:408 actions/emailsettings.php:287 +#: actions/emailsettings.php:418 msgid "Couldn't update user." msgstr "Nie można zaktualizować użytkownika." @@ -686,57 +762,61 @@ msgstr "Utwórz" #: ../actions/finishopenidlogin.php:70 actions/finishopenidlogin.php:76 #: actions/finishopenidlogin.php:98 msgid "Create a new user with this nickname." -msgstr "Załóż użytkownika o tym pseudonimie." +msgstr "Utwórz nowego użytkownika o tym pseudonimie." #: ../actions/finishopenidlogin.php:68 actions/finishopenidlogin.php:74 #: actions/finishopenidlogin.php:96 msgid "Create new account" -msgstr "Załóż nowe konto" +msgstr "Utwórz nowe konto" #: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197 #: actions/finishopenidlogin.php:231 msgid "Creating new account for OpenID that already has a user." -msgstr "Tworzenie nowego konta użytkownika na podstawie identyfikatora OpenID." +msgstr "" +"Tworzenie nowego konta dla identyfikatora OpenID, który posiada już " +"użytkownika." #: ../actions/imsettings.php:45 actions/imsettings.php:46 #: actions/imsettings.php:100 msgid "Current confirmed Jabber/GTalk address." -msgstr "Potwierdzone adresy Jabbera/GTalka" +msgstr "Obecnie potwierdzone adresy Jabbera/GTalk." #: ../actions/smssettings.php:46 actions/smssettings.php:46 #: actions/smssettings.php:100 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Obecnie potwierdzone numery telefonów z wÅ‚Ä…czonÄ… usÅ‚ugÄ… SMS." #: ../actions/emailsettings.php:44 actions/emailsettings.php:45 #: actions/emailsettings.php:99 msgid "Current confirmed email address." -msgstr "" +msgstr "Obecnie potwierdzone adresy e-mail." #: ../actions/showstream.php:356 actions/showstream.php:367 msgid "Currently" msgstr "Obecnie" #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 +#: classes/Notice.php:114 #, php-format msgid "DB error inserting hashtag: %s" -msgstr "" +msgstr "BÅ‚Ä…d bazy danych podczas wprowadzania znacznika hasha: %s" #: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698 +#: classes/Notice.php:757 #, php-format msgid "DB error inserting reply: %s" -msgstr "BÅ‚Ä…d przy dodawaniu do bazy danych: %s" +msgstr "BÅ‚Ä…d bazy danych podczas wprowadzania odpowiedzi: %s" #: ../actions/deletenotice.php:41 actions/deletenotice.php:41 -#: actions/deletenotice.php:79 +#: actions/deletenotice.php:79 actions/deletenotice.php:111 msgid "Delete notice" -msgstr "" +msgstr "UsuÅ„ wpis" #: ../actions/profilesettings.php:51 ../actions/register.php:172 #: actions/profilesettings.php:84 actions/register.php:186 -#: actions/profilesettings.php:114 +#: actions/profilesettings.php:114 actions/register.php:404 msgid "Describe yourself and your interests in 140 chars" -msgstr "Opisz siÄ™ w 140 znakach" +msgstr "Opisz siÄ™ i swoje zainteresowania w 140 znakach" #: ../actions/register.php:158 ../actions/register.php:161 #: ../lib/settingsaction.php:87 actions/register.php:172 @@ -748,59 +828,60 @@ msgstr "E-mail" #: ../actions/emailsettings.php:59 actions/emailsettings.php:60 #: actions/emailsettings.php:115 msgid "Email Address" -msgstr "" +msgstr "Adres e-mail" #: ../actions/emailsettings.php:32 actions/emailsettings.php:32 #: actions/emailsettings.php:60 msgid "Email Settings" -msgstr "" +msgstr "Ustawienia adresu e-mail" #: ../actions/register.php:73 actions/register.php:80 actions/register.php:163 msgid "Email address already exists." -msgstr "Taki e-mail już istnieje" +msgstr "Adres e-mail już istnieje." #: ../lib/mail.php:90 lib/mail.php:90 lib/mail.php:173 msgid "Email address confirmation" -msgstr "Potwierdzenie adresu e-mailowego" +msgstr "Potwierdzenie adresu e-mail" #: ../actions/emailsettings.php:61 actions/emailsettings.php:62 #: actions/emailsettings.php:117 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "Adres e-mail, taki jak \"NazwaUżytkownika@przykÅ‚ad.org\"" #: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174 +#: actions/invite.php:179 msgid "Email addresses" -msgstr "" +msgstr "Adresy e-mail" #: ../actions/recoverpassword.php:191 actions/recoverpassword.php:197 #: actions/recoverpassword.php:231 msgid "Enter a nickname or email address." -msgstr "Podaj pseudonim lub adres e-mailowy" +msgstr "Podaj pseudonim lub adres e-mail." #: ../actions/smssettings.php:64 actions/smssettings.php:64 #: actions/smssettings.php:119 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "Podaj kod, który otrzymaÅ‚eÅ› na telefonie." #: ../actions/userauthorization.php:137 actions/userauthorization.php:144 #: actions/userauthorization.php:161 msgid "Error authorizing token" -msgstr "BÅ‚Ä…d podczas autoryzacji tokena" +msgstr "BÅ‚Ä…d podczas upoważniania tokena" #: ../actions/finishopenidlogin.php:253 actions/finishopenidlogin.php:259 -#: actions/finishopenidlogin.php:297 +#: actions/finishopenidlogin.php:297 actions/finishopenidlogin.php:302 msgid "Error connecting user to OpenID." -msgstr "BÅ‚Ä…d w podÅ‚Ä…czaniu użytkownika do OpenID." +msgstr "BÅ‚Ä…d podczas Å‚Ä…czenia użytkownika z OpenID." #: ../actions/finishaddopenid.php:78 actions/finishaddopenid.php:78 #: actions/finishaddopenid.php:126 msgid "Error connecting user." -msgstr "BÅ‚Ä…d w podÅ‚Ä…czaniu użytkownika." +msgstr "BÅ‚Ä…d podczas Å‚Ä…czenia użytkownika." #: ../actions/finishremotesubscribe.php:151 #: actions/finishremotesubscribe.php:153 actions/finishremotesubscribe.php:166 msgid "Error inserting avatar" -msgstr "BÅ‚Ä…d we wstawianiu awatara" +msgstr "BÅ‚Ä…d podczas wprowadzania awatara" #: ../actions/finishremotesubscribe.php:143 #: actions/finishremotesubscribe.php:145 actions/finishremotesubscribe.php:158 @@ -815,33 +896,36 @@ msgstr "BÅ‚Ä…d podczas wprowadzania zdalnego profilu" #: ../actions/recoverpassword.php:240 actions/recoverpassword.php:246 #: actions/recoverpassword.php:280 msgid "Error saving address confirmation." -msgstr "BÅ‚Ä…d w zapisie potwierdzenia adresu." +msgstr "BÅ‚Ä…d podczas zapisywania potwierdzenia adresu." #: ../actions/userauthorization.php:140 actions/userauthorization.php:147 #: actions/userauthorization.php:164 msgid "Error saving remote profile" -msgstr "BÅ‚Ä…d w zapisie zdalnego profilu." +msgstr "BÅ‚Ä…d podczas zapisie zdalnego profilu" #: ../lib/openid.php:226 lib/openid.php:226 lib/openid.php:235 +#: lib/openid.php:238 msgid "Error saving the profile." -msgstr "BÅ‚Ä…d w zapisie profilu." +msgstr "BÅ‚Ä…d podczas zapisywania profilu." #: ../lib/openid.php:237 lib/openid.php:237 lib/openid.php:246 +#: lib/openid.php:249 msgid "Error saving the user." -msgstr "BÅ‚Ä…d w zapisie użytkownika." +msgstr "BÅ‚Ä…d podczas zapisywanie użytkownika." #: ../actions/password.php:80 actions/profilesettings.php:399 -#: actions/passwordsettings.php:164 +#: actions/passwordsettings.php:164 actions/passwordsettings.php:169 msgid "Error saving user; invalid." -msgstr "BÅ‚Ä…d podczas zapisywania użytkownika; niepoprawne dane." +msgstr "BÅ‚Ä…d podczas zapisywania użytkownika; nieprawidÅ‚owy." #: ../actions/login.php:47 ../actions/login.php:73 #: ../actions/recoverpassword.php:307 ../actions/register.php:98 #: actions/login.php:47 actions/login.php:73 actions/recoverpassword.php:320 #: actions/register.php:108 actions/login.php:112 actions/login.php:138 #: actions/recoverpassword.php:354 actions/register.php:198 +#: actions/login.php:120 msgid "Error setting user." -msgstr "BÅ‚Ä…d w ustawianiu danych użytkownika." +msgstr "BÅ‚Ä…d podczas ustawiania użytkownika." #: ../actions/finishaddopenid.php:83 actions/finishaddopenid.php:83 #: actions/finishaddopenid.php:131 @@ -861,78 +945,83 @@ msgstr "BÅ‚Ä…d kodu potwierdzajÄ…cego." #: ../actions/finishopenidlogin.php:89 actions/finishopenidlogin.php:95 #: actions/finishopenidlogin.php:117 msgid "Existing nickname" -msgstr "Dotychczasowy pseudonim" +msgstr "IstniejÄ…cy pseudonim" -#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 +#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 lib/action.php:663 msgid "FAQ" msgstr "FAQ" #: ../actions/avatar.php:115 actions/profilesettings.php:352 -#: actions/avatarsettings.php:397 +#: actions/avatarsettings.php:397 actions/avatarsettings.php:349 msgid "Failed updating avatar." -msgstr "Uaktualnianie awatara nie powiodÅ‚o siÄ™." +msgstr "Zaktualizowanie awatara nie powiodÅ‚o siÄ™." #: ../actions/all.php:61 ../actions/allrss.php:64 actions/all.php:61 #: actions/allrss.php:64 actions/all.php:75 actions/allrss.php:107 +#: actions/allrss.php:110 #, php-format msgid "Feed for friends of %s" msgstr "KanaÅ‚ dla znajomych użytkownika %s" #: ../actions/replies.php:65 ../actions/repliesrss.php:80 #: actions/replies.php:65 actions/repliesrss.php:66 actions/replies.php:134 -#: actions/repliesrss.php:71 +#: actions/repliesrss.php:71 actions/replies.php:136 #, php-format msgid "Feed for replies to %s" msgstr "KanaÅ‚ dla odpowiedzi do użytkownika %s" #: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61 +#: actions/tag.php:68 #, php-format msgid "Feed for tag %s" -msgstr "" +msgstr "KanaÅ‚ dla znaczników %s" #: ../lib/searchaction.php:105 lib/searchaction.php:105 #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "Przeszukaj zawartość wpisów" #: ../lib/searchaction.php:101 lib/searchaction.php:101 #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "Znajdź osoby na tej stronie" -#: ../actions/login.php:122 +#: ../actions/login.php:122 actions/login.php:247 msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" -"Z powodów bezpieczeÅ„stwa wprowadź proszÄ™ ponownie nazwÄ™ użytkownika i hasÅ‚o " -"przed zmianÄ… swoich ustawieÅ„." +"Z powodów bezpieczeÅ„stwa ponownie podaj nazwÄ™ użytkownika i hasÅ‚o przed " +"zmienianiem ustawieÅ„." #: ../actions/profilesettings.php:44 ../actions/register.php:164 #: actions/profilesettings.php:77 actions/register.php:178 #: actions/profilesettings.php:103 actions/register.php:391 #: actions/showgroup.php:235 actions/showstream.php:262 #: actions/tagother.php:105 lib/groupeditform.php:142 +#: actions/showgroup.php:237 actions/showstream.php:255 +#: actions/tagother.php:104 msgid "Full name" -msgstr "PeÅ‚na nazwa" +msgstr "ImiÄ™ i nazwisko" #: ../actions/profilesettings.php:98 ../actions/register.php:79 #: ../actions/updateprofile.php:93 actions/profilesettings.php:213 #: actions/register.php:86 actions/updateprofile.php:94 #: actions/editgroup.php:195 actions/newgroup.php:146 #: actions/profilesettings.php:202 actions/register.php:171 -#: actions/updateprofile.php:97 +#: actions/updateprofile.php:97 actions/updateprofile.php:99 msgid "Full name is too long (max 255 chars)." -msgstr "PeÅ‚na nazwa jest zbyt dÅ‚uga (max. 255 znaków)." +msgstr "ImiÄ™ i nazwisko jest za dÅ‚ugie (maksymalnie 255 znaków)." #: ../lib/util.php:322 lib/util.php:338 lib/action.php:344 lib/action.php:566 +#: lib/action.php:421 lib/action.php:659 msgid "Help" msgstr "Pomoc" #: ../lib/util.php:298 lib/util.php:314 lib/action.php:322 -#: lib/facebookaction.php:200 +#: lib/facebookaction.php:200 lib/action.php:393 lib/facebookaction.php:213 msgid "Home" -msgstr "PoczÄ…tek" +msgstr "Strona główna" #: ../actions/profilesettings.php:46 ../actions/register.php:167 #: actions/profilesettings.php:79 actions/register.php:181 @@ -946,17 +1035,17 @@ msgstr "Strona domowa" #: actions/editgroup.php:192 actions/newgroup.php:143 #: actions/profilesettings.php:199 actions/register.php:168 msgid "Homepage is not a valid URL." -msgstr "Adres strony domowej nie jest poprawnym URL-em." +msgstr "Strona domowa nie jest prawidÅ‚owym adresem URL." #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 -#: actions/emailsettings.php:173 +#: actions/emailsettings.php:173 actions/emailsettings.php:178 msgid "I want to post notices by email." -msgstr "" +msgstr "ChcÄ™ wysyÅ‚ać wpisy przez e-mail." #: ../lib/settingsaction.php:102 lib/settingsaction.php:96 #: lib/connectsettingsaction.php:104 msgid "IM" -msgstr "" +msgstr "Komunikator" #: ../actions/imsettings.php:60 actions/imsettings.php:61 #: actions/imsettings.php:118 @@ -974,146 +1063,149 @@ msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." msgstr "" -"JeÅ›li już masz konto, zaloguj siÄ™ używajÄ…c nazwy użytkownika i hasÅ‚a, aby " +"JeÅ›li już masz konto, zaloguj siÄ™ za pomocÄ… nazwy użytkownika i hasÅ‚a, aby " "poÅ‚Ä…czyć je ze swoim identyfikatorem OpenID." -#: ../actions/openidsettings.php:45 +#: ../actions/openidsettings.php:45 actions/openidsettings.php:96 msgid "" "If you want to add an OpenID to your account, enter it in the box below and " "click \"Add\"." msgstr "" -"JeÅ›li chcesz skojarzyć konto OpenID ze swoim lokalnym kontem, wprowadź " -"identyfikator w poniższe pole i kliknij \"Dodaj\"." +"JeÅ›li chcesz dodać identyfikator OpenID do swojego konta, podaj go w " +"poniższym polu i naciÅ›nij \"Dodaj\"." -#: ../actions/recoverpassword.php:137 +#: ../actions/recoverpassword.php:137 actions/recoverpassword.php:152 msgid "" "If you've forgotten or lost your password, you can get a new one sent to the " "email address you have stored in your account." msgstr "" +"JeÅ›li zapomniaÅ‚eÅ› lub zgubiÅ‚eÅ› swoje hasÅ‚o, możesz dostać nowe na adres e-" +"mail, który podaÅ‚eÅ›." #: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 #: actions/emailsettings.php:68 actions/smssettings.php:76 #: actions/emailsettings.php:127 actions/smssettings.php:140 msgid "Incoming email" -msgstr "" +msgstr "WiadomoÅ›ci przychodzÄ…ce" #: ../actions/emailsettings.php:283 actions/emailsettings.php:301 -#: actions/emailsettings.php:443 +#: actions/emailsettings.php:443 actions/emailsettings.php:450 +#: actions/smssettings.php:518 msgid "Incoming email address removed." -msgstr "" +msgstr "UsuniÄ™to przychodzÄ…cy adres e-mail." #: ../actions/password.php:69 actions/profilesettings.php:388 -#: actions/passwordsettings.php:153 +#: actions/passwordsettings.php:153 actions/passwordsettings.php:158 msgid "Incorrect old password" -msgstr "Stare hasÅ‚o jest niepoprawne" +msgstr "Niepoprawne stare hasÅ‚o" #: ../actions/login.php:67 actions/login.php:67 actions/facebookhome.php:131 -#: actions/login.php:132 +#: actions/login.php:132 actions/facebookhome.php:130 actions/login.php:114 msgid "Incorrect username or password." -msgstr "BÅ‚Ä™dna nazwa użytkownika lub hasÅ‚o." +msgstr "Niepoprawna nazwa użytkownika lub hasÅ‚o." -#: ../actions/recoverpassword.php:265 +#: ../actions/recoverpassword.php:265 actions/recoverpassword.php:304 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." msgstr "" -"Instrukcje dotyczÄ…ce przywrócenia hasÅ‚a zostaÅ‚y wysÅ‚ane na adres e-mailowy " -"skojarzony z Twoim kontem." +"Instrukcje przywracania hasÅ‚a zostaÅ‚y wysÅ‚ane na adres e-mail zarejestrowany " +"z Twoim kontem." #: ../actions/updateprofile.php:114 actions/updateprofile.php:115 -#: actions/updateprofile.php:118 +#: actions/updateprofile.php:118 actions/updateprofile.php:120 #, php-format msgid "Invalid avatar URL '%s'" -msgstr "BÅ‚Ä™dny URL awatara '%s'" +msgstr "NieprawidÅ‚owy adres URL awatara \"%s\"" #: ../actions/invite.php:55 actions/invite.php:62 actions/invite.php:70 #, php-format msgid "Invalid email address: %s" -msgstr "" +msgstr "NieprawidÅ‚owy adres e-mail: %s" #: ../actions/updateprofile.php:98 actions/updateprofile.php:99 -#: actions/updateprofile.php:102 +#: actions/updateprofile.php:102 actions/updateprofile.php:104 #, php-format msgid "Invalid homepage '%s'" -msgstr "BÅ‚Ä™dna strona domowa '%s'" +msgstr "NieprawidÅ‚owa strona domowa \"%s\"" #: ../actions/updateprofile.php:82 actions/updateprofile.php:83 -#: actions/updateprofile.php:86 +#: actions/updateprofile.php:86 actions/updateprofile.php:88 #, php-format msgid "Invalid license URL '%s'" -msgstr "BÅ‚Ä™dny URL licencji '%s'" +msgstr "NieprawidÅ‚owy adres URL licencji \"%s\"" #: ../actions/postnotice.php:61 actions/postnotice.php:62 #: actions/postnotice.php:66 msgid "Invalid notice content" -msgstr "BÅ‚Ä™dna zawartość wpisu" +msgstr "NieprawidÅ‚owa zawartość wpisu" #: ../actions/postnotice.php:67 actions/postnotice.php:68 #: actions/postnotice.php:72 msgid "Invalid notice uri" -msgstr "BÅ‚Ä™dny URI wpisu" +msgstr "NieprawidÅ‚owy adres URI wpisu" #: ../actions/postnotice.php:72 actions/postnotice.php:73 #: actions/postnotice.php:77 msgid "Invalid notice url" -msgstr "BÅ‚Ä™dny URL wpisu" +msgstr "NieprawidÅ‚owy adres URL wpisu" #: ../actions/updateprofile.php:87 actions/updateprofile.php:88 -#: actions/updateprofile.php:91 +#: actions/updateprofile.php:91 actions/updateprofile.php:93 #, php-format msgid "Invalid profile URL '%s'." -msgstr "BÅ‚Ä™dny URL profilu '%s'." +msgstr "NieprawidÅ‚owy adres URL profilu \"%s\"." #: ../actions/remotesubscribe.php:96 actions/remotesubscribe.php:105 #: actions/remotesubscribe.php:135 msgid "Invalid profile URL (bad format)" -msgstr "BÅ‚Ä™dny URL profilu (zÅ‚y format)" +msgstr "NieprawidÅ‚owy adres URL profilu (bÅ‚Ä™dny format)" #: ../actions/finishremotesubscribe.php:77 #: actions/finishremotesubscribe.php:79 actions/finishremotesubscribe.php:80 msgid "Invalid profile URL returned by server." -msgstr "BÅ‚Ä™dny URL profilu zwrócony przez serwer." +msgstr "NieprawidÅ‚owy adres URL profilu zwrócony przez serwer." #: ../actions/avatarbynickname.php:37 actions/avatarbynickname.php:37 #: actions/avatarbynickname.php:69 msgid "Invalid size." -msgstr "Niepoprawny rozmiar." +msgstr "NieprawidÅ‚owy rozmiar." #: ../actions/finishopenidlogin.php:235 ../actions/register.php:93 #: ../actions/register.php:111 actions/finishopenidlogin.php:241 #: actions/register.php:103 actions/register.php:121 #: actions/finishopenidlogin.php:279 actions/register.php:193 -#: actions/register.php:211 +#: actions/register.php:211 actions/finishopenidlogin.php:284 msgid "Invalid username or password." -msgstr "BÅ‚Ä™dna nazwa użytkownika lub hasÅ‚o." +msgstr "NieprawidÅ‚owa nazwa użytkownika lub hasÅ‚o." #: ../actions/invite.php:79 actions/invite.php:86 actions/invite.php:102 msgid "Invitation(s) sent" -msgstr "" +msgstr "WysÅ‚ano zaproszenia" #: ../actions/invite.php:97 actions/invite.php:104 actions/invite.php:136 msgid "Invitation(s) sent to the following people:" -msgstr "" +msgstr "WysÅ‚ano zaproszenia do nastÄ™pujÄ…cych osób:" #: ../lib/util.php:306 lib/util.php:322 lib/facebookaction.php:207 -#: lib/subgroupnav.php:103 +#: lib/subgroupnav.php:103 lib/facebookaction.php:220 msgid "Invite" -msgstr "" +msgstr "ZaproÅ›" #: ../actions/invite.php:123 actions/invite.php:130 actions/invite.php:104 msgid "Invite new users" -msgstr "" +msgstr "ZaproÅ› nowych użytkowników" -#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 +#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 lib/action.php:706 #, php-format msgid "" "It runs the [Laconica](http://laconi.ca/) microblogging software, version %" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"DziaÅ‚a pod kontrolÄ… oprogramowania [Laconica](http://laconi.ca/) sÅ‚użącego " -"do prowadzenia mikroblogów, w wersji %s, dostÄ™pnego na licencji [GNU Affero " -"General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." +"DziaÅ‚a pod kontrolÄ… oprogramowania do mikroblogowania [Laconica](http://" +"laconi.ca/) w wersji %s, dostÄ™pnego na [Powszechnej Licencji Publicznej GNU " +"Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #: ../actions/imsettings.php:173 actions/imsettings.php:181 #: actions/imsettings.php:296 @@ -1121,132 +1213,143 @@ msgid "Jabber ID already belongs to another user." msgstr "Identyfikator Jabbera należy już do innego użytkownika." #: ../actions/imsettings.php:62 actions/imsettings.php:63 +#: actions/imsettings.php:120 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " "add %s to your buddy list in your IM client or on GTalk." msgstr "" -"Adres Jabbera lub GTalka w postaci \"Użytkownik@przykladowadomena.org\". Nie " -"zapomnij dodać %s do listy znajomych w swoim komunikatorze lub panelu GTalka." +"Adres Jabbera lub GTalk, taki jak \"NazwaUżytkownika@przykÅ‚ad.org\". " +"Najpierw upewnij siÄ™, że dodaÅ‚eÅ› %s do listy znajomych w komunikatorze lub " +"na GTalk." #: ../actions/profilesettings.php:57 actions/profilesettings.php:90 #: actions/profilesettings.php:128 msgid "Language" -msgstr "" +msgstr "JÄ™zyk" #: ../actions/profilesettings.php:113 actions/profilesettings.php:228 #: actions/profilesettings.php:217 msgid "Language is too long (max 50 chars)." -msgstr "" +msgstr "JÄ™zyk jest za dÅ‚ugi (maksymalnie 50 znaków)." #: ../actions/profilesettings.php:52 ../actions/register.php:173 #: actions/profilesettings.php:85 actions/register.php:187 #: actions/profilesettings.php:117 actions/register.php:408 #: actions/showgroup.php:244 actions/showstream.php:271 #: actions/tagother.php:113 lib/groupeditform.php:156 lib/grouplist.php:126 -#: lib/profilelist.php:125 +#: lib/profilelist.php:125 actions/showgroup.php:246 +#: actions/showstream.php:264 actions/tagother.php:112 lib/profilelist.php:123 msgid "Location" -msgstr "Lokalizacja" +msgstr "PoÅ‚ożenie" #: ../actions/profilesettings.php:104 ../actions/register.php:85 #: ../actions/updateprofile.php:108 actions/profilesettings.php:219 #: actions/register.php:92 actions/updateprofile.php:109 #: actions/editgroup.php:201 actions/newgroup.php:152 #: actions/profilesettings.php:208 actions/register.php:177 -#: actions/updateprofile.php:112 +#: actions/updateprofile.php:112 actions/updateprofile.php:114 msgid "Location is too long (max 255 chars)." -msgstr "Lokalizacja jest za dÅ‚uga (max. 255 znaków)." +msgstr "PoÅ‚ożenie jest za dÅ‚ugie (maksymalnie 255 znaków)." #: ../actions/login.php:97 ../actions/login.php:106 #: ../actions/openidlogin.php:68 ../lib/util.php:310 actions/login.php:97 #: actions/login.php:106 actions/openidlogin.php:77 lib/util.php:326 #: actions/facebooklogin.php:93 actions/login.php:186 actions/login.php:239 #: actions/openidlogin.php:112 lib/action.php:335 lib/facebookaction.php:288 -#: lib/facebookaction.php:315 lib/logingroupnav.php:75 +#: lib/facebookaction.php:315 lib/logingroupnav.php:75 actions/login.php:169 +#: actions/login.php:222 actions/openidlogin.php:121 lib/action.php:412 +#: lib/facebookaction.php:293 lib/facebookaction.php:319 #, php-format msgid "Login" -msgstr "Login" +msgstr "Zaloguj siÄ™" #: ../actions/openidlogin.php:44 actions/openidlogin.php:52 -#: actions/openidlogin.php:62 +#: actions/openidlogin.php:62 actions/openidlogin.php:70 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." -msgstr "Zaloguj siÄ™ używajÄ…c konta [OpenID](%%doc.openid%%)." +msgstr "Zaloguj siÄ™ za pomocÄ… konta [OpenID](%%doc.openid%%)." -#: ../actions/login.php:126 +#: ../actions/login.php:126 actions/login.php:251 #, php-format msgid "" "Login with your username and password. Don't have a username yet? [Register]" "(%%action.register%%) a new account, or try [OpenID](%%action.openidlogin%" "%). " msgstr "" -"Zaloguj się używajÄ…c nazwy użytkownika i hasÅ‚a. Nie masz ich jeszcze? " -"[Zarejestruj siÄ™](%%action.register%%) i utwórz konto, albo użyj swojego " -"[OpenID](%%action.openidlogin%%)." +"Zaloguj się za pomocÄ… nazwy użytkownika i hasÅ‚a. Nie masz ich jeszcze? " +"[Zarejestruj](%%action.register%%) nowe konto lub wypróbuj [OpenID](%%action." +"openidlogin%%). " -#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 +#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 lib/action.php:409 msgid "Logout" -msgstr "Wyloguj" +msgstr "Wyloguj siÄ™" #: ../actions/register.php:166 actions/register.php:180 #: actions/register.php:393 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "DÅ‚uższa nazwa, najlepiej twoje \"prawdziwe\" nazwisko" #: ../actions/login.php:110 actions/login.php:110 actions/login.php:245 -#: lib/facebookaction.php:320 +#: lib/facebookaction.php:320 actions/login.php:228 lib/facebookaction.php:325 msgid "Lost or forgotten password?" -msgstr "Zgubione hasÅ‚o?" +msgstr "Zgubione lub zapomniane hasÅ‚o?" #: ../actions/emailsettings.php:80 ../actions/smssettings.php:89 #: actions/emailsettings.php:81 actions/smssettings.php:89 +#: actions/emailsettings.php:139 actions/smssettings.php:150 msgid "Make a new email address for posting to; cancels the old one." -msgstr "" +msgstr "Używaj nowego adresu e-mail do wysyÅ‚ania; anuluj stary." #: ../actions/emailsettings.php:27 actions/emailsettings.php:27 #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "ZarzÄ…dzaj, jak otrzymywać wiadomoÅ›ci e-mail od %%site.name%%." #: ../actions/showstream.php:300 actions/showstream.php:315 #: actions/showstream.php:480 msgid "Member since" -msgstr "W serwisie od" +msgstr "CzÅ‚onek od" #: ../actions/userrss.php:70 actions/userrss.php:67 actions/userrss.php:72 #, php-format msgid "Microblog by %s" -msgstr "%s – mikroblog" +msgstr "Mikroblog użytkownika %s" -#: ../actions/smssettings.php:304 +#: ../actions/smssettings.php:304 actions/smssettings.php:464 #, php-format msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" +"Operator komórkowy Twojego telefonu. JeÅ›li znasz operatora, który akceptuje " +"wiadomoÅ›ci SMS przez e-mail, a nie znajduje siÄ™ na liÅ›cie, wyÅ›lij wiadomość " +"e-mail na %s (w jÄ™zyku angielskim), aby nam o tym powiedzieć." #: ../actions/finishopenidlogin.php:79 ../actions/register.php:188 #: actions/finishopenidlogin.php:85 actions/register.php:202 #: actions/finishopenidlogin.php:107 actions/register.php:429 +#: actions/register.php:430 msgid "My text and files are available under " -msgstr "Moje teksty i pliki sÄ… widoczne pod" +msgstr "Moje teksty i pliki sÄ… dostÄ™pne na " #: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 #: actions/emailsettings.php:83 actions/smssettings.php:91 #: actions/emailsettings.php:142 actions/smssettings.php:152 msgid "New" -msgstr "" +msgstr "Nowe" #: ../lib/mail.php:144 lib/mail.php:144 lib/mail.php:286 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "Nowy adres e-mail do wysyÅ‚ania do %s" #: ../actions/emailsettings.php:297 actions/emailsettings.php:315 -#: actions/emailsettings.php:465 +#: actions/emailsettings.php:465 actions/emailsettings.php:472 +#: actions/smssettings.php:542 msgid "New incoming email address added." -msgstr "" +msgstr "Dodano nowy przychodzÄ…cy adres e-mail." #: ../actions/finishopenidlogin.php:71 actions/finishopenidlogin.php:77 #: actions/finishopenidlogin.php:99 @@ -1264,9 +1367,9 @@ msgstr "Nowy wpis" msgid "New password" msgstr "Nowe hasÅ‚o" -#: ../actions/recoverpassword.php:314 +#: ../actions/recoverpassword.php:314 actions/recoverpassword.php:361 msgid "New password successfully saved. You are now logged in." -msgstr "Nowe hasÅ‚o zapisano pomyÅ›lnie. Możesz siÄ™ zalogować." +msgstr "PomyÅ›lnie zapisano nowe hasÅ‚o. JesteÅ› teraz zalogowany." #: ../actions/login.php:101 ../actions/profilesettings.php:41 #: ../actions/register.php:151 actions/login.php:101 @@ -1274,7 +1377,9 @@ msgstr "Nowe hasÅ‚o zapisano pomyÅ›lnie. Możesz siÄ™ zalogować." #: actions/login.php:228 actions/profilesettings.php:98 #: actions/register.php:367 actions/showgroup.php:224 #: actions/showstream.php:251 actions/tagother.php:95 -#: lib/facebookaction.php:308 lib/groupeditform.php:137 +#: lib/facebookaction.php:308 lib/groupeditform.php:137 actions/login.php:211 +#: actions/showgroup.php:226 actions/showstream.php:244 +#: actions/tagother.php:94 lib/facebookaction.php:312 msgid "Nickname" msgstr "Pseudonim" @@ -1285,21 +1390,23 @@ msgstr "Pseudonim" #: actions/newgroup.php:134 actions/profilesettings.php:214 #: actions/register.php:159 msgid "Nickname already in use. Try another one." -msgstr "Ten pseudonim jest już w użyciu. Wybierz inny." +msgstr "Pseudonim jest już używany. Spróbuj innego." #: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:88 #: ../actions/register.php:67 ../actions/updateprofile.php:77 #: actions/finishopenidlogin.php:171 actions/profilesettings.php:203 #: actions/register.php:74 actions/updateprofile.php:78 #: actions/finishopenidlogin.php:205 actions/profilesettings.php:192 -#: actions/updateprofile.php:81 +#: actions/updateprofile.php:81 actions/editgroup.php:179 +#: actions/newgroup.php:130 actions/register.php:156 +#: actions/updateprofile.php:83 msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "Pseudonim musi zawierać tylko maÅ‚e litery i cyfry, bez znaków spacji." +msgstr "Pseudonim może zawierać tylko maÅ‚e litery i cyfry, bez spacji." #: ../actions/finishopenidlogin.php:170 actions/finishopenidlogin.php:176 #: actions/finishopenidlogin.php:210 msgid "Nickname not allowed." -msgstr "Pseudonim niedozwolony." +msgstr "Niedozwolony pseudonim." #: ../actions/remotesubscribe.php:72 actions/remotesubscribe.php:81 #: actions/remotesubscribe.php:106 @@ -1309,12 +1416,13 @@ msgstr "Pseudonim użytkownika którego chcesz obserwować" #: ../actions/recoverpassword.php:162 actions/recoverpassword.php:167 #: actions/recoverpassword.php:186 msgid "Nickname or email" -msgstr "Pseudonim lub e-mail" +msgstr "Pseudonim lub adres e-mail" #: ../actions/deletenotice.php:59 actions/deletenotice.php:60 #: actions/block.php:147 actions/deletenotice.php:118 +#: actions/deletenotice.php:116 msgid "No" -msgstr "" +msgstr "Nie" #: ../actions/imsettings.php:156 actions/imsettings.php:164 #: actions/imsettings.php:279 @@ -1324,17 +1432,17 @@ msgstr "Brak identyfikatora Jabbera." #: ../actions/userauthorization.php:129 actions/userauthorization.php:136 #: actions/userauthorization.php:153 msgid "No authorization request!" -msgstr "Brak żądania autoryzacji!" +msgstr "Brak żądania upoważnienia!" #: ../actions/smssettings.php:181 actions/smssettings.php:189 #: actions/smssettings.php:299 msgid "No carrier selected." -msgstr "" +msgstr "Nie wybrano operatora." #: ../actions/smssettings.php:316 actions/smssettings.php:324 #: actions/smssettings.php:486 msgid "No code entered" -msgstr "" +msgstr "Nie podano kodu" #: ../actions/confirmaddress.php:33 actions/confirmaddress.php:33 #: actions/confirmaddress.php:75 @@ -1344,27 +1452,29 @@ msgstr "Brak kodu potwierdzajÄ…cego." #: ../actions/newnotice.php:44 actions/newmessage.php:53 #: actions/newnotice.php:44 classes/Command.php:197 actions/newmessage.php:109 #: actions/newnotice.php:126 classes/Command.php:223 +#: actions/newmessage.php:142 actions/newnotice.php:131 lib/command.php:223 msgid "No content!" msgstr "Brak zawartoÅ›ci!" #: ../actions/emailsettings.php:174 actions/emailsettings.php:192 -#: actions/emailsettings.php:304 +#: actions/emailsettings.php:304 actions/emailsettings.php:311 msgid "No email address." -msgstr "" +msgstr "Brak adresu e-mail." #: ../actions/userbyid.php:32 actions/userbyid.php:32 actions/userbyid.php:70 msgid "No id." msgstr "Brak identyfikatora." #: ../actions/emailsettings.php:271 actions/emailsettings.php:289 -#: actions/emailsettings.php:430 +#: actions/emailsettings.php:430 actions/emailsettings.php:437 +#: actions/smssettings.php:505 msgid "No incoming email address." -msgstr "" +msgstr "Brak przychodzÄ…cego adresu e-mail." #: ../actions/finishremotesubscribe.php:65 #: actions/finishremotesubscribe.php:67 actions/finishremotesubscribe.php:68 msgid "No nickname provided by remote server." -msgstr "Zdalny serwer nie wysÅ‚aÅ‚ pseudonimu." +msgstr "Zdalny serwer nie dostarczyÅ‚ pseudonimu." #: ../actions/avatarbynickname.php:27 actions/avatarbynickname.php:27 #: actions/avatarbynickname.php:59 actions/leavegroup.php:81 @@ -1375,24 +1485,24 @@ msgstr "Brak pseudonimu." #: ../actions/smssettings.php:229 actions/emailsettings.php:240 #: actions/imsettings.php:214 actions/smssettings.php:237 #: actions/emailsettings.php:363 actions/imsettings.php:345 -#: actions/smssettings.php:358 +#: actions/smssettings.php:358 actions/emailsettings.php:370 msgid "No pending confirmation to cancel." msgstr "Brak oczekujÄ…cych potwierdzeÅ„ do anulowania." #: ../actions/smssettings.php:176 actions/smssettings.php:184 #: actions/smssettings.php:294 msgid "No phone number." -msgstr "" +msgstr "Brak numeru telefonu." #: ../actions/finishremotesubscribe.php:72 #: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75 msgid "No profile URL returned by server." -msgstr "Serwer nie zwróciÅ‚ żadnego URL-a." +msgstr "Serwer nie zwróciÅ‚ adresu URL profilu." #: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232 #: actions/recoverpassword.php:266 msgid "No registered email address for that user." -msgstr "Brak zarejestrowanych adresów e-mailowych dla tego użytkownika." +msgstr "Brak zarejestrowanych adresów e-mail dla tego użytkownika." #: ../actions/userauthorization.php:49 actions/userauthorization.php:55 #: actions/userauthorization.php:57 @@ -1402,51 +1512,52 @@ msgstr "Nie znaleziono żądania!" #: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64 #: actions/noticesearch.php:69 actions/peoplesearch.php:69 #: actions/groupsearch.php:81 actions/noticesearch.php:104 -#: actions/peoplesearch.php:85 +#: actions/peoplesearch.php:85 actions/noticesearch.php:117 msgid "No results" msgstr "Brak wyników" #: ../actions/avatarbynickname.php:32 actions/avatarbynickname.php:32 #: actions/avatarbynickname.php:64 msgid "No size." -msgstr "Zerowy rozmiar." +msgstr "Brak rozmiaru." #: ../actions/twitapistatuses.php:595 actions/twitapifavorites.php:136 #: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112 -#: actions/twitapistatuses.php:446 +#: actions/twitapistatuses.php:446 actions/twitapifavorites.php:118 +#: actions/twitapistatuses.php:470 msgid "No status found with that ID." -msgstr "" +msgstr "Nie znaleziono statusów z tym identyfikatorem." #: ../actions/twitapistatuses.php:555 actions/twitapistatuses.php:478 -#: actions/twitapistatuses.php:418 +#: actions/twitapistatuses.php:418 actions/twitapistatuses.php:442 msgid "No status with that ID found." -msgstr "" +msgstr "Nie znaleziono statusów z tym identyfikatorem." #: ../actions/openidsettings.php:135 actions/openidsettings.php:144 #: actions/openidsettings.php:222 msgid "No such OpenID." -msgstr "Brak takiego identyfikatora OpenID." +msgstr "Nie ma takiego identyfikatora OpenID." #: ../actions/doc.php:29 actions/doc.php:29 actions/doc.php:64 msgid "No such document." -msgstr "Brak takiego dokumentu." +msgstr "Nie ma takiego dokumentu." #: ../actions/shownotice.php:32 ../actions/shownotice.php:83 #: ../lib/deleteaction.php:30 actions/shownotice.php:32 #: actions/shownotice.php:83 lib/deleteaction.php:30 actions/shownotice.php:87 #: lib/deleteaction.php:51 msgid "No such notice." -msgstr "Brak takiego wpisu." +msgstr "Nie ma takiego wpisu." #: ../actions/recoverpassword.php:56 actions/recoverpassword.php:56 #: actions/recoverpassword.php:62 msgid "No such recovery code." -msgstr "Brak takiego kodu przywracania." +msgstr "Nie ma takiego kodu przywracania." #: ../actions/postnotice.php:56 actions/postnotice.php:57 #: actions/postnotice.php:60 msgid "No such subscription" -msgstr "Nie ma takiej obserwacji" +msgstr "Nie ma takiej subskrypcji" #: ../actions/all.php:34 ../actions/allrss.php:35 #: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40 @@ -1472,14 +1583,16 @@ msgstr "Nie ma takiej obserwacji" #: actions/usergroups.php:92 actions/userrss.php:38 actions/xrds.php:73 #: classes/Command.php:140 classes/Command.php:185 classes/Command.php:234 #: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82 -#: lib/subs.php:34 lib/subs.php:109 +#: lib/subs.php:34 lib/subs.php:109 actions/all.php:56 actions/allrss.php:68 +#: actions/favoritesrss.php:74 lib/command.php:140 lib/command.php:185 +#: lib/command.php:234 lib/command.php:271 lib/mailbox.php:84 msgid "No such user." msgstr "Brak takiego użytkownika." #: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217 #: actions/recoverpassword.php:251 msgid "No user with that email address or username." -msgstr "" +msgstr "Brak użytkownika z tym adresem e-mail lub nazwÄ… użytkownika." #: ../lib/gallery.php:80 lib/gallery.php:85 msgid "Nobody to show!" @@ -1493,64 +1606,66 @@ msgstr "To nie jest kod przywracania." #: ../scripts/maildaemon.php:50 scripts/maildaemon.php:50 #: scripts/maildaemon.php:53 msgid "Not a registered user." -msgstr "" +msgstr "To nie jest zarejestrowany użytkownik." #: ../lib/twitterapi.php:226 ../lib/twitterapi.php:247 #: ../lib/twitterapi.php:332 lib/twitterapi.php:391 lib/twitterapi.php:418 #: lib/twitterapi.php:502 lib/twitterapi.php:448 lib/twitterapi.php:476 -#: lib/twitterapi.php:566 +#: lib/twitterapi.php:566 lib/twitterapi.php:483 lib/twitterapi.php:511 +#: lib/twitterapi.php:601 msgid "Not a supported data format." -msgstr "" +msgstr "To nie jest obsÅ‚ugiwany format danych." #: ../actions/imsettings.php:167 actions/imsettings.php:175 #: actions/imsettings.php:290 msgid "Not a valid Jabber ID" -msgstr "Niepoprawny identyfikator Jabbera" +msgstr "To nie jest prawidÅ‚owy identyfikator Jabbera" #: ../lib/openid.php:131 lib/openid.php:131 lib/openid.php:140 +#: lib/openid.php:143 msgid "Not a valid OpenID." -msgstr "Niepoprawny identyfikator OpenID." +msgstr "To nie jest prawidÅ‚owy identyfikator OpenID." #: ../actions/emailsettings.php:185 actions/emailsettings.php:203 -#: actions/emailsettings.php:315 +#: actions/emailsettings.php:315 actions/emailsettings.php:322 msgid "Not a valid email address" -msgstr "" +msgstr "To nie jest prawidÅ‚owy adres e-mail" #: ../actions/register.php:63 actions/register.php:70 actions/register.php:152 msgid "Not a valid email address." -msgstr "NiewÅ‚aÅ›ciwy adres e-mailowy." +msgstr "To nie jest prawidÅ‚owy adres e-mail." #: ../actions/profilesettings.php:91 ../actions/register.php:71 #: actions/profilesettings.php:206 actions/register.php:78 #: actions/editgroup.php:186 actions/newgroup.php:137 #: actions/profilesettings.php:195 actions/register.php:161 msgid "Not a valid nickname." -msgstr "NiewÅ‚aÅ›ciwy pseudonim." +msgstr "To nie jest prawidÅ‚owy pseudonim." #: ../actions/remotesubscribe.php:120 actions/remotesubscribe.php:129 #: actions/remotesubscribe.php:159 msgid "Not a valid profile URL (incorrect services)." -msgstr "BÅ‚Ä™dny URL profilu (niepoprawne usÅ‚ugi)" +msgstr "To nie jest prawidÅ‚owy adres URL profilu (niepoprawne usÅ‚ugi)." #: ../actions/remotesubscribe.php:113 actions/remotesubscribe.php:122 #: actions/remotesubscribe.php:152 msgid "Not a valid profile URL (no XRDS defined)." -msgstr "BÅ‚Ä™dny URL profilu (nie zdefiniowany XRDS)" +msgstr "To nie jest prawidÅ‚owy adres URL profilu (nie podano XRDS)." #: ../actions/remotesubscribe.php:104 actions/remotesubscribe.php:113 #: actions/remotesubscribe.php:143 msgid "Not a valid profile URL (no YADIS document)." -msgstr "BÅ‚Ä™dny URL profilu (brak dokumentu YADIS)" +msgstr "To nie jest prawidÅ‚owy adres URL profilu (brak dokumentu YADIS)." #: ../actions/avatar.php:95 actions/profilesettings.php:332 -#: lib/imagefile.php:87 +#: lib/imagefile.php:87 lib/imagefile.php:90 msgid "Not an image or corrupt file." -msgstr "Brak obrazka lub plik uszkodzony." +msgstr "To nie jest obraz lub lub plik jest uszkodzony." #: ../actions/finishremotesubscribe.php:51 #: actions/finishremotesubscribe.php:53 actions/finishremotesubscribe.php:54 msgid "Not authorized." -msgstr "Brak autoryzacji." +msgstr "Brak upoważnienia." #: ../actions/finishremotesubscribe.php:38 #: actions/finishremotesubscribe.php:38 actions/finishremotesubscribe.php:40 @@ -1558,9 +1673,9 @@ msgid "Not expecting this response!" msgstr "Nieoczekiwana odpowiedź!" #: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361 -#: actions/twitapistatuses.php:309 +#: actions/twitapistatuses.php:309 actions/twitapistatuses.php:327 msgid "Not found" -msgstr "" +msgstr "Nie znaleziono" #: ../actions/finishaddopenid.php:29 ../actions/logout.php:33 #: ../actions/newnotice.php:29 ../actions/subscribe.php:28 @@ -1574,18 +1689,18 @@ msgstr "" #: actions/newmessage.php:83 actions/newnotice.php:90 actions/nudge.php:63 #: actions/subedit.php:31 actions/subscribe.php:30 actions/unblock.php:60 #: actions/unsubscribe.php:27 lib/deleteaction.php:66 -#: lib/settingsaction.php:72 +#: lib/settingsaction.php:72 actions/newmessage.php:87 msgid "Not logged in." msgstr "Niezalogowany." #: ../lib/subs.php:91 lib/subs.php:104 lib/subs.php:122 msgid "Not subscribed!." -msgstr "Nie obserwujesz!." +msgstr "Nie zasubskrybowane!" #: ../actions/opensearch.php:35 actions/opensearch.php:35 #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "" +msgstr "Wyszukiwanie wpisów" #: ../actions/showstream.php:82 actions/showstream.php:82 #: actions/showstream.php:180 actions/showstream.php:187 @@ -1597,19 +1712,19 @@ msgstr "KanaÅ‚ wpisów dla %s" #: ../actions/shownotice.php:39 actions/shownotice.php:39 #: actions/shownotice.php:94 msgid "Notice has no profile" -msgstr "Wpis nie ma przypisanego profilu" +msgstr "Wpis nie posiada profilu" #: ../actions/showstream.php:316 actions/showstream.php:331 #: actions/showstream.php:504 lib/facebookaction.php:477 lib/mailbox.php:116 -#: lib/noticelist.php:87 +#: lib/noticelist.php:87 lib/facebookaction.php:581 lib/mailbox.php:118 msgid "Notices" msgstr "Wpisy" #: ../actions/tag.php:35 ../actions/tag.php:81 actions/tag.php:35 -#: actions/tag.php:81 actions/tag.php:41 +#: actions/tag.php:81 actions/tag.php:41 actions/tag.php:49 #, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "Wpisy ze znacznikiem %s" #: ../actions/password.php:39 actions/profilesettings.php:178 #: actions/passwordsettings.php:97 @@ -1618,7 +1733,7 @@ msgstr "Stare hasÅ‚o" #: ../lib/settingsaction.php:96 ../lib/util.php:314 lib/settingsaction.php:90 #: lib/util.php:330 lib/accountsettingsaction.php:116 lib/action.php:341 -#: lib/logingroupnav.php:81 +#: lib/logingroupnav.php:81 lib/action.php:418 msgid "OpenID" msgstr "OpenID" @@ -1628,39 +1743,43 @@ msgid "OpenID Account Setup" msgstr "Ustawienia konta OpenID" #: ../lib/openid.php:180 lib/openid.php:180 lib/openid.php:266 +#: lib/openid.php:269 msgid "OpenID Auto-Submit" -msgstr "Automatyczne zatwierdzanie OpenID" +msgstr "Automatyczne wysÅ‚anie OpenID" #: ../actions/finishaddopenid.php:99 ../actions/finishopenidlogin.php:140 #: ../actions/openidlogin.php:60 actions/finishaddopenid.php:99 #: actions/finishopenidlogin.php:146 actions/openidlogin.php:68 #: actions/finishaddopenid.php:170 actions/openidlogin.php:80 +#: actions/openidlogin.php:89 msgid "OpenID Login" -msgstr "Użytkownik OpenID" +msgstr "Login OpenID" #: ../actions/openidlogin.php:65 ../actions/openidsettings.php:49 #: actions/openidlogin.php:74 actions/openidsettings.php:50 #: actions/openidlogin.php:102 actions/openidsettings.php:101 +#: actions/openidlogin.php:111 msgid "OpenID URL" -msgstr "URL usÅ‚ugi OpenID" +msgstr "Adres URL identyfikatora OpenID" #: ../actions/finishaddopenid.php:42 ../actions/finishopenidlogin.php:103 #: actions/finishaddopenid.php:42 actions/finishopenidlogin.php:109 #: actions/finishaddopenid.php:88 actions/finishopenidlogin.php:130 msgid "OpenID authentication cancelled." -msgstr "Uwiarygadnianie OpenID przerwane." +msgstr "Anulowano uwierzytelnienie OpenID." #: ../actions/finishaddopenid.php:46 ../actions/finishopenidlogin.php:107 #: actions/finishaddopenid.php:46 actions/finishopenidlogin.php:113 #: actions/finishaddopenid.php:92 actions/finishopenidlogin.php:134 #, php-format msgid "OpenID authentication failed: %s" -msgstr "Uwiarygadnianie OpenID nie powiodÅ‚o siÄ™: %s" +msgstr "Uwierzytelnienie OpenID nie powiodÅ‚o siÄ™: %s" #: ../lib/openid.php:133 lib/openid.php:133 lib/openid.php:142 +#: lib/openid.php:145 #, php-format msgid "OpenID failure: %s" -msgstr "Awaria OpenID: %s" +msgstr "Niepowodzenie OpenID: %s" #: ../actions/openidsettings.php:144 actions/openidsettings.php:153 #: actions/openidsettings.php:231 @@ -1673,13 +1792,14 @@ msgid "OpenID settings" msgstr "Ustawienia OpenID" #: ../actions/invite.php:135 actions/invite.php:143 actions/invite.php:180 +#: actions/invite.php:186 msgid "Optionally add a personal message to the invitation." -msgstr "" +msgstr "Opcjonalnie dodaj osobistÄ… wiadomość do zaproszenia." #: ../actions/avatar.php:84 actions/profilesettings.php:321 -#: lib/imagefile.php:75 +#: lib/imagefile.php:75 lib/imagefile.php:79 msgid "Partial upload." -msgstr "Częściowa wysyÅ‚ka." +msgstr "Częściowo wysÅ‚ano." #: ../actions/finishopenidlogin.php:90 ../actions/login.php:102 #: ../actions/register.php:153 ../lib/settingsaction.php:93 @@ -1687,63 +1807,68 @@ msgstr "Częściowa wysyÅ‚ka." #: actions/register.php:167 actions/finishopenidlogin.php:118 #: actions/login.php:231 actions/register.php:372 #: lib/accountsettingsaction.php:110 lib/facebookaction.php:311 +#: actions/login.php:214 lib/facebookaction.php:315 msgid "Password" msgstr "HasÅ‚o" #: ../actions/recoverpassword.php:288 actions/recoverpassword.php:301 #: actions/recoverpassword.php:335 msgid "Password and confirmation do not match." -msgstr "HasÅ‚o i jego potwierdzenie nie pasujÄ… do siebie." +msgstr "HasÅ‚o i potwierdzenie nie pasujÄ… do siebie." #: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297 #: actions/recoverpassword.php:331 msgid "Password must be 6 chars or more." -msgstr "HasÅ‚o musi mieć 6 lub wiÄ™cej znaków." +msgstr "HasÅ‚o musi mieć sześć lub wiÄ™cej znaków." #: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263 #: actions/recoverpassword.php:267 actions/recoverpassword.php:269 #: actions/recoverpassword.php:199 actions/recoverpassword.php:301 msgid "Password recovery requested" -msgstr "Zażądano odzyskania hasÅ‚a" +msgstr "Zażądano przywracania hasÅ‚a" #: ../actions/password.php:89 ../actions/recoverpassword.php:313 #: actions/profilesettings.php:408 actions/recoverpassword.php:326 #: actions/passwordsettings.php:173 actions/recoverpassword.php:200 +#: actions/passwordsettings.php:178 msgid "Password saved." -msgstr "HasÅ‚o zostaÅ‚o zapisane." +msgstr "Zapisano hasÅ‚o." #: ../actions/password.php:61 ../actions/register.php:88 #: actions/profilesettings.php:380 actions/register.php:98 #: actions/passwordsettings.php:145 actions/register.php:183 +#: actions/passwordsettings.php:150 msgid "Passwords don't match." -msgstr "Podane hasÅ‚a nie pasujÄ… do siebie." +msgstr "HasÅ‚a nie pasujÄ… do siebie." #: ../lib/searchaction.php:100 lib/searchaction.php:100 #: lib/searchgroupnav.php:80 msgid "People" -msgstr "" +msgstr "Osoby" #: ../actions/opensearch.php:33 actions/opensearch.php:33 #: actions/opensearch.php:64 msgid "People Search" -msgstr "" +msgstr "Wyszukiwanie osób" #: ../actions/peoplesearch.php:33 actions/peoplesearch.php:33 #: actions/peoplesearch.php:58 msgid "People search" -msgstr "Szukaj ludzi" +msgstr "Wyszukiwanie osób" #: ../lib/stream.php:50 lib/personal.php:50 lib/personalgroupnav.php:98 msgid "Personal" msgstr "Osobiste" #: ../actions/invite.php:133 actions/invite.php:141 actions/invite.php:178 +#: actions/invite.php:184 msgid "Personal message" -msgstr "" +msgstr "Osobista wiadomość" #: ../actions/smssettings.php:69 actions/smssettings.php:69 +#: actions/smssettings.php:128 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" +msgstr "Numer telefonu, bez znaków przestankowych i spacji, z kodem paÅ„stwa" #: ../actions/userauthorization.php:78 msgid "" @@ -1751,21 +1876,20 @@ msgid "" "user's notices. If you didn't just ask to subscribe to someone's notices, " "click \"Cancel\"." msgstr "" -"Sprawdź proszÄ™ poniższe informacje, aby upewnić siÄ™ czy na pewno chcesz " -"obserwować wpisy tego użytkownika. Jeżeli to pomyÅ‚ka lub chodziÅ‚o o kogoÅ› " -"innego kliknij \"Anuluj\"." +"Sprawdź te szczegóły, aby upewnić siÄ™, czy chcesz subskrybować wpisy tego " +"użytkownika. JeÅ›li nie chcesz, po prostu naciÅ›nij \"Anuluj\"." #: ../actions/imsettings.php:73 actions/imsettings.php:74 #: actions/imsettings.php:142 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "Utwórz wpis kiedy zmieni siÄ™ status na komunikatorze." +msgstr "WyÅ›lij wpis, kiedy zmieni siÄ™ mój status na Jabberze/GTalk." #: ../actions/emailsettings.php:85 ../actions/imsettings.php:67 #: ../actions/smssettings.php:94 actions/emailsettings.php:86 #: actions/imsettings.php:68 actions/smssettings.php:94 #: actions/twittersettings.php:70 actions/emailsettings.php:147 #: actions/imsettings.php:133 actions/smssettings.php:157 -#: actions/twittersettings.php:134 +#: actions/twittersettings.php:134 actions/twittersettings.php:137 msgid "Preferences" msgstr "Preferencje" @@ -1774,22 +1898,24 @@ msgstr "Preferencje" #: actions/imsettings.php:152 actions/smssettings.php:171 #: actions/emailsettings.php:286 actions/imsettings.php:258 #: actions/othersettings.php:168 actions/smssettings.php:272 +#: actions/emailsettings.php:293 msgid "Preferences saved." -msgstr "Preferencje zostaÅ‚y zapisane." +msgstr "Zapisano preferencje." #: ../actions/profilesettings.php:57 actions/profilesettings.php:90 #: actions/profilesettings.php:129 msgid "Preferred language" -msgstr "" +msgstr "Preferowany jÄ™zyk" -#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 +#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 lib/action.php:665 msgid "Privacy" msgstr "Prywatność" #: ../classes/Notice.php:95 ../classes/Notice.php:106 classes/Notice.php:109 #: classes/Notice.php:119 classes/Notice.php:145 classes/Notice.php:155 +#: classes/Notice.php:178 classes/Notice.php:188 msgid "Problem saving notice." -msgstr "Problem z zachowywaniem wpisu." +msgstr "Problem podczas zapisywania wpisu." #: ../lib/settingsaction.php:84 ../lib/stream.php:60 lib/personal.php:60 #: lib/settingsaction.php:84 lib/accountsettingsaction.php:104 @@ -1800,7 +1926,7 @@ msgstr "Profil" #: ../actions/remotesubscribe.php:73 actions/remotesubscribe.php:82 #: actions/remotesubscribe.php:109 msgid "Profile URL" -msgstr "URL profilu" +msgstr "Adres URL profilu" #: ../actions/profilesettings.php:34 actions/profilesettings.php:32 #: actions/profilesettings.php:58 @@ -1810,32 +1936,33 @@ msgstr "Ustawienia profilu" #: ../actions/postnotice.php:51 ../actions/updateprofile.php:52 #: actions/postnotice.php:52 actions/updateprofile.php:53 #: actions/postnotice.php:55 actions/updateprofile.php:56 +#: actions/updateprofile.php:58 msgid "Profile unknown" msgstr "Nieznany profil" #: ../actions/public.php:54 actions/public.php:54 actions/public.php:124 msgid "Public Stream Feed" -msgstr "Publiczny KanaÅ‚ Strumieni" +msgstr "KanaÅ‚ publicznego strumienia" #: ../actions/public.php:33 actions/public.php:33 actions/public.php:109 -#: lib/publicgroupnav.php:77 +#: lib/publicgroupnav.php:77 actions/public.php:112 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Publiczna oÅ› czasu" #: ../actions/imsettings.php:79 actions/imsettings.php:80 #: actions/imsettings.php:153 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "Opublikuj MicroID adresu Jabbera/GTalk." #: ../actions/emailsettings.php:94 actions/emailsettings.php:101 -#: actions/emailsettings.php:178 +#: actions/emailsettings.php:178 actions/emailsettings.php:183 msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "Opublikuj MicroID adresu e-mail." #: ../actions/tag.php:75 ../actions/tag.php:76 actions/tag.php:75 #: actions/tag.php:76 msgid "Recent Tags" -msgstr "" +msgstr "Ostatnie znaczniki" #: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171 #: actions/recoverpassword.php:190 @@ -1845,29 +1972,30 @@ msgstr "Przywróć" #: ../actions/recoverpassword.php:156 actions/recoverpassword.php:161 #: actions/recoverpassword.php:198 msgid "Recover password" -msgstr "Odzyskiwanie hasÅ‚a" +msgstr "Przywróć hasÅ‚o" #: ../actions/recoverpassword.php:67 actions/recoverpassword.php:67 #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "Kod przywracajÄ…cy dla nieznanego użytkownika." +msgstr "Kod przywracania dla nieznanego użytkownika." #: ../actions/register.php:142 ../actions/register.php:193 ../lib/util.php:312 #: actions/register.php:152 actions/register.php:207 lib/util.php:328 #: actions/register.php:69 actions/register.php:436 lib/action.php:338 #: lib/facebookaction.php:277 lib/logingroupnav.php:78 +#: actions/register.php:438 lib/action.php:415 lib/facebookaction.php:279 msgid "Register" -msgstr "Zarejestruj" +msgstr "Zarejestruj siÄ™" #: ../actions/register.php:28 actions/register.php:28 #: actions/finishopenidlogin.php:196 actions/register.php:90 msgid "Registration not allowed." -msgstr "" +msgstr "Rejestracja nie jest dozwolona." #: ../actions/register.php:200 actions/register.php:214 #: actions/register.php:67 msgid "Registration successful" -msgstr "" +msgstr "Rejestracja powiodÅ‚a siÄ™" #: ../actions/userauthorization.php:120 actions/userauthorization.php:127 #: actions/userauthorization.php:144 @@ -1876,19 +2004,19 @@ msgstr "Odrzuć" #: ../actions/login.php:103 ../actions/register.php:176 actions/login.php:103 #: actions/register.php:190 actions/login.php:234 actions/openidlogin.php:107 -#: actions/register.php:414 +#: actions/register.php:414 actions/login.php:217 actions/openidlogin.php:116 msgid "Remember me" -msgstr "PamiÄ™taj mnie" +msgstr "ZapamiÄ™taj mnie" #: ../actions/updateprofile.php:70 actions/updateprofile.php:71 -#: actions/updateprofile.php:74 +#: actions/updateprofile.php:74 actions/updateprofile.php:76 msgid "Remote profile with no matching profile" -msgstr "Zdalny profil bez odpowiadajÄ…cego profilu lokalnego" +msgstr "Zdalny profil bez odpowiadajÄ…cego profilu" #: ../actions/remotesubscribe.php:65 actions/remotesubscribe.php:73 #: actions/remotesubscribe.php:88 msgid "Remote subscribe" -msgstr "Zdalna subskrypcja" +msgstr "Zasubskrybuj zdalnie" #: ../actions/emailsettings.php:47 ../actions/emailsettings.php:75 #: ../actions/imsettings.php:48 ../actions/openidsettings.php:106 @@ -1900,21 +2028,22 @@ msgstr "Zdalna subskrypcja" #: actions/emailsettings.php:134 actions/imsettings.php:102 #: actions/openidsettings.php:166 actions/smssettings.php:103 #: actions/smssettings.php:146 actions/twittersettings.php:115 +#: actions/twittersettings.php:118 msgid "Remove" msgstr "UsuÅ„" #: ../actions/openidsettings.php:68 actions/openidsettings.php:69 #: actions/openidsettings.php:123 msgid "Remove OpenID" -msgstr "UsuÅ„ konto OpenID" +msgstr "UsuÅ„ identyfikator OpenID" -#: ../actions/openidsettings.php:73 +#: ../actions/openidsettings.php:73 actions/openidsettings.php:128 msgid "" "Removing your only OpenID would make it impossible to log in! If you need to " "remove it, add another OpenID first." msgstr "" -"UsuniÄ™cie jedynego konta OpenID uniemożliwi dalsze logowanie! JeÅ›li musisz " -"je usunąć dodaj wczeÅ›niej jakieÅ› inne." +"UsuniÄ™cie jedynego identyfikatora OpenID uniemożliwi zalogowanie siÄ™! JeÅ›li " +"musisz je usunąć, dodaj najpierw inne." #: ../lib/stream.php:55 lib/personal.php:55 lib/personalgroupnav.php:103 msgid "Replies" @@ -1923,7 +2052,7 @@ msgstr "Odpowiedzi" #: ../actions/replies.php:47 ../actions/repliesrss.php:76 ../lib/stream.php:56 #: actions/replies.php:47 actions/repliesrss.php:62 lib/personal.php:56 #: actions/replies.php:116 actions/repliesrss.php:67 -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:104 actions/replies.php:118 #, php-format msgid "Replies to %s" msgstr "Odpowiedzi na %s" @@ -1931,41 +2060,42 @@ msgstr "Odpowiedzi na %s" #: ../actions/recoverpassword.php:183 actions/recoverpassword.php:189 #: actions/recoverpassword.php:223 msgid "Reset" -msgstr "Wyzeruj" +msgstr "Przywróć" #: ../actions/recoverpassword.php:173 actions/recoverpassword.php:178 #: actions/recoverpassword.php:197 msgid "Reset password" -msgstr "Ustaw ponownie hasÅ‚o" +msgstr "Przywróć hasÅ‚o" #: ../lib/settingsaction.php:99 lib/settingsaction.php:93 #: actions/subscriptions.php:123 lib/connectsettingsaction.php:107 +#: actions/subscriptions.php:125 msgid "SMS" -msgstr "" +msgstr "SMS" #: ../actions/smssettings.php:67 actions/smssettings.php:67 #: actions/smssettings.php:126 msgid "SMS Phone number" -msgstr "" +msgstr "Numer telefonu SMS" #: ../actions/smssettings.php:33 actions/smssettings.php:33 #: actions/smssettings.php:58 msgid "SMS Settings" -msgstr "" +msgstr "Ustawienia SMS" -#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 +#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 lib/mail.php:438 msgid "SMS confirmation" -msgstr "" +msgstr "Potwierdzenie SMS" #: ../actions/recoverpassword.php:182 actions/recoverpassword.php:188 #: actions/recoverpassword.php:222 msgid "Same as password above" -msgstr "Takie samo jak hasÅ‚o wprowadzone powyżej" +msgstr "Takie samo jak powyższe hasÅ‚o" #: ../actions/register.php:156 actions/register.php:170 #: actions/register.php:377 msgid "Same as password above. Required." -msgstr "" +msgstr "Takie samo jak powyższe hasÅ‚o. Wymagane." #: ../actions/emailsettings.php:97 ../actions/imsettings.php:81 #: ../actions/profilesettings.php:67 ../actions/smssettings.php:100 @@ -1976,48 +2106,51 @@ msgstr "" #: actions/othersettings.php:117 actions/profilesettings.php:150 #: actions/smssettings.php:169 actions/subscriptions.php:124 #: actions/tagother.php:152 actions/twittersettings.php:161 -#: lib/groupeditform.php:171 +#: lib/groupeditform.php:171 actions/emailsettings.php:187 +#: actions/subscriptions.php:126 actions/tagother.php:154 +#: actions/twittersettings.php:164 msgid "Save" msgstr "Zapisz" #: ../lib/searchaction.php:84 ../lib/util.php:300 lib/searchaction.php:84 -#: lib/util.php:316 lib/action.php:325 +#: lib/util.php:316 lib/action.php:325 lib/action.php:396 msgid "Search" -msgstr "Szukaj" +msgstr "Znajdź" #: ../actions/noticesearch.php:80 actions/noticesearch.php:85 #: actions/noticesearch.php:127 msgid "Search Stream Feed" -msgstr "Szukaj KanaÅ‚u Strumieni" +msgstr "Znajdź kanaÅ‚ strumienia" #: ../actions/noticesearch.php:30 actions/noticesearch.php:30 -#: actions/noticesearch.php:57 +#: actions/noticesearch.php:57 actions/noticesearch.php:68 #, php-format msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" -"Wyszukiwanie w treÅ›ci wpisów w serwisie %%site.name%%. Użyj spacji aby " -"oddzielić elementy wyszukiwania. SÅ‚owa muszÄ… mieć minimum 3 znaki." +"Znajdź wpisy na %%site.name%% wedÅ‚ug ich zawartoÅ›ci. Oddziel wyszukiwane " +"terminy spacjami. Terminy muszÄ… mieć trzy znaki lub wiÄ™cej." -#: ../actions/peoplesearch.php:28 +#: ../actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -"Szukaj ludzi w serwisie %%site.name%%. Kryteriami mogÄ…Â być imiona i " -"nazwiska, miejscowoÅ›ci lub zainteresowania. Użyj spacji aby oddzielić " -"elementy wyszukiwania. SÅ‚owa muszÄ… mieć minimum 3 znaki." +"Znajdź osoby na %%site.name%% wedÅ‚ug ich nazwiska, poÅ‚ożenia lub " +"zainteresowaÅ„. Oddziel wyszukiwane terminy spacjami. Terminy muszÄ… mieć trzy " +"znaki lub wiÄ™cej." #: ../actions/smssettings.php:296 actions/smssettings.php:304 #: actions/smssettings.php:457 msgid "Select a carrier" -msgstr "" +msgstr "Wybierz operatora" #: ../actions/invite.php:137 ../lib/util.php:1172 actions/invite.php:145 #: lib/util.php:1306 lib/util.php:1731 actions/invite.php:182 -#: lib/messageform.php:167 lib/noticeform.php:177 +#: lib/messageform.php:167 lib/noticeform.php:177 actions/invite.php:189 +#: lib/messageform.php:165 msgid "Send" msgstr "WyÅ›lij" @@ -2025,45 +2158,51 @@ msgstr "WyÅ›lij" #: actions/emailsettings.php:74 actions/smssettings.php:82 #: actions/emailsettings.php:132 actions/smssettings.php:145 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "WyÅ›lij wiadomość e-mail na ten adres, aby wysyÅ‚ać nowe wpisy." #: ../actions/emailsettings.php:88 actions/emailsettings.php:89 #: actions/emailsettings.php:152 msgid "Send me notices of new subscriptions through email." -msgstr "" +msgstr "WyÅ›lij mi wpisy nowych subskrypcji przez e-mail." #: ../actions/imsettings.php:70 actions/imsettings.php:71 #: actions/imsettings.php:137 msgid "Send me notices through Jabber/GTalk." -msgstr "WysyÅ‚aj mi wpisy przez Jabbera/GTalka" +msgstr "WyÅ›lij mi wpisy przez Jabbera/GTalk." #: ../actions/smssettings.php:97 actions/smssettings.php:97 +#: actions/smssettings.php:162 msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"WyÅ›lij mi wpisy przez SMS. Rozumiem, że mogÄ™ otrzymywać wiÄ™ksze rachunki od " +"swojego operatora." #: ../actions/imsettings.php:76 actions/imsettings.php:77 +#: actions/imsettings.php:147 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" +"WyÅ›lij mi odpowiedzi przez Jabbera/GTalk od osób, których nie subskrybujÄ™." #: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215 +#: lib/facebookaction.php:228 msgid "Settings" msgstr "Ustawienia" #: ../actions/profilesettings.php:192 actions/profilesettings.php:307 #: actions/profilesettings.php:319 msgid "Settings saved." -msgstr "Ustawienia zostaÅ‚y zapisane." +msgstr "Zapisano ustawienia." #: ../actions/tag.php:60 actions/tag.php:60 msgid "Showing most popular tags from the last week" -msgstr "" +msgstr "WyÅ›wietlanie najpopularniejszych znaczników od ostatniego tygodnia" #: ../actions/finishaddopenid.php:66 actions/finishaddopenid.php:66 #: actions/finishaddopenid.php:114 msgid "Someone else already has this OpenID." -msgstr "KtoÅ› inny posÅ‚uguje siÄ™ już tym identyfikatorem OpenID." +msgstr "KtoÅ› inny już posiada ten identyfikator OpenID." #: ../actions/finishopenidlogin.php:42 ../actions/openidsettings.php:126 #: actions/finishopenidlogin.php:47 actions/openidsettings.php:135 @@ -2074,27 +2213,28 @@ msgstr "StaÅ‚o siÄ™ coÅ› dziwnego." #: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58 #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "Przepraszamy, przychodzÄ…cy e-mail nie jest dozwolony." #: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54 #: scripts/maildaemon.php:57 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Przepraszamy, to nie jest twój przychodzÄ…cy adres e-mail." -#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 +#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 lib/action.php:667 msgid "Source" msgstr "Kod źródÅ‚owy" #: ../actions/showstream.php:296 actions/showstream.php:311 -#: actions/showstream.php:476 +#: actions/showstream.php:476 actions/showgroup.php:375 msgid "Statistics" msgstr "Statystyki" #: ../actions/finishopenidlogin.php:182 ../actions/finishopenidlogin.php:246 #: actions/finishopenidlogin.php:188 actions/finishopenidlogin.php:252 #: actions/finishopenidlogin.php:222 actions/finishopenidlogin.php:290 +#: actions/finishopenidlogin.php:295 msgid "Stored OpenID not found." -msgstr "Nie znaleziono zapisanego konta OpenID." +msgstr "Nie znaleziono przechowywanego identyfikatora OpenID." #: ../actions/remotesubscribe.php:75 ../actions/showstream.php:188 #: ../actions/showstream.php:197 actions/remotesubscribe.php:84 @@ -2102,7 +2242,7 @@ msgstr "Nie znaleziono zapisanego konta OpenID." #: actions/remotesubscribe.php:113 actions/showstream.php:376 #: lib/subscribeform.php:139 msgid "Subscribe" -msgstr "Subskrybuj" +msgstr "Zasubskrybuj" #: ../actions/showstream.php:313 ../actions/subscribers.php:27 #: actions/showstream.php:328 actions/subscribers.php:27 @@ -2112,14 +2252,14 @@ msgid "Subscribers" msgstr "Subskrybenci" #: ../actions/userauthorization.php:310 actions/userauthorization.php:322 -#: actions/userauthorization.php:338 +#: actions/userauthorization.php:338 actions/userauthorization.php:344 msgid "Subscription authorized" -msgstr "Subskrypcja uwierzytelniona" +msgstr "Upoważniono subskrypcjÄ™" #: ../actions/userauthorization.php:320 actions/userauthorization.php:332 -#: actions/userauthorization.php:349 +#: actions/userauthorization.php:349 actions/userauthorization.php:355 msgid "Subscription rejected" -msgstr "Subskrypcja odrzucona" +msgstr "Odrzucono subskrypcjÄ™" #: ../actions/showstream.php:230 ../actions/showstream.php:307 #: ../actions/subscriptions.php:27 actions/showstream.php:240 @@ -2130,25 +2270,26 @@ msgid "Subscriptions" msgstr "Subskrypcje" #: ../actions/avatar.php:87 actions/profilesettings.php:324 -#: lib/imagefile.php:78 +#: lib/imagefile.php:78 lib/imagefile.php:82 msgid "System error uploading file." -msgstr "BÅ‚Ä…d systemowy podczas wysyÅ‚ania pliku." +msgstr "BÅ‚Ä…d systemu podczas wysyÅ‚ania pliku." #: ../actions/tag.php:41 ../lib/util.php:301 actions/tag.php:41 #: lib/util.php:317 actions/profilesettings.php:122 actions/showstream.php:297 #: actions/tagother.php:147 actions/tagother.php:207 lib/profilelist.php:162 -#: lib/profilelist.php:164 +#: lib/profilelist.php:164 actions/showstream.php:290 actions/tagother.php:149 +#: actions/tagother.php:209 lib/profilelist.php:160 msgid "Tags" -msgstr "" +msgstr "Znaczniki" #: ../lib/searchaction.php:104 lib/searchaction.php:104 msgid "Text" -msgstr "" +msgstr "Tekst" #: ../actions/noticesearch.php:34 actions/noticesearch.php:34 -#: actions/noticesearch.php:67 +#: actions/noticesearch.php:67 actions/noticesearch.php:78 msgid "Text search" -msgstr "Szukaj tekstu" +msgstr "Znajdź tekst" #: ../actions/openidsettings.php:140 actions/openidsettings.php:149 #: actions/openidsettings.php:227 @@ -2158,7 +2299,7 @@ msgstr "Ten identyfikator OpenID nie należy do Ciebie." #: ../actions/confirmaddress.php:52 actions/confirmaddress.php:52 #: actions/confirmaddress.php:94 msgid "That address has already been confirmed." -msgstr "Ten adres zostaÅ‚ już potwierdzony" +msgstr "Ten adres zostaÅ‚ już potwierdzony." #: ../actions/confirmaddress.php:43 actions/confirmaddress.php:43 #: actions/confirmaddress.php:85 @@ -2166,8 +2307,9 @@ msgid "That confirmation code is not for you!" msgstr "Ten kod potwierdzajÄ…cy nie jest przeznaczony dla Ciebie!" #: ../actions/emailsettings.php:191 actions/emailsettings.php:209 +#: actions/emailsettings.php:328 msgid "That email address already belongs to another user." -msgstr "" +msgstr "Ten adres e-mail należy już do innego użytkownika." #: ../actions/avatar.php:80 actions/profilesettings.php:317 #: lib/imagefile.php:71 @@ -2177,17 +2319,17 @@ msgstr "Ten plik jest za duży." #: ../actions/imsettings.php:170 actions/imsettings.php:178 #: actions/imsettings.php:293 msgid "That is already your Jabber ID." -msgstr "Ten identyfikator Jabbera jest już do Ciebie przypisany." +msgstr "Ten identyfikator Jabbera jest już Twój." #: ../actions/emailsettings.php:188 actions/emailsettings.php:206 -#: actions/emailsettings.php:318 +#: actions/emailsettings.php:318 actions/emailsettings.php:325 msgid "That is already your email address." -msgstr "" +msgstr "Ten adres e-mail jest już Twój." #: ../actions/smssettings.php:188 actions/smssettings.php:196 #: actions/smssettings.php:306 msgid "That is already your phone number." -msgstr "" +msgstr "Ten numer telefonu jest już Twój." #: ../actions/imsettings.php:233 actions/imsettings.php:241 #: actions/imsettings.php:381 @@ -2195,109 +2337,117 @@ msgid "That is not your Jabber ID." msgstr "To nie jest Twój identyfikator Jabbera." #: ../actions/emailsettings.php:249 actions/emailsettings.php:267 -#: actions/emailsettings.php:397 +#: actions/emailsettings.php:397 actions/emailsettings.php:404 msgid "That is not your email address." -msgstr "" +msgstr "To nie jest Twój adres e-mail." #: ../actions/smssettings.php:257 actions/smssettings.php:265 #: actions/smssettings.php:393 msgid "That is not your phone number." -msgstr "" +msgstr "To nie jest Twój numer telefonu." #: ../actions/emailsettings.php:226 ../actions/imsettings.php:210 #: actions/emailsettings.php:244 actions/imsettings.php:218 #: actions/emailsettings.php:367 actions/imsettings.php:349 +#: actions/emailsettings.php:374 msgid "That is the wrong IM address." msgstr "To jest bÅ‚Ä™dny adres komunikatora." #: ../actions/smssettings.php:233 actions/smssettings.php:241 #: actions/smssettings.php:362 msgid "That is the wrong confirmation number." -msgstr "" +msgstr "To jest bÅ‚Ä™dny numer potwierdzenia." #: ../actions/smssettings.php:191 actions/smssettings.php:199 #: actions/smssettings.php:309 msgid "That phone number already belongs to another user." -msgstr "" +msgstr "Ten numer telefonu należy już do innego użytkownika." #: ../actions/newnotice.php:49 ../actions/twitapistatuses.php:408 #: actions/newnotice.php:49 actions/twitapistatuses.php:330 #: actions/facebookhome.php:243 actions/twitapistatuses.php:276 +#: actions/newnotice.php:136 actions/twitapistatuses.php:294 +#: lib/facebookaction.php:485 msgid "That's too long. Max notice size is 140 chars." -msgstr "Wpis za dÅ‚ugi. Maksymalna dÅ‚ugość to 140 znaków." +msgstr "Wpis jest za dÅ‚ugi. Maksymalna dÅ‚ugość to 140 znaków." #: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72 -#: actions/twitapiaccount.php:62 +#: actions/twitapiaccount.php:62 actions/twitapiaccount.php:63 msgid "That's too long. Max notice size is 255 chars." -msgstr "" +msgstr "Wpis jest za dÅ‚ugi. Maksymalna dÅ‚ugość to 255 znaków." #: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92 +#: actions/confirmaddress.php:159 #, php-format msgid "The address \"%s\" has been confirmed for your account." -msgstr "Skojarzony z Twoim kontem adres \"%s\" zostaÅ‚ potwierdzony." +msgstr "Adres \"%s\" zostaÅ‚ potwierdzony dla Twojego konta." #: ../actions/emailsettings.php:264 ../actions/imsettings.php:250 #: ../actions/smssettings.php:274 actions/emailsettings.php:282 #: actions/imsettings.php:258 actions/smssettings.php:282 #: actions/emailsettings.php:416 actions/imsettings.php:402 -#: actions/smssettings.php:413 +#: actions/smssettings.php:413 actions/emailsettings.php:423 msgid "The address was removed." msgstr "Adres zostaÅ‚ usuniÄ™ty." -#: ../actions/userauthorization.php:312 +#: ../actions/userauthorization.php:312 actions/userauthorization.php:346 msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site's instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -"Twoje żądanie obserwacji zostaÅ‚o odrzucone, ale nie przekazano żadnego URL-a " -"do zwrotnego komunikatu. Sprawdź w instrukcjach serwisu w jaki sposób " -"dokÅ‚adnie odbywa siÄ™ odrzucanie subskrypcji. Twój token subskrypcji to:" +"Subskrypcja zostaÅ‚a upoważniona, ale nie przekazano zwrotnego adresu URL. " +"Sprawdź w instrukcjach strony, jak upoważnić subskrypcjÄ™. Token subskrypcji:" -#: ../actions/userauthorization.php:322 +#: ../actions/userauthorization.php:322 actions/userauthorization.php:357 msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site's instructions for details on how to fully reject the " "subscription." msgstr "" -"Twoje żądanie obserwacji zostaÅ‚o odrzucone, ale nie przekazano żadnego URL-a " -"do zwrotnego komunikatu. Sprawdź w instrukcjach serwisu w jaki sposób " -"dokÅ‚adnie odbywa siÄ™ odrzucanie subskrypcji." +"Subskrypcja zostaÅ‚a odrzucona, ale nie przekazano zwrotnego adresu URL. " +"Sprawdź w instrukcjach strony, jak w peÅ‚ni odrzucić subskrypcjÄ™." #: ../actions/subscribers.php:35 actions/subscribers.php:35 +#: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "Ludzie obserwujÄ…cy wpisy użytkownika %s." +msgstr "Osoby obserwujÄ…ce wpisy użytkownika %s." #: ../actions/subscribers.php:33 actions/subscribers.php:33 +#: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "Ludzie obserwujÄ…cy Twoje wpisy." +msgstr "Osoby obserwujÄ…cy Twoje wpisy." #: ../actions/subscriptions.php:35 actions/subscriptions.php:35 +#: actions/subscriptions.php:69 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "Ludzie, których wpisy obserwuje użytkownik %s." +msgstr "Osoby, których wpisy obserwuje użytkownik %s." #: ../actions/subscriptions.php:33 actions/subscriptions.php:33 +#: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." -msgstr "Ludzie których wpisy obserwujesz." +msgstr "Osoby, których wpisy obserwujesz." #: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128 msgid "" "These people are already users and you were automatically subscribed to them:" msgstr "" +"Te osoby sÄ… już użytkownikami i zostaÅ‚eÅ› do nich automatycznie " +"zasubskrybowany:" -#: ../actions/recoverpassword.php:88 +#: ../actions/recoverpassword.php:88 actions/recoverpassword.php:97 msgid "This confirmation code is too old. Please start again." -msgstr "Kod potwierdzajÄ…cy jest przeterminowany. Zacznij jeszcze raz." +msgstr "Kod potwierdzajÄ…cy jest za stary. Rozpocznij ponownie." -#: ../lib/openid.php:195 +#: ../lib/openid.php:195 lib/openid.php:206 msgid "" "This form should automatically submit itself. If not, click the submit " "button to go to your OpenID provider." msgstr "" -"Ten formularz powinien wysÅ‚ać siÄ™ automatycznie. JeÅ›li tak siÄ™ nie stanie " -"kliknij WyÅ›lij, aby przejść do Twojego dostawcy OpenID." +"Ten formularz powinien wysÅ‚ać siÄ™ automatycznie. JeÅ›li tak siÄ™ nie stanie, " +"naciÅ›nij przycisk WyÅ›lij, aby przejść do dostawcy OpenID." #: ../actions/finishopenidlogin.php:56 actions/finishopenidlogin.php:61 #: actions/finishopenidlogin.php:67 @@ -2307,66 +2457,69 @@ msgid "" "to a local account. You can either create a new account, or connect with " "your existing account, if you have one." msgstr "" -"Jeżeli logujesz siÄ™ po raz pierwszy do %s to twoje konto OpenID musi zostać " -"skojarzone z kontem lokalnym. Możesz wiÄ™c albo utworzyć nowe konto, albo " -"poÅ‚Ä…czyć je z posiadanym istniejÄ…cym." +"Jeżeli logujesz siÄ™ do %s po raz pierwszy, musimy poÅ‚Ä…czyć identyfikator " +"OpenID z lokalnym kontem. Można utworzyć nowe konto lub poÅ‚Ä…czyć z " +"istniejÄ…cym, jeÅ›li je posiadasz." #: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586 #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 +#: actions/twitapifavorites.php:103 actions/twitapistatuses.php:460 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Ta metoda wymaga POST lub DELETE." #: ../actions/twitapiaccount.php:65 ../actions/twitapifriendships.php:44 #: ../actions/twitapistatuses.php:381 actions/twitapiaccount.php:63 #: actions/twitapidirect_messages.php:114 actions/twitapifriendships.php:44 #: actions/twitapistatuses.php:303 actions/twitapiaccount.php:53 #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 -#: actions/twitapistatuses.php:244 +#: actions/twitapistatuses.php:244 actions/twitapiaccount.php:54 +#: actions/twitapidirect_messages.php:131 actions/twitapistatuses.php:262 msgid "This method requires a POST." -msgstr "" +msgstr "Ta metoda wymaga POST." -#: ../lib/util.php:164 lib/util.php:246 +#: ../lib/util.php:164 lib/util.php:246 lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" -msgstr "Ta strona nie jest dostÄ™pna dla medium, którego typ akceptujesz" +msgstr "Ta strona jest niedostÄ™pna dla akceptowanego typu medium" #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:138 msgid "Timezone" -msgstr "" +msgstr "Strefa czasowa" #: ../actions/profilesettings.php:107 actions/profilesettings.php:222 #: actions/profilesettings.php:211 msgid "Timezone not selected." -msgstr "" +msgstr "Nie wybrano strefy czasowej." -#: ../actions/remotesubscribe.php:43 +#: ../actions/remotesubscribe.php:43 actions/remotesubscribe.php:74 #, php-format msgid "" "To subscribe, you can [login](%%action.login%%), or [register](%%action." "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" -"Aby siÄ™ zapisać możesz siÄ™ [zalogować](%%action.login%%) lub [zarejestrować]" -"(%%action.register%%). JeÅ›li już posiadasz konto w [kompatybilnym serwisie](%" -"%doc.openmublog%%) wprowadź poniżej identyfikator URL." +"Aby zasubskrybować, można [zalogować siÄ™](%%action.login%%) lub " +"[zarejestrować](%%action.register%%) nowe konto. JeÅ›li już posiadasz konto " +"na [zgodnej stronie mikroblogowania](%%doc.openmublog%%), podaj poniżej " +"adres URL profilu." #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 msgid "Two user ids or screen_names must be supplied." -msgstr "" +msgstr "Należy dostarczyć dwa identyfikatory lub nazwy użytkowników." #: ../actions/profilesettings.php:48 ../actions/register.php:169 #: actions/profilesettings.php:81 actions/register.php:183 -#: actions/profilesettings.php:109 +#: actions/profilesettings.php:109 actions/register.php:398 msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL Twojej strony domowej, bloga, lub profilu na innej stronie" +msgstr "Adres URL strony domowej, bloga lub profilu na innej stronie" #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 msgid "URL of your profile on another compatible microblogging service" -msgstr "URL Twojego profilu na kompatybilnym serwisie do mikroblogów" +msgstr "Adres URL profilu na innej, zgodnej usÅ‚udze mikroblogowania" #: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 #: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 @@ -2376,17 +2529,19 @@ msgstr "URL Twojego profilu na kompatybilnym serwisie do mikroblogów" #: actions/emailsettings.php:242 actions/grouplogo.php:317 #: actions/imsettings.php:214 actions/recoverpassword.php:44 #: actions/smssettings.php:236 actions/twittersettings.php:302 +#: actions/avatarsettings.php:263 actions/emailsettings.php:247 +#: actions/grouplogo.php:324 actions/twittersettings.php:306 msgid "Unexpected form submission." -msgstr "Nieoczekiwane przesÅ‚anie formularza." +msgstr "Nieoczekiwane wysÅ‚anie formularza." #: ../actions/recoverpassword.php:276 actions/recoverpassword.php:289 #: actions/recoverpassword.php:323 msgid "Unexpected password reset." -msgstr "Nieoczekiwane wyzerowanie hasÅ‚a." +msgstr "Nieoczekiwane przywrócenie hasÅ‚a." #: ../index.php:57 index.php:57 actions/recoverpassword.php:202 msgid "Unknown action" -msgstr "" +msgstr "Nieznane dziaÅ‚anie" #: ../actions/finishremotesubscribe.php:58 #: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61 @@ -2398,8 +2553,8 @@ msgid "" "Unless otherwise specified, contents of this site are copyright by the " "contributors and available under the " msgstr "" -"Prawo do kopiowania zawartoÅ›ci tej strony, chyba że zaznaczono inaczej, " -"należy do tworzÄ…cych jej treÅ›ci i uwarunkowane zasadami" +"JeÅ›li nie podano inaczej, prawa autorskie do zawartoÅ›ci tej strony należy do " +"współtwórców i jest dostÄ™pna na warunkach licencji " #: ../actions/confirmaddress.php:48 actions/confirmaddress.php:48 #: actions/confirmaddress.php:90 @@ -2415,38 +2570,40 @@ msgstr "Zrezygnuj z subskrypcji" #: ../actions/postnotice.php:44 ../actions/updateprofile.php:45 #: actions/postnotice.php:45 actions/updateprofile.php:46 #: actions/postnotice.php:48 actions/updateprofile.php:49 +#: actions/updateprofile.php:51 msgid "Unsupported OMB version" msgstr "NieobsÅ‚ugiwana wersja OMB" #: ../actions/avatar.php:105 actions/profilesettings.php:342 -#: lib/imagefile.php:102 +#: lib/imagefile.php:102 lib/imagefile.php:99 msgid "Unsupported image file format." msgstr "NieobsÅ‚ugiwany format pliku obrazu." #: ../lib/settingsaction.php:100 lib/settingsaction.php:94 #: lib/connectsettingsaction.php:108 msgid "Updates by SMS" -msgstr "" +msgstr "Aktualizacje przez wiadomoÅ›ci SMS" #: ../lib/settingsaction.php:103 lib/settingsaction.php:97 #: lib/connectsettingsaction.php:105 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Aktualizacje przez komunikator" #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 -#: actions/twitapistatuses.php:129 +#: actions/twitapistatuses.php:129 actions/twitapistatuses.php:134 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "Aktualizacje od %1$s i przyjaciół na %2$s!" #: ../actions/twitapistatuses.php:341 actions/twitapistatuses.php:268 -#: actions/twitapistatuses.php:202 +#: actions/twitapistatuses.php:202 actions/twitapistatuses.php:213 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Aktualizacje od %1$s na %2$s!" #: ../actions/avatar.php:68 actions/profilesettings.php:161 #: actions/avatarsettings.php:162 actions/grouplogo.php:232 +#: actions/avatarsettings.php:165 actions/grouplogo.php:238 msgid "Upload" msgstr "WyÅ›lij" @@ -2457,23 +2614,25 @@ msgid "" "site license, also. Use a picture that belongs to you and that you want to " "share." msgstr "" -"Tu możesz wysÅ‚ać nowego \"awatara\" (wizerunek użytkownika). Nie da siÄ™ " -"edytować obrazu po jego umieszczeniu w serwisie, wiÄ™c upewnij siÄ™, że jest w " -"miarÄ™ kwadratowy. WysyÅ‚ajÄ…c go zgadzasz siÄ™ na jego publikacjÄ™ na warunkach " -"podanych w licencji strony. Użyj grafiki, która należy do Ciebie i którÄ… " -"możesz dzielić siÄ™ z innymi." +"Tu można wysÅ‚ać nowego \"awatara\" (obraz użytkownika). Nie można " +"modyfikować obrazu po jego wysÅ‚aniu, wiÄ™c upewnij siÄ™, że jest w miarÄ™ " +"kwadratowy. Musi być także na licencji strony. Użyj obrazu, który należy do " +"Ciebie, i którym chcesz siÄ™ dzielić." #: ../lib/settingsaction.php:91 msgid "Upload a new profile image" -msgstr "" +msgstr "WyÅ›lij nowy obraz profilu" #: ../actions/invite.php:114 actions/invite.php:121 actions/invite.php:154 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"Użyj tego formularza, aby zaprosić przyjaciół i kolegów do używania tej " +"usÅ‚ugi." #: ../actions/register.php:159 ../actions/register.php:162 -#: actions/register.php:173 actions/register.php:176 +#: actions/register.php:173 actions/register.php:176 actions/register.php:382 +#: actions/register.php:386 msgid "Used only for updates, announcements, and password recovery" msgstr "Używane tylko do aktualizacji, ogÅ‚oszeÅ„ i przywracania hasÅ‚a" @@ -2497,8 +2656,10 @@ msgstr "Obserwowany użytkownik nie istnieje." #: actions/twitapifavorites.php:42 actions/twitapistatuses.php:167 #: actions/twitapistatuses.php:503 actions/twitapiusers.php:55 #: actions/usergroups.php:99 lib/galleryaction.php:67 lib/twitterapi.php:626 +#: actions/twitapiaccount.php:71 actions/twitapistatuses.php:179 +#: actions/twitapistatuses.php:535 actions/twitapiusers.php:59 msgid "User has no profile." -msgstr "Użytkownik nie ma profilu." +msgstr "Użytkownik nie posiada profilu." #: ../actions/remotesubscribe.php:71 actions/remotesubscribe.php:80 #: actions/remotesubscribe.php:105 @@ -2507,12 +2668,12 @@ msgstr "Pseudonim użytkownika" #: ../actions/twitapiusers.php:75 actions/twitapiusers.php:80 msgid "User not found." -msgstr "" +msgstr "Nie znaleziono użytkownika." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:139 msgid "What timezone are you normally in?" -msgstr "" +msgstr "W jakiej strefie czasowej zwykle siÄ™ znajdujesz?" #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 #, php-format @@ -2521,111 +2682,115 @@ msgstr "Co sÅ‚ychać, %s?" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 -#: actions/profilesettings.php:119 +#: actions/profilesettings.php:119 actions/register.php:410 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "Gdzie jesteÅ›? (np. \"miasto, region, kraj\")" +msgstr "Gdzie jesteÅ›, np. \"miasto, województwo (lub region), kraj\"" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 -#: actions/updateprofile.php:132 +#: actions/updateprofile.php:132 actions/updateprofile.php:134 #, php-format msgid "Wrong image type for '%s'" -msgstr "NieprawidÅ‚owy typ obrazu dla '%s'" +msgstr "BÅ‚Ä™dny typ obrazu dla \"%s\"" #: ../actions/updateprofile.php:123 actions/updateprofile.php:124 -#: actions/updateprofile.php:127 +#: actions/updateprofile.php:127 actions/updateprofile.php:129 #, php-format msgid "Wrong size image at '%s'" -msgstr "NieprawidÅ‚owy rozmiar obrazu dla '%s'" +msgstr "BÅ‚Ä™dny rozmiar obrazu \"%s\"" #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72 #: actions/deletenotice.php:64 actions/deletenotice.php:79 #: actions/block.php:148 actions/deletenotice.php:122 -#: actions/deletenotice.php:141 +#: actions/deletenotice.php:141 actions/deletenotice.php:115 msgid "Yes" -msgstr "" +msgstr "Tak" #: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64 #: actions/finishaddopenid.php:112 msgid "You already have this OpenID!" -msgstr "Już masz ten identyfikator OpenID!" +msgstr "Już posiadasz ten identyfikator OpenID!" #: ../actions/deletenotice.php:37 actions/deletenotice.php:37 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Wpis zostanie za chwilÄ™ trwale usuniÄ™ty. Kiedy to siÄ™ stanie, to już siÄ™ nie " +"odstanie." #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "Nie musisz ponownie siÄ™ logować!" +msgstr "JesteÅ› już zalogowany!" #: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "JesteÅ› już zasubskrybowany do tych użytkowników:" #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 msgid "You are not friends with the specified user." -msgstr "" +msgstr "Nie jesteÅ› przyjacielem podanego użytkownika." #: ../actions/password.php:27 msgid "You can change your password here. Choose a good one!" -msgstr "Tu możesz zmienić hasÅ‚o. Wybierz porzÄ…dne!" +msgstr "Tutaj można zmienić hasÅ‚o. Wybierz dobre!" #: ../actions/register.php:135 actions/register.php:145 msgid "You can create a new account to start posting notices." -msgstr "Możesz utworzyć nowe konto, aby rozpocząć wysyÅ‚anie wpisów." +msgstr "Można utworzyć nowe konto, aby rozpocząć wysyÅ‚anie wpisów." #: ../actions/smssettings.php:28 actions/smssettings.php:28 #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Można otrzymywać wiadomoÅ›ci SMS przez e-mail od %%site.name%%." -#: ../actions/openidsettings.php:86 +#: ../actions/openidsettings.php:86 actions/openidsettings.php:143 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." msgstr "" -"Możesz usunąć Å‚Ä…czność z serwerem OpenID ze swojego konta klikajÄ…c \"UsuÅ„\"." +"Można usunąć identyfikator OpenID ze swojego konta naciskajÄ…c przycisk \"UsuÅ„" +"\"." #: ../actions/imsettings.php:28 actions/imsettings.php:28 +#: actions/imsettings.php:70 #, php-format msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"Możesz wysyÅ‚ać i odbierać wpisy przez komunikator Jabber/GTalk (%%doc.im%%). " -"Poniżej możesz skonfigurować swój adres i ustawienia IM." +"Można wysyÅ‚ać i odbierać wpisy przez [komunikator](%%doc.im%%) Jabber/GTalk. " +"Skonfiguruj adres i ustawienia poniżej." -#: ../actions/profilesettings.php:27 +#: ../actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -"W tym miejscu możesz zaktualizować informacje zawarte w Twoim osobistym " -"profilu, aby inni mogli lepiej CiÄ™ poznać." +"Tutaj można zaktualizować osobiste informacje w profilu, aby inni mogli " +"lepiej CiÄ™ poznać." #: ../actions/finishremotesubscribe.php:31 ../actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:31 actions/remotesubscribe.php:31 #: actions/finishremotesubscribe.php:33 actions/finishremotesubscribe.php:85 #: actions/finishremotesubscribe.php:101 actions/remotesubscribe.php:35 msgid "You can use the local subscription!" -msgstr "Możesz skorzystać z lokalnej subskrypcji!" +msgstr "Można używać lokalnej subskrypcji!" #: ../actions/finishopenidlogin.php:33 ../actions/register.php:61 #: actions/finishopenidlogin.php:38 actions/register.php:68 -#: actions/finishopenidlogin.php:43 +#: actions/finishopenidlogin.php:43 actions/register.php:149 msgid "You can't register if you don't agree to the license." msgstr "" "Nie możesz siÄ™ zarejestrować, jeÅ›li nie zgadzasz siÄ™ z warunkami licencji." #: ../actions/updateprofile.php:63 actions/updateprofile.php:64 -#: actions/updateprofile.php:67 +#: actions/updateprofile.php:67 actions/updateprofile.php:69 msgid "You did not send us that profile" -msgstr "Ten profil nie byÅ‚ wysÅ‚any przez Ciebie" +msgstr "Nie wysÅ‚aÅ‚eÅ› nam tego profilu" -#: ../lib/mail.php:147 +#: ../lib/mail.php:147 lib/mail.php:289 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -2637,122 +2802,132 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"Posiadasz nowy adres wysyÅ‚ania na %1$s.\n" +"\n" +"WyÅ›lij wiadomość e-mail na %2$s, aby wysÅ‚ać nowe wpisy.\n" +"\n" +"WiÄ™cej instrukcji dotyczÄ…cych poczty e-mail można znaleźć na %3$s.\n" +"\n" +"Z poważaniem,\n" +"%4$s" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 -#: actions/twitapistatuses.php:463 +#: actions/twitapistatuses.php:463 actions/twitapistatuses.php:486 msgid "You may not delete another user's status." -msgstr "" +msgstr "Nie można usuwać statusów innych użytkowników." #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 #, php-format msgid "You must be logged in to invite other users to use %s" msgstr "" +"Należy być zalogowanym, aby zapraszać innych użytkowników do używania %s" #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Zostaniesz powiadomiony, kiedy ktoÅ› zaakceptuje zaproszenie i zarejestruje " +"siÄ™ na stronie. DziÄ™kujemy za pomoc w zwiÄ™kszaniu spoÅ‚ecznoÅ›ci!" -#: ../actions/recoverpassword.php:149 +#: ../actions/recoverpassword.php:149 actions/recoverpassword.php:158 msgid "You've been identified. Enter a new password below. " -msgstr "Identyfikacja pomyÅ›lna. Wprowadź poniżej nowe hasÅ‚o." +msgstr "ZostaÅ‚eÅ› zidentyfikowany. Podaj poniżej nowe hasÅ‚o. " #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 -#: actions/openidlogin.php:104 +#: actions/openidlogin.php:104 actions/openidlogin.php:113 msgid "Your OpenID URL" -msgstr "URL Twojej usÅ‚ugi OpenID" +msgstr "Twój adres URL OpenID" -#: ../actions/recoverpassword.php:164 +#: ../actions/recoverpassword.php:164 actions/recoverpassword.php:188 msgid "Your nickname on this server, or your registered email address." -msgstr "" -"Twój pseudonim na tym serwerze lub adres e-mailowy użyty podczas rejestracji." +msgstr "Twój pseudonim na tym serwerze lub zarejestrowany adres e-mail." -#: ../actions/openidsettings.php:28 +#: ../actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" -"[OpenID](%%doc.openid%%) pozwala logować Ci siÄ™ do wielu serwisów z " -"wykorzystaniem jednego konta użytkownika. Tu możesz zarzÄ…dzać swoimi " +"[OpenID](%%doc.openid%%) umożliwia logowanie siÄ™ do wielu stron za pomocÄ… " +"tego samego konta użytkownika. Tu można zarzÄ…dzać powiÄ…zanymi " "identyfikatorami OpenID." -#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 +#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 lib/util.php:756 msgid "a few seconds ago" msgstr "kilka sekund temu" -#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 +#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 lib/util.php:768 #, php-format msgid "about %d days ago" msgstr "okoÅ‚o %d dni temu" -#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 +#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 lib/util.php:764 #, php-format msgid "about %d hours ago" msgstr "okoÅ‚o %d godzin temu" -#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 +#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 lib/util.php:760 #, php-format msgid "about %d minutes ago" msgstr "okoÅ‚o %d minut temu" -#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 +#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 lib/util.php:772 #, php-format msgid "about %d months ago" msgstr "okoÅ‚o %d miesiÄ™cy temu" -#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 +#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 lib/util.php:766 msgid "about a day ago" msgstr "blisko dzieÅ„ temu" -#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 +#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 lib/util.php:758 msgid "about a minute ago" -msgstr "blisko minutÄ™ temu" +msgstr "okoÅ‚o minutÄ™ temu" -#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 +#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 lib/util.php:770 msgid "about a month ago" -msgstr "blisko miesiÄ…c temu" +msgstr "okoÅ‚o miesiÄ…c temu" -#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 +#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 lib/util.php:774 msgid "about a year ago" -msgstr "blisko rok temu" +msgstr "okoÅ‚o rok temu" -#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 +#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 lib/util.php:762 msgid "about an hour ago" -msgstr "blisko godzinÄ™ temu" +msgstr "okoÅ‚o godzinÄ™ temu" #: ../actions/showstream.php:423 ../lib/stream.php:132 #: actions/showstream.php:441 lib/stream.php:99 msgid "delete" -msgstr "" +msgstr "usuÅ„" #: ../actions/noticesearch.php:130 ../actions/showstream.php:408 #: ../lib/stream.php:117 actions/noticesearch.php:136 #: actions/showstream.php:426 lib/stream.php:84 actions/noticesearch.php:187 msgid "in reply to..." -msgstr "w odpowiedzi na…" +msgstr "w odpowiedzi na..." #: ../actions/noticesearch.php:137 ../actions/showstream.php:415 #: ../lib/stream.php:124 actions/noticesearch.php:143 #: actions/showstream.php:433 lib/stream.php:91 actions/noticesearch.php:194 msgid "reply" -msgstr "odpowiedź" +msgstr "odpowiedz" #: ../actions/password.php:44 actions/profilesettings.php:183 #: actions/passwordsettings.php:106 msgid "same as password above" -msgstr "takie samo hasÅ‚o jak powyżej" +msgstr "takie samo jak hasÅ‚o powyżej" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 -#: actions/twitapistatuses.php:555 +#: actions/twitapistatuses.php:555 actions/twitapistatuses.php:596 +#: actions/twitapistatuses.php:618 msgid "unsupported file type" -msgstr "" +msgstr "nieobsÅ‚ugiwany typ pliku" #: ../lib/util.php:1309 lib/util.php:1443 -#, fuzzy msgid "« After" -msgstr "« nastÄ™pne" +msgstr "« NastÄ™pne" #: actions/deletenotice.php:74 actions/disfavor.php:43 #: actions/emailsettings.php:127 actions/favor.php:45 @@ -2767,68 +2942,80 @@ msgstr "« nastÄ™pne" #: actions/finishopenidlogin.php:38 actions/invite.php:54 actions/nudge.php:80 #: actions/openidlogin.php:37 actions/recoverpassword.php:316 #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 +#: actions/avatarsettings.php:251 actions/emailsettings.php:229 +#: actions/grouplogo.php:314 actions/imsettings.php:200 actions/login.php:103 +#: actions/newmessage.php:133 actions/newnotice.php:96 +#: actions/openidsettings.php:188 actions/othersettings.php:136 +#: actions/passwordsettings.php:131 actions/profilesettings.php:172 +#: actions/register.php:113 actions/remotesubscribe.php:53 +#: actions/smssettings.php:216 actions/subedit.php:38 actions/tagother.php:166 +#: actions/twittersettings.php:294 actions/userauthorization.php:39 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "WystÄ…piÅ‚ problem z tokenem sesji. Spróbuj ponownie." #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Ten wpis nie jest ulubiony!" #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Nie można usunąć ulubionego wpisu." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Dodaj do ulubionych" -#: actions/emailsettings.php:92 +#: actions/emailsettings.php:92 actions/emailsettings.php:157 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "WyÅ›lij mi wiadomość e-mail, kiedy ktoÅ› doda mój wpis jako ulubiony." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "WyÅ›lij mi wiadomość e-mail, kiedy ktoÅ› wyÅ›le mi prywatnÄ… wiadomość." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 -#: actions/twitapifavorites.php:118 +#: actions/twitapifavorites.php:118 actions/twitapifavorites.php:124 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Ten wpis jest już ulubiony!" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 +#: actions/twitapifavorites.php:131 lib/command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "Nie można utworzyć ulubionego wpisu." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "UsuÅ„ wpis z ulubionych" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 +#: actions/favoritesrss.php:110 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "Ulubione wpisy użytkownika %s" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 +#: actions/favoritesrss.php:114 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "KanaÅ‚ ulubionych wpisów użytkownika %s" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "Odebrane wiadomoÅ›ci użytkownika %s - strona %d" #: actions/inbox.php:30 actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Odebrane wiadomoÅ›ci użytkownika %s" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." msgstr "" +"To jest skrzynka odbiorcza, która wyÅ›wietla przychodzÄ…ce wiadomoÅ›ci prywatne." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2836,234 +3023,260 @@ msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" msgstr "" +"%1$s zaprosiÅ‚ siÄ™ do doÅ‚Ä…czenia do %2$s (%3$s).\n" +"\n" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Automatyczne logowanie; " #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "Z powodów bezpieczeÅ„stwa ponownie podaj " #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Zaloguj siÄ™ za pomocÄ… nazwy użytkownika i hasÅ‚a. " #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 -#: actions/twitapidirect_messages.php:141 +#: actions/twitapidirect_messages.php:141 actions/newmessage.php:148 +#: actions/twitapidirect_messages.php:150 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "Wiadomość jest za dÅ‚uga. Maksymalna dÅ‚ugość to 140 znaków." #: actions/newmessage.php:65 actions/newmessage.php:128 +#: actions/newmessage.php:155 msgid "No recipient specified." -msgstr "" +msgstr "Nie podano odbiorcy." #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 +#: actions/newmessage.php:119 actions/newmessage.php:158 lib/command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "Nie można wysÅ‚ać wiadomoÅ›ci do tego użytkownika." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 -#: classes/Command.php:240 +#: classes/Command.php:240 actions/newmessage.php:161 +#: actions/twitapidirect_messages.php:167 lib/command.php:240 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgstr "Nie wysyÅ‚aj wiadomoÅ›ci do siebie, po prostu powiedz to sobie po cichu." #: actions/newmessage.php:108 actions/microsummary.php:62 -#: actions/newmessage.php:163 +#: actions/newmessage.php:163 actions/newmessage.php:114 msgid "No such user" -msgstr "" +msgstr "Nie ma takiego użytkownika" #: actions/newmessage.php:117 actions/newmessage.php:67 +#: actions/newmessage.php:71 msgid "New message" -msgstr "" +msgstr "Nowa wiadomość" #: actions/noticesearch.php:95 actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "Wpis bez odpowiadajÄ…cego profilu" #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[OpenID](%%doc.openid%%) umożliwia logowanie siÄ™ na wiele stron " #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "JeÅ›li chcesz dodać identyfikator OpenID do konta, " #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "UsuniÄ™cie jedynego identyfikatora OpenID uniemożliwi zalogowanie siÄ™! " #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "Można usunąć identyfikator OpenID z konta " #: actions/outbox.php:28 actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "WysÅ‚ane wiadomoÅ›ci użytkownika %s - strona %d" #: actions/outbox.php:30 actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "WysÅ‚ane wiadomoÅ›ci użytkownika %s" #: actions/outbox.php:53 actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "To sÄ… wiadomoÅ›ci wysÅ‚ane, czyli prywatne wiadomoÅ›ci, które wysÅ‚aÅ‚eÅ›." #: actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " msgstr "" +"Znajdź osoby na %%site.name%% wedÅ‚ug ich nazwiska, poÅ‚ożenia lub " +"zainteresowaÅ„. " #: actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" +msgstr "Można tutaj zaktualizować osobiste informacje profilu " #: actions/profilesettings.php:115 actions/remotesubscribe.php:320 #: actions/userauthorization.php:159 actions/userrss.php:76 #: actions/avatarsettings.php:104 actions/avatarsettings.php:179 #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 +#: actions/avatarsettings.php:106 actions/avatarsettings.php:182 +#: actions/grouplogo.php:183 actions/remotesubscribe.php:366 msgid "User without matching profile" -msgstr "" +msgstr "Użytkownik bez odpowiadajÄ…cego profilu" #: actions/recoverpassword.php:91 actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "Ten kod potwierdzajÄ…cy jest za stary. " #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "JeÅ›li zapomniaÅ‚eÅ› lub zgubiÅ‚eÅ›" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "ZostaÅ‚eÅ› zidentyfikowany. Podaj " #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "Pseudonim na tym serwerze, " #: actions/recoverpassword.php:271 actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "Instrukcje przywracania hasÅ‚a " #: actions/recoverpassword.php:327 actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "PomyÅ›lnie zapisano nowe hasÅ‚o. " #: actions/register.php:95 actions/register.php:180 +#: actions/passwordsettings.php:147 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "HasÅ‚o musi mieć sześć lub wiÄ™cej znaków." #: actions/register.php:216 #, php-format msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." -msgstr "" +msgstr "Gratulacje, %s! Witaj na %%%%site.name%%%%. StÄ…d możesz chcieć..." #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(PowinieneÅ› wÅ‚aÅ›nie otrzymać wiadomość przez e-mail z " #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "Aby zasubskrybować, można [zalogować siÄ™](%%action.login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 +#: actions/showfavorites.php:147 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "KanaÅ‚ ulubionych wpisów użytkownika %s" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 +#: actions/showfavorites.php:179 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Nie można odebrać ulubionych wpisów." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "Nie ma takiej wiadomoÅ›ci." -#: actions/showmessage.php:42 +#: actions/showmessage.php:42 actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Tylko nadawca i odbiorca mogÄ… przeczytać tÄ™ wiadomość." #: actions/showmessage.php:61 actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Wiadomość do użytkownika %1$s na %2$s" #: actions/showmessage.php:66 actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Wiadomość od użytkownika %1$s na %2$s" #: actions/showstream.php:154 msgid "Send a message" -msgstr "" +msgstr "WyÅ›lij wiadomość" #: actions/smssettings.php:312 actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "Operator komórkowy Twojego telefonu. " #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 +#: actions/twitapidirect_messages.php:67 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "BezpoÅ›rednia wiadomość do użytkownika %s" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 +#: actions/twitapidirect_messages.php:68 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Wszystkie bezpoÅ›rednie wiadomoÅ›ci wysÅ‚ane do użytkownika %s" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 +#: actions/twitapidirect_messages.php:72 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "WysÅ‚ane bezpoÅ›rednie wiadomoÅ›ci" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 +#: actions/twitapidirect_messages.php:73 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Wszystkie bezpoÅ›rednie wiadomoÅ›ci wysÅ‚ane od użytkownika %s" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 +#: actions/twitapidirect_messages.php:146 msgid "No message text!" -msgstr "" +msgstr "Brak tekstu wiadomoÅ›ci!" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 +#: actions/twitapidirect_messages.php:159 msgid "Recipient user not found." -msgstr "" +msgstr "Nie znaleziono odbiorcy." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 +#: actions/twitapidirect_messages.php:162 msgid "Can't send direct messages to users who aren't your friend." msgstr "" +"Nie można wysÅ‚ać bezpoÅ›redniej wiadomoÅ›ci do użytkowników, którzy nie sÄ… " +"Twoimi przyjaciółmi." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 +#: actions/twitapifavorites.php:64 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s/ulubione wpisy od %s" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 +#: actions/twitapifavorites.php:68 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "Użytkownik %s aktualizuje ulubione wedÅ‚ug %s/%s." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 +#: actions/twitapifavorites.php:170 lib/mail.php:554 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "Użytkownik %s dodaÅ‚ Twój wpis jako ulubiony" #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3072,230 +3285,251 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"Użytkownik %1$s wÅ‚aÅ›nie dodaÅ‚ Twój wpis od %2$s jako jeden z jego " +"ulubionych.\n" +"\n" #: actions/twittersettings.php:27 msgid "" "Add your Twitter account to automatically send your notices to Twitter, " msgstr "" +"Dodaj swoje konto Twittera, aby automatycznie wysyÅ‚ać wpisy na Twittera, " #: actions/twittersettings.php:41 actions/twittersettings.php:60 +#: actions/twittersettings.php:61 msgid "Twitter settings" -msgstr "" +msgstr "Ustawienia Twittera" #: actions/twittersettings.php:48 actions/twittersettings.php:105 +#: actions/twittersettings.php:106 msgid "Twitter Account" -msgstr "" +msgstr "Konto Twittera" #: actions/twittersettings.php:56 actions/twittersettings.php:113 +#: actions/twittersettings.php:114 msgid "Current verified Twitter account." -msgstr "" +msgstr "Obecnie sprawdzone konto Twittera." #: actions/twittersettings.php:63 msgid "Twitter Username" -msgstr "" +msgstr "Nazwa użytkownika Twitter" #: actions/twittersettings.php:65 actions/twittersettings.php:123 +#: actions/twittersettings.php:126 msgid "No spaces, please." -msgstr "" +msgstr "Bez spacji." #: actions/twittersettings.php:67 msgid "Twitter Password" -msgstr "" +msgstr "HasÅ‚o Twittera" #: actions/twittersettings.php:72 actions/twittersettings.php:139 +#: actions/twittersettings.php:142 msgid "Automatically send my notices to Twitter." -msgstr "" +msgstr "Automatycznie wyÅ›lij moje wpisy na Twittera." #: actions/twittersettings.php:75 actions/twittersettings.php:146 +#: actions/twittersettings.php:149 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "WyÅ›lij lokalne odpowiedzi \"@\" na Twittera." #: actions/twittersettings.php:78 actions/twittersettings.php:153 +#: actions/twittersettings.php:156 msgid "Subscribe to my Twitter friends here." -msgstr "" +msgstr "Zasubskrybuj tutaj moich przyjaciół z Twittera." -#: actions/twittersettings.php:122 +#: actions/twittersettings.php:122 actions/twittersettings.php:331 msgid "" "Username must have only numbers, upper- and lowercase letters, and " "underscore (_). 15 chars max." msgstr "" +"Nazwa użytkownika może zawierać tylko liczby, maÅ‚e i wielkie litery oraz " +"podkreÅ›lnik (_). Maksymalnie 15 znaków." #: actions/twittersettings.php:128 actions/twittersettings.php:334 +#: actions/twittersettings.php:338 msgid "Could not verify your Twitter credentials!" -msgstr "" +msgstr "Nie można sprawdzić danych uwierzytelniajÄ…cych Twittera!" #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "Nie można pobrać informacji o koncie \"%s\" z Twittera." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 +#: actions/twittersettings.php:352 actions/twittersettings.php:372 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "Nie można zapisać ustawieÅ„ Twittera!" #: actions/twittersettings.php:174 actions/twittersettings.php:376 +#: actions/twittersettings.php:380 msgid "Twitter settings saved." -msgstr "" +msgstr "Zapisano ustawienia Twittera." #: actions/twittersettings.php:192 actions/twittersettings.php:395 +#: actions/twittersettings.php:399 msgid "That is not your Twitter account." -msgstr "" +msgstr "To nie jest Twoje konto Twittera." #: actions/twittersettings.php:200 actions/twittersettings.php:208 -#: actions/twittersettings.php:403 +#: actions/twittersettings.php:403 actions/twittersettings.php:407 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "Nie można usunąć użytkownika Twittera." #: actions/twittersettings.php:212 actions/twittersettings.php:407 +#: actions/twittersettings.php:411 msgid "Twitter account removed." -msgstr "" +msgstr "UsuniÄ™to użytkownika Twittera." #: actions/twittersettings.php:225 actions/twittersettings.php:239 #: actions/twittersettings.php:428 actions/twittersettings.php:439 -#: actions/twittersettings.php:453 +#: actions/twittersettings.php:453 actions/twittersettings.php:432 +#: actions/twittersettings.php:443 actions/twittersettings.php:457 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "Nie można zapisać preferencji Twittera." #: actions/twittersettings.php:245 actions/twittersettings.php:461 +#: actions/twittersettings.php:465 msgid "Twitter preferences saved." -msgstr "" +msgstr "Zapisano preferencje Twittera." #: actions/userauthorization.php:84 actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "Sprawdź te szczegóły, aby upewnić siÄ™ " #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "Subskrypcja zostaÅ‚a upoważniona, ale nie " #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "Subskrypcja zostaÅ‚a odrzucona, ale nie " #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 +#: lib/channel.php:138 lib/channel.php:158 msgid "Command results" -msgstr "" +msgstr "Wyniki polecenia" -#: classes/Channel.php:148 classes/Channel.php:204 +#: classes/Channel.php:148 classes/Channel.php:204 lib/channel.php:210 msgid "Command complete" -msgstr "" +msgstr "ZakoÅ„czono polecenie" -#: classes/Channel.php:158 classes/Channel.php:215 +#: classes/Channel.php:158 classes/Channel.php:215 lib/channel.php:221 msgid "Command failed" -msgstr "" +msgstr "Polecenie nie powiodÅ‚o siÄ™" -#: classes/Command.php:39 classes/Command.php:44 +#: classes/Command.php:39 classes/Command.php:44 lib/command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Przepraszamy, te polecenie nie zostaÅ‚o jeszcze zaimplementowane." #: classes/Command.php:96 classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "" +msgstr "Subskrypcje: %1$s\n" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 -#: classes/Command.php:276 +#: classes/Command.php:276 lib/command.php:145 lib/command.php:276 msgid "User has no last notice" -msgstr "" +msgstr "Użytkownik nie posiada ostatniego wpisu" -#: classes/Command.php:146 classes/Command.php:166 +#: classes/Command.php:146 classes/Command.php:166 lib/command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "Zaznaczono wpis jako ulubiony." -#: classes/Command.php:166 classes/Command.php:189 +#: classes/Command.php:166 classes/Command.php:189 lib/command.php:189 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" -#: classes/Command.php:169 classes/Command.php:192 +#: classes/Command.php:169 classes/Command.php:192 lib/command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "ImiÄ™ i nazwisko: %s" -#: classes/Command.php:172 classes/Command.php:195 +#: classes/Command.php:172 classes/Command.php:195 lib/command.php:195 #, php-format msgid "Location: %s" -msgstr "" +msgstr "PoÅ‚ożenie: %s" -#: classes/Command.php:175 classes/Command.php:198 +#: classes/Command.php:175 classes/Command.php:198 lib/command.php:198 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Strona domowa: %s" -#: classes/Command.php:178 classes/Command.php:201 +#: classes/Command.php:178 classes/Command.php:201 lib/command.php:201 #, php-format msgid "About: %s" -msgstr "" +msgstr "O mnie: %s" -#: classes/Command.php:200 classes/Command.php:228 +#: classes/Command.php:200 classes/Command.php:228 lib/command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "Wiadomość jest za dÅ‚uga - maksymalnie 140 znaków, wysÅ‚ano %d" -#: classes/Command.php:214 classes/Command.php:245 +#: classes/Command.php:214 classes/Command.php:245 lib/command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "WysÅ‚ano bezpoÅ›redniÄ… wiadomość do użytkownika %s" -#: classes/Command.php:216 classes/Command.php:247 +#: classes/Command.php:216 classes/Command.php:247 lib/command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "BÅ‚Ä…d podczas wysyÅ‚ania bezpoÅ›redniej wiadomoÅ›ci." -#: classes/Command.php:263 classes/Command.php:300 +#: classes/Command.php:263 classes/Command.php:300 lib/command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "Podaj nazwÄ™ użytkownika do zasubskrybowania" -#: classes/Command.php:270 classes/Command.php:307 +#: classes/Command.php:270 classes/Command.php:307 lib/command.php:307 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "Zasubskrybowano użytkownika %s" -#: classes/Command.php:288 classes/Command.php:328 +#: classes/Command.php:288 classes/Command.php:328 lib/command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "Podaj nazwÄ™ użytkownika do usuniÄ™cia subskrypcji" -#: classes/Command.php:295 classes/Command.php:335 +#: classes/Command.php:295 classes/Command.php:335 lib/command.php:335 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "UsuniÄ™to subskrypcjÄ™ użytkownika %s" #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 -#: classes/Command.php:376 +#: classes/Command.php:376 lib/command.php:353 lib/command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "Nie zaimplementowano polecenia." -#: classes/Command.php:313 classes/Command.php:356 +#: classes/Command.php:313 classes/Command.php:356 lib/command.php:356 msgid "Notification off." -msgstr "" +msgstr "WyÅ‚Ä…czono powiadomienia." -#: classes/Command.php:315 classes/Command.php:358 +#: classes/Command.php:315 classes/Command.php:358 lib/command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "Nie można wyÅ‚Ä…czyć powiadomieÅ„." -#: classes/Command.php:333 classes/Command.php:379 +#: classes/Command.php:333 classes/Command.php:379 lib/command.php:379 msgid "Notification on." -msgstr "" +msgstr "WÅ‚Ä…czono powiadomienia." -#: classes/Command.php:335 classes/Command.php:381 +#: classes/Command.php:335 classes/Command.php:381 lib/command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "Nie można wÅ‚Ä…czyć powiadomieÅ„." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" -msgstr "" +msgstr "Polecenia:\n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "Nie można wprowadzić wiadomoÅ›ci." #: classes/Message.php:63 classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "Nie można zaktualizować wiadomoÅ›ci za pomocÄ… nowego adresu URL." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "Użytkownik bez odpowiadajÄ…cego profilu w systemie." #: lib/mail.php:147 lib/mail.php:289 #, php-format @@ -3303,11 +3537,13 @@ msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"Posiadasz nowy adres wysyÅ‚ania na %1$s.\n" +"\n" -#: lib/mail.php:249 lib/mail.php:508 +#: lib/mail.php:249 lib/mail.php:508 lib/mail.php:509 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Nowa prywatna wiadomość od użytkownika %s" #: lib/mail.php:253 lib/mail.php:512 #, php-format @@ -3315,88 +3551,97 @@ msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"Użytkownik %1$s (%2$s) wysÅ‚aÅ‚ Ci prywatnÄ… wiadomość:\n" +"\n" -#: lib/mailbox.php:43 lib/mailbox.php:89 +#: lib/mailbox.php:43 lib/mailbox.php:89 lib/mailbox.php:91 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Tylko użytkownik może czytać swoje skrzynki pocztowe." #: lib/openid.php:195 lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "Ten formularz powinien automatycznie siÄ™ wysÅ‚ać. " #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Ulubione" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "Ulubione wpisy użytkownika %s" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" -msgstr "" +msgstr "Użytkownik" #: lib/personal.php:75 lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "Odebrane" #: lib/personal.php:76 lib/personalgroupnav.php:124 msgid "Your incoming messages" -msgstr "" +msgstr "WiadomoÅ›ci przychodzÄ…ce" #: lib/personal.php:80 lib/personalgroupnav.php:128 msgid "Outbox" -msgstr "" +msgstr "WysÅ‚ane" #: lib/personal.php:81 lib/personalgroupnav.php:129 msgid "Your sent messages" -msgstr "" +msgstr "WysÅ‚ane wiadomoÅ›ci" #: lib/settingsaction.php:99 lib/connectsettingsaction.php:110 msgid "Twitter" -msgstr "" +msgstr "Twitter" #: lib/settingsaction.php:100 lib/connectsettingsaction.php:111 msgid "Twitter integration options" -msgstr "" +msgstr "Opcje integracji z Twitterem" #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 +#: lib/messageform.php:137 lib/noticelist.php:425 msgid "To" -msgstr "" +msgstr "Do" #: scripts/maildaemon.php:45 scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "Nie można przeanalizować wiadomoÅ›ci." -#: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#: actions/all.php:63 actions/facebookhome.php:162 actions/all.php:66 +#: actions/facebookhome.php:161 +#, php-format msgid "%s and friends, page %d" -msgstr "%s i przyjaciele" +msgstr "Użytkownik %s i przyjaciele, strona %d" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "Można wysÅ‚ać osobisty awatar." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 -#: actions/grouplogo.php:250 -#, fuzzy +#: actions/grouplogo.php:250 actions/avatarsettings.php:119 +#: actions/avatarsettings.php:194 actions/grouplogo.php:256 msgid "Avatar settings" -msgstr "Ustawienia" +msgstr "Ustawienia awatara" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 +#: actions/avatarsettings.php:126 actions/avatarsettings.php:202 +#: actions/grouplogo.php:204 actions/grouplogo.php:264 msgid "Original" -msgstr "" +msgstr "OryginaÅ‚" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 +#: actions/avatarsettings.php:141 actions/avatarsettings.php:214 +#: actions/grouplogo.php:215 actions/grouplogo.php:276 msgid "Preview" -msgstr "" +msgstr "PodglÄ…d" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 +#: actions/avatarsettings.php:228 actions/grouplogo.php:291 msgid "Crop" -msgstr "" +msgstr "Przytnij" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3408,594 +3653,567 @@ msgstr "" #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "WystÄ…piÅ‚ problem z tokenem sesji. " #: actions/avatarsettings.php:303 actions/grouplogo.php:360 +#: actions/avatarsettings.php:308 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Wybierz kwadratowy obszar obrazu do awatara" #: actions/avatarsettings.php:327 actions/grouplogo.php:384 +#: actions/avatarsettings.php:323 actions/grouplogo.php:382 msgid "Lost our file data." -msgstr "" +msgstr "Utracono dane pliku." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 -#: classes/User_group.php:112 -#, fuzzy +#: classes/User_group.php:112 lib/imagefile.php:112 msgid "Lost our file." -msgstr "Brak takiego wpisu." +msgstr "Utracono plik." #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 -#: classes/User_group.php:129 classes/User_group.php:161 +#: classes/User_group.php:129 classes/User_group.php:161 lib/imagefile.php:144 +#: lib/imagefile.php:191 msgid "Unknown file type" -msgstr "" +msgstr "Nieznany typ pliku" #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 msgid "No profile specified." -msgstr "" +msgstr "Nie podano profilu." #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 #: actions/unblock.php:75 msgid "No profile with that ID." -msgstr "" +msgstr "Brak profilu o tym identyfikatorze." #: actions/block.php:111 -#, fuzzy msgid "Block user" -msgstr "Brak takiego użytkownika." +msgstr "Zablokuj użytkownika" #: actions/block.php:129 msgid "Are you sure you want to block this user? " -msgstr "" +msgstr "Na pewno chcesz zablokować tego użytkownika? " #: actions/block.php:162 -#, fuzzy msgid "You have already blocked this user." -msgstr "Nie musisz ponownie siÄ™ logować!" +msgstr "Ten użytkownik zostaÅ‚ już zablokowany." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "Zapisanie informacji o blokadzie nie powiodÅ‚o siÄ™." #: actions/confirmaddress.php:159 -#, fuzzy, php-format +#, php-format msgid "The address \"%s\" has been " -msgstr "Adres zostaÅ‚ usuniÄ™ty." +msgstr "Adres \"%s\" zostaÅ‚ " #: actions/deletenotice.php:73 msgid "You are about to permanently delete a notice. " -msgstr "" +msgstr "Za chwilÄ™ wpis zostanie trwale usuniÄ™ty. " #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Dodaj do ulubionych" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "Edytuj grupÄ™ %s" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 +#: actions/grouplogo.php:70 actions/grouprss.php:80 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "Skrzynki odbiorcze grup muszÄ… być wÅ‚Ä…czone, aby dziaÅ‚aÅ‚y" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 +#: actions/grouplogo.php:75 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Musisz być zalogowany, aby utworzyć grupÄ™." #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 -#: actions/showgroup.php:121 -#, fuzzy +#: actions/showgroup.php:121 actions/grouplogo.php:91 actions/grouprss.php:96 msgid "No nickname" -msgstr "Brak pseudonimu." +msgstr "Brak pseudonimu" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 -#: actions/showgroup.php:128 -#, fuzzy +#: actions/showgroup.php:128 actions/grouplogo.php:104 +#: actions/grouprss.php:103 msgid "No such group" -msgstr "Brak takiego wpisu." +msgstr "Nie ma takiej grupy" #: actions/editgroup.php:106 actions/editgroup.php:165 -#: actions/grouplogo.php:107 +#: actions/grouplogo.php:107 actions/grouplogo.php:111 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "Musisz być administratorem, aby zmodyfikować grupÄ™" #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "Użyj tego formularza, aby zmodyfikować grupÄ™." #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "Pseudonim musi zawierać tylko maÅ‚e litery i cyfry, bez znaków spacji." +msgstr "Pseudonim może zawierać tylko maÅ‚e litery " #: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy msgid "description is too long (max 140 chars)." -msgstr "Wpis \"O mnie\" jest za dÅ‚ugi (maks. 140 znaków)" +msgstr "opis jest za dÅ‚ugi (maksymalnie 140 znaków)." #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Nie można zaktualizować użytkownika." +msgstr "Nie można zaktualizować grupy." #: actions/editgroup.php:226 -#, fuzzy msgid "Options saved." -msgstr "Ustawienia zostaÅ‚y zapisane." +msgstr "Zapisano opcje." #: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "BÅ‚Ä…d kodu potwierdzajÄ…cego." +msgstr "Oczekiwanie na potwierdzenie tego adresu. " #: actions/emailsettings.php:139 actions/smssettings.php:150 msgid "Make a new email address for posting to; " -msgstr "" +msgstr "Utwórz nowy adres e-mail do wysyÅ‚ania; " #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "WyÅ›lij mi wiadomość e-mail, kiedy ktoÅ› " -#: actions/emailsettings.php:168 +#: actions/emailsettings.php:168 actions/emailsettings.php:173 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Pozwól przyjacioÅ‚om na szturchanie mnie i wyÅ›lij mi wiadomość e-mail." #: actions/emailsettings.php:321 -#, fuzzy msgid "That email address already belongs " -msgstr "Taki e-mail już istnieje" +msgstr "Ten adres e-mail już należy " #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " -msgstr "" -"Na Twój adres komunikatora zostaÅ‚ wysÅ‚any kod potwierdzajÄ…cy. Musisz " -"zaakceptować otrzymywanie wiadomoÅ›ci od %s." +msgstr "Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any na dodany adres e-mail. " #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "BÅ‚Ä…d serwera - nie można uzyskać użytkownika!" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "JeÅ›li chcesz, aby aplikacja %s automatycznie aktualizowaÅ‚a " #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Pozwól %s na aktualizowanie mojego statusu na Facebook" -#: actions/facebookhome.php:218 +#: actions/facebookhome.php:218 actions/facebookhome.php:223 msgid "Skip" -msgstr "" +msgstr "PomiÅ„" -#: actions/facebookhome.php:235 -#, fuzzy +#: actions/facebookhome.php:235 lib/facebookaction.php:479 msgid "No notice content!" -msgstr "Brak zawartoÅ›ci!" +msgstr "Brak zawartoÅ›ci wpisu!" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 +#: actions/facebookhome.php:253 lib/action.php:973 lib/facebookaction.php:433 msgid "Pagination" -msgstr "" +msgstr "Paginacja" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 -#, fuzzy +#: actions/facebookhome.php:262 lib/action.php:982 lib/facebookaction.php:442 msgid "After" -msgstr "« nastÄ™pne" +msgstr "NastÄ™pne" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy +#: actions/facebookhome.php:270 lib/action.php:990 lib/facebookaction.php:450 msgid "Before" -msgstr "WczeÅ›niej »" +msgstr "WczeÅ›niej" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "DziÄ™kujemy za zaproszenie przyjaciół do używania %s" #: actions/facebookinvite.php:72 msgid "Invitations have been sent to the following users:" -msgstr "" +msgstr "Zaproszenia zostaÅ‚y wysÅ‚ane do nastÄ™pujÄ…cych użytkowników:" -#: actions/facebookinvite.php:96 +#: actions/facebookinvite.php:96 actions/facebookinvite.php:102 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "ZostaÅ‚eÅ› zaproszony do %s" -#: actions/facebookinvite.php:105 -#, fuzzy, php-format +#: actions/facebookinvite.php:105 actions/facebookinvite.php:111 +#, php-format msgid "Invite your friends to use %s" -msgstr "KanaÅ‚ dla znajomych użytkownika %s" +msgstr "ZaproÅ› przyjaciół do używania %s" -#: actions/facebookinvite.php:113 +#: actions/facebookinvite.php:113 actions/facebookinvite.php:126 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Przyjaciele już używajÄ…cy %s:" -#: actions/facebookinvite.php:130 +#: actions/facebookinvite.php:130 actions/facebookinvite.php:143 #, php-format msgid "Send invitations" -msgstr "" +msgstr "WyÅ›lij zaproszenia" #: actions/facebookremove.php:56 -#, fuzzy msgid "Couldn't remove Facebook user." -msgstr "Nie można zaktualizować użytkownika." +msgstr "Nie można usunąć użytkownika Facebook." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "WystÄ…piÅ‚ problem podczas zapisywania preferencji synchronizacji!" #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." -msgstr "Preferencje zostaÅ‚y zapisane." +msgstr "Zapisano preferencje synchronizacji." #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." -msgstr "" +msgstr "Automatycznie aktualizuj status na Facebook moimi wpisami." #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "WyÅ›lij odpowiedzi \"@\" do Facebook." #: actions/facebooksettings.php:106 -#, fuzzy msgid "Prefix" -msgstr "Profil" +msgstr "Przedrostek" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Tekst do poprzedzenia wpisów." #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "JeÅ›li chcesz, aby %s automatycznie aktualizowaÅ‚o " #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" -msgstr "Preferencje" +msgstr "Zsynchronizuj preferencje" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "UsuÅ„ wpis z ulubionych" #: actions/favorited.php:65 lib/popularnoticesection.php:76 -#: lib/publicgroupnav.php:91 -#, fuzzy +#: lib/publicgroupnav.php:91 lib/popularnoticesection.php:82 +#: lib/publicgroupnav.php:93 msgid "Popular notices" -msgstr "Brak takiego wpisu." +msgstr "Popularne wpisy" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "Brak takiego wpisu." +msgstr "Popularne wpisy, strona %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "Najpopularniejsze wpisy na stronie w te chwili." #: actions/featured.php:69 lib/featureduserssection.php:82 -#: lib/publicgroupnav.php:87 +#: lib/publicgroupnav.php:87 lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "" +msgstr "Znani użytkownicy" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Znani użytkownicy, strona %d" #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "Wybór znanych użytkowników na %s" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Ten użytkownik zablokowaÅ‚ CiÄ™ z subskrypcji." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "Brak identyfikatora" #: actions/grouplogo.php:138 actions/grouplogo.php:191 +#: actions/grouplogo.php:144 actions/grouplogo.php:197 msgid "Group logo" -msgstr "" +msgstr "Logo grupy" #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "Można wysÅ‚ać obraz logo dla grupy." -#: actions/grouplogo.php:448 -#, fuzzy +#: actions/grouplogo.php:448 actions/grouplogo.php:401 msgid "Logo updated." -msgstr "Awatar zaÅ‚adowany." +msgstr "Zaktualizowano logo." -#: actions/grouplogo.php:450 -#, fuzzy +#: actions/grouplogo.php:450 actions/grouplogo.php:403 msgid "Failed updating logo." -msgstr "Uaktualnianie awatara nie powiodÅ‚o siÄ™." +msgstr "Zaktualizowanie logo nie powiodÅ‚o siÄ™." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "CzÅ‚onkowie grupy %s" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "CzÅ‚onkowie grupy %s, strona %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "Lista użytkowników znajdujÄ…cych siÄ™ w tej grupie." #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 -#: lib/subgroupnav.php:96 +#: lib/subgroupnav.php:96 lib/publicgroupnav.php:81 msgid "Groups" -msgstr "" +msgstr "Grupy" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Grupy, strona %d" #: actions/groups.php:90 #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " -msgstr "" +msgstr "Grupy %%%%site.name%%%% pozwalajÄ… na szukanie i rozmawianie z " #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 -#, fuzzy +#: actions/usergroups.php:125 msgid "Create a new group" -msgstr "Załóż nowe konto" +msgstr "Utwórz nowÄ… grupÄ™" #: actions/groupsearch.php:57 -#, fuzzy, php-format +#, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " -msgstr "" -"Szukaj ludzi w serwisie %%site.name%%. Kryteriami mogÄ…Â być imiona i " -"nazwiska, miejscowoÅ›ci lub zainteresowania. Użyj spacji aby oddzielić " -"elementy wyszukiwania. SÅ‚owa muszÄ… mieć minimum 3 znaki." +msgstr "Znajdź grupy na %%site.name%% wedÅ‚ug ich nazw, poÅ‚ożenia lub opisu. " #: actions/groupsearch.php:63 -#, fuzzy msgid "Group search" -msgstr "Szukaj ludzi" +msgstr "Znajdź grupÄ™" #: actions/imsettings.php:70 msgid "You can send and receive notices through " -msgstr "" +msgstr "Można wysyÅ‚ać i otrzymywać wpisy przez " #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "adres Jabbera lub GTalk, " #: actions/imsettings.php:147 -#, fuzzy msgid "Send me replies through Jabber/GTalk " -msgstr "WysyÅ‚aj mi wpisy przez Jabbera/GTalka" +msgstr "WyÅ›lij mi odpowiedzi przez Jabbera/GTalk " #: actions/imsettings.php:321 -#, fuzzy, php-format +#, php-format msgid "A confirmation code was sent " -msgstr "Brak kodu potwierdzajÄ…cego." +msgstr "Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any " #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Musisz być zalogowany, aby doÅ‚Ä…czyć do grupy." #: actions/joingroup.php:95 -#, fuzzy msgid "You are already a member of that group" -msgstr "Nie musisz ponownie siÄ™ logować!" +msgstr "JesteÅ› już czÅ‚onkiem tej grupy" #: actions/joingroup.php:128 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Nie można przekierować do serwera: %s" +msgstr "Nie można doÅ‚Ä…czyć użytkownika %s do grupy %s" #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "Użytkownik %s doÅ‚Ä…czyÅ‚ do grupy %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "Skrzynki odbiorcze dla grup muszÄ… być wÅ‚Ä…czone, aby dziaÅ‚aÅ‚y." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Musisz być zalogowany, aby opuÅ›cić grupÄ™." #: actions/leavegroup.php:88 -#, fuzzy msgid "No such group." -msgstr "Brak takiego wpisu." +msgstr "Nie ma takiej grupy." #: actions/leavegroup.php:95 -#, fuzzy msgid "You are not a member of that group." -msgstr "Ten profil nie byÅ‚ wysÅ‚any przez Ciebie" +msgstr "Nie jesteÅ› czÅ‚onkiem tej grupy." #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "Nie możesz opuÅ›cić grupy, kiedy jesteÅ› jej administratorem." -#: actions/leavegroup.php:130 +#: actions/leavegroup.php:130 actions/leavegroup.php:124 msgid "Could not find membership record." -msgstr "" +msgstr "Nie można znaleźć wpisu czÅ‚onkostwa." -#: actions/leavegroup.php:138 -#, fuzzy, php-format +#: actions/leavegroup.php:138 actions/leavegroup.php:132 +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Nie można utworzyć formularza OpenID: %s" +msgstr "Nie można usunąć użytkownika %s z grupy %s" -#: actions/leavegroup.php:145 +#: actions/leavegroup.php:145 actions/leavegroup.php:139 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "Użytkownik %s opuÅ›ciÅ‚ grupÄ™ %s" -#: actions/login.php:225 lib/facebookaction.php:304 +#: actions/login.php:225 lib/facebookaction.php:304 actions/login.php:208 msgid "Login to site" -msgstr "" +msgstr "Zaloguj siÄ™ na stronie" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "Brak obecnego statusu" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Nowa grupa" #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "Użyj tego formularza, aby utworzyć nowÄ… grupÄ™." #: actions/newgroup.php:177 -#, fuzzy msgid "Could not create group." -msgstr "Nie można zapisać informacji o awatarze" +msgstr "Nie można utworzyć grupy." #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." -msgstr "Nie można obserwować." +msgstr "Nie można ustawić czÅ‚onkostwa w grupie." #: actions/newmessage.php:119 actions/newnotice.php:132 -#, fuzzy msgid "That's too long. " -msgstr "Ten plik jest za duży." +msgstr "Wiadomość jest za dÅ‚uga. " #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "Nie wysyÅ‚aj wiadomoÅ›ci do siebie; " -#: actions/newnotice.php:166 -#, fuzzy +#: actions/newnotice.php:166 actions/newnotice.php:174 msgid "Notice posted" -msgstr "Wpisy" +msgstr "WysÅ‚ano wpis" -#: actions/newnotice.php:200 classes/Channel.php:163 +#: actions/newnotice.php:200 classes/Channel.php:163 actions/newnotice.php:208 +#: lib/channel.php:170 msgid "Ajax Error" -msgstr "" +msgstr "BÅ‚Ä…d AJAX" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"Ten użytkownik nie pozwala na szturchniÄ™cia lub nie potwierdziÅ‚ lub nie " +"ustawiÅ‚ jeszcze swojego adresu e-mail." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "WysÅ‚ano szturchniÄ™cie" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "WysÅ‚ano szturchniÄ™cie!" -#: actions/openidlogin.php:97 -#, fuzzy +#: actions/openidlogin.php:97 actions/openidlogin.php:106 msgid "OpenID login" -msgstr "Użytkownik OpenID" +msgstr "Login OpenID" #: actions/openidsettings.php:128 -#, fuzzy msgid "Removing your only OpenID " -msgstr "UsuÅ„ konto OpenID" +msgstr "Usuwanie jedynego identyfikatora OpenID " #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "Ustawienia" +msgstr "Inne ustawienia" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "ZarzÄ…dzaj różnymi innymi opcjami." #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "Automatyczne skracanie adresów URL" #: actions/othersettings.php:112 -#, fuzzy msgid "Service" -msgstr "Szukaj" +msgstr "UsÅ‚uga" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "Używana automatyczna usÅ‚uga skracania." #: actions/othersettings.php:144 -#, fuzzy msgid "URL shortening service is too long (max 50 chars)." -msgstr "Lokalizacja jest za dÅ‚uga (max. 255 znaków)." +msgstr "Adres URL usÅ‚ugi skracania jest za dÅ‚ugi (maksymalnie 50 znaków)." #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "ZmieÅ„ hasÅ‚o" +msgstr "ZmieÅ„ hasÅ‚o." #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" -msgstr "HasÅ‚o zostaÅ‚o zapisane." +msgstr "Zmiana hasÅ‚a" -#: actions/peopletag.php:35 -#, fuzzy, php-format +#: actions/peopletag.php:35 actions/peopletag.php:70 +#, php-format msgid "Not a valid people tag: %s" -msgstr "NiewÅ‚aÅ›ciwy adres e-mailowy." +msgstr "NieprawidÅ‚owy znacznik osób: %s" -#: actions/peopletag.php:47 +#: actions/peopletag.php:47 actions/peopletag.php:144 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "Użytkownicy używajÄ…cy znacznika %s - strona %d" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "To sÄ… użytkownicy którzy nadali sobie znacznik \"%s\" " #: actions/profilesettings.php:91 -#, fuzzy msgid "Profile information" -msgstr "Nieznany profil" +msgstr "Informacje o profilu" #: actions/profilesettings.php:124 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" +"Znaczniki dla siebie (litery, liczby, -, . i _), oddzielone przecinkami lub " +"spacjami" #: actions/profilesettings.php:144 msgid "Automatically subscribe to whoever " -msgstr "" +msgstr "Automatycznie zasubskrybuj do każdego " #: actions/profilesettings.php:229 actions/tagother.php:176 -#, fuzzy, php-format +#: actions/tagother.php:178 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "BÅ‚Ä™dna strona domowa '%s'" +msgstr "NieprawidÅ‚owy znacznik: \"%s\"" #: actions/profilesettings.php:311 -#, fuzzy msgid "Couldn't save tags." -msgstr "Nie można zapisać profilu." +msgstr "Nie można zapisać znaczników." -#: actions/public.php:107 -#, fuzzy, php-format +#: actions/public.php:107 actions/public.php:110 +#, php-format msgid "Public timeline, page %d" -msgstr "Publiczna oÅ› czasu" +msgstr "Publiczna oÅ› czasu, strona %d" -#: actions/public.php:173 +#: actions/public.php:173 actions/public.php:184 msgid "Could not retrieve public stream." -msgstr "" +msgstr "Nie można pobrać publicznego strumienia." #: actions/public.php:220 #, php-format @@ -4003,139 +4221,132 @@ msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service " msgstr "" +"To jest %%site.name%%, usÅ‚uga [mikroblogowania](http://en.wikipedia.org/wiki/" +"Micro-blogging) " #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Publiczny KanaÅ‚ Strumieni" +msgstr "Publiczna chmura znaczników" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "To sÄ… najpopularniejsze ostatnie znaczniki na %s " #: actions/publictagcloud.php:119 msgid "Tag cloud" -msgstr "" +msgstr "Chmura znaczników" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Przepraszamy, tylko zaproszone osoby mogÄ… siÄ™ rejestrować." #: actions/register.php:149 -#, fuzzy msgid "You can't register if you don't " -msgstr "" -"Nie możesz siÄ™ zarejestrować, jeÅ›li nie zgadzasz siÄ™ z warunkami licencji." +msgstr "Nie możesz siÄ™ zarejestrować, jeÅ›li nie " #: actions/register.php:286 msgid "With this form you can create " -msgstr "" +msgstr "Za pomocÄ… tego formularza można utworzyć " #: actions/register.php:368 -#, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "Max. 64 znaki alfanumeryczne, bez spacji i znaków przestankowych" +msgstr "1-64 maÅ‚e litery lub liczby, " #: actions/register.php:382 actions/register.php:386 -#, fuzzy msgid "Used only for updates, announcements, " -msgstr "Używane tylko do aktualizacji, ogÅ‚oszeÅ„ i przywracania hasÅ‚a" +msgstr "Używane tylko do aktualizacji, ogÅ‚oszeÅ„, " #: actions/register.php:398 -#, fuzzy msgid "URL of your homepage, blog, " -msgstr "URL Twojej strony domowej, bloga, lub profilu na innej stronie" +msgstr "Adres URL strony domowej, bloga, " #: actions/register.php:404 -#, fuzzy msgid "Describe yourself and your " -msgstr "Opisz siÄ™ w 140 znakach" +msgstr "Opisz siÄ™ i swoje " #: actions/register.php:410 -#, fuzzy msgid "Where you are, like \"City, " -msgstr "Gdzie jesteÅ›? (np. \"miasto, region, kraj\")" +msgstr "Gdzie jesteÅ›, np. \"miasto, " #: actions/register.php:432 -#, fuzzy msgid " except this private data: password, " -msgstr "" -"z wyÅ‚Ä…czeniem tych prywatnych danych: e-maila, identyfikatora IM, numeru " -"telefonu." +msgstr " poza tymi prywatnymi danymi: hasÅ‚o, " #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "Gratulacje, %s! Witaj na %%%%site.name%%%%. " #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(PowinieneÅ› otrzymać wiadomość przez e-mail " #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "To jest profil lokalny! Zaloguj siÄ™, aby zasubskrybować." -#: actions/replies.php:118 -#, fuzzy, php-format +#: actions/replies.php:118 actions/replies.php:120 +#, php-format msgid "Replies to %s, page %d" -msgstr "Odpowiedzi na %s" +msgstr "Odpowiedzi na %s, strona %d" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "Ulubione wpisy użytkownika %s, strona %d" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "Grupa %s" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "Grupa %s, strona %d" -#: actions/showgroup.php:206 -#, fuzzy +#: actions/showgroup.php:206 actions/showgroup.php:208 msgid "Group profile" -msgstr "Brak takiego wpisu." +msgstr "Profil grupy" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 +#: actions/showgroup.php:253 actions/showstream.php:271 +#: actions/tagother.php:118 lib/profilelist.php:131 msgid "URL" -msgstr "" +msgstr "Adres URL" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy +#: actions/showgroup.php:264 actions/showstream.php:282 +#: actions/tagother.php:128 lib/profilelist.php:142 msgid "Note" -msgstr "Wpisy" +msgstr "Wpis" -#: actions/showgroup.php:270 +#: actions/showgroup.php:270 actions/showgroup.php:272 msgid "Group actions" -msgstr "" +msgstr "DziaÅ‚ania grupy" -#: actions/showgroup.php:323 -#, fuzzy, php-format +#: actions/showgroup.php:323 actions/showgroup.php:304 +#, php-format msgid "Notice feed for %s group" -msgstr "KanaÅ‚ wpisów dla %s" +msgstr "KanaÅ‚ wpisów dla grupy %s" -#: actions/showgroup.php:357 lib/groupnav.php:90 -#, fuzzy +#: actions/showgroup.php:357 lib/groupnav.php:90 actions/showgroup.php:339 +#: actions/showgroup.php:384 msgid "Members" -msgstr "W serwisie od" +msgstr "CzÅ‚onkowie" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 -#: lib/tagcloudsection.php:71 +#: lib/tagcloudsection.php:71 actions/showgroup.php:344 msgid "(None)" -msgstr "" +msgstr "(Brak)" -#: actions/showgroup.php:370 +#: actions/showgroup.php:370 actions/showgroup.php:350 msgid "All members" -msgstr "" +msgstr "Wszyscy czÅ‚onkowie" #: actions/showgroup.php:378 #, php-format @@ -4143,50 +4354,51 @@ msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** jest grupÄ… użytkowników na %%%%site.name%%%%, usÅ‚udze " +"[mikroblogowania](http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/showmessage.php:98 msgid "Only the sender and recipient " -msgstr "" +msgstr "Tylko nadawca i odbiorca " #: actions/showstream.php:73 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s, strona %d" #: actions/showstream.php:143 -#, fuzzy msgid "'s profile" -msgstr "Profil" +msgstr " - profil" #: actions/showstream.php:236 actions/tagother.php:77 -#, fuzzy +#: actions/showstream.php:220 msgid "User profile" -msgstr "Użytkownik nie ma profilu." +msgstr "Profil użytkownika" #: actions/showstream.php:240 actions/tagother.php:81 +#: actions/showstream.php:224 msgid "Photo" -msgstr "" +msgstr "ZdjÄ™cie" -#: actions/showstream.php:317 +#: actions/showstream.php:317 actions/showstream.php:309 msgid "User actions" -msgstr "" +msgstr "DziaÅ‚ania użytkownika" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "WyÅ›lij bezpoÅ›redniÄ… wiadomość do tego użytkownika" #: actions/showstream.php:343 msgid "Message" -msgstr "" +msgstr "Wiadomość" #: actions/showstream.php:451 -#, fuzzy msgid "All subscribers" -msgstr "Subskrybenci" +msgstr "Wszyscy subskrybenci" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "Wszystkie grupy" #: actions/showstream.php:542 #, php-format @@ -4194,480 +4406,449 @@ msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** posiada konto na %%%%site.name%%%%, usÅ‚udze [mikroblogowania](http://" +"en.wikipedia.org/wiki/Micro-blogging) " #: actions/smssettings.php:128 -#, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "Max. 64 znaki alfanumeryczne, bez spacji i znaków przestankowych" +msgstr "Numer telefonu, bez znaków przestankowych i spacji, " #: actions/smssettings.php:162 -#, fuzzy msgid "Send me notices through SMS; " -msgstr "WysyÅ‚aj mi wpisy przez Jabbera/GTalka" +msgstr "WyÅ›lij mi wpisy przez SMS; " #: actions/smssettings.php:335 -#, fuzzy msgid "A confirmation code was sent to the phone number you added. " -msgstr "Ten kod potwierdzajÄ…cy nie jest przeznaczony dla Ciebie!" +msgstr "Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any na dodany numer telefonu. " #: actions/smssettings.php:453 msgid "Mobile carrier" -msgstr "" +msgstr "Operator komórkowy" #: actions/subedit.php:70 -#, fuzzy msgid "You are not subscribed to that profile." -msgstr "Ten profil nie byÅ‚ wysÅ‚any przez Ciebie" +msgstr "Nie jesteÅ› zasubskrybowany do tego profilu." #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "Nie można obserwować." +msgstr "Nie można zapisać subskrypcji." #: actions/subscribe.php:55 -#, fuzzy msgid "Not a local user." -msgstr "Brak takiego użytkownika." +msgstr "Nie jest lokalnym użytkownikiem." #: actions/subscribe.php:69 -#, fuzzy msgid "Subscribed" -msgstr "Subskrybuj" +msgstr "Zasubskrybowano" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "Subskrybenci" +msgstr "Subskrybenci %s" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "Subskrybenci %s, strona %d" #: actions/subscribers.php:63 -#, fuzzy msgid "These are the people who listen to " -msgstr "Ludzie obserwujÄ…cy wpisy użytkownika %s." +msgstr "Osoby obserwujÄ…ce " #: actions/subscribers.php:67 -#, fuzzy, php-format +#, php-format msgid "These are the people who " -msgstr "Ludzie obserwujÄ…cy wpisy użytkownika %s." +msgstr "Osoby, które " #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "Wszyscy obserwowani" +msgstr "Subskrypcje %s" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "Wszyscy obserwowani" +msgstr "Subskrypcje %s, strona %d" #: actions/subscriptions.php:65 -#, fuzzy msgid "These are the people whose notices " -msgstr "Ludzie, których wpisy obserwuje użytkownik %s." +msgstr "Osoby, których wpisy " #: actions/subscriptions.php:69 -#, fuzzy, php-format +#, php-format msgid "These are the people whose " -msgstr "Ludzie obserwujÄ…cy wpisy użytkownika %s." +msgstr "Osoby, których " -#: actions/subscriptions.php:122 -#, fuzzy +#: actions/subscriptions.php:122 actions/subscriptions.php:124 msgid "Jabber" -msgstr "Brak identyfikatora Jabbera." +msgstr "Jabber" -#: actions/tag.php:43 -#, fuzzy, php-format +#: actions/tag.php:43 actions/tag.php:51 +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "%s – mikroblog" +msgstr "Wpisy ze znacznikiem %s, strona %d" -#: actions/tag.php:66 +#: actions/tag.php:66 actions/tag.php:73 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "WiadomoÅ›ci ze znacznikiem \"%s\", najpierw najnowsze" #: actions/tagother.php:33 -#, fuzzy msgid "Not logged in" -msgstr "Niezalogowany." +msgstr "Nie zalogowano" #: actions/tagother.php:39 -#, fuzzy msgid "No id argument." -msgstr "Brak takiego dokumentu." +msgstr "Brak parametru identyfikatora." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "Znacznik %s" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Znacznik użytkownika" -#: actions/tagother.php:149 +#: actions/tagother.php:149 actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Znaczniki dla tego użytkownika (litery, liczby, -, . i _), oddzielone " +"przecinkami lub spacjami" #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "WystÄ…piÅ‚ problem z tokenem sesji." -#: actions/tagother.php:191 +#: actions/tagother.php:191 actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Można nadawać znaczniki tylko osobom, których subskrybujesz lub którzy " +"subskrybujÄ… Ciebie." -#: actions/tagother.php:198 -#, fuzzy +#: actions/tagother.php:198 actions/tagother.php:200 msgid "Could not save tags." -msgstr "Nie można zapisać informacji o awatarze" +msgstr "Nie można zapisać znaczników." -#: actions/tagother.php:233 +#: actions/tagother.php:233 actions/tagother.php:235 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"Użyj tego formularza, aby dodać znaczniki subskrybentom lub subskrypcjom." #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Brak takiego wpisu." +msgstr "Nie ma takiego znacznika." -#: actions/tagrss.php:66 -#, fuzzy, php-format +#: actions/tagrss.php:66 actions/tagrss.php:64 +#, php-format msgid "Microblog tagged with %s" -msgstr "%s – mikroblog" +msgstr "Mikroblogi ze znacznikiem %s" #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "Zablokowanie użytkownika nie powiodÅ‚o siÄ™." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "Odblokowanie użytkownika nie powiodÅ‚o siÄ™." -#: actions/twitapiusers.php:48 -#, fuzzy +#: actions/twitapiusers.php:48 actions/twitapiusers.php:52 msgid "Not found." -msgstr "Nie znaleziono żądania!" +msgstr "Nie znaleziono." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "Dodaj konto Twittera, aby automatycznie wysyÅ‚ać " -#: actions/twittersettings.php:119 +#: actions/twittersettings.php:119 actions/twittersettings.php:122 msgid "Twitter user name" -msgstr "" +msgstr "Nazwa użytkownika Twittera" -#: actions/twittersettings.php:126 -#, fuzzy +#: actions/twittersettings.php:126 actions/twittersettings.php:129 msgid "Twitter password" -msgstr "Nowe hasÅ‚o" +msgstr "HasÅ‚o Twittera" -#: actions/twittersettings.php:228 +#: actions/twittersettings.php:228 actions/twittersettings.php:232 msgid "Twitter Friends" -msgstr "" +msgstr "Przyjaciele z Twittera" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "Nazwa użytkownika może zawierać tylko liczby, " #: actions/twittersettings.php:341 -#, fuzzy, php-format +#, php-format msgid "Unable to retrieve account information " -msgstr "Nie można skasować potwierdzenia adresu e-mail." +msgstr "Nie można pobrać informacji o koncie " #: actions/unblock.php:108 -#, fuzzy msgid "Error removing the block." -msgstr "BÅ‚Ä…d w zapisie użytkownika." +msgstr "BÅ‚Ä…d podczas usuwania blokady." #: actions/unsubscribe.php:50 -#, fuzzy msgid "No profile id in request." -msgstr "Serwer nie zwróciÅ‚ żadnego URL-a." +msgstr "Brak identyfikatora profilu w żądaniu." #: actions/unsubscribe.php:57 -#, fuzzy msgid "No profile with that id." -msgstr "Zdalny profil bez odpowiadajÄ…cego profilu lokalnego" +msgstr "Brak profilu z tym identyfikatorem." #: actions/unsubscribe.php:71 -#, fuzzy msgid "Unsubscribed" -msgstr "Zrezygnuj z subskrypcji" +msgstr "Zrezygnowano z subskrypcji" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "Grupy %s" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "Grupy %s, strona %d" -#: classes/Notice.php:104 -#, fuzzy +#: classes/Notice.php:104 classes/Notice.php:128 msgid "Problem saving notice. Unknown user." -msgstr "Problem z zachowywaniem wpisu." +msgstr "Problem podczas zapisywania wpisu. Nieznany użytkownik." -#: classes/Notice.php:109 +#: classes/Notice.php:109 classes/Notice.php:133 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Za dużo wpisów w za krótkim czasie, weź gÅ‚Ä™boki oddech i wyÅ›lij ponownie za " +"kilka minut." -#: classes/Notice.php:116 +#: classes/Notice.php:116 classes/Notice.php:145 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Zabroniono Ci wysyÅ‚ania wpisów na tej stronie." #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "Uaktualnianie awatara nie powiodÅ‚o siÄ™." +msgstr "WyÅ›lij awatar" #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "Inne" #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "Inne opcje" -#: lib/action.php:130 +#: lib/action.php:130 lib/action.php:132 #, php-format msgid "%s - %s" -msgstr "" +msgstr "%s - %s" -#: lib/action.php:145 +#: lib/action.php:145 lib/action.php:147 msgid "Untitled page" -msgstr "" +msgstr "Strona bez nazwy" -#: lib/action.php:316 +#: lib/action.php:316 lib/action.php:387 msgid "Primary site navigation" -msgstr "" +msgstr "Główna nawigacja strony" -#: lib/action.php:322 +#: lib/action.php:322 lib/action.php:393 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Profil osobisty i oÅ› czasu przyjaciół" -#: lib/action.php:325 +#: lib/action.php:325 lib/action.php:396 msgid "Search for people or text" -msgstr "" +msgstr "Znajdź osoby lub tekst" -#: lib/action.php:328 -#, fuzzy +#: lib/action.php:328 lib/action.php:399 msgid "Account" -msgstr "O serwisie" +msgstr "Konto" -#: lib/action.php:328 +#: lib/action.php:328 lib/action.php:399 msgid "Change your email, avatar, password, profile" -msgstr "" +msgstr "ZmieÅ„ adres e-mail, awatar, hasÅ‚o, profil" -#: lib/action.php:330 +#: lib/action.php:330 lib/action.php:403 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "PoÅ‚Ä…cz z komunikatorem, SMS, Twitterem" -#: lib/action.php:332 +#: lib/action.php:332 lib/action.php:409 msgid "Logout from the site" -msgstr "" +msgstr "Wyloguj siÄ™ ze strony" -#: lib/action.php:335 +#: lib/action.php:335 lib/action.php:412 msgid "Login to the site" -msgstr "" +msgstr "Zaloguj siÄ™ na stronÄ™" -#: lib/action.php:338 -#, fuzzy +#: lib/action.php:338 lib/action.php:415 msgid "Create an account" -msgstr "Załóż nowe konto" +msgstr "Utwórz konto" -#: lib/action.php:341 -#, fuzzy +#: lib/action.php:341 lib/action.php:418 msgid "Login with OpenID" -msgstr "Brak takiego identyfikatora OpenID." +msgstr "Zaloguj siÄ™ za pomocÄ… OpenID" -#: lib/action.php:344 -#, fuzzy +#: lib/action.php:344 lib/action.php:421 msgid "Help me!" -msgstr "Pomoc" +msgstr "Pomóż mi!" -#: lib/action.php:362 -#, fuzzy +#: lib/action.php:362 lib/action.php:441 msgid "Site notice" -msgstr "Nowy wpis" +msgstr "Wpis strony" -#: lib/action.php:417 +#: lib/action.php:417 lib/action.php:504 msgid "Local views" -msgstr "" +msgstr "Lokalne widoki" -#: lib/action.php:472 -#, fuzzy +#: lib/action.php:472 lib/action.php:559 msgid "Page notice" -msgstr "Nowy wpis" +msgstr "Wpis strony" -#: lib/action.php:562 -#, fuzzy +#: lib/action.php:562 lib/action.php:654 msgid "Secondary site navigation" -msgstr "Subskrypcje" +msgstr "Druga nawigacja strony" -#: lib/action.php:602 lib/action.php:623 +#: lib/action.php:602 lib/action.php:623 lib/action.php:699 lib/action.php:720 msgid "Laconica software license" -msgstr "" +msgstr "Licencja oprogramowania Laconica" -#: lib/action.php:630 +#: lib/action.php:630 lib/action.php:727 msgid "All " -msgstr "" +msgstr "Wszystko " -#: lib/action.php:635 +#: lib/action.php:635 lib/action.php:732 msgid "license." -msgstr "" +msgstr "licencja." #: lib/blockform.php:123 lib/blockform.php:153 -#, fuzzy msgid "Block this user" -msgstr "Brak takiego użytkownika." +msgstr "Zablokuj tego użytkownika" #: lib/blockform.php:153 msgid "Block" -msgstr "" +msgstr "Zablokuj" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "UsuÅ„ ten wpis z ulubionych" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "Aby używać aplikacji Facebook %s, musisz siÄ™ zalogować " -#: lib/facebookaction.php:271 -#, fuzzy +#: lib/facebookaction.php:271 lib/facebookaction.php:273 msgid " a new account." -msgstr "Załóż nowe konto" +msgstr " nowe konto." #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 -#, fuzzy +#: lib/facebookaction.php:675 lib/mailbox.php:216 lib/noticelist.php:357 msgid "Published" -msgstr "Publiczny" +msgstr "Opublikowano" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" -msgstr "Brak takiego wpisu." +msgstr "Dodaj ten wpis do ulubionych" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Wyeksportuj dane" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "Filtruj znaczniki" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Wszystko" #: lib/galleryaction.php:137 msgid "Tag" -msgstr "" +msgstr "Znacznik" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Wybierz znacznik do ograniczonej listy" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "Przejdź" #: lib/groupeditform.php:148 -#, fuzzy msgid "URL of the homepage or blog of the group or topic" -msgstr "URL Twojej strony domowej, bloga, lub profilu na innej stronie" +msgstr "Adres URL strony domowej lub bloga grupy, albo temat" #: lib/groupeditform.php:151 -#, fuzzy msgid "Description" -msgstr "Subskrypcje" +msgstr "Opis" #: lib/groupeditform.php:153 -#, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Opisz siÄ™ w 140 znakach" +msgstr "Opisz grupÄ™ lub temat w 140 znakach" #: lib/groupeditform.php:158 -#, fuzzy msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Gdzie jesteÅ›? (np. \"miasto, region, kraj\")" +msgstr "" +"PoÅ‚ożenie grupy, jeÅ›li istnieje, np. \"miasto, województwo (lub region), kraj" +"\"" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" -msgstr "" +msgstr "Grupa" #: lib/groupnav.php:100 msgid "Admin" -msgstr "" +msgstr "Administrator" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Edytuj wÅ‚aÅ›ciwoÅ›ci grupy %s" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "Wyloguj" +msgstr "Logo" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Dodaj lub edytuj logo grupy %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Grupy z najwiÄ™kszÄ… liczbÄ… czÅ‚onków" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Grupy z najwiÄ™kszÄ… iloÅ›ciÄ… wpisów" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Znaczniki we wpisach grupy %s" #: lib/htmloutputter.php:104 -#, fuzzy msgid "This page is not available in a " -msgstr "Ta strona nie jest dostÄ™pna dla medium, którego typ akceptujesz" +msgstr "Ta strona nie jest dostÄ™pna w " #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Login" +msgstr "DoÅ‚Ä…cz" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "Zapisz" +msgstr "Opuść" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "BÅ‚Ä™dna nazwa użytkownika lub hasÅ‚o." +msgstr "Zaloguj siÄ™ za pomocÄ… nazwy użytkownika i hasÅ‚a" #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" msgstr "Załóż nowe konto" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Zaloguj siÄ™ lub zarejestruj za pomocÄ… OpenID" #: lib/mail.php:175 #, php-format @@ -4675,21 +4856,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Cześć, %s.\n" +"\n" #: lib/mail.php:236 -#, fuzzy, php-format +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s obserwuje teraz Twoje wpisy na %2$s." +msgstr "%1$s obserwuje teraz " #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "Lokalizacja" +msgstr "PoÅ‚ożenie: %s\n" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Strona domowa" +msgstr "Strona domowa: %s\n" #: lib/mail.php:258 #, php-format @@ -4697,185 +4880,783 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"O mnie: %s\n" +"\n" -#: lib/mail.php:461 +#: lib/mail.php:461 lib/mail.php:462 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "ZostaÅ‚eÅ› szturchniÄ™ty przez %s" #: lib/mail.php:465 #, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" +msgstr "%1$s (%2$s) zastanawia siÄ™, co zamierzasz " #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s obserwuje teraz Twoje wpisy na %2$s." +msgstr "%1$s wÅ‚aÅ›nie dodaÅ‚ Twój wpis z %2$s" -#: lib/mailbox.php:229 lib/noticelist.php:380 +#: lib/mailbox.php:229 lib/noticelist.php:380 lib/mailbox.php:231 +#: lib/noticelist.php:383 msgid "From" -msgstr "" +msgstr "Od" -#: lib/messageform.php:110 +#: lib/messageform.php:110 lib/messageform.php:109 msgid "Send a direct notice" -msgstr "" +msgstr "WyÅ›lij bezpoÅ›redni wpis" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" -msgstr "Nowy wpis" +msgstr "WyÅ›lij wpis" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" -msgstr "6 lub wiÄ™cej znaków" +msgstr "DostÄ™pne znaki" -#: lib/noticelist.php:426 -#, fuzzy +#: lib/noticelist.php:426 lib/noticelist.php:429 msgid "in reply to" -msgstr "w odpowiedzi na…" +msgstr "w odpowiedzi na" -#: lib/noticelist.php:447 lib/noticelist.php:450 +#: lib/noticelist.php:447 lib/noticelist.php:450 lib/noticelist.php:451 +#: lib/noticelist.php:454 msgid "Reply to this notice" -msgstr "" +msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:451 -#, fuzzy +#: lib/noticelist.php:451 lib/noticelist.php:455 msgid "Reply" -msgstr "odpowiedź" +msgstr "Odpowiedz" -#: lib/noticelist.php:471 lib/noticelist.php:474 +#: lib/noticelist.php:471 lib/noticelist.php:474 lib/noticelist.php:476 +#: lib/noticelist.php:479 msgid "Delete this notice" -msgstr "" +msgstr "UsuÅ„ ten wpis" -#: lib/noticelist.php:474 +#: lib/noticelist.php:474 actions/avatarsettings.php:148 +#: lib/noticelist.php:479 msgid "Delete" -msgstr "" +msgstr "UsuÅ„" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Szturchnij tego użytkownika" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Szturchnij" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "" +msgstr "WyÅ›lij szturchniÄ™cie do tego użytkownika" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Znaczniki we wpisach użytkownika %s" -#: lib/profilelist.php:182 +#: lib/profilelist.php:182 lib/profilelist.php:180 msgid "(none)" -msgstr "" +msgstr "(brak)" -#: lib/publicgroupnav.php:76 +#: lib/publicgroupnav.php:76 lib/publicgroupnav.php:78 msgid "Public" msgstr "Publiczny" -#: lib/publicgroupnav.php:80 +#: lib/publicgroupnav.php:80 lib/publicgroupnav.php:82 msgid "User groups" -msgstr "" +msgstr "Grupy użytkowników" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 +#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "" +msgstr "Ostatnie znaczniki" -#: lib/publicgroupnav.php:86 +#: lib/publicgroupnav.php:86 lib/publicgroupnav.php:88 msgid "Featured" -msgstr "" +msgstr "Znane" -#: lib/publicgroupnav.php:90 -#, fuzzy +#: lib/publicgroupnav.php:90 lib/publicgroupnav.php:92 msgid "Popular" -msgstr "Szukaj ludzi" +msgstr "Popularne" #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" -msgstr "Wpisy" +msgstr "Wpis" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "" +msgstr "Znajdź grupy na tej stronie" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Sekcja bez nazwy" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Zdalna subskrypcja" +msgstr "Osoby %s zasubskrybowane do" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Zdalna subskrypcja" +msgstr "Osoby zasubskrybowane do %s" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "Grupy %s sÄ… czÅ‚onkiem" #: lib/subgroupnav.php:104 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "ZaproÅ› przyjaciół i kolegów do doÅ‚Ä…czenia do Ciebie na %s" #: lib/subs.php:53 -#, fuzzy msgid "User has blocked you." -msgstr "Użytkownik nie ma profilu." +msgstr "Użytkownik zablokowaÅ‚ CiÄ™." #: lib/subscribeform.php:115 lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Subskrypcja uwierzytelniona" +msgstr "Zasubskrybuj tego użytkownika" #: lib/tagcloudsection.php:56 msgid "None" -msgstr "" +msgstr "Brak" #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Najczęściej wysyÅ‚ajÄ…cy wpisy" #: lib/unblockform.php:120 lib/unblockform.php:150 -#, fuzzy msgid "Unblock this user" -msgstr "Brak takiego użytkownika." +msgstr "Odblokuj tego użytkownika" #: lib/unblockform.php:150 msgid "Unblock" -msgstr "" +msgstr "Odblokuj" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" +msgstr "Zrezygnuj z subskrypcji tego użytkownika" + +#: actions/all.php:77 +#, php-format +msgid "Feed for friends of %s (RSS 1.0)" +msgstr "KanaÅ‚ dla znajomych użytkownika %s (RSS 1.0)" + +#: actions/all.php:82 +#, php-format +msgid "Feed for friends of %s (RSS 2.0)" +msgstr "KanaÅ‚ dla znajomych użytkownika %s (RSS 2.0)" + +#: actions/all.php:87 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "KanaÅ‚ dla znajomych użytkownika %s (Atom)" + +#: actions/all.php:112 +msgid "You and friends" +msgstr "Ty i przyjaciele" + +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "Można wysÅ‚ać swój osobisty awatar. Maksymalny rozmiar pliku to %s." + +#: actions/avatarsettings.php:373 +msgid "Avatar deleted." +msgstr "UsuniÄ™to awatar." + +#: actions/block.php:129 +msgid "" +"Are you sure you want to block this user? Afterwards, they will be " +"unsubscribed from you, unable to subscribe to you in the future, and you " +"will not be notified of any @-replies from them." +msgstr "" +"JesteÅ› pewny, że chcesz zablokować tego użytkownika. Po tym jego subskrypcja " +"do Ciebie zostanie usuniÄ™ta, nie bÄ™dzie mógÅ‚ CiÄ™ zasubskrybować w " +"przyszÅ‚oÅ›ci i nie bÄ™dziesz powiadamiany o żadnych odpowiedziach @ od niego." + +#: actions/deletenotice.php:73 +msgid "" +"You are about to permanently delete a notice. Once this is done, it cannot " +"be undone." +msgstr "" +"Za chwilÄ™ wpis zostanie trwale usuniÄ™ty. Kiedy to siÄ™ stanie, to już siÄ™ nie " +"odstanie." + +#: actions/deletenotice.php:127 +msgid "There was a problem with your session token. Try again, please." +msgstr "WystÄ…piÅ‚ problem z tokenem sesji. Spróbuj ponownie." + +#: actions/emailsettings.php:168 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "WyÅ›lij mi wiadomość e-mail, kiedy ktoÅ› wyÅ›le mi odpowiedź \"@\"." + +#: actions/facebookhome.php:193 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"JeÅ›li chcesz, aby aplikacja %s automatycznie aktualizowaÅ‚a status na " +"Facebook najnowszym wpisem, musisz dać jej pozwolenie." + +#: actions/facebookhome.php:217 +#, php-format +msgid "Okay, do it!" +msgstr "OK, zrób to!" + +#: actions/facebooksettings.php:124 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"JeÅ›li chcesz, aby %s automatycznie aktualizowaÅ‚o status na Facebook " +"najnowszym wpisem, musisz dać mu pozwolenie." + +#: actions/grouplogo.php:155 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "Można wysÅ‚ać obraz logo grupy. Maksymalny rozmiar pliku to %s." + +#: actions/grouplogo.php:367 +msgid "Pick a square area of the image to be the logo." +msgstr "Wybierz kwadratowy obszar obrazu, który bÄ™dzie logo." + +#: actions/grouprss.php:136 +#, php-format +msgid "Microblog by %s group" +msgstr "Mikroblog grupy %s" + +#: actions/groupsearch.php:57 +#, php-format +msgid "" +"Search for groups on %%site.name%% by their name, location, or description. " +"Separate the terms by spaces; they must be 3 characters or more." +msgstr "" +"Znajdź grupy na %%site.name%% wedÅ‚ug ich nazwy, poÅ‚ożenia lub opisu. Oddziel " +"terminy spacjami; muszÄ… mieć trzy znaki lub wiÄ™cej." + +#: actions/groups.php:90 +#, php-format +msgid "" +"%%%%site.name%%%% groups let you find and talk with people of similar " +"interests. After you join a group you can send messages to all other members " +"using the syntax \"!groupname\". Don't see a group you like? Try [searching " +"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" +"%%%%)" +msgstr "" +"Grupy %%%%site.name%%%% umożliwiajÄ… znalezienie i rozmawianie z osobami o " +"podobnych zainteresowaniach. Po doÅ‚Ä…czeniu do grupy można wysyÅ‚ać wiadomoÅ›ci " +"do wszystkich czÅ‚onków używajÄ…c skÅ‚adni \"!nazwagrupy\". Nie widzisz grupy, " +"która CiÄ™ interesuje? Spróbuj jÄ… [znaleźć](%%%%action.groupsearch%%%%) lub " +"[zaÅ‚ożyć wÅ‚asnÄ…!](%%%%action.newgroup%%%%)" + +#: actions/newmessage.php:102 +msgid "Only logged-in users can send direct messages." +msgstr "Tylko zalogowani użytkownicy mogÄ… wysyÅ‚ać bezpoÅ›rednie wiadomoÅ›ci." + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%s\" on %s" +msgstr "Wyniki wyszukiwania dla \"%s\" na %s" + +#: actions/openidlogin.php:66 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Z powodów bezpieczeÅ„stwa przed zmienianiem ustawieÅ„ zaloguj siÄ™ ponownie za " +"pomocÄ… identyfikatora [OpenID](%%doc.openid%%)." + +#: actions/public.php:125 +msgid "Public Stream Feed (RSS 1.0)" +msgstr "KanaÅ‚ publicznego strumienia (RSS 1.0)" + +#: actions/public.php:130 +msgid "Public Stream Feed (RSS 2.0)" +msgstr "KanaÅ‚ publicznego strumienia (RSS 2.0)" + +#: actions/public.php:135 +msgid "Public Stream Feed (Atom)" +msgstr "KanaÅ‚ publicznego strumienia (Atom)" + +#: actions/public.php:210 +#, php-format +msgid "" +"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" +"blogging) service based on the Free Software [Laconica](http://laconi.ca/) " +"tool. [Join now](%%action.register%%) to share notices about yourself with " +"friends, family, and colleagues! ([Read more](%%doc.help%%))" +msgstr "" +"To jest %%site.name%%, usÅ‚uga [mikroblogowania](http://en.wikipedia.org/wiki/" +"Micro-blogging) oparta na wolnym narzÄ™dziu [Laconica](http://laconi.ca/). " +"[DoÅ‚Ä…cz teraz](%%action.register%%), aby dzielić siÄ™ wpisami o sobie z " +"przyjaciółmi, rodzinÄ… i kolegami! ([Przeczytaj wiÄ™cej](%%doc.help%%))" + +#: actions/register.php:286 +#, php-format +msgid "" +"With this form you can create a new account. You can then post notices and " +"link up to friends and colleagues. (Have an [OpenID](http://openid.net/)? " +"Try our [OpenID registration](%%action.openidlogin%%)!)" +msgstr "" +"Za pomocÄ… tego formularza można utworzyć nowe konto. Można wtedy wysyÅ‚ać " +"wpisy i poÅ‚Ä…czyć siÄ™ z przyjaciółmi i kolegami. (Posiadasz identyfikator " +"[OpenID](http://openid.net/)? Wypróbuj [rejestracji OpenID](%%action." +"openidlogin%%)!)" + +#: actions/register.php:432 +msgid "Creative Commons Attribution 3.0" +msgstr "Creative Commons Uznanie Autorstwa 3.0" + +#: actions/register.php:433 +msgid "" +" except this private data: password, email address, IM address, and phone " +"number." +msgstr "" +" poza tymi prywatnymi danymi: hasÅ‚o, adres e-mail, adres komunikatora i " +"numer telefonu." + +#: actions/showgroup.php:378 +msgid "Created" +msgstr "Utworzono" + +#: actions/showgroup.php:393 +#, php-format +msgid "" +"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[Laconica](http://laconi.ca/) tool. Its members share short messages about " +"their life and interests. [Join now](%%%%action.register%%%%) to become part " +"of this group and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" +"**%s** jest grupÄ… użytkowników na %%%%site.name%%%%, usÅ‚udze " +"[mikroblogowania](http://en.wikipedia.org/wiki/Micro-blogging) opartej na " +"wolnym narzÄ™dziu [Laconica](http://laconi.ca/). Jej czÅ‚onkowie dzielÄ… siÄ™ " +"krótkimi wiadomoÅ›ciami o swoim życiu i zainteresowaniach. [DoÅ‚Ä…cz teraz](%%%%" +"action.register%%%%), aby stać siÄ™ częściÄ… tej grupy i wiele wiÄ™cej! " +"([Przeczytaj wiÄ™cej](%%%%doc.help%%%%))" + +#: actions/showstream.php:147 +msgid "Your profile" +msgstr "Twój profil" + +#: actions/showstream.php:149 +#, php-format +msgid "%s's profile" +msgstr "Profil użytkownika %s" + +#: actions/showstream.php:163 +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "KanaÅ‚ wpisów dla %s (RSS 1.0)" + +#: actions/showstream.php:170 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "KanaÅ‚ wpisów dla %s (RSS 2.0)" + +#: actions/showstream.php:177 +#, php-format +msgid "Notice feed for %s (Atom)" +msgstr "KanaÅ‚ wpisów dla %s (Atom)" + +#: actions/showstream.php:182 +#, php-format +msgid "FOAF for %s" +msgstr "FOAF dla %s" + +#: actions/showstream.php:237 +msgid "Edit Avatar" +msgstr "Edytuj awatar" + +#: actions/showstream.php:316 +msgid "Edit profile settings" +msgstr "Edytuj ustawienia profilu" + +#: actions/showstream.php:317 +msgid "Edit" +msgstr "Edytuj" + +#: actions/showstream.php:542 +#, php-format +msgid "" +"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[Laconica](http://laconi.ca/) tool. [Join now](%%%%action.register%%%%) to " +"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" +"**%s** posiada konto na %%%%site.name%%%%, usÅ‚udze [mikroblogowania](http://" +"en.wikipedia.org/wiki/Micro-blogging) opartej na wolnym narzÄ™dziu [Laconica]" +"(http://laconi.ca/). [DoÅ‚Ä…cz teraz](%%%%action.register%%%%), aby obserwować " +"wpisy użytkownika **%s** i wiele wiÄ™cej! ([Przeczytaj wiÄ™cej](%%%%doc.help%%%" +"%))" + +#: actions/smssettings.php:335 +msgid "" +"A confirmation code was sent to the phone number you added. Check your phone " +"for the code and instructions on how to use it." +msgstr "" +"Kod potwierdzajÄ…cy zostaÅ‚ wysÅ‚any na dodany numer telefonu. Sprawdź telefon, " +"czy otrzymaÅ‚eÅ› kod i instrukcje jak go użyć." + +#: actions/twitapifavorites.php:171 lib/mail.php:556 +#, php-format +msgid "" +"%1$s just added your notice from %2$s as one of their favorites.\n" +"\n" +"In case you forgot, you can see the text of your notice here:\n" +"\n" +"%3$s\n" +"\n" +"You can see the list of %1$s's favorites here:\n" +"\n" +"%4$s\n" +"\n" +"Faithfully yours,\n" +"%5$s\n" +msgstr "" +"%1$s wÅ‚aÅ›nie dodaÅ‚ Twój wpis z %2$s jako jeden ze swoich ulubionych.\n" +"\n" +"JeÅ›li go zapomniaÅ‚eÅ›, tutaj możesz zobaczyć tekst wpisu:\n" +"\n" +"%3$s\n" +"\n" +"Tutaj możesz zobaczyć listÄ™ ulubionych wpisów użytkownika %1$s:\n" +"\n" +"%4$s\n" +"\n" +"Z poważaniem,\n" +"%5$s\n" + +#: actions/twitapistatuses.php:124 +msgid "No such user!" +msgstr "Nie ma takiego użytkownika!" + +#: actions/twittersettings.php:72 +msgid "" +"Add your Twitter account to automatically send your notices to Twitter, and " +"subscribe to Twitter friends already here." +msgstr "" +"Dodaj konto Twittera, aby automatycznie wysyÅ‚ać wpisy do Twittera i " +"zasubskrybować przyjaciół z Twittera, którzy już tu sÄ…." + +#: actions/twittersettings.php:345 +#, php-format +msgid "Unable to retrieve account information For \"%s\" from Twitter." +msgstr "Nie można pobrać informacji o koncie dla \"%s\" z Twittera." + +#: actions/userauthorization.php:86 +msgid "" +"Please check these details to make sure that you want to subscribe to this " +"user's notices. If you didn't just ask to subscribe to someone's notices, " +"click \"Reject\"." +msgstr "" +"Sprawdź te szczegóły, aby upewnić siÄ™, czy na pewno chcesz zasubskrybować " +"wpisy tego użytkownika. Jeżeli nie prosiÅ‚eÅ› o subskrypcjÄ™ czyichÅ› wpisów, " +"naciÅ›nij \"Odrzuć\"." + +#: actions/usergroups.php:131 +msgid "Search for more groups" +msgstr "Znajdź wiÄ™cej grup" + +#: classes/Notice.php:138 +msgid "" +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." +msgstr "" +"Za dużo takich samych wiadomoÅ›ci w za krótkim czasie, weź gÅ‚Ä™boki oddech i " +"wyÅ›lij ponownie za kilka minut." + +#: lib/action.php:406 +msgid "Connect to SMS, Twitter" +msgstr "PoÅ‚Ä…cz z SMS, Twitterem" + +#: lib/action.php:671 +msgid "Badge" +msgstr "Odznaka" + +#: lib/command.php:113 +#, php-format +msgid "" +"Subscriptions: %1$s\n" +"Subscribers: %2$s\n" +"Notices: %3$s" +msgstr "" +"Subskrypcje: %1$s\n" +"Subskrybenci: %2$s\n" +"Wpisy: %3$s" + +#: lib/command.php:392 +msgid "" +"Commands:\n" +"on - turn on notifications\n" +"off - turn off notifications\n" +"help - show this help\n" +"follow <nickname> - subscribe to user\n" +"leave <nickname> - unsubscribe from user\n" +"d <nickname> <text> - direct message to user\n" +"get <nickname> - get last notice from user\n" +"whois <nickname> - get profile info on user\n" +"fav <nickname> - add user's last notice as a 'fave'\n" +"stats - get your stats\n" +"stop - same as 'off'\n" +"quit - same as 'off'\n" +"sub <nickname> - same as 'follow'\n" +"unsub <nickname> - same as 'leave'\n" +"last <nickname> - same as 'get'\n" +"on <nickname> - not yet implemented.\n" +"off <nickname> - not yet implemented.\n" +"nudge <nickname> - not yet implemented.\n" +"invite <phone number> - not yet implemented.\n" +"track <word> - not yet implemented.\n" +"untrack <word> - not yet implemented.\n" +"track off - not yet implemented.\n" +"untrack all - not yet implemented.\n" +"tracks - not yet implemented.\n" +"tracking - not yet implemented.\n" +msgstr "" +"Polecenia:\n" +"on - wÅ‚Ä…cza powiadomienia\n" +"off - wyÅ‚Ä…cza powiadomienia\n" +"help - wyÅ›wietla tÄ™ pomoc\n" +"follow <pseudonim> - subskrybuje użytkownika\n" +"leave <pseudonim> - rezygnuje z subskrypcji użytkownika\n" +"d <pseudonim> <tekst> - bezpoÅ›rednia wiadomość do użytkownika\n" +"get <pseudonim> - uzyskuje ostatni wpis użytkownika\n" +"whois <pseudonim> - uzyskuje informacje o profilu użytkownika\n" +"fav <pseudonim> - dodaje ostatni wpis użytkownika jako \"ulubiony\"\n" +"stats - uzyskuje Twoje statystyki\n" +"stop - to samo co \"off\"\n" +"quit - to samo co \"off\"\n" +"sub <pseudonim> - to samo co \"follow\"\n" +"unsub <pseudonim> - to samo co \"leave\"\n" +"last <pseudonim> - to samo co \"get\"\n" +"on <pseudonim> - jeszcze nie zaimplementowano.\n" +"off <pseudonim> - jeszcze nie zaimplementowano.\n" +"nudge <pseudonim> - jeszcze nie zaimplementowano.\n" +"invite <numer telefonu> - jeszcze nie zaimplementowano.\n" +"track <sÅ‚owo> - jeszcze nie zaimplementowano.\n" +"untrack <sÅ‚owo> - jeszcze nie zaimplementowano.\n" +"track off - jeszcze nie zaimplementowano.\n" +"untrack all - jeszcze nie zaimplementowano.\n" +"tracks - jeszcze nie zaimplementowano.\n" +"tracking - jeszcze nie zaimplementowano.\n" + +#: lib/dberroraction.php:60 +msgid "Database error" +msgstr "BÅ‚Ä…d bazy danych" + +#: lib/facebookaction.php:271 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet? " +msgstr "" +"Aby użyć aplikacji Facebook %s, musisz siÄ™ zalogować za pomocÄ… nazwy " +"użytkownika i hasÅ‚a. Nie masz jeszcze nazwy użytkownika? " + +#: lib/feed.php:85 +msgid "RSS 1.0" +msgstr "RSS 1.0" + +#: lib/feed.php:87 +msgid "RSS 2.0" +msgstr "RSS 2.0" + +#: lib/feed.php:89 +msgid "Atom" +msgstr "Atom" + +#: lib/feed.php:91 +msgid "FOAF" +msgstr "FOAF" + +#: lib/imagefile.php:75 +#, php-format +msgid "That file is too big. The maximum file size is %d." +msgstr "Ten plik jest za duży. Maksymalny rozmiar pliku to %d." + +#: lib/mail.php:175 +#, php-format +msgid "" +"Hey, %s.\n" +"\n" +"Someone just entered this email address on %s.\n" +"\n" +"If it was you, and you want to confirm your entry, use the URL below:\n" +"\n" +"\t%s\n" +"\n" +"If not, just ignore this message.\n" +"\n" +"Thanks for your time, \n" +"%s\n" msgstr "" +"Cześć, %s.\n" +"\n" +"KtoÅ› wÅ‚aÅ›nie podaÅ‚ ten adres e-mail na %s.\n" +"\n" +"JeÅ›li to byÅ‚eÅ› Ty, i chcesz potwierdzić swoje wejÅ›cie, użyj poniższego " +"adresu URL:\n" +"\n" +"\t%s\n" +"\n" +"JeÅ›li to nie ty, po prostu zignoruj tÄ™ wiadomość.\n" +"\n" +"DziÄ™kujemy za Twój czas, \n" +"%s\n" + +#: lib/mail.php:241 +#, php-format +msgid "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Faithfully yours,\n" +"%7$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %8$s\n" +msgstr "" +"Użytkownik %1$s obserwuje teraz Twoje wpisy na %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Z poważaniem,\n" +"%7$s.\n" +"\n" +"----\n" +"ZmieÅ„ adres e-mail lub opcje powiadamiania na %8$s\n" + +#: lib/mail.php:466 +#, php-format +msgid "" +"%1$s (%2$s) is wondering what you are up to these days and is inviting you " +"to post some news.\n" +"\n" +"So let's hear from you :)\n" +"\n" +"%3$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%4$s\n" +msgstr "" +"Użytkownik %1$s (%2$s) zastanawia siÄ™, co siÄ™ z TobÄ… dzieje w ostatnich " +"dniach i zaprasza CiÄ™ do wysÅ‚ania jakichÅ› aktualnoÅ›ci.\n" +"\n" +"Tak wiÄ™c do usÅ‚yszenia. :)\n" +"\n" +"%3$s\n" +"\n" +"Nie odpowiadaj na tÄ™ wiadomość e-mail, nie dotrze ona do nich.\n" +"\n" +"Z poważaniem,\n" +"%4$s\n" -#, fuzzy -#~ msgid "Delete my account" -#~ msgstr "Załóż nowe konto" +#: lib/mail.php:513 +#, php-format +msgid "" +"%1$s (%2$s) sent you a private message:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"You can reply to their message here:\n" +"\n" +"%4$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%5$s\n" +msgstr "" +"Użytkownik %1$s (%2$s) wysÅ‚aÅ‚ Ci prywatnÄ… wiadomość:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"Tutaj możesz na niÄ… odpowiedzieć:\n" +"\n" +"%4$s\n" +"\n" +"Nie odpowiadaj na tÄ™ wiadomość e-mail, nie dotrze ona do nich.\n" +"\n" +"Z poważaniem,\n" +"%5$s\n" -#~ msgid "Couldn't confirm email." -#~ msgstr "Nie można potwierdzić e-maila." +#: lib/mail.php:598 +#, php-format +msgid "%s sent a notice to your attention" +msgstr "Użytkownik %s wysÅ‚aÅ‚ wpis wymagajÄ…cy Twojej uwagi" -#~ msgid "Email address" -#~ msgstr "Adres e-mailowy" +#: lib/mail.php:600 +#, php-format +msgid "" +"%1$s just sent a notice to your attention (an '@-reply') on %2$s.\n" +"\n" +"The notice is here:\n" +"\n" +"\t%3$s\n" +"\n" +"It reads:\n" +"\n" +"\t%4$s\n" +"\n" +"You can reply back here:\n" +"\n" +"\t%5$s\n" +"\n" +"The list of all @-replies for you here:\n" +"\n" +"%6$s\n" +"\n" +"Faithfully yours,\n" +"%2$s\n" +"\n" +"P.S. You can turn off these email notifications here: %7$s\n" +msgstr "" +"Użytkownik %1$s wÅ‚aÅ›nie wysÅ‚aÅ‚ wpis wymagajÄ…cy Twojej uwagi (odpowiedź \"@" +"\") na %2$s.\n" +"\n" +"Twój wpis znajduje siÄ™ tutaj:\n" +"\n" +"\t%3$s\n" +"\n" +"Zawiera tekst:\n" +"\n" +"\t%4$s\n" +"\n" +"Tutaj możesz odpowiedzieć:\n" +"\n" +"\t%5$s\n" +"\n" +"Lista wszystkich odpowiedzi \"@\" do Ciebie znajduje siÄ™ tutaj:\n" +"\n" +"%6$s\n" +"\n" +"Z poważaniem,\n" +"%2$s\n" +"\n" +"PS Tutaj możesz wyÅ‚Ä…czyć te powiadomienia przez e-mail: %7$s\n" -#~ msgid "Error inserting notice" -#~ msgstr "BÅ‚Ä…d przy wprowadzaniu wpisu" +#: lib/searchaction.php:122 +msgid "Search site" +msgstr "Znajdź stronÄ™" -#~ msgid "" -#~ "If you've forgotten or lost your password, you can get a new one sent " -#~ "the email address you have stored in your account." -#~ msgstr "" -#~ "JeÅ›li Twoje hasÅ‚o gdzieś siÄ™ zapodziaÅ‚o lub zostaÅ‚o zapomniane to możesz " -#~ "wygenerować nowe. Zostanie ono wysÅ‚ane na adres e-mailowy skojarzony z " -#~ "Twoim kontem." +#: lib/section.php:106 +msgid "More..." +msgstr "WiÄ™cej..." diff --git a/locale/pt/LC_MESSAGES/laconica.mo b/locale/pt/LC_MESSAGES/laconica.mo Binary files differindex 60436f4ad..bbc7c368d 100644 --- a/locale/pt/LC_MESSAGES/laconica.mo +++ b/locale/pt/LC_MESSAGES/laconica.mo diff --git a/locale/pt/LC_MESSAGES/laconica.po b/locale/pt/LC_MESSAGES/laconica.po index 0f6533f84..6c81837b7 100644 --- a/locale/pt/LC_MESSAGES/laconica.po +++ b/locale/pt/LC_MESSAGES/laconica.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-24 22:20+0000\n" -"Last-Translator: Tony Manco <trmanco@yahoo.com>\n" +"PO-Revision-Date: 2009-02-02 03:45+0000\n" +"Last-Translator: Tiago Faria <gouki@goukihq.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -616,7 +616,7 @@ msgstr "" #: ../lib/subs.php:46 lib/subs.php:46 lib/subs.php:57 msgid "Could not subscribe." -msgstr "" +msgstr "Não foi possÃvel subscrever. " #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 @@ -668,7 +668,7 @@ msgstr "" #: actions/profilesettings.php:299 actions/twitapiaccount.php:94 #: actions/profilesettings.php:302 actions/twitapiaccount.php:81 msgid "Couldn't save profile." -msgstr "" +msgstr "Não foi possÃvel salvar o perfil." #: ../actions/profilesettings.php:161 actions/profilesettings.php:276 #: actions/profilesettings.php:279 diff --git a/locale/pt_BR/LC_MESSAGES/laconica.mo b/locale/pt_BR/LC_MESSAGES/laconica.mo Binary files differindex 24add2245..0f9487e67 100644 --- a/locale/pt_BR/LC_MESSAGES/laconica.mo +++ b/locale/pt_BR/LC_MESSAGES/laconica.mo diff --git a/locale/pt_BR/LC_MESSAGES/laconica.po b/locale/pt_BR/LC_MESSAGES/laconica.po index 0edcf3f99..613e5dbba 100644 --- a/locale/pt_BR/LC_MESSAGES/laconica.po +++ b/locale/pt_BR/LC_MESSAGES/laconica.po @@ -5,13 +5,13 @@ msgstr "" "Project-Id-Version: laconica\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-13 17:17-0200\n" -"Last-Translator: Frederico Goncalves Guimaraes <frederico@teia.bio.br>\n" +"PO-Revision-Date: 2009-02-11 12:53+0000\n" +"Last-Translator: Frederico Gonçalves Guimarães <frederico@teia.bio.br>\n" "Language-Team: Português do Brasil\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Pootle 1.1.0\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 @@ -221,17 +221,17 @@ msgstr "1-64 letras ou números, sem pontuação ou espaços. Obrigatório." #: ../actions/password.php:42 actions/profilesettings.php:181 #: actions/passwordsettings.php:102 msgid "6 or more characters" -msgstr "6 caracteres ou mais" +msgstr "6 ou mais caracteres" #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186 #: actions/recoverpassword.php:220 msgid "6 or more characters, and don't forget it!" -msgstr "6 caracteres ou mais. E não se esqueça dela!" +msgstr "6 ou mais caracteres. E não se esqueça dela!" #: ../actions/register.php:154 actions/register.php:168 #: actions/register.php:373 msgid "6 or more characters. Required." -msgstr "6 caracteres ou mais. Obrigatório." +msgstr "6 ou mais caracteres. Obrigatório." #: ../actions/imsettings.php:197 actions/imsettings.php:205 #, php-format @@ -434,7 +434,7 @@ msgstr "Aguardando a confirmação deste número de telefone." #: ../lib/util.php:1318 lib/util.php:1452 msgid "Before »" -msgstr "Antes »" +msgstr "Anteriores »" #: ../actions/profilesettings.php:49 ../actions/register.php:170 #: actions/profilesettings.php:82 actions/register.php:184 @@ -585,7 +585,7 @@ msgstr "Conectar" #: ../actions/finishopenidlogin.php:86 actions/finishopenidlogin.php:92 #: actions/finishopenidlogin.php:114 msgid "Connect existing account" -msgstr "Conecta-se a uma conta já existente" +msgstr "Conectar-se a uma conta já existente" #: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 msgid "Contact" @@ -749,7 +749,7 @@ msgstr "Endereço de e-mail já confirmado." #: ../actions/showstream.php:356 actions/showstream.php:367 msgid "Currently" -msgstr "Nesse momento" +msgstr "Neste momento" #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 #, php-format @@ -1263,8 +1263,8 @@ msgid "" "email but isn't listed here, send email to let us know at %s." msgstr "" "A operadora móvel do seu celular. Se você conhece uma operadora que aceita " -"SMS via e-mail, mas não está listada aqui, informe-nos enviando uma " -"mensagempara %s." +"SMS via e-mail que não está listada aqui, informe-nos enviando uma mensagem " +"para %s." #: ../actions/finishopenidlogin.php:79 ../actions/register.php:188 #: actions/finishopenidlogin.php:85 actions/register.php:202 @@ -1379,7 +1379,7 @@ msgstr "Não foi selecionada nenhuma operadora." #: ../actions/smssettings.php:316 actions/smssettings.php:324 #: actions/smssettings.php:486 msgid "No code entered" -msgstr "Não foi informado nenhum código" +msgstr "Não foi digitado nenhum código" #: ../actions/confirmaddress.php:33 actions/confirmaddress.php:33 #: actions/confirmaddress.php:75 @@ -1427,7 +1427,7 @@ msgstr "Nenhuma confirmação pendente para cancelar." #: ../actions/smssettings.php:176 actions/smssettings.php:184 #: actions/smssettings.php:294 msgid "No phone number." -msgstr "Nenhum telefone cadastrado." +msgstr "Nenhum número de telefone." #: ../actions/finishremotesubscribe.php:72 #: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75 @@ -2815,7 +2815,7 @@ msgstr "tipo de arquivo não suportado" #: ../lib/util.php:1309 lib/util.php:1443 msgid "« After" -msgstr "« Depois" +msgstr "« Seguintes" #: actions/deletenotice.php:74 actions/disfavor.php:43 #: actions/emailsettings.php:127 actions/favor.php:45 @@ -3462,34 +3462,32 @@ msgid "Could not parse message." msgstr "Não foi possÃvel analisar a mensagem." #: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#, php-format msgid "%s and friends, page %d" -msgstr "%s e amigos" +msgstr "%s e amigos, página %d" #: actions/avatarsettings.php:76 -#, fuzzy msgid "You can upload your personal avatar." -msgstr "Você pode atualizar as informações do seu perfil pessoal aqui " +msgstr "Você pode enviar seu avatar pessoal." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "Configurações do Twitter" +msgstr "Configurações do avatar" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "Original" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "Visualização" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 msgid "Crop" -msgstr "" +msgstr "Cortar" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3500,31 +3498,27 @@ msgstr "" #: actions/remotesubscribe.php:53 actions/smssettings.php:216 #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 -#, fuzzy msgid "There was a problem with your session token. " -msgstr "" -"Ocorreu um problema com o seu token de sessão. Tente novamente, por favor." +msgstr "Ocorreu um problema com o seu token de sessão. " #: actions/avatarsettings.php:303 actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Selecione uma área quadrada da imagem para ser seu avatar" #: actions/avatarsettings.php:327 actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "Nossos dados do arquivo foi perdido." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 -#, fuzzy msgid "Lost our file." -msgstr "Não foi possÃvel bloquear o usuário." +msgstr "Nosso arquivo foi perdido." #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 #: classes/User_group.php:129 classes/User_group.php:161 -#, fuzzy msgid "Unknown file type" -msgstr "tipo de arquivo não suportado" +msgstr "Tipo de arquivo desconhecido" #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 msgid "No profile specified." @@ -3552,16 +3546,13 @@ msgid "Failed to save block information." msgstr "Não foi possÃvel salvar a informação de bloqueio." #: actions/confirmaddress.php:159 -#, fuzzy, php-format +#, php-format msgid "The address \"%s\" has been " -msgstr "O endereço foi removido." +msgstr "O endereço \"%s\" foi " #: actions/deletenotice.php:73 -#, fuzzy msgid "You are about to permanently delete a notice. " -msgstr "" -"Você está prestes a apagar permanentemente uma mensagem. Isso não poderá ser " -"desfeito." +msgstr "Você está prestes a apagar permanentemente uma mensagem. " #: actions/disfavor.php:94 msgid "Add to favorites" @@ -3570,7 +3561,7 @@ msgstr "Adicionar à s favoritas" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "Editar o grupo %s" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 @@ -3578,199 +3569,175 @@ msgid "Inboxes must be enabled for groups to work" msgstr "" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 -#, fuzzy msgid "You must be logged in to create a group." -msgstr "" -"Você deve estar autenticado para convidar outros usuários para usar o %s" +msgstr "Você deve estar autenticado para criar um grupo." #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "Nenhum apelido." +msgstr "Nenhum apelido" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 #: actions/showgroup.php:128 -#, fuzzy msgid "No such group" -msgstr "Esse usuário não existe" +msgstr "Esse grupo não existe" #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 -#, fuzzy msgid "You must be an admin to edit the group" -msgstr "" -"Você deve estar autenticado para convidar outros usuários para usar o %s" +msgstr "Você deve ser o administrador do grupo para editá-lo" #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "Use esse formulário para editar o grupo." #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "" -"O apelido deve conter apenas letras minúsculas e/ou números e não pode ter " -"espaços." +msgstr "O apelido deve conter apenas letras minúsculas " #: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy msgid "description is too long (max 140 chars)." -msgstr "Descrição muito extensa (máximo 140 caracteres)." +msgstr "descrição muito extensa (máximo 140 caracteres)." #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Não foi possÃvel atualizar o usuário." +msgstr "Não foi possÃvel atualizar o grupo." #: actions/editgroup.php:226 -#, fuzzy msgid "Options saved." msgstr "As configurações foram salvas." #: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "Aguardando a confirmação deste número de telefone." +msgstr "Aguardando a confirmação neste endereço. " #: actions/emailsettings.php:139 actions/smssettings.php:150 -#, fuzzy msgid "Make a new email address for posting to; " -msgstr "Novo endereço de e-mail para publicar no %s" +msgstr "Cria um novo endereço de e-mail para publicar no; " #: actions/emailsettings.php:157 -#, fuzzy msgid "Send me email when someone " -msgstr "Envie-me um e-mail quando alguém enviar-me uma mensagem particular." +msgstr "Envie-me um e-mail quando alguém " #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." msgstr "Permitir que meus amigos chamem minha atenção e enviem-me um e-mail." #: actions/emailsettings.php:321 -#, fuzzy msgid "That email address already belongs " -msgstr "Esse endereço de e-mail já pertence à outro usuário." +msgstr "Esse endereço de e-mail já pertence " #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " msgstr "" -"Um código de confirmação foi enviado para o endereço de mensagem instantânea " -"que você informou. Você deve permitir que %s envie mensagens para você." +"Um código de confirmação foi enviado para o endereço de e-mail que você " +"informou. " #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "Erro no servidor - não foi possÃvel obter o usuário!" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "Se você deseja que o aplicativo %s atualize automaticamente " #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Permitir que %s atualize meu status no Facebook" #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "Pular" #: actions/facebookhome.php:235 -#, fuzzy msgid "No notice content!" msgstr "Nenhum conteúdo!" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "Paginação" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 -#, fuzzy msgid "After" -msgstr "« Depois" +msgstr "Próximo" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy msgid "Before" -msgstr "Antes »" +msgstr "Anterior" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "Obrigado por convidar seus amigos para usar o %s" #: actions/facebookinvite.php:72 -#, fuzzy msgid "Invitations have been sent to the following users:" -msgstr "Convite(s) enviado(s) para as seguintes pessoas:" +msgstr "Foram enviados convites para os seguintes usuários:" #: actions/facebookinvite.php:96 -#, fuzzy, php-format +#, php-format msgid "You have been invited to %s" -msgstr "Você teve a atenção chamada por %s" +msgstr "Você foi convidado por %s" #: actions/facebookinvite.php:105 -#, fuzzy, php-format +#, php-format msgid "Invite your friends to use %s" -msgstr "Mensagens dos amigos de %s" +msgstr "Convide seus amigos para usar o %s" #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Amigos que já utilizam o %s:" #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "Enviar convites" #: actions/facebookremove.php:56 msgid "Couldn't remove Facebook user." msgstr "Não foi possÃvel remover o usuário do Facebook." #: actions/facebooksettings.php:65 -#, fuzzy msgid "There was a problem saving your sync preferences!" msgstr "" -"Ocorreu um problema com o seu token de sessão. Tente novamente, por favor." +"Ocorreu um problema durante o salvamento das suas preferências de " +"sincronização!" #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." -msgstr "As preferências foram salvas." +msgstr "As preferências de sincronização foram salvas." #: actions/facebooksettings.php:90 -#, fuzzy msgid "Automatically update my Facebook status with my notices." -msgstr "Enviar minhas mensagens para o Twitter automaticamente." +msgstr "" +"Atualizar meu status do Facebook automaticamente com as minhas mensagens." #: actions/facebooksettings.php:97 -#, fuzzy msgid "Send \"@\" replies to Facebook." -msgstr "Enviar respostas \"@\" locais para o Twitter." +msgstr "Enviar respostas \"@\" para o Facebook." #: actions/facebooksettings.php:106 -#, fuzzy msgid "Prefix" -msgstr "Perfil" +msgstr "Prefixo" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Um prefixo para acrescentar à s mensagens." #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "Se você deseja que %s atualize automaticamente " #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" -msgstr "Preferências" +msgstr "Preferências de sincronização" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" @@ -3782,14 +3749,13 @@ msgid "Popular notices" msgstr "Mensagens populares" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "Mensagens populares" +msgstr "Mensagens populares, pág. %d" #: actions/favorited.php:79 -#, fuzzy msgid "The most popular notices on the site right now." -msgstr "Exibindo as etiquetas mais populares da última semana" +msgstr "As etiquetas mais populares no site agora." #: actions/featured.php:69 lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 @@ -3797,9 +3763,9 @@ msgid "Featured users" msgstr "Usuários de destaque" #: actions/featured.php:71 -#, fuzzy, php-format +#, php-format msgid "Featured users, page %d" -msgstr "Usuários de destaque" +msgstr "Usuários de destaque, pág. %d" #: actions/featured.php:99 #, php-format @@ -4532,12 +4498,12 @@ msgstr "Cancelado" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "Grupos de %s" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "Grupos de %s, página %d" #: classes/Notice.php:104 msgid "Problem saving notice. Unknown user." @@ -4547,17 +4513,16 @@ msgstr "Problema no salvamento da mensagem. Usuário desconhecido." msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -"Muitas mensagens rapidamente; dê uma respirada e publique novamente em " -"alguns minutos." +"Muitas mensagens em um perÃodo curto de tempo; dê uma respirada e publique " +"novamente daqui a alguns minutos." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." msgstr "Você foi banido de publicar mensagens nesse site." #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "Não foi possÃvel atualizar o avatar." +msgstr "Enviar um avatar" #: lib/accountsettingsaction.php:119 msgid "Other" @@ -4568,17 +4533,18 @@ msgid "Other options" msgstr "Outras opções" #: lib/action.php:130 -#, fuzzy, php-format +#, php-format msgid "%s - %s" -msgstr "%s (%s)" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "Página sem tÃtulo" #: lib/action.php:316 +#, fuzzy msgid "Primary site navigation" -msgstr "" +msgstr "Navegação primária no site" #: lib/action.php:322 msgid "Personal profile and friends timeline" @@ -4667,33 +4633,29 @@ msgid "Block" msgstr "Bloquear" #: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy msgid "Disfavor this notice" -msgstr "Mensagens favoritas de %s" +msgstr "Tirar das favoritas" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "Para usar a Aplicação do Facebook %s você precisa autenticar-se" #: lib/facebookaction.php:271 -#, fuzzy msgid " a new account." -msgstr "Criar uma nova conta" +msgstr " uma nova conta." #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 -#, fuzzy msgid "Published" -msgstr "Público" +msgstr "Publicado" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" -msgstr "Mensagens favoritas de %s" +msgstr "Acrescentar à s favoritas" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "Exportar os dados" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -4709,7 +4671,7 @@ msgstr "Etiqueta" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "Selecione uma etiqueta para diminuir a lista" +msgstr "Selecione uma etiqueta para reduzir a lista" #: lib/galleryaction.php:139 msgid "Go" @@ -4761,45 +4723,40 @@ msgstr "" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Grupos com mais membros" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Grupos com mais mensagens" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Etiquetas nas mensagens do grupo %s" #: lib/htmloutputter.php:104 -#, fuzzy msgid "This page is not available in a " -msgstr "Esta página não está disponÃvel em um tipo de mÃdia que você aceita" +msgstr "Esta página não está disponÃvel em um " #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Autenticação" +msgstr "Entrar" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "Salvar" +msgstr "Sair" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "Autentique-se com o seu nome de usuário e senha. " +msgstr "Autentique-se com um nome de usuário e senha" #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" -msgstr "Criar uma nova conta" +msgstr "Cadastre-se para uma nova conta" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Autentique-se ou registre-se como um OpenID" #: lib/mail.php:175 #, php-format @@ -4807,21 +4764,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Olá, %s.\n" +"\n" #: lib/mail.php:236 -#, fuzzy, php-format +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s agora está acompanhando suas mensagens em %2$s." +msgstr "%1$s agora está acompanhando " #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "Localização: %s" +msgstr "Localização: %s\n" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Site: %s" +msgstr "Site: %s\n" #: lib/mail.php:258 #, php-format @@ -4829,6 +4788,8 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"Descrição: %s\n" +"\n" #: lib/mail.php:461 #, php-format @@ -4836,84 +4797,67 @@ msgid "You've been nudged by %s" msgstr "Você teve a atenção chamada por %s" #: lib/mail.php:465 -#, fuzzy, php-format +#, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" -"%1$s (%2$s) quer saber com você está atualmente e está convidando-o a " -"publicar alguma notÃcia.\n" -"\n" +msgstr "%1$s (%2$s) quer saber como você está " #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "" -"%1$s acabou de marcar sua mensagem de %2$s como uma favorita.\n" -"\n" +msgstr "%1$s acabou de marcar sua mensagem de %2$s" #: lib/mailbox.php:229 lib/noticelist.php:380 -#, fuzzy msgid "From" -msgstr " de " +msgstr "De" #: lib/messageform.php:110 -#, fuzzy msgid "Send a direct notice" -msgstr "Excluir a mensagem" +msgstr "Enviar uma mensagem direta" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" -msgstr "Chamar a atenção" +msgstr "Enviar uma mensagem" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" -msgstr "6 caracteres ou mais" +msgstr "Caracteres disponÃveis" #: lib/noticelist.php:426 -#, fuzzy msgid "in reply to" -msgstr "em resposta à ..." +msgstr "em resposta à " #: lib/noticelist.php:447 lib/noticelist.php:450 -#, fuzzy msgid "Reply to this notice" -msgstr "Não é possÃvel excluir esta mensagem." +msgstr "Responder a esta mensagem" #: lib/noticelist.php:451 -#, fuzzy msgid "Reply" -msgstr "responder" +msgstr "Responder" #: lib/noticelist.php:471 lib/noticelist.php:474 -#, fuzzy msgid "Delete this notice" -msgstr "Excluir a mensagem" +msgstr "Excluir esta mensagem" #: lib/noticelist.php:474 -#, fuzzy msgid "Delete" -msgstr "excluir" +msgstr "Excluir" #: lib/nudgeform.php:116 -#, fuzzy msgid "Nudge this user" -msgstr "Chamada de atenção enviada" +msgstr "Chamar a atenção deste usuário" #: lib/nudgeform.php:128 -#, fuzzy msgid "Nudge" -msgstr "Chamada de atenção enviada" +msgstr "Chamar a atenção" #: lib/nudgeform.php:128 -#, fuzzy msgid "Send a nudge to this user" -msgstr "Você não pode enviar uma mensagem para esse usuário." +msgstr "Chame a atenção deste usuário" #: lib/personaltagcloudsection.php:56 -#, fuzzy, php-format +#, php-format msgid "Tags in %s's notices" -msgstr "O usuário não tem uma \"última mensagem\"" +msgstr "Etiquetas nas mensagens de %s" #: lib/profilelist.php:182 msgid "(none)" @@ -4925,7 +4869,7 @@ msgstr "Público" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Grupos de usuário" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 msgid "Recent tags" @@ -4940,72 +4884,64 @@ msgid "Popular" msgstr "Popular" #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" -msgstr "Mensagens" +msgstr "Mensagem" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" -msgstr "Procurar por pessoas neste site" +msgstr "Procurar por grupos neste site" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Seção sem tÃtulo" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Assinatura remota" +msgstr "Pessoas que %s assina" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Efetuada a assinatura de %s" +msgstr "Assinantes de %s" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "O grupo %s é membro de" #: lib/subgroupnav.php:104 -#, fuzzy, php-format +#, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" -"Use esse formulário para convidar seus amigos e colegas para usar este " -"serviço." +msgstr "Convide seus amigos e colegas para unir-se a você no %s" #: lib/subs.php:53 msgid "User has blocked you." msgstr "O usuário bloqueou você." #: lib/subscribeform.php:115 lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Efetuada a assinatura de %s" +msgstr "Assinar este usuário" #: lib/tagcloudsection.php:56 -#, fuzzy msgid "None" -msgstr "Não" +msgstr "Nenhuma" #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Quem mais publica" #: lib/unblockform.php:120 lib/unblockform.php:150 -#, fuzzy msgid "Unblock this user" -msgstr "Bloquear usuário" +msgstr "Desbloquear este usuário" #: lib/unblockform.php:150 msgid "Unblock" msgstr "Desbloquear" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 -#, fuzzy msgid "Unsubscribe from this user" -msgstr "Cancelada a assinatura de %s" +msgstr "Cancelar a assinatura deste usuário" #~ msgid "Code not yet ready." #~ msgstr "O código ainda não está pronto." diff --git a/locale/ru_RU/LC_MESSAGES/laconica.mo b/locale/ru_RU/LC_MESSAGES/laconica.mo Binary files differindex cbf1cc141..9bfd550b4 100644 --- a/locale/ru_RU/LC_MESSAGES/laconica.mo +++ b/locale/ru_RU/LC_MESSAGES/laconica.mo diff --git a/locale/ru_RU/LC_MESSAGES/laconica.po b/locale/ru_RU/LC_MESSAGES/laconica.po index e7e6f85a1..55b908d2e 100644 --- a/locale/ru_RU/LC_MESSAGES/laconica.po +++ b/locale/ru_RU/LC_MESSAGES/laconica.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2009-01-16 10:34+0000\n" -"Last-Translator: Sergey Salnikov <salnsg>\n" +"PO-Revision-Date: 2009-03-12 16:26+0000\n" +"Last-Translator: Evan Prodromou <evan@controlyourself.ca>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -150,7 +150,7 @@ msgstr "%s (%s)" #: actions/publicrss.php:90 #, php-format msgid "%s Public Stream" -msgstr "%s Публичный поток" +msgstr "%s ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð›ÐµÐ½Ñ‚Ð°" #: ../actions/all.php:47 ../actions/allrss.php:60 #: ../actions/twitapistatuses.php:238 ../lib/stream.php:51 actions/all.php:47 @@ -182,7 +182,7 @@ msgstr "%s хронологиÑ" #: actions/twitapistatuses.php:36 #, php-format msgid "%s updates from everyone!" -msgstr "%s обновлен полноÑтью!" +msgstr "%s обновлен Ð´Ð»Ñ Ð²Ñех!" #: ../actions/register.php:213 msgid "" @@ -198,8 +198,8 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -"**%%site.name%%** Ñто ÑÐµÑ€Ð²Ð¸Ñ Ð¼Ð¸ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ð¸Ð½Ð³Ð° доведённый до Ð’Ð°Ñ Ð¿Ñ€Ð¸ помощи [%%" -"site.broughtby%%](%%site.broughtbyurl%%). " +"**%%site.name%%** Ñто ÑÐµÑ€Ð²Ð¸Ñ Ð¼Ð¸ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ð¸Ð½Ð³Ð° Ñозданный Ð´Ð»Ñ Ð’Ð°Ñ Ð¿Ñ€Ð¸ помощи " +"[%%site.broughtby%%](%%site.broughtbyurl%%). " #: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 #, php-format @@ -260,9 +260,9 @@ msgid "" "A confirmation code was sent to the phone number you added. Check your inbox " "(and spam box!) for the code and instructions on how to use it." msgstr "" -"Код Ð¿Ð¾Ð´Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð²Ñ‹Ñлан на мобильный номер, который вы добавили. ПоÑмотрите " -"Ваши входÑщие ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (и папку Ð´Ð»Ñ Ñпама тоже!) Ð´Ð»Ñ Ð½Ð°Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñтого кода " -"и инÑтрукций по его иÑпользованию." +"Код Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð²Ñ‹Ñлан на мобильный номер, который вы добавили. " +"ПоÑмотрите Ваши входÑщие ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (и папку Ð´Ð»Ñ Ñпама тоже!) Ð´Ð»Ñ Ð½Ð°Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ " +"Ñтого кода и инÑтрукций по его иÑпользованию." #: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45 #: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259 @@ -284,7 +284,7 @@ msgstr "" #: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429 #: actions/twitapiusers.php:32 msgid "API method not found!" -msgstr "API-метод не найден!" +msgstr "Метод API не найден!" #: ../actions/twitapiaccount.php:57 ../actions/twitapiaccount.php:113 #: ../actions/twitapiaccount.php:119 ../actions/twitapiblocks.php:28 @@ -307,7 +307,7 @@ msgstr "API-метод не найден!" #: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37 #: actions/twitapistatuses.php:562 msgid "API method under construction." -msgstr "API-метод реконÑтруируетÑÑ" +msgstr "Метод API реконÑтруируетÑÑ." #: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 msgid "About" @@ -437,7 +437,6 @@ msgid "Awaiting confirmation on this phone number." msgstr "Ð’ ожидании Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ номера телефона." #: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy msgid "Before »" msgstr "Ранее »" @@ -463,7 +462,7 @@ msgstr "Ðе удаётÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ñту заметку." #: actions/updateprofile.php:123 #, php-format msgid "Can't read avatar URL '%s'" -msgstr "Ðе удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ URL Ð´Ð»Ñ '%s'" +msgstr "Ðе удаетÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ URL аватары из '%s'" #: ../actions/password.php:85 ../actions/recoverpassword.php:300 #: actions/profilesettings.php:404 actions/recoverpassword.php:313 @@ -2899,7 +2898,9 @@ msgstr "" msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" -msgstr "%1$s приглашает Ð²Ð°Ñ Ð¿Ñ€Ð¸ÑоединитьÑÑ Ðº %2$s (%3$s)." +msgstr "" +"%1$s приглашает Ð²Ð°Ñ Ð¿Ñ€Ð¸ÑоединитьÑÑ Ðº %2$s (%3$s).\n" +"\n" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 @@ -3142,7 +3143,9 @@ msgstr "%s добавил Вашу заметку в ÑоÑтав Ñвоих Ð»Ñ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" -msgstr "%1$s добавил Вашу заметку от %2$s в ÑоÑтав Ñвоих любимых." +msgstr "" +"%1$s добавил Вашу заметку от %2$s в ÑоÑтав Ñвоих любимых.\n" +"\n" #: actions/twittersettings.php:27 msgid "" @@ -3267,7 +3270,7 @@ msgstr "ПроÑтите, Ñта команда ещё не выполнена." #: classes/Command.php:96 classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "ПодпиÑки: %1$s" +msgstr "ПодпиÑки: %1$s\n" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 #: classes/Command.php:276 @@ -3358,7 +3361,7 @@ msgstr "ЕÑÑ‚ÑŒ оповещение." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" -msgstr "Команды:" +msgstr "Команды:\n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." @@ -3377,7 +3380,9 @@ msgstr "Пользователь без ÑоответÑтвующего Ð¿Ñ€Ð¾Ñ msgid "" "You have a new posting address on %1$s.\n" "\n" -msgstr "У Ð’Ð°Ñ Ð½Ð¾Ð²Ñ‹Ð¹ Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ñтинга на %1$s." +msgstr "" +"У Ð’Ð°Ñ Ð½Ð¾Ð²Ñ‹Ð¹ Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ñтинга на %1$s.\n" +"\n" #: lib/mail.php:249 lib/mail.php:508 #, php-format @@ -3389,7 +3394,9 @@ msgstr "Ðовое приватное Ñообщение от %s" msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" -msgstr "%1$s (%2$s) поÑлал Вам приватное Ñообщение:" +msgstr "" +"%1$s (%2$s) поÑлал Вам приватное Ñообщение:\n" +"\n" #: lib/mailbox.php:43 lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." @@ -3557,7 +3564,7 @@ msgstr "" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" -msgstr "" +msgstr "ВходÑщие должны быть включены Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ групп" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 #, fuzzy @@ -3834,12 +3841,12 @@ msgstr "" #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "Группы" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Группы, Ñтраница %d" #: actions/groups.php:90 #, php-format @@ -3849,19 +3856,19 @@ msgstr "" #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 #, fuzzy msgid "Create a new group" -msgstr "Создать новую учетную запиÑÑŒ" +msgstr "Создать новую группу" #: actions/groupsearch.php:57 #, fuzzy, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " msgstr "" -"поиÑк людей на %%site.name%% по их имени, меÑту жительÑтва или интереÑам." +"поиÑк людей на %%site.name%% по их имени, меÑту жительÑтва или опиÑанию." #: actions/groupsearch.php:63 #, fuzzy msgid "Group search" -msgstr "ПоиÑк людей" +msgstr "ПоиÑк групп" #: actions/imsettings.php:70 #, fuzzy @@ -3871,7 +3878,7 @@ msgstr "Ð’Ñ‹ не можете поÑлать Ñообщение Ñтому по #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Jabber или GTalk, " #: actions/imsettings.php:147 #, fuzzy @@ -3881,19 +3888,17 @@ msgstr "ПоÑылать мне заметки через Jabber/GTalk." #: actions/imsettings.php:321 #, fuzzy, php-format msgid "A confirmation code was sent " -msgstr "Ðет кода подтверждениÑ." +msgstr "Код Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½" #: actions/joingroup.php:65 #, fuzzy msgid "You must be logged in to join a group." -msgstr "" -"Ð’Ñ‹ должны авторизоватьÑÑ, чтобы приглашать других пользователей Ñледовать за " -"%s" +msgstr "Ð’Ñ‹ должны авторизоватьÑÑ Ð´Ð»Ñ Ð²ÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ Ð² группу." #: actions/joingroup.php:95 #, fuzzy msgid "You are already a member of that group" -msgstr "Ð’Ñ‹ уже подпиÑаны на пользователÑ:" +msgstr "Ð’Ñ‹ уже ÑвлÑетеÑÑŒ членом Ñтой группы" #: actions/joingroup.php:128 #, fuzzy, php-format @@ -3904,11 +3909,11 @@ msgstr "" #: actions/joingroup.php:135 #, fuzzy, php-format msgid "%s joined group %s" -msgstr "%s / Любимое от %s" +msgstr "%s / вÑтупил в группу %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "ВходÑщие должны быть включены Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ групп." #: actions/leavegroup.php:65 #, fuzzy @@ -3920,37 +3925,36 @@ msgstr "" #: actions/leavegroup.php:88 #, fuzzy msgid "No such group." -msgstr "Ðет такого тега." +msgstr "Ðет такой группы." #: actions/leavegroup.php:95 #, fuzzy msgid "You are not a member of that group." -msgstr "Ð’Ñ‹ не подпиÑаны на Ñтот профиль." +msgstr "Ð’Ñ‹ не ÑвлÑетеÑÑŒ членом Ñтой группы." #: actions/leavegroup.php:100 #, fuzzy msgid "You may not leave a group while you are its administrator." -msgstr "Ð’Ñ‹ не можете удалÑÑ‚ÑŒ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ñ€ÑƒÐ³Ð¸Ñ… пользователей." +msgstr "Ð’Ñ‹ не можете покинуть группу, пока ÑвлÑетеÑÑŒ её админиÑтратором." #: actions/leavegroup.php:130 #, fuzzy msgid "Could not find membership record." -msgstr "Ðе удаётÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ пользовательÑкую запиÑÑŒ." +msgstr "Ðе удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ учетную запиÑÑŒ." #: actions/leavegroup.php:138 #, fuzzy, php-format msgid "Could not remove user %s to group %s" -msgstr "" -"Ðе удаётÑÑ Ñледовать пользователю, Ñ‚.к. такого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ ÑущеÑтвует." +msgstr "Ðе удаётÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %s из группы %s" #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s покинул группу %s" #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "ÐвторизоватьÑÑ" #: actions/microsummary.php:69 msgid "No current status" @@ -3958,32 +3962,32 @@ msgstr "Ðет текущего ÑтатуÑа" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" #: actions/newgroup.php:115 #, fuzzy msgid "Use this form to create a new group." -msgstr "При помощи Ñтой формы Ð’Ñ‹ можете Ñоздать новый Ñчёт." +msgstr "ИÑпользуйте Ñту форму Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ группы." #: actions/newgroup.php:177 #, fuzzy msgid "Could not create group." -msgstr "Ðе удаётÑÑ Ñоздать любимую заметку." +msgstr "Ðе удаётÑÑ Ñоздать группу." #: actions/newgroup.php:191 #, fuzzy msgid "Could not set group membership." -msgstr "Ðе удаётÑÑ Ñохранить подпиÑку." +msgstr "Ðе удаётÑÑ Ð½Ð°Ð·Ð½Ð°Ñ‡Ð¸Ñ‚ÑŒ членÑтво в группе." #: actions/newmessage.php:119 actions/newnotice.php:132 #, fuzzy msgid "That's too long. " -msgstr "Ðто Ñлишком большой файл." +msgstr "Ðто Ñлишком длинно." #: actions/newmessage.php:134 #, fuzzy msgid "Don't send a message to yourself; " -msgstr "Ð’Ñ‹ не можете поÑлать Ñообщение Ñтому пользователю." +msgstr "Ð’Ñ‹ не можете поÑлать Ñообщение Ñамому Ñебе." #: actions/newnotice.php:166 msgid "Notice posted" @@ -3991,7 +3995,7 @@ msgstr "Заметка опубликована" #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" -msgstr "Ошибка ÐÑкÑа" +msgstr "Ошибка AJAX" #: actions/nudge.php:85 msgid "" @@ -4576,29 +4580,29 @@ msgstr "" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "ИÑкать людей или текÑÑ‚" #: lib/action.php:328 #, fuzzy msgid "Account" -msgstr "О проекте" +msgstr "Ðккаунт" #: lib/action.php:328 #, fuzzy msgid "Change your email, avatar, password, profile" -msgstr "Изменить Ваш пароль" +msgstr "Изменить Ваш email, аватару, пароль, профиль" #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "СоединитьÑÑ Ñ IM, SMS, Twitter" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Выйти" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Войти" #: lib/action.php:338 #, fuzzy @@ -4608,7 +4612,7 @@ msgstr "Создать новую учетную запиÑÑŒ" #: lib/action.php:341 #, fuzzy msgid "Login with OpenID" -msgstr "Ðет такого OpenID." +msgstr "Войти Ñ OpenID" #: lib/action.php:344 #, fuzzy @@ -4645,7 +4649,7 @@ msgstr "Ð’Ñе" #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "лицензиÑ." #: lib/blockform.php:123 lib/blockform.php:153 #, fuzzy @@ -4683,7 +4687,7 @@ msgstr "%s любимые заметки" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "ÐкÑпорт данных" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -4703,7 +4707,7 @@ msgstr "Выберите тег из выпадающего ÑпиÑка" #: lib/galleryaction.php:139 msgid "Go" -msgstr "Идти" +msgstr "Перейти" #: lib/groupeditform.php:148 #, fuzzy @@ -4713,7 +4717,7 @@ msgstr "ÐÐ´Ñ€ÐµÑ Ñ‚Ð²Ð¾ÐµÐ¹ Ñтраницы, дневника или проф #: lib/groupeditform.php:151 #, fuzzy msgid "Description" -msgstr "ПодпиÑки" +msgstr "ОпиÑание" #: lib/groupeditform.php:153 #, fuzzy @@ -4747,15 +4751,15 @@ msgstr "Выход" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Добавить или изменить логотип %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Группы Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ количеÑтвом учаÑтников" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Группы Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ количеÑтвом Ñообщений" #: lib/grouptagcloudsection.php:56 #, php-format @@ -4775,12 +4779,12 @@ msgstr "ÐвторизациÑ" #: lib/leaveform.php:114 #, fuzzy msgid "Leave" -msgstr "Сохранить" +msgstr "Выйти" #: lib/logingroupnav.php:76 #, fuzzy msgid "Login with a username and password" -msgstr "ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð’Ð°ÑˆÐ¸Ð¼ именем и паролем." +msgstr "Войти Ñ Ð’Ð°ÑˆÐ¸Ð¼ именем и паролем." #: lib/logingroupnav.php:79 #, fuzzy @@ -4789,7 +4793,7 @@ msgstr "Создать новую учетную запиÑÑŒ" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Войти или зарегиÑтрироватьÑÑ Ñ OpenID" #: lib/mail.php:175 #, php-format @@ -4797,6 +4801,8 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Привет, %s.\n" +"\n" #: lib/mail.php:236 #, fuzzy, php-format @@ -4870,7 +4876,7 @@ msgstr "Ðе удаётÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ñту заметку." #: lib/noticelist.php:451 #, fuzzy msgid "Reply" -msgstr "ответить" +msgstr "Ответить" #: lib/noticelist.php:471 lib/noticelist.php:474 #, fuzzy @@ -4912,7 +4918,7 @@ msgstr "Публичное" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Группы пользователÑ" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 msgid "Recent tags" @@ -4934,7 +4940,7 @@ msgstr "Заметки" #: lib/searchgroupnav.php:85 #, fuzzy msgid "Find groups on this site" -msgstr "Ðайти человека на Ñтом Ñайте" +msgstr "Ðайти группы на Ñтом Ñайте" #: lib/section.php:89 msgid "Untitled section" diff --git a/locale/sv_SE/LC_MESSAGES/laconica.mo b/locale/sv_SE/LC_MESSAGES/laconica.mo Binary files differindex c0e8c4d88..1f77251e3 100644 --- a/locale/sv_SE/LC_MESSAGES/laconica.mo +++ b/locale/sv_SE/LC_MESSAGES/laconica.mo diff --git a/locale/sv_SE/LC_MESSAGES/laconica.po b/locale/sv_SE/LC_MESSAGES/laconica.po index 209149490..4b0467e64 100644 --- a/locale/sv_SE/LC_MESSAGES/laconica.po +++ b/locale/sv_SE/LC_MESSAGES/laconica.po @@ -3,20 +3,18 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2009-02-03 18:51+0000\n" +"Last-Translator: HÃ¥kan Eriksson <eriksson@utryckning.se>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# laconica.pot (PACKAGE VERSION) #-#-#-#-#\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" +"X-Generator: Pootle 1.1.0\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 @@ -160,7 +158,7 @@ msgstr "%s med vänner" #: actions/twitapistatuses.php:33 #, php-format msgid "%s public timeline" -msgstr "%s publika tidslinje" +msgstr "%s publik tidslinje" #: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 #, php-format diff --git a/locale/uk_UA/LC_MESSAGES/laconica.mo b/locale/uk_UA/LC_MESSAGES/laconica.mo Binary files differindex 1f1f5ad54..34818a235 100644 --- a/locale/uk_UA/LC_MESSAGES/laconica.mo +++ b/locale/uk_UA/LC_MESSAGES/laconica.mo diff --git a/locale/uk_UA/LC_MESSAGES/laconica.po b/locale/uk_UA/LC_MESSAGES/laconica.po index abd50e81b..12809a3f6 100644 --- a/locale/uk_UA/LC_MESSAGES/laconica.po +++ b/locale/uk_UA/LC_MESSAGES/laconica.po @@ -4,28 +4,26 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2009-03-12 16:19+0000\n" +"Last-Translator: Evan Prodromou <evan@controlyourself.ca>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"#-#-#-#-# laconica.po #-#-#-#-#\n" +"X-Generator: Pootle 1.1.0\n" "X-Poedit-Language: Ukrainian\n" "X-Poedit-Country: UKRAINE\n" -"#-#-#-#-# laconica.new.pot (PACKAGE VERSION) #-#-#-#-#\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 #, php-format msgid " Search Stream for \"%s\"" -msgstr "Потік пошуку Ð´Ð»Ñ \"%s\"" +msgstr " Потік пошуку Ð´Ð»Ñ \"%s\"" #: ../actions/finishopenidlogin.php:82 ../actions/register.php:191 #: actions/finishopenidlogin.php:88 actions/register.php:205 @@ -33,13 +31,13 @@ msgstr "Потік пошуку Ð´Ð»Ñ \"%s\"" msgid "" " except this private data: password, email address, IM address, phone number." msgstr "" -"окрім цих приватних даних: пароль, електронна адреÑа, адреÑа IM, телефонний " +" окрім цих приватних даних: пароль, електронна адреÑа, адреÑа IM, телефонний " "номер." #: ../actions/showstream.php:400 ../lib/stream.php:109 #: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76 msgid " from " -msgstr "" +msgstr " від " #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412 #: actions/twitapistatuses.php:347 @@ -50,7 +48,7 @@ msgstr "%1$s / Оновленні відповіді %2$s" #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s запроÑив(ла) Ð²Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ нього(неї) на %2$s" #: ../actions/invite.php:170 #, php-format @@ -82,6 +80,33 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" +"%1$s запроÑив(ла) Ð²Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð´Ð¾ нього(неї) на %2$s (%3$s).\n" +"\n" +"%2$s це ÑÐµÑ€Ð²Ñ–Ñ Ð¼Ñ–ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ñ–Ð² що дозволÑÑ” вам знаходитиÑÑŒ у курÑÑ– подій, Ñкі " +"відбуваютьÑÑ Ð· вашими знайомими Ñ– тими оÑобами, Ñкими ви цікавитеÑÑŒ.\n" +"\n" +"Також ви маєте можливіÑÑ‚ÑŒ ділитиÑÑŒ новинами про Ñебе, Ñвоїми думками, " +"подіÑми у житті, розміщуючи вÑе це у режимі \"онлайн\" Ð´Ð»Ñ Ñвоїх знайомих та " +"друзів. Рще це чудовий ÑпоÑіб зуÑтріти нових друзів зі Ñпільними " +"інтереÑами.\n" +"\n" +"%1$s говорить:\n" +"\n" +"%4$s\n" +"\n" +"Ви можете переглÑнути профіль %1$s на %2$s тут:\n" +"\n" +"%5$s\n" +"\n" +"Якщо ви виÑвили Ð±Ð°Ð¶Ð°Ð½Ð½Ñ Ñпробувати кориÑтуватиÑÑŒ даним ÑервіÑом, то " +"перейдіть за поÑиланнÑм внизу, аби погодитиÑÑŒ із запрошеннÑм.\n" +"\n" +"%6$s\n" +"\n" +"Якщо ж ні, то проÑто проігноруйте це повідомленнÑ. ДÑкуємо за Ñ€Ð¾Ð·ÑƒÐ¼Ñ–Ð½Ð½Ñ Ñ‚Ð° " +"витрачений чаÑ.\n" +"\n" +"Щиро ваші, %2$s\n" #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241 #, php-format @@ -121,13 +146,13 @@ msgstr "%1$s має ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° %2$s" #: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131 #, php-format msgid "%s (%s)" -msgstr "" +msgstr "%s (%s)" #: ../actions/publicrss.php:62 actions/publicrss.php:48 #: actions/publicrss.php:90 #, php-format msgid "%s Public Stream" -msgstr "%s Спільний потік" +msgstr "%s Загальний потік" #: ../actions/all.php:47 ../actions/allrss.php:60 #: ../actions/twitapistatuses.php:238 ../lib/stream.php:51 actions/all.php:47 @@ -142,7 +167,7 @@ msgstr "%s з друзÑми" #: actions/twitapistatuses.php:33 #, php-format msgid "%s public timeline" -msgstr "%s Ñпільний чаÑовий потік" +msgstr "%s загальна хронологіÑ" #: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 #, php-format @@ -153,7 +178,7 @@ msgstr "%s ÑтатуÑ" #: actions/twitapistatuses.php:199 #, php-format msgid "%s timeline" -msgstr "%s чаÑовий потік" +msgstr "%s хронологіÑ" #: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52 #: actions/twitapistatuses.php:36 @@ -166,8 +191,8 @@ msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" -"(Ви маєте негайно отримати лиÑта електронною поштою, в Ñкому будуть " -"інÑтрукції, Ñк підтвердити вашу електронну адреÑу.)" +"(Ви маєте негайно отримати лиÑта електронною поштою, в Ñкому знаходитимутьÑÑ " +"інÑтрукції щодо Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ñ— електронної адреÑи.)" #: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 #, php-format @@ -175,13 +200,13 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -"**%%site.name%%** це ÑÐµÑ€Ð²Ñ–Ñ Ð¼Ñ–ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ñ–Ð² наданий вам [%%site.broughtby%%](%%" -"site.broughtbyurl%%)." +"**%%site.name%%** це ÑÐµÑ€Ð²Ñ–Ñ Ð¼Ñ–ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ñ–Ð² наданий вам " +"[%%site.broughtby%%](%%site.broughtbyurl%%). " #: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 #, php-format msgid "**%%site.name%%** is a microblogging service. " -msgstr "**%%site.name%%** це ÑÐµÑ€Ð²Ñ–Ñ Ð¼Ñ–ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ñ–Ð²." +msgstr "**%%site.name%%** це ÑÐµÑ€Ð²Ñ–Ñ Ð¼Ñ–ÐºÑ€Ð¾Ð±Ð»Ð¾Ð³Ñ–Ð². " #: ../lib/util.php:274 lib/util.php:290 msgid ". Contributors should be attributed by full name or nickname." @@ -193,12 +218,12 @@ msgstr "" #: actions/finishopenidlogin.php:101 actions/profilesettings.php:100 #: lib/groupeditform.php:139 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 букви нижнього регіÑтра Ñ– цифри, ніÑкої пунктуації або інтервалів" +msgstr "1-64 літери нижнього регіÑтра Ñ– цифри, ніÑкої пунктуації або інтервалів" #: ../actions/register.php:152 actions/register.php:166 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -"1-64 букви нижнього регіÑтра Ñ– цифри, ніÑкої пунктуації або інтервалів. " +"1-64 літери нижнього регіÑтра Ñ– цифри, ніÑкої пунктуації або інтервалів. " "Ðеодмінно." #: ../actions/password.php:42 actions/profilesettings.php:181 @@ -223,7 +248,7 @@ msgid "" "s for sending messages to you." msgstr "" "Код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ² відправлений на адреÑу IM, Ñку ви додали. Ви повинні " -"Ñхвалити %s Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¼ повідомлень." +"затведити %s Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¼ повідомлень." #: ../actions/emailsettings.php:213 actions/emailsettings.php:231 msgid "" @@ -262,7 +287,7 @@ msgstr "" #: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429 #: actions/twitapiusers.php:32 msgid "API method not found!" -msgstr "" +msgstr "API метод не знайдено!" #: ../actions/twitapiaccount.php:57 ../actions/twitapiaccount.php:113 #: ../actions/twitapiaccount.php:119 ../actions/twitapiblocks.php:28 @@ -285,7 +310,7 @@ msgstr "" #: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37 #: actions/twitapistatuses.php:562 msgid "API method under construction." -msgstr "" +msgstr "API метод наразі знаходитьÑÑ Ñƒ розробці." #: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 msgid "About" @@ -314,7 +339,7 @@ msgstr "Додати OpenID" #: ../lib/settingsaction.php:97 lib/settingsaction.php:91 #: lib/accountsettingsaction.php:117 msgid "Add or remove OpenIDs" -msgstr "" +msgstr "Додати або вилучити адреÑи OpenID" #: ../actions/emailsettings.php:38 ../actions/imsettings.php:39 #: ../actions/smssettings.php:39 actions/emailsettings.php:39 @@ -327,6 +352,7 @@ msgstr "ÐдреÑа" #: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176 msgid "Addresses of friends to invite (one per line)" msgstr "" +"ÐдреÑи друзів куди надÑилатимутьÑÑ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ (кожна адреÑа окремим Ñ€Ñдком)" #: ../actions/showstream.php:273 actions/showstream.php:288 #: actions/showstream.php:422 @@ -371,13 +397,15 @@ msgstr "Ðвторизувати підпиÑку" #: ../actions/login.php:104 ../actions/register.php:178 #: actions/register.php:192 msgid "Automatically login in the future; not for shared computers!" -msgstr "Ðвтоматично входити у майбутньому; не Ð´Ð»Ñ " +msgstr "" +"Ðвтоматично входити у майбутньому; не Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿'ютерів загального " +"кориÑтуваннÑ!" #: ../actions/profilesettings.php:65 actions/profilesettings.php:98 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -"Ðвтоматично підпиÑуватиÑÑŒ до тих, хто підпиÑавÑÑ Ð´Ð¾ мене (Ñкщо ви бот, це " +"Ðвтоматично підпиÑуватиÑÑŒ до тих, хто підпиÑавÑÑ Ð´Ð¾ мене (Ñкщо ви бот, то це " "Ñаме Ð´Ð»Ñ Ð²Ð°Ñ)" #: ../actions/avatar.php:32 ../lib/settingsaction.php:90 @@ -415,9 +443,8 @@ msgid "Awaiting confirmation on this phone number." msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð½Ð¾Ð³Ð¾ номера." #: ../lib/util.php:1318 lib/util.php:1452 -#, fuzzy msgid "Before »" -msgstr "Раніше" +msgstr "Ðазад »" #: ../actions/profilesettings.php:49 ../actions/register.php:170 #: actions/profilesettings.php:82 actions/register.php:184 @@ -431,7 +458,7 @@ msgstr "Про Ñебе" #: actions/profilesettings.php:205 actions/register.php:174 #: actions/updateprofile.php:107 msgid "Bio is too long (max 140 chars)." -msgstr "Про Ñебе забагато напиÑано (140 знаків макÑимум)" +msgstr "Ви перевищили ліміт (140 знаків це макÑимум)" #: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69 msgid "Can't delete this notice." @@ -479,7 +506,7 @@ msgstr "Змінити" #: ../lib/settingsaction.php:88 lib/settingsaction.php:88 #: lib/accountsettingsaction.php:114 msgid "Change email handling" -msgstr "" +msgstr "Змінити електронну адреÑу вручну" #: ../actions/password.php:32 actions/profilesettings.php:36 #: actions/passwordsettings.php:58 @@ -488,12 +515,12 @@ msgstr "Змінити пароль" #: ../lib/settingsaction.php:94 lib/accountsettingsaction.php:111 msgid "Change your password" -msgstr "" +msgstr "Змінити ваш пароль" #: ../lib/settingsaction.php:85 lib/settingsaction.php:85 #: lib/accountsettingsaction.php:105 msgid "Change your profile settings" -msgstr "" +msgstr "Змінити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ" #: ../actions/password.php:43 ../actions/recoverpassword.php:181 #: ../actions/register.php:155 ../actions/smssettings.php:65 @@ -552,7 +579,9 @@ msgstr "" "*Додати [адреÑу Jabber/GTalk](%%%%action.imsettings%%%%), так щоб мати змогу " "надÑилати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· Ñлужбу миттєвих повідомлень.\n" "*[Розшукати людей](%%%%action.peoplesearch%%%%), Ñкі мають Ñпільні з вами " -"інтереÑи. \n" +"інтереÑи.\n" +"*Оновити [Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ](%%%%action.profilesettings%%%%) аби інші " +"дізналиÑÑŒ більше про ваÑ.\n" "*Прочитати [додаткову інформацію](%%%%doc.help%%%%), аби переконатиÑÑŒ, що ви " "нічого не пропуÑтили. \n" "\n" @@ -562,7 +591,7 @@ msgstr "" #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97 #: actions/finishopenidlogin.php:119 lib/action.php:330 msgid "Connect" -msgstr "З'єднатиÑÑŒ" +msgstr "З'єднаннÑ" #: ../actions/finishopenidlogin.php:86 actions/finishopenidlogin.php:92 #: actions/finishopenidlogin.php:114 @@ -583,12 +612,12 @@ msgstr "Ðе вдалоÑÑ Ñтворити форму OpenID: %s" #: actions/twitapifriendships.php:48 actions/twitapifriendships.php:64 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ кориÑтувача: %s вже приÑутній у вашому ÑпиÑку." #: ../actions/twitapifriendships.php:53 actions/twitapifriendships.php:53 #: actions/twitapifriendships.php:41 msgid "Could not follow user: User not found." -msgstr "Ðе вдалоÑÑ Ñлідувати за кориÑтувачем: кориÑтувача не знайдено." +msgstr "Ðе вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ кориÑтувача: кориÑтувача не знайдено." #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169 #, php-format @@ -616,7 +645,7 @@ msgstr "Ðевдала підпиÑка." #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105 #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ кориÑтувача з підтвердженною електронною адреÑою." #: ../actions/finishremotesubscribe.php:99 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114 @@ -639,7 +668,7 @@ msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ підпиÑку." #: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98 #: actions/twitapistatuses.php:84 msgid "Couldn't find any statuses." -msgstr "" +msgstr "Жодних ÑтатуÑів не виÑвлено." #: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136 #: actions/remotesubscribe.php:178 @@ -710,7 +739,7 @@ msgstr "Створити новий рахунок" #: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197 #: actions/finishopenidlogin.php:231 msgid "Creating new account for OpenID that already has a user." -msgstr "Створити новий рахунок з OpenID, Ñким ви вже кориÑтуєтеÑÑŒ." +msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ рахунку Ð´Ð»Ñ OpenID, Ñким ви вже кориÑтуєтеÑÑŒ." #: ../actions/imsettings.php:45 actions/imsettings.php:46 #: actions/imsettings.php:100 @@ -734,7 +763,7 @@ msgstr "Поточне" #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91 #, php-format msgid "DB error inserting hashtag: %s" -msgstr "Помилка бази даних при додаванні мітки: %s" +msgstr "Помилка бази даних при додаванні тегу: %s" #: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698 #, php-format @@ -784,7 +813,7 @@ msgstr "Електронна адреÑа, на зразок \"UserName@example. #: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174 msgid "Email addresses" -msgstr "" +msgstr "Електронні адреÑи" #: ../actions/recoverpassword.php:191 actions/recoverpassword.php:197 #: actions/recoverpassword.php:231 @@ -879,7 +908,7 @@ msgstr "ІÑнуюче ім'Ñ" #: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 msgid "FAQ" -msgstr "Пширені запитаннÑ" +msgstr "ЧаПи" #: ../actions/avatar.php:115 actions/profilesettings.php:352 #: actions/avatarsettings.php:397 @@ -902,12 +931,12 @@ msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´ÐµÐ¹ %s" #: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61 #, php-format msgid "Feed for tag %s" -msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¼Ñ–Ñ‚Ð¾Ðº %s" +msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‚ÐµÐ³Ñ–Ð² %s" #: ../lib/searchaction.php:105 lib/searchaction.php:105 #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "Знайти зміÑÑ‚ повідомленнÑ" +msgstr "Знайти за зміÑтом повідомлень" #: ../lib/searchaction.php:101 lib/searchaction.php:101 #: lib/searchgroupnav.php:81 @@ -919,8 +948,8 @@ msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" -"З міркувань безпеки, будь лаÑка введіть ще раз ім'Ñ Ñ‚Ð° пароль, перед тим Ñк " -"змінювати налатуваннÑ." +"З міркувань безпеки, будь лаÑка, введіть ще раз ім'Ñ Ñ‚Ð° пароль, перед тим Ñк " +"змінювати налаштуваннÑ." #: ../actions/profilesettings.php:44 ../actions/register.php:164 #: actions/profilesettings.php:77 actions/register.php:178 @@ -953,14 +982,14 @@ msgstr "Дім" #: actions/profilesettings.php:107 actions/register.php:396 #: lib/groupeditform.php:146 msgid "Homepage" -msgstr "Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка" +msgstr "Веб-Ñторінка" #: ../actions/profilesettings.php:95 ../actions/register.php:76 #: actions/profilesettings.php:210 actions/register.php:83 #: actions/editgroup.php:192 actions/newgroup.php:143 #: actions/profilesettings.php:199 actions/register.php:168 msgid "Homepage is not a valid URL." -msgstr "Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка має недійÑну URL-адреÑу." +msgstr "Веб-Ñторінка має недійÑну URL-адреÑу." #: ../actions/emailsettings.php:91 actions/emailsettings.php:98 #: actions/emailsettings.php:173 @@ -970,7 +999,7 @@ msgstr "Я хочу надÑилати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾ÑŽ." #: ../lib/settingsaction.php:102 lib/settingsaction.php:96 #: lib/connectsettingsaction.php:104 msgid "IM" -msgstr "" +msgstr "ІМ" #: ../actions/imsettings.php:60 actions/imsettings.php:61 #: actions/imsettings.php:118 @@ -997,13 +1026,16 @@ msgid "" "click \"Add\"." msgstr "" "Якщо ви бажаєте додати OpenID до вашого рахунку, введіть адреÑу в поле нижче " -"Ñ– натиÑніть \"Add\"." +"Ñ– натиÑніть \"Додати\"." #: ../actions/recoverpassword.php:137 msgid "" "If you've forgotten or lost your password, you can get a new one sent to the " "email address you have stored in your account." msgstr "" +"У разі, Ñкщо ви забули або загубили Ñвій пароль, ви маєте можливіÑÑ‚ÑŒ " +"отримати новий на ту електронну адреÑу, Ñку було збережено у профілі вашого " +"рахунку." #: ../actions/emailsettings.php:67 ../actions/smssettings.php:76 #: actions/emailsettings.php:68 actions/smssettings.php:76 @@ -1032,7 +1064,7 @@ msgid "" "address registered to your account." msgstr "" "ІнÑтрукції з Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ було надіÑлано на електронну адреÑу, Ñку ви " -"закріпили за Ñвоїм ранком." +"вказали у налаштуваннÑÑ… вашого профілю." #: ../actions/updateprofile.php:114 actions/updateprofile.php:115 #: actions/updateprofile.php:118 @@ -1043,13 +1075,13 @@ msgstr "ÐедійÑна URL-адреÑа аватари '%s'" #: ../actions/invite.php:55 actions/invite.php:62 actions/invite.php:70 #, php-format msgid "Invalid email address: %s" -msgstr "" +msgstr "ÐедійÑна електронна адреÑа: %s" #: ../actions/updateprofile.php:98 actions/updateprofile.php:99 #: actions/updateprofile.php:102 #, php-format msgid "Invalid homepage '%s'" -msgstr "ÐедейÑна Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка '%s'" +msgstr "ÐедійÑна веб-Ñторінка '%s'" #: ../actions/updateprofile.php:82 actions/updateprofile.php:83 #: actions/updateprofile.php:86 @@ -1103,20 +1135,20 @@ msgstr "ÐедійÑне ім'Ñ Ð°Ð±Ð¾ пароль." #: ../actions/invite.php:79 actions/invite.php:86 actions/invite.php:102 msgid "Invitation(s) sent" -msgstr "" +msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñ–Ñлано" #: ../actions/invite.php:97 actions/invite.php:104 actions/invite.php:136 msgid "Invitation(s) sent to the following people:" -msgstr "" +msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¸ надіÑлани наÑтупним оÑобам:" #: ../lib/util.php:306 lib/util.php:322 lib/facebookaction.php:207 #: lib/subgroupnav.php:103 msgid "Invite" -msgstr "" +msgstr "ЗапроÑити" #: ../actions/invite.php:123 actions/invite.php:130 actions/invite.php:104 msgid "Invite new users" -msgstr "" +msgstr "ЗапроÑити нових кориÑтувачів" #: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 #, php-format @@ -1154,6 +1186,7 @@ msgstr "Мова" msgid "Language is too long (max 50 chars)." msgstr "Мова задовга (50 знаків макÑимум)" +# "МіÑцезнаходженнÑ", Ñк на мене забагато літер. "ЛокаціÑ" - не менш вживане в українÑькій мові Ñлово. #: ../actions/profilesettings.php:52 ../actions/register.php:173 #: actions/profilesettings.php:85 actions/register.php:187 #: actions/profilesettings.php:117 actions/register.php:408 @@ -1161,7 +1194,7 @@ msgstr "Мова задовга (50 знаків макÑимум)" #: actions/tagother.php:113 lib/groupeditform.php:156 lib/grouplist.php:126 #: lib/profilelist.php:125 msgid "Location" -msgstr "МіÑцезнаходженнÑ" +msgstr "ЛокаціÑ" #: ../actions/profilesettings.php:104 ../actions/register.php:85 #: ../actions/updateprofile.php:108 actions/profilesettings.php:219 @@ -1170,7 +1203,7 @@ msgstr "МіÑцезнаходженнÑ" #: actions/profilesettings.php:208 actions/register.php:177 #: actions/updateprofile.php:112 msgid "Location is too long (max 255 chars)." -msgstr "МіÑÑ†ÐµÐ·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð¾Ð²Ð³Ðµ (255 знаків макÑимум)" +msgstr "Ð›Ð¾ÐºÐ°Ñ†Ñ–Ñ Ð½Ð°Ð´Ñ‚Ð¾ довга (255 знаків макÑимум)" #: ../actions/login.php:97 ../actions/login.php:106 #: ../actions/openidlogin.php:68 ../lib/util.php:310 actions/login.php:97 @@ -1196,8 +1229,8 @@ msgid "" "%). " msgstr "" "Увійти викриÑтовуючи ім'Ñ Ñ‚Ð° пароль. Ще не маєте імені кориÑтувача? " -"[ЗареєÑтрувати](%%action.register%%) новий акаунт, або Ñпробувати [OpenID](%%" -"action.openidlogin%%)." +"[ЗареєÑтрувати](%%action.register%%) новий акаунт, або Ñпробувати " +"[OpenID](%%action.openidlogin%%). " #: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 msgid "Logout" @@ -1206,7 +1239,7 @@ msgstr "Вийти" #: ../actions/register.php:166 actions/register.php:180 #: actions/register.php:393 msgid "Longer name, preferably your \"real\" name" -msgstr "Довше ім'Ñ, переважно це ваше \"real\" ім'Ñ" +msgstr "Довше ім'Ñ, переважно ваше \"Ñправжнє\" ім'Ñ" #: ../actions/login.php:110 actions/login.php:110 actions/login.php:245 #: lib/facebookaction.php:320 @@ -1227,7 +1260,7 @@ msgstr "Зазначте, Ñк Ñамо ви бажаєте отримувати #: ../actions/showstream.php:300 actions/showstream.php:315 #: actions/showstream.php:480 msgid "Member since" -msgstr "Разом з нами з" +msgstr "З нами від" #: ../actions/userrss.php:70 actions/userrss.php:67 actions/userrss.php:72 #, php-format @@ -1248,7 +1281,7 @@ msgstr "" #: actions/finishopenidlogin.php:85 actions/register.php:202 #: actions/finishopenidlogin.php:107 actions/register.php:429 msgid "My text and files are available under " -msgstr "Мої Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‚Ð° файли доÑтупні під" +msgstr "Мої Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‚Ð° файли доÑтупні під " #: ../actions/emailsettings.php:82 ../actions/smssettings.php:91 #: actions/emailsettings.php:83 actions/smssettings.php:91 @@ -1407,7 +1440,7 @@ msgstr "Ðемає телефонного номера." #: ../actions/finishremotesubscribe.php:72 #: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75 msgid "No profile URL returned by server." -msgstr "Ðемає URL-адреÑи профілю повернітої Ñервером." +msgstr "Ðемає URL-адреÑи профілю, Ñку б було повернуто Ñервером." #: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232 #: actions/recoverpassword.php:266 @@ -1417,7 +1450,7 @@ msgstr "Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ кориÑтувача немає зареєÑтров #: ../actions/userauthorization.php:49 actions/userauthorization.php:55 #: actions/userauthorization.php:57 msgid "No request found!" -msgstr "Ðемає знайденого запиту!" +msgstr "Відповідей на запит немає!" #: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64 #: actions/noticesearch.php:69 actions/peoplesearch.php:69 @@ -1435,12 +1468,12 @@ msgstr "Ðемає розміру." #: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112 #: actions/twitapistatuses.php:446 msgid "No status found with that ID." -msgstr "" +msgstr "Жодних ÑтатуÑів з таким ID." #: ../actions/twitapistatuses.php:555 actions/twitapistatuses.php:478 #: actions/twitapistatuses.php:418 msgid "No status with that ID found." -msgstr "" +msgstr "Ðе знайдено жодних ÑтатуÑів з таким ID." #: ../actions/openidsettings.php:135 actions/openidsettings.php:144 #: actions/openidsettings.php:222 @@ -1499,7 +1532,7 @@ msgstr "Такого кориÑтувача немає." #: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217 #: actions/recoverpassword.php:251 msgid "No user with that email address or username." -msgstr "" +msgstr "КориÑтувача з такою електронною адреÑою або ім'Ñм немає." #: ../lib/gallery.php:80 lib/gallery.php:85 msgid "Nobody to show!" @@ -1513,54 +1546,55 @@ msgstr "Це не код оновленнÑ." #: ../scripts/maildaemon.php:50 scripts/maildaemon.php:50 #: scripts/maildaemon.php:53 msgid "Not a registered user." -msgstr "" +msgstr "Це не зареєÑтрований кориÑтувач." #: ../lib/twitterapi.php:226 ../lib/twitterapi.php:247 #: ../lib/twitterapi.php:332 lib/twitterapi.php:391 lib/twitterapi.php:418 #: lib/twitterapi.php:502 lib/twitterapi.php:448 lib/twitterapi.php:476 #: lib/twitterapi.php:566 msgid "Not a supported data format." -msgstr "" +msgstr "Такий формат даних не підтримуєтьÑÑ." +# "Invalid" та "Not a valid" Ñ ÑƒÐ¼Ð¾Ð²Ð½Ð¾ поÑтавив знак рівнÑÐ½Ð½Ñ Ð¼Ñ–Ð¶ ними, тому перекладаю Ñк "недійÑний", заміÑÑ‚ÑŒ "не дійÑний". Це не помилка. #: ../actions/imsettings.php:167 actions/imsettings.php:175 #: actions/imsettings.php:290 msgid "Not a valid Jabber ID" -msgstr "Це не дійÑний Jabber ID" +msgstr "Це недійÑний Jabber ID" #: ../lib/openid.php:131 lib/openid.php:131 lib/openid.php:140 msgid "Not a valid OpenID." -msgstr "Це не дійÑний OpenID." +msgstr "Це недійÑний OpenID." #: ../actions/emailsettings.php:185 actions/emailsettings.php:203 #: actions/emailsettings.php:315 msgid "Not a valid email address" -msgstr "Це не дійÑна електронна адреÑа" +msgstr "Це недійÑна електронна адреÑа" #: ../actions/register.php:63 actions/register.php:70 actions/register.php:152 msgid "Not a valid email address." -msgstr "Це не дійÑна електронна адреÑа." +msgstr "Це недійÑна електронна адреÑа." #: ../actions/profilesettings.php:91 ../actions/register.php:71 #: actions/profilesettings.php:206 actions/register.php:78 #: actions/editgroup.php:186 actions/newgroup.php:137 #: actions/profilesettings.php:195 actions/register.php:161 msgid "Not a valid nickname." -msgstr "Це не дійÑне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача." +msgstr "Це недійÑне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача." #: ../actions/remotesubscribe.php:120 actions/remotesubscribe.php:129 #: actions/remotesubscribe.php:159 msgid "Not a valid profile URL (incorrect services)." -msgstr "Це не дійÑна URL-адреÑа профілю (некоректні поÑлуги)." +msgstr "Це недійÑна URL-адреÑа профілю (ÑÐµÑ€Ð²Ñ–Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ невірно)." #: ../actions/remotesubscribe.php:113 actions/remotesubscribe.php:122 #: actions/remotesubscribe.php:152 msgid "Not a valid profile URL (no XRDS defined)." -msgstr "Це не дійÑна URL-адреÑа профілю (немає певного XRDS)." +msgstr "Це недійÑна URL-адреÑа профілю (немає певного XRDS)." #: ../actions/remotesubscribe.php:104 actions/remotesubscribe.php:113 #: actions/remotesubscribe.php:143 msgid "Not a valid profile URL (no YADIS document)." -msgstr "Це не дійÑна URL-адреÑа профілю (немає документа YADIS)." +msgstr "Це недійÑна URL-адреÑа профілю (немає документа YADIS)." #: ../actions/avatar.php:95 actions/profilesettings.php:332 #: lib/imagefile.php:87 @@ -1580,7 +1614,7 @@ msgstr "Ð¦Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´ÑŒ не очікуєтьÑÑ!" #: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361 #: actions/twitapistatuses.php:309 msgid "Not found" -msgstr "" +msgstr "Ðе знайдено" #: ../actions/finishaddopenid.php:29 ../actions/logout.php:33 #: ../actions/newnotice.php:29 ../actions/subscribe.php:28 @@ -1694,7 +1728,7 @@ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ OpenID" #: ../actions/invite.php:135 actions/invite.php:143 actions/invite.php:180 msgid "Optionally add a personal message to the invitation." -msgstr "" +msgstr "Можна додати перÑональне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ (опціонально)." #: ../actions/avatar.php:84 actions/profilesettings.php:321 #: lib/imagefile.php:75 @@ -1718,7 +1752,7 @@ msgstr "Пароль та Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ Ñпівпадають #: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297 #: actions/recoverpassword.php:331 msgid "Password must be 6 chars or more." -msgstr "Пароль міÑтить 6 або більше знаків." +msgstr "Пароль має ÑкладатиÑÑŒ з 6-ти або більше знаків." #: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263 #: actions/recoverpassword.php:267 actions/recoverpassword.php:269 @@ -1759,7 +1793,7 @@ msgstr "ОÑобиÑте" #: ../actions/invite.php:133 actions/invite.php:141 actions/invite.php:178 msgid "Personal message" -msgstr "" +msgstr "ОÑобиÑÑ‚Ñ– повідомленнÑ" #: ../actions/smssettings.php:69 actions/smssettings.php:69 msgid "Phone number, no punctuation or spaces, with area code" @@ -1773,12 +1807,13 @@ msgid "" msgstr "" "Будь лаÑка, перевірте вÑÑ– деталі, щоб упевнитиÑÑŒ, що ви дійÑно бажаєте " "підпиÑатиÑÑŒ на Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¾Ð³Ð¾ кориÑтувача. Якщо ви не збиралиÑÑŒ " -"підпиÑуватиÑÑŒ ні на чиї повідомленнÑ, проÑто натиÑніть \"Cancel\"." +"підпиÑуватиÑÑŒ ні на чиї повідомленнÑ, проÑто натиÑніть \"Відмінити\"." #: ../actions/imsettings.php:73 actions/imsettings.php:74 #: actions/imsettings.php:142 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "Друкувати повідомленнÑ, коли мій мій ÑÑ‚Ð°Ñ‚ÑƒÑ Jabber/GTalk змінюєтьÑÑ." +msgstr "" +"ÐадÑилати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð° Ñайт, коли мій ÑÑ‚Ð°Ñ‚ÑƒÑ Jabber/GTalk змінюєтьÑÑ." #: ../actions/emailsettings.php:85 ../actions/imsettings.php:67 #: ../actions/smssettings.php:94 actions/emailsettings.php:86 @@ -1787,7 +1822,7 @@ msgstr "Друкувати повідомленнÑ, коли мій мій ÑÑ‚ #: actions/imsettings.php:133 actions/smssettings.php:157 #: actions/twittersettings.php:134 msgid "Preferences" -msgstr "Переваги" +msgstr "Преференції" #: ../actions/emailsettings.php:162 ../actions/imsettings.php:144 #: ../actions/smssettings.php:163 actions/emailsettings.php:180 @@ -1795,7 +1830,7 @@ msgstr "Переваги" #: actions/emailsettings.php:286 actions/imsettings.php:258 #: actions/othersettings.php:168 actions/smssettings.php:272 msgid "Preferences saved." -msgstr "Переваги збережно." +msgstr "Преференції збережно." #: ../actions/profilesettings.php:57 actions/profilesettings.php:90 #: actions/profilesettings.php:129 @@ -1835,27 +1870,27 @@ msgstr "Ðевідомий профіль" #: ../actions/public.php:54 actions/public.php:54 actions/public.php:124 msgid "Public Stream Feed" -msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ñпільного потоку" +msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ потоку" #: ../actions/public.php:33 actions/public.php:33 actions/public.php:109 #: lib/publicgroupnav.php:77 msgid "Public timeline" -msgstr "Спільний чаÑовий потік" +msgstr "Загальна хронологіÑ" #: ../actions/imsettings.php:79 actions/imsettings.php:80 #: actions/imsettings.php:153 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "Позначати MicroID мого рахунку Jabber/GTalk" +msgstr "Позначати міткою MicroID мою адреÑу Jabber/GTalk." #: ../actions/emailsettings.php:94 actions/emailsettings.php:101 #: actions/emailsettings.php:178 msgid "Publish a MicroID for my email address." -msgstr "Позначати MicroID моєї електронної адреÑи." +msgstr "Позначати міткою MicroID мою електронну адреÑу." #: ../actions/tag.php:75 ../actions/tag.php:76 actions/tag.php:75 #: actions/tag.php:76 msgid "Recent Tags" -msgstr "Ðедавні мітки" +msgstr "Ðові теги" #: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171 #: actions/recoverpassword.php:190 @@ -1870,14 +1905,14 @@ msgstr "Відновити пароль" #: ../actions/recoverpassword.php:67 actions/recoverpassword.php:67 #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "Код Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð³Ð¾ кориÑтувача." +msgstr "Код Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð³Ð¾ кориÑтувача." #: ../actions/register.php:142 ../actions/register.php:193 ../lib/util.php:312 #: actions/register.php:152 actions/register.php:207 lib/util.php:328 #: actions/register.php:69 actions/register.php:436 lib/action.php:338 #: lib/facebookaction.php:277 lib/logingroupnav.php:78 msgid "Register" -msgstr "ЗареєÑтруватиÑÑŒ" +msgstr "РеєÑтраціÑ" #: ../actions/register.php:28 actions/register.php:28 #: actions/finishopenidlogin.php:196 actions/register.php:90 @@ -1903,7 +1938,7 @@ msgstr "Пам'Ñтати мене" #: ../actions/updateprofile.php:70 actions/updateprofile.php:71 #: actions/updateprofile.php:74 msgid "Remote profile with no matching profile" -msgstr "Віддалений профіль без відповідного профілю" +msgstr "Віддалений профіль не Ñпівпадає з цим профілем" #: ../actions/remotesubscribe.php:65 actions/remotesubscribe.php:73 #: actions/remotesubscribe.php:88 @@ -1933,8 +1968,8 @@ msgid "" "Removing your only OpenID would make it impossible to log in! If you need to " "remove it, add another OpenID first." msgstr "" -"Ви входите лише з OpenID, Ñкщо ви його видалите, то не зможете увійти знову! " -"Перед тим Ñк видалити його, з початку додайте інший." +"Ви входите лише з одним єдиним OpenID, Ñкщо ви його видалите, то не зможете " +"увійти знову! Перед тим Ñк видалити його, з початку додайте інший." #: ../lib/stream.php:55 lib/personal.php:55 lib/personalgroupnav.php:103 msgid "Replies" @@ -1946,7 +1981,7 @@ msgstr "Відповіді" #: lib/personalgroupnav.php:104 #, php-format msgid "Replies to %s" -msgstr "Відповіді %s" +msgstr "Відповіді до %s" #: ../actions/recoverpassword.php:183 actions/recoverpassword.php:189 #: actions/recoverpassword.php:223 @@ -1961,7 +1996,7 @@ msgstr "Скинути пароль" #: ../lib/settingsaction.php:99 lib/settingsaction.php:93 #: actions/subscriptions.php:123 lib/connectsettingsaction.php:107 msgid "SMS" -msgstr "" +msgstr "СМС" #: ../actions/smssettings.php:67 actions/smssettings.php:67 #: actions/smssettings.php:126 @@ -1971,21 +2006,21 @@ msgstr "Телефонний номер" #: ../actions/smssettings.php:33 actions/smssettings.php:33 #: actions/smssettings.php:58 msgid "SMS Settings" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ SMS" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¡ÐœÐ¡" #: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 msgid "SMS confirmation" -msgstr "ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ SMS" +msgstr "ÐŸÑ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¡ÐœÐ¡" #: ../actions/recoverpassword.php:182 actions/recoverpassword.php:188 #: actions/recoverpassword.php:222 msgid "Same as password above" -msgstr "Такий же, Ñк пароль вище" +msgstr "Такий Ñамо, Ñк Ñ– пароль вище" #: ../actions/register.php:156 actions/register.php:170 #: actions/register.php:377 msgid "Same as password above. Required." -msgstr "Такий же, Ñк пароль вище. Ðеодмінно." +msgstr "Такий Ñамо, Ñк Ñ– пароль вище. Ðеодмінно." #: ../actions/emailsettings.php:97 ../actions/imsettings.php:81 #: ../actions/profilesettings.php:67 ../actions/smssettings.php:100 @@ -2026,7 +2061,7 @@ msgid "" "Search for people on %%site.name%% by their name, location, or interests. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -"Пошук людей на %%site.name%% за Ñ—Ñ… ім'Ñм, міÑцем Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ інтереÑами. " +"Пошук людей на %%site.name%% за Ñ—Ñ… ім'Ñм, локацією або інтереÑами. " "Відокремлюйте пошукові умови інтервалами; вони повинні ÑкладатиÑÑŒ з 3 знаків " "або більше." @@ -2035,17 +2070,18 @@ msgstr "" msgid "Select a carrier" msgstr "Оберіть оператора" +# Слово "ÐадіÑлати" у вузьку рамку веб-форми Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ на Ñайті не втиÑкаєтьÑÑ. Гадаю "Так!" цілком прийнÑтний замінник. #: ../actions/invite.php:137 ../lib/util.php:1172 actions/invite.php:145 #: lib/util.php:1306 lib/util.php:1731 actions/invite.php:182 #: lib/messageform.php:167 lib/noticeform.php:177 msgid "Send" -msgstr "ÐадіÑлати" +msgstr "Так!" #: ../actions/emailsettings.php:73 ../actions/smssettings.php:82 #: actions/emailsettings.php:74 actions/smssettings.php:82 #: actions/emailsettings.php:132 actions/smssettings.php:145 msgid "Send email to this address to post new notices." -msgstr "ÐадÑилайте лиÑти на цю адреÑу, щоб друкувати нові повідомленнÑ." +msgstr "ÐадÑилайте лиÑти на цю адреÑу Ñ– Ñ—Ñ… буде опубліковано на Ñайті." #: ../actions/emailsettings.php:88 actions/emailsettings.php:89 #: actions/emailsettings.php:152 @@ -2062,7 +2098,7 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" -"ПовідомлÑти мене за допомогою SMS; Я розімію, що, можливо, понеÑу надмірні " +"ПовідомлÑти мене за допомогою СМС; Я розімію, що, можливо, понеÑу надмірні " "витрати від мого мобільного оператора." #: ../actions/imsettings.php:76 actions/imsettings.php:77 @@ -2082,7 +2118,7 @@ msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾." #: ../actions/tag.php:60 actions/tag.php:60 msgid "Showing most popular tags from the last week" -msgstr "ПредÑтавлено найбільш популÑрні мітки за минулий тиждень" +msgstr "ПредÑтавлено найбільш популÑрні теги за минулий тиждень" #: ../actions/finishaddopenid.php:66 actions/finishaddopenid.php:66 #: actions/finishaddopenid.php:114 @@ -2093,17 +2129,18 @@ msgstr "ХтоÑÑŒ вже кориÑтуєтьÑÑ Ñ†Ð¸Ð¼ OpenID." #: actions/finishopenidlogin.php:47 actions/openidsettings.php:135 #: actions/finishopenidlogin.php:52 actions/openidsettings.php:202 msgid "Something weird happened." -msgstr "СталоÑÑ Ñ‰Ð¾ÑÑŒ погане." +msgstr "СталоÑÑ Ñ‰Ð¾ÑÑŒ дивне." #: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58 #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." msgstr "" +"Вибачте, але не затверджено жодної електронної адреÑи Ð´Ð»Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ñ— пошти." #: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54 #: scripts/maildaemon.php:57 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Вибачте, але це не Ñ” вашою електронною адреÑою Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ñ— пошти." #: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 msgid "Source" @@ -2126,7 +2163,7 @@ msgstr "Збережений OpenID не знайдено." #: actions/remotesubscribe.php:113 actions/showstream.php:376 #: lib/subscribeform.php:139 msgid "Subscribe" -msgstr "ПідпиÑки" +msgstr "ПідпиÑатиÑÑŒ" #: ../actions/showstream.php:313 ../actions/subscribers.php:27 #: actions/showstream.php:328 actions/subscribers.php:27 @@ -2163,7 +2200,7 @@ msgstr "СиÑтема відповіла помилкою при заванта #: actions/tagother.php:147 actions/tagother.php:207 lib/profilelist.php:162 #: lib/profilelist.php:164 msgid "Tags" -msgstr "Мітки" +msgstr "Теги" #: ../lib/searchaction.php:104 lib/searchaction.php:104 msgid "Text" @@ -2172,7 +2209,7 @@ msgstr "ТекÑÑ‚" #: ../actions/noticesearch.php:34 actions/noticesearch.php:34 #: actions/noticesearch.php:67 msgid "Text search" -msgstr "Пошук теÑкту" +msgstr "Пошук текÑту" #: ../actions/openidsettings.php:140 actions/openidsettings.php:149 #: actions/openidsettings.php:227 @@ -2196,7 +2233,7 @@ msgstr "Ð¦Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð° адреÑа належить іншому кР#: ../actions/avatar.php:80 actions/profilesettings.php:317 #: lib/imagefile.php:71 msgid "That file is too big." -msgstr "Цей файл завеликий." +msgstr "Цей файл надто великий." #: ../actions/imsettings.php:170 actions/imsettings.php:178 #: actions/imsettings.php:293 @@ -2248,12 +2285,12 @@ msgstr "Цей телефонний номер належить іншому кР#: actions/newnotice.php:49 actions/twitapistatuses.php:330 #: actions/facebookhome.php:243 actions/twitapistatuses.php:276 msgid "That's too long. Max notice size is 140 chars." -msgstr "Задовге. МакÑимальний розмір Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ - 140 знаків." +msgstr "Ðадто довго. МакÑимальний розмір Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ 140 знаків." #: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72 #: actions/twitapiaccount.php:62 msgid "That's too long. Max notice size is 255 chars." -msgstr "" +msgstr "Ðадто довго. МакÑимальний розмір Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ 255 знаків." #: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92 #, php-format @@ -2284,7 +2321,7 @@ msgid "" "with the site's instructions for details on how to fully reject the " "subscription." msgstr "" -"ПідпиÑку було Ñкинуно, але URL-адреÑа у відповідь не передавалаÑÑ. ЗвіртеÑÑŒ " +"ПідпиÑку було Ñкинуто, але URL-адреÑа у відповідь не передавалаÑÑ. ЗвіртеÑÑŒ " "з інÑтрукціÑми на Ñайті Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆ конкретної інформації про те, Ñк Ñкинути " "підпиÑку." @@ -2309,20 +2346,20 @@ msgstr "Тут предÑтавлені Ñ‚Ñ–, за чиїми повідомле #: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128 msgid "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr "Ці люди вже Ñ” кориÑтувачами Ñ– Ð²Ð°Ñ Ð±ÑƒÐ»Ð¾ автоматично підпиÑано до них:" #: ../actions/recoverpassword.php:88 msgid "This confirmation code is too old. Please start again." -msgstr "Цей код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ñтарий. Будь лаÑка, розпочніть з початку." +msgstr "Цей код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ñтарілий. Будь лаÑка, розпочніть Ñпочатку." #: ../lib/openid.php:195 msgid "" "This form should automatically submit itself. If not, click the submit " "button to go to your OpenID provider." msgstr "" -"Ð¦Ñ Ñ„Ð¾Ñ€Ð¼Ð° повинна автоматично Ñебе предÑтавити. Якщо цього не ÑталоÑÑ, " -"натиÑніть на кнопку предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ– ви будете перенаправлені до вашого " -"OpenID провайдера." +"Ð¦Ñ Ñ„Ð¾Ñ€Ð¼Ð° повинна автоматично репрезентувати Ñебе ÑиÑтемі. Якщо цього не " +"ÑталоÑÑ, натиÑніть на кнопку предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ– ви будете перенаправлені до " +"вашого OpenID провайдера." #: ../actions/finishopenidlogin.php:56 actions/finishopenidlogin.php:61 #: actions/finishopenidlogin.php:67 @@ -2332,16 +2369,16 @@ msgid "" "to a local account. You can either create a new account, or connect with " "your existing account, if you have one." msgstr "" -"Ви вперше увійшли до %s, так що ми повинні приєднати ваш OpenID до " -"локального рахунку. Ви можете також Ñтворити новий рахунок, або приєднати " -"OpenID до вашого вже Ñ–Ñнуючого рахунку, Ñкщо ви його маєте." +"Ви вперше увійшли до %s Ñ– ми повинні приєднати ваш OpenID до локального " +"рахунку. Ви можете також Ñтворити новий рахунок, або приєднати OpenID до " +"вашого вже Ñ–Ñнуючого рахунку, Ñкщо ви його маєте." #: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586 #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108 #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Цей метод потребує або ÐÐПИСÐТИ, або ВИДÐЛИТИ." #: ../actions/twitapiaccount.php:65 ../actions/twitapifriendships.php:44 #: ../actions/twitapistatuses.php:381 actions/twitapiaccount.php:63 @@ -2350,11 +2387,11 @@ msgstr "" #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32 #: actions/twitapistatuses.php:244 msgid "This method requires a POST." -msgstr "" +msgstr "Цей метод потребує ÐÐПИСÐТИ." #: ../lib/util.php:164 lib/util.php:246 msgid "This page is not available in a media type you accept" -msgstr "Ð¦Ñ Ñторінка не доÑтупна в медіа-типі, Ñкий ви приймаєте" +msgstr "Ð¦Ñ Ñторінка не доÑтупна Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ типу медіа, з Ñким ви погодилиÑÑŒ" #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:138 @@ -2373,9 +2410,10 @@ msgid "" "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" -"Щоб підпиÑатиÑÑŒ, ви можете [увійти](%%action.login%%), або [зареєÑтрувати](%%" -"action.register%%) новий рахунок. Якщо ви вже маєте рахунок на [ÑуміÑному " -"Ñайті](%%doc.openmublog%%), введіть URL-адреÑу вашого профілю." +"Щоб підпиÑатиÑÑŒ, ви можете [увійти](%%action.login%%), або " +"[зареєÑтрувати](%%action.register%%) новий рахунок. Якщо ви вже маєте " +"рахунок на [ÑуміÑному Ñайті](%%doc.openmublog%%), введіть URL-адреÑу " +"вашого профілю нижче." #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167 #: actions/twitapifriendships.php:132 @@ -2386,12 +2424,12 @@ msgstr "Два ID або імені_у_мережі повинні підтриР#: actions/profilesettings.php:81 actions/register.php:183 #: actions/profilesettings.php:109 msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL-адреÑа вашої домашньої Ñторінки, блогу, " +msgstr "URL-адреÑа вашої веб-Ñторінки, блогу, або профілю на іншому Ñайті" #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83 #: actions/remotesubscribe.php:110 msgid "URL of your profile on another compatible microblogging service" -msgstr "URL-адреÑа вашого профілю на іншому ÑуміÑному Ñайті" +msgstr "URL-адреÑа вашого профілю на іншому ÑуміÑному ÑервіÑÑ–" #: ../actions/emailsettings.php:130 ../actions/imsettings.php:110 #: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135 @@ -2411,7 +2449,7 @@ msgstr "ÐеÑподіване ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ." #: ../index.php:57 index.php:57 actions/recoverpassword.php:202 msgid "Unknown action" -msgstr "" +msgstr "Ð”Ñ–Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð°" #: ../actions/finishremotesubscribe.php:58 #: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61 @@ -2424,7 +2462,7 @@ msgid "" "contributors and available under the " msgstr "" "Якщо не зазначено інше, авторÑьке право на вміÑÑ‚ цього Ñайту належить " -"контрибуторам Ñ– доÑтупний під" +"контрибуторам Ñ– доÑтупне під " #: ../actions/confirmaddress.php:48 actions/confirmaddress.php:48 #: actions/confirmaddress.php:90 @@ -2451,12 +2489,12 @@ msgstr "Формат Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ підтримуєтьÑÑ." #: ../lib/settingsaction.php:100 lib/settingsaction.php:94 #: lib/connectsettingsaction.php:108 msgid "Updates by SMS" -msgstr "" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· SMS" #: ../lib/settingsaction.php:103 lib/settingsaction.php:97 #: lib/connectsettingsaction.php:105 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð° допомогою Ñлужби миттєвих повідомлень (ІМ)" #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158 #: actions/twitapistatuses.php:129 @@ -2482,26 +2520,27 @@ msgid "" "site license, also. Use a picture that belongs to you and that you want to " "share." msgstr "" -"Завантажити нову \"avatar\" (Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача) можна тут. Ви не " -"зможете відредагувати Ñвою аватару піÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ, так що з початку " -"переконайтеÑÑ, що вона має більш-менш квадратну форму. Ваше Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ " +"Завантажити нову \"аватару\" (Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача) можна тут. Ви не зможете " +"відредагувати Ñвою аватару піÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ, так що Ñпочатку " +"переконайтеÑÑŒ, що вона має більш-менш квадратну форму. Ваше Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ " "зберігатиметьÑÑ Ð¿Ñ–Ð´ ліцензією Ñайту, також. ВикориÑтовуйте зображеннÑ, Ñкі " "належать вам, Ñ– Ñкі ви можете вільно демонÑтрувати." #: ../lib/settingsaction.php:91 msgid "Upload a new profile image" -msgstr "" +msgstr "Завантажити нове Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: ../actions/invite.php:114 actions/invite.php:121 actions/invite.php:154 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"СкориÑтуйтеÑÑŒ ціїє формою аби запроÑити ваших друзів та колег до нашого " +"ÑервіÑу." #: ../actions/register.php:159 ../actions/register.php:162 #: actions/register.php:173 actions/register.php:176 msgid "Used only for updates, announcements, and password recovery" -msgstr "" -"ВикориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ, оголошень та переуÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ" +msgstr "ВикориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ, оголошень та Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ" #: ../actions/finishremotesubscribe.php:86 #: actions/finishremotesubscribe.php:88 actions/finishremotesubscribe.php:94 @@ -2533,7 +2572,7 @@ msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: ../actions/twitapiusers.php:75 actions/twitapiusers.php:80 msgid "User not found." -msgstr "" +msgstr "КориÑтувача не знайдено." #: ../actions/profilesettings.php:63 actions/profilesettings.php:96 #: actions/profilesettings.php:139 @@ -2543,13 +2582,13 @@ msgstr "За Ñким чаÑовим поÑÑом ви живете?" #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141 #, php-format msgid "What's up, %s?" -msgstr "Як ÑÑ Ð¼Ð°Ñ”Ñˆ, %s?" +msgstr "Що нового, %s?" #: ../actions/profilesettings.php:54 ../actions/register.php:175 #: actions/profilesettings.php:87 actions/register.php:189 #: actions/profilesettings.php:119 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "Де ви живете, на зразок \"City, State (or Region), Country\"" +msgstr "Де ви живете, на зразок \"МіÑто, облаÑÑ‚ÑŒ (регіон), країна\"" #: ../actions/updateprofile.php:128 actions/updateprofile.php:129 #: actions/updateprofile.php:132 @@ -2580,8 +2619,8 @@ msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" -"Ви видалÑєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð°Ð²Ð¶Ð´Ð¸. Якщо ви так зробите, це не матиме " -"зворотньої дії." +"Ви видалÑєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð°Ð²Ð¶Ð´Ð¸. Якщо ви це зробите, то пам'Ñтайте, що " +"Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð´Ñ–Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°." #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31 #: actions/recoverpassword.php:36 @@ -2590,7 +2629,7 @@ msgstr "Ви вже в ÑиÑтемі!" #: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "Ви вже підпиÑані до цих кориÑтувачів:" #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128 #: actions/twitapifriendships.php:105 @@ -2609,14 +2648,15 @@ msgstr "Ви можете Ñтворити новий рахунок, щоб пР#: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "Ви можете отримувати SMS через електронну пошту від %%site.name%%." +msgstr "Ви можете отримувати СМС через електронну пошту від %%site.name%%." #: ../actions/openidsettings.php:86 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." msgstr "" -"Ви можете видалити OpenID із Ñвого рахунку, Ñкщо натиÑнете кнопку \"Remove\"." +"Ви можете видалити OpenID із Ñвого рахунку, Ñкщо натиÑнете кнопку " +"\"Видалити\"." #: ../actions/imsettings.php:28 actions/imsettings.php:28 #, php-format @@ -2624,8 +2664,9 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"Ви можете надÑилати на отримувати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· Jabber/GTalk [Ñлужбу " -"миттевих повідомлень](%%doc.im%%). Вкажить Ñвою адреÑу Ñ– налаштуйте це нижче." +"Ви можете надÑилати та отримувати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· Jabber/GTalk [Ñлужбу " +"миттєвих повідомлень](%%doc.im%%). Вкажить Ñвою адреÑу Ñ– налаштуйте опції " +"нижче." #: ../actions/profilesettings.php:27 msgid "" @@ -2676,22 +2717,24 @@ msgstr "" #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537 #: actions/twitapistatuses.php:463 msgid "You may not delete another user's status." -msgstr "" +msgstr "Ви не можете видалити ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ–Ð½ÑˆÐ¾Ð³Ð¾ кориÑтувача." #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "" +msgstr "Ви маєте Ñпочатку увійти, аби мати змогу запроÑити когоÑÑŒ до %s" #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Ð’Ð°Ñ Ð±ÑƒÐ´Ðµ поінформовано, коли запрошені вами оÑоби погодÑÑ‚ÑŒÑÑ Ð· запрошеннÑми " +"Ñ– зареєÑтруютьÑÑ Ð½Ð° Ñайті. ДÑкуємо, що ÑприÑєте формуванню Ñпільноти!" #: ../actions/recoverpassword.php:149 msgid "You've been identified. Enter a new password below. " -msgstr "Ð’Ð°Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ¾Ð²Ð°Ð½Ð¾. Введіть новий пароль нижче." +msgstr "Ð’Ð°Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ¾Ð²Ð°Ð½Ð¾. Введіть новий пароль нижче. " #: ../actions/openidlogin.php:67 actions/openidlogin.php:76 #: actions/openidlogin.php:104 @@ -2709,12 +2752,12 @@ msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" -"[OpenID](%%doc.openid%%) дає вам можливіÑÑ‚ÑŒ реєÑтруватиÑÑ Ð½Ð° багатьох " -"Ñайтах, кориÑтуючиÑÑŒ єдиним рахунком. Керувати вашими OpenID можна звідÑи." +"[OpenID](%%doc.openid%%) дає вам можливіÑÑ‚ÑŒ реєÑтруватиÑÑ Ð½Ð° багатьох Ñайтах " +" кориÑтуючиÑÑŒ єдиним рахунком. Керувати вашими OpenID можна звідÑи." #: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 msgid "a few seconds ago" -msgstr "кілька Ñекунд тому" +msgstr "мить тому" #: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 #, php-format @@ -2776,7 +2819,7 @@ msgstr "відповіÑти" #: ../actions/password.php:44 actions/profilesettings.php:183 #: actions/passwordsettings.php:106 msgid "same as password above" -msgstr "такий же, Ñк пароль вище" +msgstr "такий Ñамо, Ñк Ñ– пароль вище" #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678 #: actions/twitapistatuses.php:555 @@ -2784,7 +2827,6 @@ msgid "unsupported file type" msgstr "тип файлу не підтримуєтьÑÑ" #: ../lib/util.php:1309 lib/util.php:1443 -#, fuzzy msgid "« After" msgstr "« Вперед" @@ -2803,66 +2845,69 @@ msgstr "« Вперед" #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43 msgid "There was a problem with your session token. Try again, please." msgstr "" +"Виникли певні проблеми з токеном поточної ÑеÑÑ–Ñ—. Спробуйте знов, будь лаÑка." #: actions/disfavor.php:55 actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ Ñ” обраним!" #: actions/disfavor.php:63 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Ðе можна видалити зі ÑпиÑку обраних." #: actions/disfavor.php:72 lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "Обрати" #: actions/emailsettings.php:92 msgid "Send me email when someone adds my notice as a favorite." msgstr "" +"ÐадÑилати мені лиÑта, коли хтоÑÑŒ додає моє Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ ÑпиÑку обраних." #: actions/emailsettings.php:95 actions/emailsettings.php:163 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "ÐадÑилати мені лиÑта, коли хтоÑÑŒ шле приватне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¼ÐµÐ½Ðµ." #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81 #: actions/twitapifavorites.php:118 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ Ñ” обраним!" #: actions/favor.php:60 actions/twitapifavorites.php:151 #: classes/Command.php:132 actions/favor.php:86 #: actions/twitapifavorites.php:125 classes/Command.php:152 msgid "Could not create favorite." -msgstr "" +msgstr "Ðе можна позначити Ñк обране." #: actions/favor.php:70 msgid "Disfavor" -msgstr "" +msgstr "Ðе обране" #: actions/favoritesrss.php:60 actions/showfavorites.php:47 #: actions/favoritesrss.php:100 actions/showfavorites.php:77 #, php-format msgid "%s favorite notices" -msgstr "" +msgstr "Обрані Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ %s" #: actions/favoritesrss.php:64 actions/favoritesrss.php:104 #, php-format msgid "Feed of favorite notices of %s" -msgstr "" +msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… повідомлень від %s" #: actions/inbox.php:28 actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "Вхідні Ð´Ð»Ñ %s - Ñторінка %d" #: actions/inbox.php:30 actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Вхідні Ð´Ð»Ñ %s" #: actions/inbox.php:53 actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." msgstr "" +"Це ваші вхідні повідомленнÑ, тут міÑÑ‚ÑÑ‚ÑŒÑÑ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ–Ñлані приватно." #: actions/invite.php:178 actions/invite.php:213 #, php-format @@ -2870,34 +2915,36 @@ msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" "\n" msgstr "" +"%1$s запроÑив(ла) Ð²Ð°Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑŒ до %2$s (%3$s).\n" +"\n" #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108 #: actions/register.php:416 msgid "Automatically login in the future; " -msgstr "" +msgstr "Ðвтоматично входити у майбутньому; " #: actions/login.php:122 actions/login.php:264 msgid "For security reasons, please re-enter your " -msgstr "" +msgstr "З міркувань безпеки, будь лаÑка, введіть ще раз Ñвій " #: actions/login.php:126 actions/login.php:268 msgid "Login with your username and password. " -msgstr "" +msgstr "Увійти з вашим ім'Ñм та паролем. " #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130 #: actions/twitapidirect_messages.php:141 msgid "That's too long. Max message size is 140 chars." -msgstr "" +msgstr "Ðадто довго. МакÑимальний розмір 140 знаків." #: actions/newmessage.php:65 actions/newmessage.php:128 msgid "No recipient specified." -msgstr "" +msgstr "Жодного отримувача не визначено." #: actions/newmessage.php:68 actions/newmessage.php:113 #: classes/Command.php:206 actions/newmessage.php:131 #: actions/newmessage.php:168 classes/Command.php:237 msgid "You can't send a message to this user." -msgstr "" +msgstr "Ви не можете надіÑлати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð¼Ñƒ кориÑтувачеві." #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146 #: classes/Command.php:209 actions/twitapidirect_messages.php:158 @@ -2905,60 +2952,64 @@ msgstr "" msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" +"Ðе надÑилайте повідомлень Ñамому Ñобі; краще поговоріть з Ñобою тихенько " +"вголоÑ." #: actions/newmessage.php:108 actions/microsummary.php:62 #: actions/newmessage.php:163 msgid "No such user" -msgstr "" +msgstr "Ðемає такого кориÑтувача" #: actions/newmessage.php:117 actions/newmessage.php:67 msgid "New message" -msgstr "" +msgstr "Ðове повідомленнÑ" #: actions/noticesearch.php:95 actions/noticesearch.php:146 msgid "Notice without matching profile" -msgstr "" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÐµÐ· відповідного профілю" #: actions/openidsettings.php:28 actions/openidsettings.php:70 #, php-format msgid "[OpenID](%%doc.openid%%) lets you log into many sites " -msgstr "" +msgstr "[OpenID](%%doc.openid%%) дозволÑÑ” вам входити до багатьох Ñайтів " #: actions/openidsettings.php:46 actions/openidsettings.php:96 msgid "If you want to add an OpenID to your account, " -msgstr "" +msgstr "Якщо бажаєте додати OpenID до вашого рахунку, " #: actions/openidsettings.php:74 msgid "Removing your only OpenID would make it impossible to log in! " -msgstr "" +msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ єдиного OpenID унеможливить вхід наÑтупного разу! " #: actions/openidsettings.php:87 actions/openidsettings.php:143 msgid "You can remove an OpenID from your account " -msgstr "" +msgstr "Ви можете видалити OpenID з вашого рахунку " #: actions/outbox.php:28 actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "Вихідні Ð´Ð»Ñ %s - Ñторінка %d" #: actions/outbox.php:30 actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Вихідні Ð´Ð»Ñ %s" #: actions/outbox.php:53 actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" +"Це ваші вихідні повідомленнÑ, тут міÑÑ‚ÑÑ‚ÑŒÑÑ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ, Ñкі ви надіÑлали " +"приватно." #: actions/peoplesearch.php:28 actions/peoplesearch.php:52 #, php-format msgid "" "Search for people on %%site.name%% by their name, location, or interests. " -msgstr "" +msgstr "Пошук людей на %%site.name%% за ім'Ñм, локацією або інтереÑами. " #: actions/profilesettings.php:27 actions/profilesettings.php:69 msgid "You can update your personal profile info here " -msgstr "" +msgstr "Ви можете оновити влаÑну перÑональну інформацію тут " #: actions/profilesettings.php:115 actions/remotesubscribe.php:320 #: actions/userauthorization.php:159 actions/userrss.php:76 @@ -2966,35 +3017,35 @@ msgstr "" #: actions/grouplogo.php:177 actions/remotesubscribe.php:367 #: actions/userauthorization.php:176 actions/userrss.php:82 msgid "User without matching profile" -msgstr "" +msgstr "КориÑтувач з невідповідним профілем" #: actions/recoverpassword.php:91 actions/recoverpassword.php:97 msgid "This confirmation code is too old. " -msgstr "" +msgstr "Цей код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ñтарілий. " #: actions/recoverpassword.php:141 actions/recoverpassword.php:152 msgid "If you've forgotten or lost your" -msgstr "" +msgstr "Якщо ви забули або загубили ваш" #: actions/recoverpassword.php:154 actions/recoverpassword.php:158 msgid "You've been identified. Enter a " -msgstr "" +msgstr "Ð’Ð°Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ¾Ð²Ð°Ð½Ð¾. Введіть " #: actions/recoverpassword.php:169 actions/recoverpassword.php:188 msgid "Your nickname on this server, " -msgstr "" +msgstr "Ваше ім'Ñ Ð½Ð° цьому Ñервері, " #: actions/recoverpassword.php:271 actions/recoverpassword.php:304 msgid "Instructions for recovering your password " -msgstr "" +msgstr "ІнÑтрукції щодо Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ " #: actions/recoverpassword.php:327 actions/recoverpassword.php:361 msgid "New password successfully saved. " -msgstr "" +msgstr "Ðовий пароль уÑпішно збережено. " #: actions/register.php:95 actions/register.php:180 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Пароль має ÑкладатиÑÑŒ з 6-ти або більше знаків." #: actions/register.php:216 #, php-format @@ -3002,102 +3053,105 @@ msgid "" "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " "want to..." msgstr "" +"Вітаємо, %s! ЛаÑкаво проÑимо до %%%%site.name%%%%. ЗвідÑи ви можливо " +"Ñхочете..." #: actions/register.php:227 msgid "(You should receive a message by email momentarily, with " -msgstr "" +msgstr "(Ви маєте невдовзі отримати лиÑта електронною поштою з " #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74 #, php-format msgid "To subscribe, you can [login](%%action.login%%)," -msgstr "" +msgstr "Ðби підпиÑатиÑÑŒ, ви можете [увійти](%%action.login%%)," #: actions/showfavorites.php:61 actions/showfavorites.php:145 #, php-format msgid "Feed for favorites of %s" -msgstr "" +msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… повідомлень від %s" #: actions/showfavorites.php:84 actions/twitapifavorites.php:85 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Ðе можна відновити обрані повідомленнÑ." #: actions/showmessage.php:33 actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "Ðемає такого повідомленнÑ." #: actions/showmessage.php:42 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Лише відправник та отримувач мають можливіÑÑ‚ÑŒ читати це повідомленнÑ." #: actions/showmessage.php:61 actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ %1$s на %2$s" #: actions/showmessage.php:66 actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ %1$s на %2$s" #: actions/showstream.php:154 msgid "Send a message" -msgstr "" +msgstr "ÐадіÑлати повідомленнÑ" #: actions/smssettings.php:312 actions/smssettings.php:464 #, php-format msgid "Mobile carrier for your phone. " -msgstr "" +msgstr "Оператор мобільного зв'Ñзку. " #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "ПрÑме Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ %s" #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Ð’ÑÑ– прÑмі Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ–Ñлані до %s" #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73 msgid "Direct Messages You've Sent" -msgstr "" +msgstr "ПрÑмі Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ–Ñлані вами" #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Ð’ÑÑ– прÑмі Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ–Ñлані від %s" #: actions/twitapidirect_messages.php:128 #: actions/twitapidirect_messages.php:137 msgid "No message text!" -msgstr "" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÐµÐ· текÑту!" #: actions/twitapidirect_messages.php:138 #: actions/twitapidirect_messages.php:150 msgid "Recipient user not found." -msgstr "" +msgstr "Отримувача не знайдено." #: actions/twitapidirect_messages.php:141 #: actions/twitapidirect_messages.php:153 msgid "Can't send direct messages to users who aren't your friend." msgstr "" +"Ðе можна надіÑлати прÑме Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачеві, Ñкий не Ñ” вашим другом." #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / Обрані від %s" #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… від %s / %s." #: actions/twitapifavorites.php:187 lib/mail.php:275 #: actions/twitapifavorites.php:164 lib/mail.php:553 #, php-format msgid "%s added your notice as a favorite" -msgstr "" +msgstr "%s додав(ла) ваше Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ обраних" #: actions/twitapifavorites.php:188 lib/mail.php:276 #: actions/twitapifavorites.php:165 @@ -3106,230 +3160,237 @@ msgid "" "%1$s just added your notice from %2$s as one of their favorites.\n" "\n" msgstr "" +"%1$s щойно позначив(ла) ваше Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ %2$s Ñк одне з обраних " +"ним(нею)\n" +"\n" #: actions/twittersettings.php:27 msgid "" "Add your Twitter account to automatically send your notices to Twitter, " msgstr "" +"Додайте ваш рахунок на Твіттері Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ переÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ " +"туди, " #: actions/twittersettings.php:41 actions/twittersettings.php:60 msgid "Twitter settings" -msgstr "" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢Ð²Ñ–Ñ‚Ñ‚ÐµÑ€Ð°" #: actions/twittersettings.php:48 actions/twittersettings.php:105 msgid "Twitter Account" -msgstr "" +msgstr "Рахунок на Твіттері" #: actions/twittersettings.php:56 actions/twittersettings.php:113 msgid "Current verified Twitter account." -msgstr "" +msgstr "Поточний підтверджений рахунок на Твіттері." #: actions/twittersettings.php:63 msgid "Twitter Username" -msgstr "" +msgstr "Ім'Ñ Ð½Ð° Твіттері" #: actions/twittersettings.php:65 actions/twittersettings.php:123 msgid "No spaces, please." -msgstr "" +msgstr "Без пробілів, будь лаÑка." #: actions/twittersettings.php:67 msgid "Twitter Password" -msgstr "" +msgstr "Пароль на Твіттері" #: actions/twittersettings.php:72 actions/twittersettings.php:139 msgid "Automatically send my notices to Twitter." -msgstr "" +msgstr "Ðвтоматично переÑилати мої Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð° Твіттер." #: actions/twittersettings.php:75 actions/twittersettings.php:146 msgid "Send local \"@\" replies to Twitter." -msgstr "" +msgstr "ÐадÑилати локальні \"@\" відповіді на Твіттер." #: actions/twittersettings.php:78 actions/twittersettings.php:153 msgid "Subscribe to my Twitter friends here." -msgstr "" +msgstr "ПідпиÑатиÑÑŒ до моїх друзів на Твіттері тут." #: actions/twittersettings.php:122 msgid "" "Username must have only numbers, upper- and lowercase letters, and " "underscore (_). 15 chars max." msgstr "" +"Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача має ÑкладатиÑÑŒ лише з цифр, літер верхнього та нижнього " +"регіÑтрів та Ñимволів підкреÑÐ»ÑŽÐ²Ð°Ð½Ð½Ñ (_). 15 знаків це макÑимум." #: actions/twittersettings.php:128 actions/twittersettings.php:334 msgid "Could not verify your Twitter credentials!" -msgstr "" +msgstr "Ðе можна підтвердити ваші реквізити на Твіттері!" #: actions/twittersettings.php:137 #, php-format msgid "Unable to retrieve account information for \"%s\" from Twitter." -msgstr "" +msgstr "Ðе маю можливоÑÑ‚Ñ– відновити інформацію Ð´Ð»Ñ \"%s\" з Твіттера." #: actions/twittersettings.php:151 actions/twittersettings.php:170 #: actions/twittersettings.php:348 actions/twittersettings.php:368 msgid "Unable to save your Twitter settings!" -msgstr "" +msgstr "Ðе маю можливоÑÑ‚Ñ– зберегти ваші Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢Ð²Ñ–Ñ‚Ñ‚ÐµÑ€Ð°!" #: actions/twittersettings.php:174 actions/twittersettings.php:376 msgid "Twitter settings saved." -msgstr "" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¢Ð²Ñ–Ñ‚Ñ‚ÐµÑ€Ð° збережено." #: actions/twittersettings.php:192 actions/twittersettings.php:395 msgid "That is not your Twitter account." -msgstr "" +msgstr "Це не Ñ” вашим рахунком на Твіттері." #: actions/twittersettings.php:200 actions/twittersettings.php:208 #: actions/twittersettings.php:403 msgid "Couldn't remove Twitter user." -msgstr "" +msgstr "Ðе можна видалити кориÑтувача Твіттер." #: actions/twittersettings.php:212 actions/twittersettings.php:407 msgid "Twitter account removed." -msgstr "" +msgstr "Твіттер рахунок видалено." #: actions/twittersettings.php:225 actions/twittersettings.php:239 #: actions/twittersettings.php:428 actions/twittersettings.php:439 #: actions/twittersettings.php:453 msgid "Couldn't save Twitter preferences." -msgstr "" +msgstr "Ðе можна зберегти преференції Твіттера." #: actions/twittersettings.php:245 actions/twittersettings.php:461 msgid "Twitter preferences saved." -msgstr "" +msgstr "Преференції Твіттера збережено." #: actions/userauthorization.php:84 actions/userauthorization.php:86 msgid "Please check these details to make sure " -msgstr "" +msgstr "Будь лаÑка, перевірте деталі аби впевнитиÑÑŒ " #: actions/userauthorization.php:324 actions/userauthorization.php:340 msgid "The subscription has been authorized, but no " -msgstr "" +msgstr "ПідпиÑку було авторизовано, але не " #: actions/userauthorization.php:334 actions/userauthorization.php:351 msgid "The subscription has been rejected, but no " -msgstr "" +msgstr "ПідпиÑку було Ñкинуто, але не " #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151 msgid "Command results" -msgstr "" +msgstr "Результати команди" #: classes/Channel.php:148 classes/Channel.php:204 msgid "Command complete" -msgstr "" +msgstr "Команду виконано" #: classes/Channel.php:158 classes/Channel.php:215 msgid "Command failed" -msgstr "" +msgstr "Команду не виконано" #: classes/Command.php:39 classes/Command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Даруйте, але Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ще не завершено." #: classes/Command.php:96 classes/Command.php:113 #, php-format msgid "Subscriptions: %1$s\n" -msgstr "" +msgstr "ПідпиÑки: %1$s\n" #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145 #: classes/Command.php:276 msgid "User has no last notice" -msgstr "" +msgstr "КориÑтувач має оÑтаннє повідомленнÑ" #: classes/Command.php:146 classes/Command.php:166 msgid "Notice marked as fave." -msgstr "" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñк обране." #: classes/Command.php:166 classes/Command.php:189 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" #: classes/Command.php:169 classes/Command.php:192 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "Повне ім'Ñ: %s" #: classes/Command.php:172 classes/Command.php:195 #, php-format msgid "Location: %s" -msgstr "" +msgstr "ЛокаціÑ: %s" #: classes/Command.php:175 classes/Command.php:198 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Веб-Ñторінка: %s" #: classes/Command.php:178 classes/Command.php:201 #, php-format msgid "About: %s" -msgstr "" +msgstr "Про мене: %s" #: classes/Command.php:200 classes/Command.php:228 #, php-format msgid "Message too long - maximum is 140 characters, you sent %d" -msgstr "" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ‚Ð¾ довге - макÑимум 140 знаків, а ви надрукували %d" #: classes/Command.php:214 classes/Command.php:245 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "ПрÑме Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ %s надіÑлано" #: classes/Command.php:216 classes/Command.php:247 msgid "Error sending direct message." -msgstr "" +msgstr "Помилка при відправці прÑмого повідомленнÑ." #: classes/Command.php:263 classes/Command.php:300 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "Зазначте ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, до Ñкого бажаєте підпиÑатиÑÑŒ" #: classes/Command.php:270 classes/Command.php:307 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "ПідпиÑано до %s" #: classes/Command.php:288 classes/Command.php:328 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "Зазначте ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, від Ñкого бажаєте відпиÑатиÑÑŒ" #: classes/Command.php:295 classes/Command.php:335 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "ВідпиÑано від %s" #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353 #: classes/Command.php:376 msgid "Command not yet implemented." -msgstr "" +msgstr "Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ще не завершено." #: classes/Command.php:313 classes/Command.php:356 msgid "Notification off." -msgstr "" +msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¾." #: classes/Command.php:315 classes/Command.php:358 msgid "Can't turn off notification." -msgstr "" +msgstr "Ðе можна вимкнути ÑповіщеннÑ." #: classes/Command.php:333 classes/Command.php:379 msgid "Notification on." -msgstr "" +msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¾." #: classes/Command.php:335 classes/Command.php:381 msgid "Can't turn on notification." -msgstr "" +msgstr "Ðе можна увімкнути ÑповіщеннÑ." #: classes/Command.php:344 classes/Command.php:392 msgid "Commands:\n" -msgstr "" +msgstr "Команди:\n" #: classes/Message.php:53 classes/Message.php:56 msgid "Could not insert message." -msgstr "" +msgstr "Ðе можна долучити повідомленнÑ." #: classes/Message.php:63 classes/Message.php:66 msgid "Could not update message with new URI." -msgstr "" +msgstr "Ðе можна оновити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· новим URI." #: lib/gallery.php:46 msgid "User without matching profile in system." -msgstr "" +msgstr "КориÑтувач без відповідного профілю у ÑиÑтемі." #: lib/mail.php:147 lib/mail.php:289 #, php-format @@ -3337,11 +3398,13 @@ msgid "" "You have a new posting address on %1$s.\n" "\n" msgstr "" +"Тепер ви маєте нову адреÑу Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ на %1$s.\n" +"\n" #: lib/mail.php:249 lib/mail.php:508 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Ðове приватне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ %s" #: lib/mail.php:253 lib/mail.php:512 #, php-format @@ -3349,88 +3412,90 @@ msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" msgstr "" +"%1$s (%2$s) надіÑлав(ла) вам приватне повідомленнÑ:\n" +"\n" #: lib/mailbox.php:43 lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." msgstr "" +"Лише кориÑтувач має можливіÑÑ‚ÑŒ переглÑдати Ñвою влаÑну поштову Ñкриньку." #: lib/openid.php:195 lib/openid.php:203 msgid "This form should automatically submit itself. " -msgstr "" +msgstr "Ð¦Ñ Ñ„Ð¾Ñ€Ð¼Ð° має автоматично репрезентувати Ñебе ÑиÑтемі. " #: lib/personal.php:65 lib/personalgroupnav.php:113 msgid "Favorites" -msgstr "" +msgstr "Обрані" #: lib/personal.php:66 lib/personalgroupnav.php:114 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "Обрані допиÑи %s" #: lib/personal.php:66 lib/personalgroupnav.php:114 msgid "User" -msgstr "" +msgstr "КориÑтувач" #: lib/personal.php:75 lib/personalgroupnav.php:123 msgid "Inbox" -msgstr "" +msgstr "Вхідні" #: lib/personal.php:76 lib/personalgroupnav.php:124 msgid "Your incoming messages" -msgstr "" +msgstr "Ваші вхідні повідомленнÑ" #: lib/personal.php:80 lib/personalgroupnav.php:128 msgid "Outbox" -msgstr "" +msgstr "Вихідні" #: lib/personal.php:81 lib/personalgroupnav.php:129 msgid "Your sent messages" -msgstr "" +msgstr "ÐадіÑлані вами повідомленнÑ" #: lib/settingsaction.php:99 lib/connectsettingsaction.php:110 msgid "Twitter" -msgstr "" +msgstr "Твіттер" #: lib/settingsaction.php:100 lib/connectsettingsaction.php:111 msgid "Twitter integration options" -msgstr "" +msgstr "Опції інтеграції з Твіттером" #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422 msgid "To" -msgstr "" +msgstr "До" #: scripts/maildaemon.php:45 scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "Ðе можна розібрати повідомленнÑ." #: actions/all.php:63 actions/facebookhome.php:162 -#, fuzzy, php-format +#, php-format msgid "%s and friends, page %d" -msgstr "%s з друзÑми" +msgstr "%s з друзÑми, Ñторінка %d" #: actions/avatarsettings.php:76 msgid "You can upload your personal avatar." -msgstr "" +msgstr "Ви можете завантажити вашу перÑональну аватару." #: actions/avatarsettings.php:117 actions/avatarsettings.php:191 #: actions/grouplogo.php:250 -#, fuzzy msgid "Avatar settings" -msgstr "ÐалаштуваннÑ" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¸" #: actions/avatarsettings.php:124 actions/avatarsettings.php:199 #: actions/grouplogo.php:198 actions/grouplogo.php:258 msgid "Original" -msgstr "" +msgstr "Оригінал" #: actions/avatarsettings.php:139 actions/avatarsettings.php:211 #: actions/grouplogo.php:209 actions/grouplogo.php:270 msgid "Preview" -msgstr "" +msgstr "ПереглÑд" #: actions/avatarsettings.php:225 actions/grouplogo.php:284 msgid "Crop" -msgstr "" +msgstr "Ð’Ñ‚Ñти" #: actions/avatarsettings.php:248 actions/deletenotice.php:133 #: actions/emailsettings.php:224 actions/grouplogo.php:307 @@ -3442,609 +3507,558 @@ msgstr "" #: actions/subedit.php:38 actions/twittersettings.php:290 #: actions/userauthorization.php:39 msgid "There was a problem with your session token. " -msgstr "" +msgstr "Виникли певні проблеми з токеном поточної ÑеÑÑ–Ñ—. " #: actions/avatarsettings.php:303 actions/grouplogo.php:360 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Оберіть квадратну ділÑнку зображеннÑ, Ñка й буде вашою автарою." #: actions/avatarsettings.php:327 actions/grouplogo.php:384 msgid "Lost our file data." -msgstr "" +msgstr "Дані вашого файлу деÑÑŒ загубилиÑÑŒ." #: actions/avatarsettings.php:334 actions/grouplogo.php:391 #: classes/User_group.php:112 -#, fuzzy msgid "Lost our file." -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "Файл втрачено." #: actions/avatarsettings.php:349 actions/avatarsettings.php:383 #: actions/grouplogo.php:406 actions/grouplogo.php:440 #: classes/User_group.php:129 classes/User_group.php:161 -#, fuzzy msgid "Unknown file type" -msgstr "тип файлу не підтримуєтьÑÑ" +msgstr "Тип файлу не підтримуєтьÑÑ" #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70 -#, fuzzy msgid "No profile specified." -msgstr "Оператора не обрано." +msgstr "Ðе визначено жодного профілю." #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46 #: actions/unblock.php:75 msgid "No profile with that ID." -msgstr "" +msgstr "Ðе визначено профілю з таким ID." #: actions/block.php:111 -#, fuzzy msgid "Block user" -msgstr "Такого кориÑтувача немає." +msgstr "Блокувати кориÑтувача." #: actions/block.php:129 -#, fuzzy msgid "Are you sure you want to block this user? " -msgstr "Ви впевненні, що бажаєте видалити це повідомленнÑ?" +msgstr "Ви впевненні, що бажаєте заблокувати цього кориÑтувача? " #: actions/block.php:162 -#, fuzzy msgid "You have already blocked this user." -msgstr "Ви вже в ÑиÑтемі!" +msgstr "Цього кориÑтувача вже заблоковано." #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" +msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»Ð¾ÑÑŒ невдачею." #: actions/confirmaddress.php:159 -#, fuzzy, php-format +#, php-format msgid "The address \"%s\" has been " -msgstr "ÐдреÑу було видалено." +msgstr "ÐдреÑу \"%s\" було " #: actions/deletenotice.php:73 -#, fuzzy msgid "You are about to permanently delete a notice. " -msgstr "" -"Ви видалÑєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð°Ð²Ð¶Ð´Ð¸. Якщо ви так зробите, це не матиме " -"зворотньої дії." +msgstr "Ви видалÑєте Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð°Ð²Ð¶Ð´Ð¸. " #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Додати до обраних" #: actions/editgroup.php:54 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "Редагувати групу %s" #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100 msgid "Inboxes must be enabled for groups to work" msgstr "" +"Поштові Ñкриньки Ð´Ð»Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… повідомлень мають бути дозволені Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ у " +"групах" #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Ви маєте Ñпочатку увійти, аби мати змогу Ñтворити групу." #: actions/editgroup.php:87 actions/grouplogo.php:87 #: actions/groupmembers.php:76 actions/joingroup.php:81 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" -msgstr "Ðемає імені." +msgstr "Ðемає імені" #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100 #: actions/groupmembers.php:83 actions/joingroup.php:88 #: actions/showgroup.php:128 -#, fuzzy msgid "No such group" -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "Такої групи немає" #: actions/editgroup.php:106 actions/editgroup.php:165 #: actions/grouplogo.php:107 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "Ви маєте бути наділені правами адміниÑтратора, аби редагувати групу" #: actions/editgroup.php:157 msgid "Use this form to edit the group." -msgstr "" +msgstr "СкориÑтайтеÑÑŒ цією формою, щоб відредагувати групу." #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156 -#, fuzzy msgid "Nickname must have only lowercase letters " -msgstr "" -"Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача повинно ÑкладатиÑÑŒ з літер нижнього регіÑтру Ñ– цифр, ніÑких " -"інтервалів." +msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача повинно ÑкладатиÑÑŒ з літер нижнього регіÑтру " #: actions/editgroup.php:198 actions/newgroup.php:149 -#, fuzzy msgid "description is too long (max 140 chars)." -msgstr "Про Ñебе забагато напиÑано (140 знаків макÑимум)" +msgstr "Ð¾Ð¿Ð¸Ñ Ð½Ð°Ð´Ñ‚Ð¾ довгий (140 знаків макÑимум)" #: actions/editgroup.php:218 -#, fuzzy msgid "Could not update group." -msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ кориÑтувача." +msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ групу." #: actions/editgroup.php:226 -#, fuzzy msgid "Options saved." -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾." +msgstr "Опції збережено." #: actions/emailsettings.php:107 actions/imsettings.php:108 -#, fuzzy, php-format +#, php-format msgid "Awaiting confirmation on this address. " -msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð½Ð¾Ð³Ð¾ номера." +msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— адреÑи. " #: actions/emailsettings.php:139 actions/smssettings.php:150 -#, fuzzy msgid "Make a new email address for posting to; " -msgstr "Ðова електронна адреÑа Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ на %s" +msgstr "Створити нову електронну адреÑу Ð´Ð»Ñ Ð½Ð°Ð´ÑиланнÑ; " #: actions/emailsettings.php:157 msgid "Send me email when someone " -msgstr "" +msgstr "ÐадÑилати мені лиÑта коли хтоÑÑŒ " #: actions/emailsettings.php:168 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Дозволити друзÑм \"розштовхати\" мене, надіÑлавши мені лиÑта." #: actions/emailsettings.php:321 -#, fuzzy msgid "That email address already belongs " -msgstr "Ð¦Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð° адреÑа належить іншому кориÑтувачу." +msgstr "Ð¦Ñ ÐµÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð° адреÑа вже належить " #: actions/emailsettings.php:343 -#, fuzzy msgid "A confirmation code was sent to the email address you added. " msgstr "" -"Код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ² відправлений на адреÑу IM, Ñку ви додали. Ви повинні " -"Ñхвалити %s Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¼ повідомлень." +"Код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ² відправлений на електронну адреÑу, Ñку ви додали. " #: actions/facebookhome.php:110 msgid "Server error - couldn't get user!" -msgstr "" +msgstr "Помилка Ñервера - неможливо діÑтатиÑÑŒ кориÑтувача!" #: actions/facebookhome.php:196 #, php-format msgid "If you would like the %s app to automatically update " -msgstr "" +msgstr "Якщо ви бажаєте додаток до %s Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ " #: actions/facebookhome.php:213 actions/facebooksettings.php:137 #, php-format msgid "Allow %s to update my Facebook status" -msgstr "" +msgstr "Дозволити %s оновлювати мій ÑÑ‚Ð°Ñ‚ÑƒÑ Ñƒ Facebook" #: actions/facebookhome.php:218 msgid "Skip" -msgstr "" +msgstr "ПропуÑтити" #: actions/facebookhome.php:235 -#, fuzzy msgid "No notice content!" -msgstr "Ðемає зміÑту!" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ має зміÑту!" #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399 msgid "Pagination" -msgstr "" +msgstr "ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ñ–Ñ Ñторінок" #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408 -#, fuzzy msgid "After" -msgstr "« Вперед" +msgstr "Вперед" #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416 -#, fuzzy msgid "Before" -msgstr "Раніше" +msgstr "Ðазад" #: actions/facebookinvite.php:70 #, php-format msgid "Thanks for inviting your friends to use %s" -msgstr "" +msgstr "ДÑкуємо, що запроÑили Ñвоїх друзів до %s" #: actions/facebookinvite.php:72 msgid "Invitations have been sent to the following users:" -msgstr "" +msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¸ надіÑлані наÑтупним кориÑтувачам:" #: actions/facebookinvite.php:96 #, php-format msgid "You have been invited to %s" -msgstr "" +msgstr "Ð’Ð°Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÑƒÑŽÑ‚ÑŒ до %s" #: actions/facebookinvite.php:105 -#, fuzzy, php-format +#, php-format msgid "Invite your friends to use %s" -msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð´Ñ€ÑƒÐ·Ñ–Ð² %s" +msgstr "ЗапроÑÑ–Ñ‚ÑŒ Ñвоїх друзів до %s" #: actions/facebookinvite.php:113 #, php-format msgid "Friends already using %s:" -msgstr "" +msgstr "Друзі, Ñкі вже кориÑтуютьÑÑ %s:" #: actions/facebookinvite.php:130 #, php-format msgid "Send invitations" -msgstr "" +msgstr "ÐадіÑлати запрошеннÑ" #: actions/facebookremove.php:56 -#, fuzzy msgid "Couldn't remove Facebook user." -msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ кориÑтувача." +msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ кориÑтувача Facebook." #: actions/facebooksettings.php:65 msgid "There was a problem saving your sync preferences!" -msgstr "" +msgstr "Виникли певні проблеми при збереженні ваших преференцій Ñинхронізації!" #: actions/facebooksettings.php:67 -#, fuzzy msgid "Sync preferences saved." -msgstr "Переваги збережно." +msgstr "Преференції Ñинхронізації збережно." #: actions/facebooksettings.php:90 msgid "Automatically update my Facebook status with my notices." -msgstr "" +msgstr "Ðвтоматично оновлювати мій ÑÑ‚Ð°Ñ‚ÑƒÑ Ñƒ Facebook моїми повідомленнÑми." #: actions/facebooksettings.php:97 msgid "Send \"@\" replies to Facebook." -msgstr "" +msgstr "ÐадÑилати \"@\" відповіді до Facebook." #: actions/facebooksettings.php:106 -#, fuzzy msgid "Prefix" -msgstr "Профіль" +msgstr "ПрефікÑ" #: actions/facebooksettings.php:108 msgid "A string to prefix notices with." -msgstr "" +msgstr "Прив'Ñзка префікÑа до повідомлень." #: actions/facebooksettings.php:124 #, php-format msgid "If you would like %s to automatically update " -msgstr "" +msgstr "Якщо бажаєте %s Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ " #: actions/facebooksettings.php:147 -#, fuzzy msgid "Sync preferences" -msgstr "Переваги" +msgstr "Преференції Ñинхронізації" #: actions/favor.php:94 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Видалити з обраних" #: actions/favorited.php:65 lib/popularnoticesection.php:76 #: lib/publicgroupnav.php:91 -#, fuzzy msgid "Popular notices" -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "ПопулÑрні допиÑи" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "ПопулÑрні допиÑи, Ñторінка %d" #: actions/favorited.php:79 -#, fuzzy msgid "The most popular notices on the site right now." -msgstr "ПредÑтавлено найбільш популÑрні мітки за минулий тиждень" +msgstr "ПредÑтавлено найбільш популÑрні допиÑи на Ñайті." #: actions/featured.php:69 lib/featureduserssection.php:82 #: lib/publicgroupnav.php:87 msgid "Featured users" -msgstr "" +msgstr "КориÑтувачі варті уваги" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "КориÑтувачі варті уваги, Ñторінка %d" #: actions/featured.php:99 #, php-format msgid "A selection of some of the great users on %s" -msgstr "" +msgstr "Вибірка з деÑких видатних кориÑтувачів на %s" #: actions/finishremotesubscribe.php:188 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Цей кориÑтувач заблокував вашу можливіÑÑ‚ÑŒ підпиÑатиÑÑŒ." #: actions/groupbyid.php:79 msgid "No ID" -msgstr "" +msgstr "Ðемає ID" #: actions/grouplogo.php:138 actions/grouplogo.php:191 msgid "Group logo" -msgstr "" +msgstr "Логотип групи" #: actions/grouplogo.php:149 msgid "You can upload a logo image for your group." -msgstr "" +msgstr "Ви маєте можливіÑÑ‚ÑŒ завантажити логотип Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— группи." #: actions/grouplogo.php:448 -#, fuzzy msgid "Logo updated." -msgstr "Ðватару оновлено." +msgstr "Логотип оновлено." #: actions/grouplogo.php:450 -#, fuzzy msgid "Failed updating logo." -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¸ невдале." +msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð»Ð¾Ð³Ð¾Ñ‚Ð¸Ð¿Ñƒ завершилоÑÑŒ невдачею." #: actions/groupmembers.php:93 lib/groupnav.php:91 #, php-format msgid "%s group members" -msgstr "" +msgstr "УчаÑники групи %s" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "УчаÑники групи %s, Ñторінка %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "СпиÑок учаÑників цієї групи." #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79 #: lib/subgroupnav.php:96 msgid "Groups" -msgstr "" +msgstr "Групи" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Групи, Ñторінка %d" #: actions/groups.php:90 #, php-format msgid "%%%%site.name%%%% groups let you find and talk with " msgstr "" +"Групи на Ñайті %%%%site.name%%%% надають вам можливіÑÑ‚ÑŒ знайти та " +"ÑпілкуватиÑÑŒ з " #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123 -#, fuzzy msgid "Create a new group" -msgstr "Створити новий рахунок" +msgstr "Створити нову групу" #: actions/groupsearch.php:57 -#, fuzzy, php-format +#, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " -msgstr "" -"Пошук людей на %%site.name%% за Ñ—Ñ… ім'Ñм, міÑцем Ð·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ інтереÑами. " -"Відокремлюйте пошукові умови інтервалами; вони повинні ÑкладатиÑÑŒ з 3 знаків " -"або більше." +msgstr "Пошук груп на %%site.name%% за Ñ—Ñ… назвою, локацією або опиÑом. " #: actions/groupsearch.php:63 -#, fuzzy msgid "Group search" -msgstr "Пошук людей" +msgstr "Пошук груп" #: actions/imsettings.php:70 msgid "You can send and receive notices through " -msgstr "" +msgstr "У Ð²Ð°Ñ Ñ” можливіÑÑ‚ÑŒ надÑилати та отримувати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð° допомогою " #: actions/imsettings.php:120 #, php-format msgid "Jabber or GTalk address, " -msgstr "" +msgstr "Jabber або GTalk адреÑа, " #: actions/imsettings.php:147 -#, fuzzy msgid "Send me replies through Jabber/GTalk " -msgstr "ПовідомлÑти мене через Jabber/GTalk." +msgstr "ÐадÑилати мені відповіді за допомою Jabber/GTalk " #: actions/imsettings.php:321 -#, fuzzy, php-format +#, php-format msgid "A confirmation code was sent " -msgstr "Ðемає коду підтвердженнÑ." +msgstr "Код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ відправлено " #: actions/joingroup.php:65 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Ви повинні Ñпочатку увійти на Ñайт, аби приєднатиÑÑ Ð´Ð¾ групи." #: actions/joingroup.php:95 -#, fuzzy msgid "You are already a member of that group" -msgstr "Ви вже в ÑиÑтемі!" +msgstr "Ви вже Ñ” учаÑником цієї групи" #: actions/joingroup.php:128 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Ðе вдалоÑÑ Ñлідувати за кориÑтувачем: кориÑтувача не знайдено." +msgstr "КориÑтувачеві %s не вдалоÑÑŒ приєднатиÑÑŒ до групи %s" #: actions/joingroup.php:135 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s приєднавÑÑ Ð´Ð¾ групи %s" #: actions/leavegroup.php:60 msgid "Inboxes must be enabled for groups to work." -msgstr "" +msgstr "Скриньки вхідних повідомлень мають бути дозволені Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ у групах." #: actions/leavegroup.php:65 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Ви повинні Ñпочатку увійти на Ñайт, аби залишити групу." #: actions/leavegroup.php:88 -#, fuzzy msgid "No such group." -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "Такої групи немає." #: actions/leavegroup.php:95 -#, fuzzy msgid "You are not a member of that group." -msgstr "Ви не надÑилали нам цього профілю" +msgstr "Ви не Ñ” учаÑником цієї групи." #: actions/leavegroup.php:100 msgid "You may not leave a group while you are its administrator." -msgstr "" +msgstr "Ви не можете залишити групу допоки ви Ñ” Ñ—Ñ— адмініÑтратором." #: actions/leavegroup.php:130 -#, fuzzy msgid "Could not find membership record." -msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача." +msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ñ‰Ð¾Ð´Ð¾ членÑтва." #: actions/leavegroup.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Ðе вдалоÑÑ Ñлідувати за кориÑтувачем: кориÑтувача не знайдено." +msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ кориÑтувача %s з групи %s" #: actions/leavegroup.php:145 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s залишив групу %s" #: actions/login.php:225 lib/facebookaction.php:304 msgid "Login to site" -msgstr "" +msgstr "Вхід на Ñайт" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "ÐÑ–Ñкого поточного ÑтатуÑу" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Ðова група" #: actions/newgroup.php:115 msgid "Use this form to create a new group." -msgstr "" +msgstr "СкориÑтайтеÑÑŒ цією формою Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— групи." #: actions/newgroup.php:177 -#, fuzzy msgid "Could not create group." -msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ інформацію про аватару" +msgstr "Ðе вдалоÑÑ Ñтворити нову групу" #: actions/newgroup.php:191 -#, fuzzy msgid "Could not set group membership." -msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ підпиÑку." +msgstr "Ðе вдалоÑÑ Ð²Ñтановити членÑтво." #: actions/newmessage.php:119 actions/newnotice.php:132 -#, fuzzy msgid "That's too long. " -msgstr "Цей файл завеликий." +msgstr "Це надто довго. " #: actions/newmessage.php:134 msgid "Don't send a message to yourself; " -msgstr "" +msgstr "Ðе надÑилайте повідомлень Ñамому Ñобі; " #: actions/newnotice.php:166 -#, fuzzy msgid "Notice posted" -msgstr "ПовідомленнÑ" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾" #: actions/newnotice.php:200 classes/Channel.php:163 msgid "Ajax Error" -msgstr "" +msgstr "Помилка в Ajax" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"Цей кориÑтувач не дозволив Ñебе \"розштовхувати\", або не підтвердив чи не " +"налаштував преференції електронної пошти." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Спробу \"розштовхати\" зараховано" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Спробу \"розштовхати\" зараховано!" #: actions/openidlogin.php:97 -#, fuzzy msgid "OpenID login" msgstr "Вхід OpenID" #: actions/openidsettings.php:128 -#, fuzzy msgid "Removing your only OpenID " -msgstr "Видалити OpenID" +msgstr "Видалити ваш єдиний OpenID " #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "ÐалаштуваннÑ" +msgstr "Інші опції" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÑкими іншими опціÑми" #: actions/othersettings.php:93 msgid "URL Auto-shortening" -msgstr "" +msgstr "Ðвтоматичне ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ URL-адреÑ" #: actions/othersettings.php:112 -#, fuzzy msgid "Service" -msgstr "Пошук" +msgstr "СервіÑ" #: actions/othersettings.php:113 msgid "Automatic shortening service to use." -msgstr "" +msgstr "СервіÑи доÑтупні Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ" #: actions/othersettings.php:144 -#, fuzzy msgid "URL shortening service is too long (max 50 chars)." -msgstr "Мова задовга (50 знаків макÑимум)" +msgstr "Ð¡ÐµÑ€Ð²Ñ–Ñ ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ URL-Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð´Ñ‚Ð¾ довгий (50 знаків макÑимум)." #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Змінити пароль" +msgstr "Змінити пароль." #: actions/passwordsettings.php:89 -#, fuzzy msgid "Password change" -msgstr "Пароль збережено." +msgstr "Пароль замінено" #: actions/peopletag.php:35 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s" -msgstr "Це не дійÑна електронна адреÑа" +msgstr "Це недійÑний оÑобиÑтий тег: %s" #: actions/peopletag.php:47 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "КориÑтувачі з оÑобиÑтим тегом %s - Ñторінка %d" #: actions/peopletag.php:91 #, php-format msgid "These are users who have tagged themselves \"%s\" " -msgstr "" +msgstr "Тут предÑтавлені кориÑтувачі, Ñкі позначили Ñебе тегом \"%s\" " #: actions/profilesettings.php:91 -#, fuzzy msgid "Profile information" -msgstr "Ðевідомий профіль" +msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ" #: actions/profilesettings.php:124 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" +"Позначте Ñебе тегами (літери, цифри, -, . та _), відокремлюючи кожен комою " +"або пробілом" #: actions/profilesettings.php:144 -#, fuzzy msgid "Automatically subscribe to whoever " -msgstr "" -"Ðвтоматично підпиÑуватиÑÑŒ до тих, хто підпиÑавÑÑ Ð´Ð¾ мене (Ñкщо ви бот, це " -"Ñаме Ð´Ð»Ñ Ð²Ð°Ñ)" +msgstr "Ðвтоматична підпиÑка до будь кого, хто " #: actions/profilesettings.php:229 actions/tagother.php:176 -#, fuzzy, php-format +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "ÐедейÑна Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка '%s'" +msgstr "ÐедійÑний тег: \"%s\"" #: actions/profilesettings.php:311 -#, fuzzy msgid "Couldn't save tags." -msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ профіль." +msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ теги." #: actions/public.php:107 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "Спільний чаÑовий потік" +msgstr "Загальний потік, Ñторінка %d" #: actions/public.php:173 -#, fuzzy msgid "Could not retrieve public stream." -msgstr "Ðевдала підпиÑка." +msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ загальний потік." #: actions/public.php:220 #, php-format @@ -4052,139 +4066,128 @@ msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service " msgstr "" +"Цей Ñайт %%site.name%%, Ñ” ÑервіÑом [мікроблогів] " +"(http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ñпільного потоку" +msgstr "Загальна хмарка тегів" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Це найбільш популÑрні нові теги на %s " #: actions/publictagcloud.php:119 msgid "Tag cloud" -msgstr "" +msgstr "Хмарка тегів" #: actions/register.php:139 actions/register.php:349 msgid "Sorry, only invited people can register." msgstr "" +"Пробачте, але лише Ñ‚Ñ–, кого було запрошено, мають змогу зареєÑтруватиÑÑŒ тут." #: actions/register.php:149 -#, fuzzy msgid "You can't register if you don't " -msgstr "Ви не зможете зареєÑтруватиÑÑŒ, Ñкщо не погодитеÑÑŒ з умовами ліцензії." +msgstr "Ви не зможете зареєÑтруватиÑÑŒ, Ñкщо не " #: actions/register.php:286 msgid "With this form you can create " -msgstr "" +msgstr "СкориÑтавшиÑÑŒ цією формою, ви можете Ñтворити " #: actions/register.php:368 -#, fuzzy msgid "1-64 lowercase letters or numbers, " -msgstr "1-64 букви нижнього регіÑтра Ñ– цифри, ніÑкої пунктуації або інтервалів" +msgstr "1-64 літери нижнього регіÑтра Ñ– цифри " #: actions/register.php:382 actions/register.php:386 -#, fuzzy msgid "Used only for updates, announcements, " -msgstr "" -"ВикориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ, оголошень та переуÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŽ" +msgstr "ВикориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ, оголошень, " #: actions/register.php:398 -#, fuzzy msgid "URL of your homepage, blog, " -msgstr "URL-адреÑа вашої домашньої Ñторінки, блогу, " +msgstr "URL-адреÑа вашої веб-Ñторінки, блогу, " #: actions/register.php:404 -#, fuzzy msgid "Describe yourself and your " -msgstr "Опишіть Ñебе та Ñвої інтереÑи (140 знаків)" +msgstr "Опишіть Ñебе та Ñвої " #: actions/register.php:410 -#, fuzzy msgid "Where you are, like \"City, " -msgstr "Де ви живете, на зразок \"City, State (or Region), Country\"" +msgstr "Де ви живете, на зразок \"МіÑто, " #: actions/register.php:432 -#, fuzzy msgid " except this private data: password, " -msgstr "" -"окрім цих приватних даних: пароль, електронна адреÑа, адреÑа IM, телефонний " -"номер." +msgstr " окрім цих приватних даних: пароль, " #: actions/register.php:471 #, php-format msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. " -msgstr "" +msgstr "Вітаємо, %s! І лаÑкаво проÑимо до %%%%site.name%%%%. " #: actions/register.php:495 msgid "(You should receive a message by email " -msgstr "" +msgstr "(Ви маєте отримати лиÑта електронною поштою " #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171 msgid "That's a local profile! Login to subscribe." -msgstr "" +msgstr "Це локальний профіль! Увійдіть аби підпиÑатиÑÑŒ." #: actions/replies.php:118 -#, fuzzy, php-format +#, php-format msgid "Replies to %s, page %d" -msgstr "Відповіді %s" +msgstr "Відповіді %s, Ñторінка %d" #: actions/showfavorites.php:79 #, php-format msgid "%s favorite notices, page %d" -msgstr "" +msgstr "Обрані Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ %s, Ñторінка %d" #: actions/showgroup.php:77 lib/groupnav.php:85 #, php-format msgid "%s group" -msgstr "" +msgstr "Група %s" #: actions/showgroup.php:79 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "Група %s, Ñторінка %d" #: actions/showgroup.php:206 -#, fuzzy msgid "Group profile" -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "Профіль групи" #: actions/showgroup.php:251 actions/showstream.php:278 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133 msgid "URL" -msgstr "" +msgstr "URL" #: actions/showgroup.php:262 actions/showstream.php:289 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144 -#, fuzzy msgid "Note" -msgstr "ПовідомленнÑ" +msgstr "ЗауваженнÑ" #: actions/showgroup.php:270 msgid "Group actions" -msgstr "" +msgstr "ДіÑльніÑÑ‚ÑŒ групи" #: actions/showgroup.php:323 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group" -msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ Ð´Ð»Ñ %s" +msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¸ %s" #: actions/showgroup.php:357 lib/groupnav.php:90 -#, fuzzy msgid "Members" -msgstr "Разом з нами з" +msgstr "УчаÑники" #: actions/showgroup.php:363 actions/showstream.php:413 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(ПуÑто)" #: actions/showgroup.php:370 msgid "All members" -msgstr "" +msgstr "Ð’ÑÑ– учаÑники" #: actions/showgroup.php:378 #, php-format @@ -4192,50 +4195,49 @@ msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** це група кориÑтувачів на Ñайті %%%%site.name%%%%, Ñкий Ñ” ÑервіÑом " +"[мікроблогів] (http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/showmessage.php:98 msgid "Only the sender and recipient " -msgstr "" +msgstr "Лише відправник та отримувач " #: actions/showstream.php:73 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s, Ñторінка %d" #: actions/showstream.php:143 -#, fuzzy msgid "'s profile" -msgstr "Профіль" +msgstr " профіль" #: actions/showstream.php:236 actions/tagother.php:77 -#, fuzzy msgid "User profile" -msgstr "КориÑтувач не має профілю." +msgstr "Профіль кориÑтувача." #: actions/showstream.php:240 actions/tagother.php:81 msgid "Photo" -msgstr "" +msgstr "Фото" #: actions/showstream.php:317 msgid "User actions" -msgstr "" +msgstr "ДіÑльніÑÑ‚ÑŒ кориÑтувача" #: actions/showstream.php:342 msgid "Send a direct message to this user" -msgstr "" +msgstr "ÐадіÑлати прÑме Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð¼Ñƒ кориÑтувачеві" #: actions/showstream.php:343 msgid "Message" -msgstr "" +msgstr "ПовідомленнÑ" #: actions/showstream.php:451 -#, fuzzy msgid "All subscribers" -msgstr "ПідпиÑчики" +msgstr "Ð’ÑÑ– підпиÑчики" #: actions/showstream.php:533 msgid "All groups" -msgstr "" +msgstr "Ð’ÑÑ– групи" #: actions/showstream.php:542 #, php-format @@ -4243,484 +4245,445 @@ msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service " msgstr "" +"**%s** Ñ” влаÑником рахунку на Ñайті %%%%site.name%%%% - ÑервіÑÑ– " +"[мікроблогів] (http://en.wikipedia.org/wiki/Micro-blogging) " #: actions/smssettings.php:128 -#, fuzzy msgid "Phone number, no punctuation or spaces, " -msgstr "Телефонний номер та регіональний код, ніÑкої пунктуації чи інтервалів" +msgstr "Телефонний номер, ніÑкої пунктуації або інтервалів, " #: actions/smssettings.php:162 -#, fuzzy msgid "Send me notices through SMS; " -msgstr "ПовідомлÑти мене через Jabber/GTalk." +msgstr "ПовідомлÑти мене за допомогою СМС; " #: actions/smssettings.php:335 -#, fuzzy msgid "A confirmation code was sent to the phone number you added. " -msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ»ÐµÑ„Ð¾Ð½Ð½Ð¾Ð³Ð¾ номера." +msgstr "Код Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ надіÑлано на телефонний номер, Ñкий ви додали. " #: actions/smssettings.php:453 -#, fuzzy msgid "Mobile carrier" -msgstr "Оберіть оператора" +msgstr "Мобільний оператор" #: actions/subedit.php:70 -#, fuzzy msgid "You are not subscribed to that profile." -msgstr "Ви не надÑилали нам цього профілю" +msgstr "Ви не підпиÑані до цього профілю." #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ підпиÑку." +msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ підпиÑку." #: actions/subscribe.php:55 -#, fuzzy msgid "Not a local user." msgstr "Такого кориÑтувача немає." #: actions/subscribe.php:69 -#, fuzzy msgid "Subscribed" -msgstr "ПідпиÑки" +msgstr "ПідпиÑані" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "ПідпиÑчики" +msgstr "ПідпиÑані до %s" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "ПідпиÑані до %s, Ñторінка %d" #: actions/subscribers.php:63 -#, fuzzy msgid "These are the people who listen to " -msgstr "Тут предÑтавлені Ñ‚Ñ–, хто Ñлідкує за повідомленнÑми від %s." +msgstr "Тут предÑтавлені Ñ‚Ñ–, хто Ñлідкує за " #: actions/subscribers.php:67 -#, fuzzy, php-format +#, php-format msgid "These are the people who " -msgstr "Тут предÑтавлені Ñ‚Ñ–, хто Ñлідкує за повідомленнÑми від %s." +msgstr "Тут предÑтавлені Ñ‚Ñ–, хто " #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "Ð’ÑÑ– підпиÑки" +msgstr "ПідпиÑки %s" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "Ð’ÑÑ– підпиÑки" +msgstr "ПідпиÑки %s, Ñторінка %d" #: actions/subscriptions.php:65 -#, fuzzy msgid "These are the people whose notices " -msgstr "Тут предÑтавлені Ñ‚Ñ–, за чиїми повідомленнÑми Ñлідкує %s." +msgstr "Тут предÑтавлені Ñ‚Ñ–, за чиїми повідомленнÑми " #: actions/subscriptions.php:69 -#, fuzzy, php-format +#, php-format msgid "These are the people whose " -msgstr "Тут предÑтавлені Ñ‚Ñ–, хто Ñлідкує за повідомленнÑми від %s." +msgstr "Тут предÑтавлені Ñ‚Ñ–, чиї " #: actions/subscriptions.php:122 -#, fuzzy msgid "Jabber" -msgstr "Ðемає Jabber ID." +msgstr "Jabber" #: actions/tag.php:43 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ñ– з %s" +msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ñ– %s, Ñторінка %d" #: actions/tag.php:66 #, php-format msgid "Messages tagged \"%s\", most recent first" -msgstr "" +msgstr "Ðайновіші Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ñ– \"%s\"" #: actions/tagother.php:33 -#, fuzzy msgid "Not logged in" -msgstr "Ðе увійшли." +msgstr "Ðе увійшли" #: actions/tagother.php:39 -#, fuzzy msgid "No id argument." -msgstr "Такого документа немає." +msgstr "Ðемає аргументу ID." #: actions/tagother.php:65 -#, fuzzy, php-format +#, php-format msgid "Tag %s" -msgstr "Мітки" +msgstr "Позначити %s" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" -msgstr "Мітки" +msgstr "Позначити кориÑтувача" #: actions/tagother.php:149 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Позначити кориÑтувача тегами (літери, цифри, -, . та _), відокремлюючи кожен " +"комою або пробілом" #: actions/tagother.php:164 msgid "There was a problem with your session token." -msgstr "" +msgstr "Виникли певні проблеми з токеном поточної ÑеÑÑ–Ñ—." #: actions/tagother.php:191 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Ви маєте можливіÑÑ‚ÑŒ позначати тегами тих, до кого ви підпиÑані, а також тих, " +"хто Ñ” підпиÑаним до ваÑ." #: actions/tagother.php:198 -#, fuzzy msgid "Could not save tags." -msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ інформацію про аватару" +msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ теги." #: actions/tagother.php:233 msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "СкориÑтайтеÑÑŒ цією формою, щоб додати теги підпиÑкам та підпиÑчикам." #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "Такого тегу немає." #: actions/tagrss.php:66 -#, fuzzy, php-format +#, php-format msgid "Microblog tagged with %s" -msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ñ– з %s" +msgstr "Мікроблог позначено тегом %s" #: actions/twitapiblocks.php:47 msgid "Block user failed." -msgstr "" +msgstr "Спроба заблокувати кориÑтувача невдала." #: actions/twitapiblocks.php:69 msgid "Unblock user failed." -msgstr "" +msgstr "Спроба розблокувати кориÑтувача невдала." #: actions/twitapiusers.php:48 -#, fuzzy msgid "Not found." -msgstr "Ðемає знайденого запиту!" +msgstr "Ðе знайдено." #: actions/twittersettings.php:71 msgid "Add your Twitter account to automatically send " -msgstr "" +msgstr "Додайте Ñвій рахунок на Твіттері, аби автоматично переÑилати " #: actions/twittersettings.php:119 msgid "Twitter user name" -msgstr "" +msgstr "Ваше ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача на Твіттері" #: actions/twittersettings.php:126 -#, fuzzy msgid "Twitter password" -msgstr "Ðовий пароль" +msgstr "Пароль на Твіттері" #: actions/twittersettings.php:228 msgid "Twitter Friends" -msgstr "" +msgstr "Друзі на Твіттері" #: actions/twittersettings.php:327 msgid "Username must have only numbers, " -msgstr "" +msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача має ÑкладатиÑÑŒ лише з цифр, " #: actions/twittersettings.php:341 -#, fuzzy, php-format +#, php-format msgid "Unable to retrieve account information " -msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾Ð²Ð¾Ñ— адреÑи." +msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ інформацію рахунку " #: actions/unblock.php:108 -#, fuzzy msgid "Error removing the block." -msgstr "Помилка при збереженні кориÑтувача." +msgstr "Помилка при розблокуванні." #: actions/unsubscribe.php:50 -#, fuzzy msgid "No profile id in request." -msgstr "Ðемає URL-адреÑи профілю повернітої Ñервером." +msgstr "У запиті відÑутній ID профілю." #: actions/unsubscribe.php:57 -#, fuzzy msgid "No profile with that id." -msgstr "Віддалений профіль без відповідного профілю" +msgstr "Ðемає профілю з таким ID." #: actions/unsubscribe.php:71 -#, fuzzy msgid "Unsubscribed" -msgstr "ВідпиÑатиÑÑŒ" +msgstr "ВідпиÑано" #: actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "Групи %s" #: actions/usergroups.php:65 #, php-format msgid "%s groups, page %d" -msgstr "" +msgstr "Групи %s, Ñторінка %d" #: classes/Notice.php:104 -#, fuzzy msgid "Problem saving notice. Unknown user." -msgstr "Проблема при збереженні повідомленнÑ." +msgstr "Проблема при збереженні повідомленнÑ. Ðевідомий кориÑтувач." #: classes/Notice.php:109 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Дуже багато повідомлень за короткий термін; відпочиньте трошки Ñ– " +"повертайтеÑÑŒ за кілька хвилин." #: classes/Notice.php:116 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Вам заборонено надÑилати допиÑи до цього Ñайту." #: lib/accountsettingsaction.php:108 -#, fuzzy msgid "Upload an avatar" -msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¸ невдале." +msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¸" #: lib/accountsettingsaction.php:119 msgid "Other" -msgstr "" +msgstr "Інше" #: lib/accountsettingsaction.php:120 msgid "Other options" -msgstr "" +msgstr "Інші опції" #: lib/action.php:130 #, php-format msgid "%s - %s" -msgstr "" +msgstr "%s - %s" #: lib/action.php:145 msgid "Untitled page" -msgstr "" +msgstr "Сторінка без заголовку" #: lib/action.php:316 msgid "Primary site navigation" -msgstr "" +msgstr "Відправна Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ Ð¿Ð¾ Ñайту" #: lib/action.php:322 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "ПерÑональний профіль Ñ– потік друзів" #: lib/action.php:325 msgid "Search for people or text" -msgstr "" +msgstr "Пошук людей або текÑтів" #: lib/action.php:328 -#, fuzzy msgid "Account" -msgstr "Про" +msgstr "Рахунок" #: lib/action.php:328 msgid "Change your email, avatar, password, profile" -msgstr "" +msgstr "Змінити електронну адреÑу, аватару, пароль, профіль" #: lib/action.php:330 msgid "Connect to IM, SMS, Twitter" -msgstr "" +msgstr "Зв'Ñзок з ІМ, СМС, Твіттер" #: lib/action.php:332 msgid "Logout from the site" -msgstr "" +msgstr "Вийти з Ñайту" #: lib/action.php:335 msgid "Login to the site" -msgstr "" +msgstr "Увійти на Ñайт" #: lib/action.php:338 -#, fuzzy msgid "Create an account" msgstr "Створити новий рахунок" #: lib/action.php:341 -#, fuzzy msgid "Login with OpenID" -msgstr "Такого OpenID немає." +msgstr "Увійти з OpenID" #: lib/action.php:344 -#, fuzzy msgid "Help me!" -msgstr "Допомога" +msgstr "Допоможіть!" #: lib/action.php:362 -#, fuzzy msgid "Site notice" -msgstr "Ðове повідомленнÑ" +msgstr "Ð—Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ Ñайту" #: lib/action.php:417 msgid "Local views" -msgstr "" +msgstr "ОглÑд" #: lib/action.php:472 -#, fuzzy msgid "Page notice" -msgstr "Ðове повідомленнÑ" +msgstr "Ð—Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ Ñторінки" #: lib/action.php:562 -#, fuzzy msgid "Secondary site navigation" -msgstr "ПідпиÑки" +msgstr "ДругорÑдна Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ Ð¿Ð¾ Ñайту" #: lib/action.php:602 lib/action.php:623 msgid "Laconica software license" -msgstr "" +msgstr "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Laconica software" #: lib/action.php:630 msgid "All " -msgstr "" +msgstr "Ð’ÑÑ– " #: lib/action.php:635 msgid "license." -msgstr "" +msgstr "ліцензіÑ." #: lib/blockform.php:123 lib/blockform.php:153 -#, fuzzy msgid "Block this user" -msgstr "Такого кориÑтувача немає." +msgstr "Блокувати кориÑтувача" #: lib/blockform.php:153 msgid "Block" -msgstr "" +msgstr "Блок" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "Видалити з обраних" #: lib/facebookaction.php:268 #, php-format msgid "To use the %s Facebook Application you need to login " -msgstr "" +msgstr "Ðби ÑкориÑтатиÑÑŒ %s додатком Ð´Ð»Ñ Facebook, ви маєте увійти " #: lib/facebookaction.php:271 -#, fuzzy msgid " a new account." -msgstr "Створити новий рахунок" +msgstr " новий рахунок." #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354 -#, fuzzy msgid "Published" -msgstr "Загал" +msgstr "Опубліковано" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" -msgstr "Такого Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð°Ñ”." +msgstr "Позначити Ñк обране" #: lib/feedlist.php:64 msgid "Export data" -msgstr "" +msgstr "ЕкÑпорт даних" #: lib/galleryaction.php:121 -#, fuzzy msgid "Filter tags" -msgstr "Ð–Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¼Ñ–Ñ‚Ð¾Ðº %s" +msgstr "Фільтр Ð´Ð»Ñ Ñ‚ÐµÐ³Ñ–Ð²" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Ð’ÑÑ–" #: lib/galleryaction.php:137 -#, fuzzy msgid "Tag" -msgstr "Мітки" +msgstr "Тег" #: lib/galleryaction.php:138 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Оберіть тег до звуженого ÑпиÑку" #: lib/galleryaction.php:139 msgid "Go" -msgstr "" +msgstr "Вперед" #: lib/groupeditform.php:148 -#, fuzzy msgid "URL of the homepage or blog of the group or topic" -msgstr "URL-адреÑа вашої домашньої Ñторінки, блогу, " +msgstr "URL-адреÑа веб-Ñторінки, блогу групи, або тематичного блогу" #: lib/groupeditform.php:151 -#, fuzzy msgid "Description" -msgstr "ПідпиÑки" +msgstr "ОпиÑ" #: lib/groupeditform.php:153 -#, fuzzy msgid "Describe the group or topic in 140 chars" -msgstr "Опишіть Ñебе та Ñвої інтереÑи (140 знаків)" +msgstr "Опишіть групу або тему, вкладаючиÑÑŒ у 140 знаків" #: lib/groupeditform.php:158 -#, fuzzy msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Де ви живете, на зразок \"City, State (or Region), Country\"" +msgstr "Ð›Ð¾ÐºÐ°Ñ†Ñ–Ñ Ð³Ñ€ÑƒÐ¿Ð¸, на зразок \"МіÑто, облаÑÑ‚ÑŒ (або регіон), країна\"" #: lib/groupnav.php:84 lib/searchgroupnav.php:84 msgid "Group" -msgstr "" +msgstr "Група" #: lib/groupnav.php:100 msgid "Admin" -msgstr "" +msgstr "Ðдмін" #: lib/groupnav.php:101 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Редагувати влаÑтивоÑÑ‚Ñ– групи %s" #: lib/groupnav.php:106 -#, fuzzy msgid "Logo" -msgstr "Вийти" +msgstr "Лого" #: lib/groupnav.php:107 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Додати або редагувати логотип %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Групи з найбільшою кількіÑÑ‚ÑŽ учаÑників" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Групи з найбільшою кількіÑÑ‚ÑŽ допиÑів" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Теги у повідомленнÑÑ… групи %s" #: lib/htmloutputter.php:104 -#, fuzzy msgid "This page is not available in a " -msgstr "Ð¦Ñ Ñторінка не доÑтупна в медіа-типі, Ñкий ви приймаєте" +msgstr "Ð¦Ñ Ñторінка не доÑтупна в " #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Увійти" +msgstr "ПриєднатиÑÑŒ" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "Зберегти" +msgstr "Залишити" #: lib/logingroupnav.php:76 -#, fuzzy msgid "Login with a username and password" -msgstr "ÐедійÑне ім'Ñ Ð°Ð±Ð¾ пароль." +msgstr "Увійти викориÑтовуючи ім'Ñ Ñ‚Ð° пароль" #: lib/logingroupnav.php:79 -#, fuzzy msgid "Sign up for a new account" -msgstr "Створити новий рахунок" +msgstr "ЗареєÑтрувати новий рахунок" #: lib/logingroupnav.php:82 msgid "Login or register with OpenID" -msgstr "" +msgstr "Увійти або зареєÑтруватиÑÑŒ з OpenID" #: lib/mail.php:175 #, php-format @@ -4728,21 +4691,23 @@ msgid "" "Hey, %s.\n" "\n" msgstr "" +"Ей, %s.\n" +"\n" #: lib/mail.php:236 -#, fuzzy, php-format +#, php-format msgid "%1$s is now listening to " -msgstr "%1$s тепер Ñлідкує за вашими повідомленÑми на %2$s." +msgstr "%1$s тепер Ñлідкує за повідомленÑми " #: lib/mail.php:254 -#, fuzzy, php-format +#, php-format msgid "Location: %s\n" -msgstr "МіÑцезнаходженнÑ" +msgstr "ЛокаціÑ: %s\n" #: lib/mail.php:256 -#, fuzzy, php-format +#, php-format msgid "Homepage: %s\n" -msgstr "Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка" +msgstr "Веб-Ñторінка: %s\n" #: lib/mail.php:258 #, php-format @@ -4750,86 +4715,80 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"Про Ñебе: %s\n" +"\n" #: lib/mail.php:461 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "Ð’Ð°Ñ Ñпробував \"розштовхати\" %s" #: lib/mail.php:465 #, php-format msgid "%1$s (%2$s) is wondering what you are up to " -msgstr "" +msgstr "%1$s (%2$s) цікавитьÑÑ, що у Ð²Ð°Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ " #: lib/mail.php:555 -#, fuzzy, php-format +#, php-format msgid "%1$s just added your notice from %2$s" -msgstr "%1$s тепер Ñлідкує за вашими повідомленÑми на %2$s." +msgstr "%1$s додав ваше Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ %2$s" #: lib/mailbox.php:229 lib/noticelist.php:380 msgid "From" -msgstr "" +msgstr "Від" #: lib/messageform.php:110 -#, fuzzy msgid "Send a direct notice" -msgstr "Видалити повідомленнÑ" +msgstr "ÐадіÑлати прÑме повідомленнÑ" #: lib/noticeform.php:125 -#, fuzzy msgid "Send a notice" -msgstr "Ðове повідомленнÑ" +msgstr "ÐадіÑлати повідомленнÑ" #: lib/noticeform.php:152 -#, fuzzy msgid "Available characters" -msgstr "6 або більше знаків" +msgstr "ЛишилоÑÑŒ знаків" #: lib/noticelist.php:426 -#, fuzzy msgid "in reply to" -msgstr "у відповідь на..." +msgstr "у відповідь на" #: lib/noticelist.php:447 lib/noticelist.php:450 -#, fuzzy msgid "Reply to this notice" -msgstr "Ðе можна видалити це повідомленнÑ." +msgstr "ВідповіÑти на це повідомленнÑ" #: lib/noticelist.php:451 -#, fuzzy msgid "Reply" -msgstr "відповіÑти" +msgstr "ВідповіÑти" #: lib/noticelist.php:471 lib/noticelist.php:474 -#, fuzzy msgid "Delete this notice" msgstr "Видалити повідомленнÑ" #: lib/noticelist.php:474 -#, fuzzy msgid "Delete" -msgstr "видалити" +msgstr "Видалити" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "\"Розштовхати\" кориÑтувача" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "\"Розштовхати\"" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "" +msgstr "Спробувати \"розштовхати\" цього кориÑтувача" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Теги у повідомленнÑÑ… %s" #: lib/profilelist.php:182 msgid "(none)" -msgstr "" +msgstr "(пуÑто)" #: lib/publicgroupnav.php:76 msgid "Public" @@ -4837,87 +4796,81 @@ msgstr "Загал" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "Групи кориÑтувачів" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 -#, fuzzy msgid "Recent tags" -msgstr "Ðедавні мітки" +msgstr "Ðові теги" +# ПОСТÐТЬ - Видатна оÑоба, визначний предÑтавник кого-, чого-небудь. +# "Featured" переклаÑти одним Ñловом, так щоб втиÑлоÑÑ Ð² таб на головній Ñторінці, важко. Ðа мою думку "ПоÑтаті", тобто кориÑтувачі, Ñкі варті уваги - цілком прийнÑтний замінник. #: lib/publicgroupnav.php:86 msgid "Featured" -msgstr "" +msgstr "ПоÑтаті" #: lib/publicgroupnav.php:90 -#, fuzzy msgid "Popular" -msgstr "Люди" +msgstr "ПопулÑрне" #: lib/searchgroupnav.php:82 -#, fuzzy msgid "Notice" msgstr "ПовідомленнÑ" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" -msgstr "Знайти людей на цьому Ñайті" +msgstr "Знайти групи на цьому Ñайті" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Розділ без заголовку" #: lib/subgroupnav.php:81 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Віддалена підпиÑка" +msgstr "%s підпиÑавÑÑ Ð´Ð¾ наÑтупних людей" #: lib/subgroupnav.php:89 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Віддалена підпиÑка" +msgstr "Люди підпиÑані до %s" #: lib/subgroupnav.php:97 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "%s бере учаÑÑ‚ÑŒ в цих групах" #: lib/subgroupnav.php:104 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "ЗапроÑÑ–Ñ‚ÑŒ друзів та колег приєднатиÑÑŒ до Ð²Ð°Ñ Ð½Ð° %s" #: lib/subs.php:53 -#, fuzzy msgid "User has blocked you." -msgstr "КориÑтувач не має профілю." +msgstr "КориÑтувач заблокував ваÑ." #: lib/subscribeform.php:115 lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "ПідпиÑку авторизовано" +msgstr "ПідпиÑатиÑÑŒ до цього кориÑтувача" #: lib/tagcloudsection.php:56 -#, fuzzy msgid "None" -msgstr "ÐÑ–" +msgstr "ПуÑто" #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Топ допиÑувачів" #: lib/unblockform.php:120 lib/unblockform.php:150 -#, fuzzy msgid "Unblock this user" -msgstr "Такого кориÑтувача немає." +msgstr "Розблокувати цього кориÑтувача" #: lib/unblockform.php:150 msgid "Unblock" -msgstr "" +msgstr "Розблокувати" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" -msgstr "" +msgstr "ВідпиÑатиÑÑŒ від цього кориÑтувача" #, fuzzy #~ msgid "Delete my account" diff --git a/locale/vi_VN/LC_MESSAGES/laconica.mo b/locale/vi_VN/LC_MESSAGES/laconica.mo Binary files differindex 730d087e1..314315c5d 100644 --- a/locale/vi_VN/LC_MESSAGES/laconica.mo +++ b/locale/vi_VN/LC_MESSAGES/laconica.mo diff --git a/locale/vi_VN/LC_MESSAGES/laconica.po b/locale/vi_VN/LC_MESSAGES/laconica.po index c62517cfa..2abf33609 100644 --- a/locale/vi_VN/LC_MESSAGES/laconica.po +++ b/locale/vi_VN/LC_MESSAGES/laconica.po @@ -3,12 +3,13 @@ msgstr "" "Project-Id-Version: laconica\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: \n" -"Last-Translator: LienNguyen <lien.nguyen@anhone.vn>\n" -"Language-Team: <support@saigonica.com>\n" +"PO-Revision-Date: 2009-01-31 05:21+0000\n" +"Last-Translator: Tuan Nguyen <group3t@gmail.com>\n" +"Language-Team: <support@saigonica.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Pootle 1.1.0\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-Language: English\n" "X-Poedit-Country: NEW ZEALAND\n" @@ -4934,7 +4935,7 @@ msgstr "còn nữa..." #: lib/noticelist.php:447 lib/noticelist.php:450 #, fuzzy msgid "Reply to this notice" -msgstr "cảnh báo tin nhắn" +msgstr "Trả lá»i tin nhắn nà y" #: lib/noticelist.php:451 msgid "Reply" diff --git a/locale/zh_CN/LC_MESSAGES/laconica.mo b/locale/zh_CN/LC_MESSAGES/laconica.mo Binary files differindex cb7ea11ce..15c5bf9e8 100644 --- a/locale/zh_CN/LC_MESSAGES/laconica.mo +++ b/locale/zh_CN/LC_MESSAGES/laconica.mo diff --git a/locale/zh_CN/LC_MESSAGES/laconica.po b/locale/zh_CN/LC_MESSAGES/laconica.po index bf064a138..df63b5715 100644 --- a/locale/zh_CN/LC_MESSAGES/laconica.po +++ b/locale/zh_CN/LC_MESSAGES/laconica.po @@ -8,12 +8,13 @@ msgstr "" "Project-Id-Version: identi.ca\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: 2008-12-16 21:31+0800\n" -"Last-Translator: Yuan Yijun <bbbush.yuan@gmail.com>\n" +"PO-Revision-Date: 2009-02-11 07:27+0000\n" +"Last-Translator: zhangfei <zhangfeisky@126.com>\n" "Language-Team: i18n-zh <i18n-zh@googlegroups.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Pootle 1.1.0\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 @@ -4642,7 +4643,7 @@ msgstr "这个页é¢ä¸æ供您想è¦çš„媒体类型" #: lib/joinform.php:114 #, fuzzy msgid "Join" -msgstr "登录" +msgstr "åŠ å…¥" #: lib/leaveform.php:114 #, fuzzy @@ -4784,7 +4785,7 @@ msgstr "" #: lib/publicgroupnav.php:80 msgid "User groups" -msgstr "" +msgstr "用户组" #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83 #, fuzzy @@ -4793,7 +4794,7 @@ msgstr "æœ€è¿‘çš„æ ‡ç¾" #: lib/publicgroupnav.php:86 msgid "Featured" -msgstr "" +msgstr "特å¾" #: lib/publicgroupnav.php:90 #, fuzzy diff --git a/locale/zh_TW/LC_MESSAGES/laconica.mo b/locale/zh_TW/LC_MESSAGES/laconica.mo Binary files differindex 5864c82b3..5b23372fb 100644 --- a/locale/zh_TW/LC_MESSAGES/laconica.mo +++ b/locale/zh_TW/LC_MESSAGES/laconica.mo diff --git a/locale/zh_TW/LC_MESSAGES/laconica.po b/locale/zh_TW/LC_MESSAGES/laconica.po index 922bdb927..c6f880623 100644 --- a/locale/zh_TW/LC_MESSAGES/laconica.po +++ b/locale/zh_TW/LC_MESSAGES/laconica.po @@ -3,18 +3,18 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-25 16:24+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2009-03-12 16:21+0000\n" +"Last-Translator: Evan Prodromou <evan@controlyourself.ca>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Pootle 1.1.0\n" #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68 #: actions/noticesearchrss.php:88 @@ -97,7 +97,7 @@ msgstr "" "\n" "\n" "%4$s.\n" -"敬上。" +"敬上。\n" #: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415 #: actions/twitapistatuses.php:350 diff --git a/plugins/BlogspamNetPlugin.php b/plugins/BlogspamNetPlugin.php new file mode 100644 index 000000000..d9372bcd5 --- /dev/null +++ b/plugins/BlogspamNetPlugin.php @@ -0,0 +1,144 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Plugin to check submitted notices with blogspam.net + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @copyright 2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +define('BLOGSPAMNETPLUGIN_VERSION', '0.1'); + +/** + * Plugin to check submitted notices with blogspam.net + * + * When new notices are saved, we check their text with blogspam.net (or + * a compatible service). + * + * Blogspam.net is supposed to catch blog comment spam, and I found that + * some of its tests (min/max size, bayesian match) gave a lot of false positives. + * So, I've turned those tests off by default. This may not get as many + * hits, but it's better than nothing. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * + * @see Event + */ + +class BlogspamNetPlugin extends Plugin +{ + var $baseUrl = 'http://test.blogspam.net:8888/'; + + function __construct($url=null) + { + parent::__construct(); + if ($url) { + $this->baseUrl = $url; + } + } + + function onStartNoticeSave($notice) + { + $args = $this->testArgs($notice); + common_debug("Blogspamnet args = " . print_r($args, TRUE)); + $request = xmlrpc_encode_request('testComment', array($args)); + $context = stream_context_create(array('http' => array('method' => "POST", + 'header' => + "Content-Type: text/xml\r\n". + "User-Agent: " . $this->userAgent(), + 'content' => $request))); + $file = file_get_contents($this->baseUrl, false, $context); + $response = xmlrpc_decode($file); + if (xmlrpc_is_fault($response)) { + throw new ServerException("$response[faultString] ($response[faultCode])", 500); + } else { + common_debug("Blogspamnet results = " . $response); + if (preg_match('/^ERROR(:(.*))?$/', $response, $match)) { + throw new ServerException(sprintf(_("Error from %s: %s"), $this->baseUrl, $match[2]), 500); + } else if (preg_match('/^SPAM(:(.*))?$/', $response, $match)) { + throw new ClientException(sprintf(_("Spam checker results: %s"), $match[2]), 400); + } else if (preg_match('/^OK$/', $response)) { + // don't do anything + } else { + throw new ServerException(sprintf(_("Unexpected response from %s: %s"), $this->baseUrl, $response), 500); + } + } + return true; + } + + function testArgs($notice) + { + $args = array(); + $args['comment'] = $notice->content; + $args['ip'] = $this->getClientIP(); + + if (isset($_SERVER) && array_key_exists('HTTP_USER_AGENT', $_SERVER)) { + $args['agent'] = $_SERVER['HTTP_USER_AGENT']; + } + + $profile = $notice->getProfile(); + + if ($profile && $profile->homepage) { + $args['link'] = $profile->homepage; + } + + if ($profile && $profile->fullname) { + $args['name'] = $profile->fullname; + } else { + $args['name'] = $profile->nickname; + } + + $args['site'] = common_root_url(); + $args['version'] = $this->userAgent(); + + $args['options'] = "max-size=140,min-size=0,min-words=0,exclude=bayasian"; + + return $args; + } + + function getClientIP() + { + if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + // Note: order matters here; use proxy-forwarded stuff first + foreach (array('HTTP_X_FORWARDED_FOR', 'CLIENT-IP', 'REMOTE_ADDR') as $k) { + if (isset($_SERVER[$k])) { + return $_SERVER[$k]; + } + } + } + return '127.0.0.1'; + } + + function userAgent() + { + return 'BlogspamNetPlugin/'.BLOGSPAMNETPLUGIN_VERSION . ' Laconica/' . LACONICA_VERSION; + } +} diff --git a/plugins/GoogleAnalyticsPlugin.php b/plugins/GoogleAnalyticsPlugin.php index 87a70e31e..1ecbb664e 100644 --- a/plugins/GoogleAnalyticsPlugin.php +++ b/plugins/GoogleAnalyticsPlugin.php @@ -37,7 +37,7 @@ if (!defined('LACONICA')) { * This plugin will spoot out the correct JavaScript spell to invoke Google Analytics on a page. * * Note that Google Analytics is not compatible with the Franklin Street Statement; consider using - * Pikiw (http://www.pikiw.org/) instead! + * Piwik (http://www.piwik.org/) instead! * * @category Plugin * @package Laconica diff --git a/plugins/LinkbackPlugin.php b/plugins/LinkbackPlugin.php new file mode 100644 index 000000000..56a26176b --- /dev/null +++ b/plugins/LinkbackPlugin.php @@ -0,0 +1,224 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Plugin to do linkbacks for notices containing links + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @copyright 2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once('Auth/Yadis/Yadis.php'); + +define('LINKBACKPLUGIN_VERSION', '0.1'); + +/** + * Plugin to do linkbacks for notices containing URLs + * + * After new notices are saved, we check their text for URLs. If there + * are URLs, we test each URL to see if it supports any + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * + * @see Event + */ + +class LinkbackPlugin extends Plugin +{ + var $notice = null; + + function __construct() + { + parent::__construct(); + } + + function onEndNoticeSave($notice) + { + if ($notice->is_local == 1) { + // Try to avoid actually mucking with the + // notice content + $c = $notice->content; + $this->notice = $notice; + // Ignoring results + common_replace_urls_callback($c, + array($this, 'linkbackUrl')); + } + return true; + } + + function linkbackUrl($url) + { + $orig = $url; + $url = htmlspecialchars_decode($orig); + $scheme = parse_url($url, PHP_URL_SCHEME); + if (!in_array($scheme, array('http', 'https'))) { + return $orig; + } + + // XXX: Do a HEAD first to save some time/bandwidth + + $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); + + $result = $fetcher->get($url, + array('User-Agent: ' . $this->userAgent(), + 'Accept: application/html+xml,text/html')); + + if (!in_array($result->status, array('200', '206'))) { + return $orig; + } + + $pb = null; + $tb = null; + + if (array_key_exists('X-Pingback', $result->headers)) { + $pb = $result->headers['X-Pingback']; + } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?/?>/', + $result->body, + $match)) { + $pb = $match[1]; + } + + if (!empty($pb)) { + $this->pingback($result->final_url, $pb); + } else { + $tb = $this->getTrackback($result->body, $result->final_url); + if (!empty($tb)) { + $this->trackback($result->final_url, $tb); + } + } + + return $orig; + } + + function pingback($url, $endpoint) + { + $args = array($this->notice->uri, $url); + + $request = xmlrpc_encode_request('pingback.ping', $args); + $context = stream_context_create(array('http' => array('method' => "POST", + 'header' => + "Content-Type: text/xml\r\n". + "User-Agent: " . $this->userAgent(), + 'content' => $request))); + $file = file_get_contents($endpoint, false, $context); + $response = xmlrpc_decode($file); + if (xmlrpc_is_fault($response)) { + common_log(LOG_WARNING, + "Pingback error for '$url' ($endpoint): ". + "$response[faultString] ($response[faultCode])"); + } else { + common_log(LOG_INFO, + "Pingback success for '$url' ($endpoint): ". + "'$response'"); + } + } + + // Largely cadged from trackback_cls.php by + // Ran Aroussi <ran@blogish.org>, GPL2 + // http://phptrackback.sourceforge.net/ + + function getTrackback($text, $url) + { + if (preg_match_all('/(<rdf:RDF.*?<\/rdf:RDF>)/sm', $text, $match, PREG_SET_ORDER)) { + for ($i = 0; $i < count($match); $i++) { + if (preg_match('|dc:identifier="' . preg_quote($url) . '"|ms', $match[$i][1])) { + $rdf_array[] = trim($match[$i][1]); + } + } + + // Loop through the RDFs array and extract trackback URIs + + $tb_array = array(); // <- holds list of trackback URIs + + if (!empty($rdf_array)) { + + for ($i = 0; $i < count($rdf_array); $i++) { + if (preg_match('/trackback:ping="([^"]+)"/', $rdf_array[$i], $array)) { + $tb_array[] = trim($array[1]); + break; + } + } + } + + // Return Trackbacks + + if (empty($tb_array)) { + return null; + } else { + return $tb_array[0]; + } + } + + if (preg_match_all('/(<a[^>]*?rel=[\'"]trackback[\'"][^>]*?>)/', $text, $match)) { + foreach ($match[1] as $atag) { + if (preg_match('/href=[\'"]([^\'"]*?)[\'"]/', $atag, $url)) { + return $url[1]; + } + } + } + + return null; + + } + + function trackback($url, $endpoint) + { + $profile = $this->notice->getProfile(); + + $args = array('title' => sprintf(_('%1$s\'s status on %2$s'), + $profile->nickname, + common_exact_date($this->notice->created)), + 'excerpt' => $this->notice->content, + 'url' => $this->notice->uri, + 'blog_name' => $profile->nickname); + + $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); + + $result = $fetcher->post($endpoint, + http_build_query($args), + array('User-Agent: ' . $this->userAgent())); + + if ($result->status != '200') { + common_log(LOG_WARNING, + "Trackback error for '$url' ($endpoint): ". + "$result->body"); + } else { + common_log(LOG_INFO, + "Trackback success for '$url' ($endpoint): ". + "'$result->body'"); + } + } + + function userAgent() + { + return 'LinkbackPlugin/'.LINKBACKPLUGIN_VERSION . + ' Laconica/' . LACONICA_VERSION; + } +} diff --git a/plugins/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalyticsPlugin.php new file mode 100644 index 000000000..d2c52354e --- /dev/null +++ b/plugins/PiwikAnalyticsPlugin.php @@ -0,0 +1,104 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Plugin to use Piwik Analytics + * + * PHP version 5 + * + * LICENCE: This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @author Tobias Diekershoff <tobias.diekershoff@gmx.net> + * @copyright 2008 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +/** + * Plugin to use Piwik Analytics (based on the Google Analytics plugin by Evan) + * + * This plugin will spoot out the correct JavaScript spell to invoke + * Piwik Analytics on a page. + * + * To use this plugin please add the following three lines to your config.php + * + * require_once('plugins/PiwikAnalyticsPlugin.php'); + * $pa = new PiwikAnalyticsPlugin("example.com/piwik/","id"); + * + * exchange example.com/piwik/ with the url to your piwik installation and + * make sure you don't forget the final / + * exchange id with the ID your laconica installation has in your Piwik analytics + * + * @category Plugin + * @package Laconica + * @author Tobias Diekershoff <tobias.diekershoff@gmx.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + * + * @see Event + */ + +class PiwikAnalyticsPlugin extends Plugin +{ + /** the base of your Piwik installation */ + var $piwikroot = null; + /** the Piwik Id of your laconica installation */ + var $piwikId = null; + + /** + * constructor + * + * @param string $root Piwik root URL + * @param string $id Piwik ID of this app + */ + + function __construct($root=null, $id=null) + { + $this->piwikroot = $root; + $this->piwikid = $id; + parent::__construct(); + } + + /** + * Called when all scripts have been shown + * + * @param Action $action Current action + * + * @return boolean ignored + */ + + function onEndShowScripts($action) + { + $js1 = 'var pkBaseURL = (("https:" == document.location.protocol) ? "https://'. + $this->piwikroot.'" : "http://'.$this->piwikroot. + '"); document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\''. + ' type=\'text/javascript\'%3E%3C/script%3E"));'; + $js2 = 'piwik_action_name = ""; piwik_idsite = '.$this->piwikid. + '; piwik_url = pkBaseURL + "piwik.php"; piwik_log(piwik_action_name, piwik_idsite, piwik_url);'; + $action->elementStart('script', array('type' => 'text/javascript')); + $action->raw($js1); + $action->elementEnd('script'); + $action->elementStart('script', array('type' => 'text/javascript')); + $action->raw($js2); + $action->elementEnd('script'); + return true; + } +}
\ No newline at end of file diff --git a/plugins/TemplatePlugin.php b/plugins/TemplatePlugin.php new file mode 100644 index 000000000..03daf6219 --- /dev/null +++ b/plugins/TemplatePlugin.php @@ -0,0 +1,344 @@ +<?php +/** + * Plugin to render old skool templates + * + * Captures rendered parts from the output buffer, passes them through a template file: tpl/index.html + * Adds an API method at index.php/template/update which lets you overwrite the template file + * Requires username/password and a single POST parameter called "template" + * The method is disabled unless the user is #1, the first user of the system + * + * @category Plugin + * @package Laconica + * @author Brian Hendrickson <brian@megapump.com> + * @copyright 2009 Megapump, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://megapump.com/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +define('TEMPLATEPLUGIN_VERSION', '0.1'); + +class TemplatePlugin extends Plugin { + + var $blocks = array(); + + function __construct() { + parent::__construct(); + } + + // capture the RouterInitialized event + // and connect a new API method + // for updating the template + function onRouterInitialized( &$m ) { + $m->connect( 'template/update', array( + 'action' => 'template', + )); + } + + + // <%styles%> + // <%scripts%> + // <%search%> + // <%feeds%> + // <%description%> + // <%head%> + function onStartShowHead( &$act ) { + $this->clear_xmlWriter($act); + $act->extraHead(); + $this->blocks['head'] = $act->xw->flush(); + $act->showStylesheets(); + $this->blocks['styles'] = $act->xw->flush(); + $act->showScripts(); + $this->blocks['scripts'] = $act->xw->flush(); + $act->showFeeds(); + $this->blocks['feeds'] = $act->xw->flush(); + $act->showOpenSearch(); + $this->blocks['search'] = $act->xw->flush(); + $act->showDescription(); + $this->blocks['description'] = $act->xw->flush(); + return false; + } + + // <%bodytext%> + function onStartShowContentBlock( &$act ) { + $this->clear_xmlWriter($act); + return true; + } + function onEndShowContentBlock( &$act ) { + $this->blocks['bodytext'] = $act->xw->flush(); + } + + // <%localnav%> + function onStartShowLocalNavBlock( &$act ) { + $this->clear_xmlWriter($act); + return true; + } + function onEndShowLocalNavBlock( &$act ) { + $this->blocks['localnav'] = $act->xw->flush(); + } + + // <%export%> + function onStartShowExportData( &$act ) { + $this->clear_xmlWriter($act); + return true; + } + function onEndShowExportData( &$act ) { + $this->blocks['export'] = $act->xw->flush(); + } + + // <%subscriptions%> + // <%subscribers%> + // <%groups%> + // <%statistics%> + // <%cloud%> + // <%groupmembers%> + // <%groupstatistics%> + // <%groupcloud%> + // <%popular%> + // <%groupsbyposts%> + // <%featuredusers%> + // <%groupsbymembers%> + function onStartShowSections( &$act ) { + global $action; + $this->clear_xmlWriter($act); + switch ($action) { + case "showstream": + $act->showSubscriptions(); + $this->blocks['subscriptions'] = $act->xw->flush(); + $act->showSubscribers(); + $this->blocks['subscribers'] = $act->xw->flush(); + $act->showGroups(); + $this->blocks['groups'] = $act->xw->flush(); + $act->showStatistics(); + $this->blocks['statistics'] = $act->xw->flush(); + $cloud = new PersonalTagCloudSection($act, $act->user); + $cloud->show(); + $this->blocks['cloud'] = $act->xw->flush(); + break; + case "showgroup": + $act->showMembers(); + $this->blocks['groupmembers'] = $act->xw->flush(); + $act->showStatistics(); + $this->blocks['groupstatistics'] = $act->xw->flush(); + $cloud = new GroupTagCloudSection($act, $act->group); + $cloud->show(); + $this->blocks['groupcloud'] = $act->xw->flush(); + break; + case "public": + $pop = new PopularNoticeSection($act); + $pop->show(); + $this->blocks['popular'] = $act->xw->flush(); + $gbp = new GroupsByPostsSection($act); + $gbp->show(); + $this->blocks['groupsbyposts'] = $act->xw->flush(); + $feat = new FeaturedUsersSection($act); + $feat->show(); + $this->blocks['featuredusers'] = $act->xw->flush(); + break; + case "groups": + $gbp = new GroupsByPostsSection($act); + $gbp->show(); + $this->blocks['groupsbyposts'] = $act->xw->flush(); + $gbm = new GroupsByMembersSection($act); + $gbm->show(); + $this->blocks['groupsbymembers'] = $act->xw->flush(); + break; + } + return false; + } + + // <%logo%> + // <%nav%> + // <%notice%> + // <%noticeform%> + function onStartShowHeader( &$act ) { + $this->clear_xmlWriter($act); + $act->showLogo(); + $this->blocks['logo'] = $act->xw->flush(); + $act->showPrimaryNav(); + $this->blocks['nav'] = $act->xw->flush(); + $act->showSiteNotice(); + $this->blocks['notice'] = $act->xw->flush(); + if (common_logged_in()) { + $act->showNoticeForm(); + } else { + $act->showAnonymousMessage(); + } + $this->blocks['noticeform'] = $act->xw->flush(); + return false; + } + + // <%secondarynav%> + // <%licenses%> + function onStartShowFooter( &$act ) { + $this->clear_xmlWriter($act); + $act->showSecondaryNav(); + $this->blocks['secondarynav'] = $act->xw->flush(); + $act->showLicenses(); + $this->blocks['licenses'] = $act->xw->flush(); + return false; + } + + // capture the EndHTML event + // and include the template + function onEndEndHTML($act) { + + global $action, $tags; + + // set the action and title values + $vars = array( + 'action'=>$action, + 'title'=>$act->title(). " - ". common_config('site', 'name') + ); + + // use the PHP template + // unless laconica config: + // $config['template']['mode'] = 'html'; + if (!(common_config('template', 'mode') == 'html')) { + $tpl_file = 'tpl/index.php'; + $tags = array_merge($vars,$this->blocks); + include $tpl_file; + return; + } + + $tpl_file = 'tpl/index.html'; + + // read the static template + $output = file_get_contents( $tpl_file ); + + $tags = array(); + + // get a list of the <%tags%> in the template + $pattern='/<%([a-z]+)%>/'; + + if ( 1 <= preg_match_all( $pattern, $output, $found )) + $tags[] = $found; + + // for each found tag, set its value from the rendered blocks + foreach( $tags[0][1] as $pos=>$tag ) { + if (isset($this->blocks[$tag])) + $vars[$tag] = $this->blocks[$tag]; + + // didn't find a block for the tag + elseif (!isset($vars[$tag])) + $vars[$tag] = ''; + } + + // replace the tags in the template + foreach( $vars as $key=>$val ) + $output = str_replace( '<%'.$key.'%>', $val, $output ); + + echo $output; + + return true; + + } + + // catching the StartShowHTML event to halt the rendering + function onStartShowHTML( &$act ) { + $this->clear_xmlWriter($act); + return true; + } + + // clear the xmlWriter + function clear_xmlWriter( &$act ) { + $act->xw->openMemory(); + $act->xw->setIndent(true); + } + +} + +/** + * Action for updating the template remotely + * + * "template/update" -- a POST method that requires a single + * parameter "template", containing the new template code + * + * @category Plugin + * @package Laconica + * @author Brian Hendrickson <brian@megapump.com> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://megapump.com/ + * + */ + +class TemplateAction extends Action +{ + + function prepare($args) { + parent::prepare($args); + return true; + } + + function handle($args) { + + parent::handle($args); + + if (!isset($_SERVER['PHP_AUTH_USER'])) { + + // not authenticated, show login form + header('WWW-Authenticate: Basic realm="Laconica API"'); + + // cancelled the browser login form + $this->clientError(_('Authentication error!'), $code = 401); + + } else { + + $nick = $_SERVER['PHP_AUTH_USER']; + $pass = $_SERVER['PHP_AUTH_PW']; + + // check username and password + $user = common_check_user($nick,$pass); + + if ($user) { + + // verify that user is admin + if (!($user->id == 1)) + $this->clientError(_('only User #1 can update the template'), $code = 401); + + // open the old template + $tpl_file = 'tpl/index.html'; + $fp = fopen( $tpl_file, 'w+' ); + + // overwrite with the new template + fwrite($fp, $this->arg('template')); + fclose($fp); + + header('HTTP/1.1 200 OK'); + header('Content-type: text/plain'); + print "Template Updated!"; + + } else { + + // bad username and password + $this->clientError(_('Authentication error!'), $code = 401); + + } + + } + } +} + +/** + * Function for retrieving a laconica display section + * + * requires one parameter, the name of the section + * section names are listed in the comments of the TemplatePlugin class + * + * @category Plugin + * @package Laconica + * @author Brian Hendrickson <brian@megapump.com> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://megapump.com/ + * + */ + +function section($tagname) { + global $tags; + if (isset($tags[$tagname])) + return $tags[$tagname]; +} + diff --git a/scripts/SearchMonkey-MrH.0.txt b/scripts/SearchMonkey-MrH.0.txt new file mode 100644 index 000000000..34191d90a --- /dev/null +++ b/scripts/SearchMonkey-MrH.0.txt @@ -0,0 +1 @@ +b2.PXYLSJBuLkZnUQ7H.2gOSSTbVllQM_XyN0ya4sO9CNt5uBUATEGyKd3LkkR0QXTSduKb7xj7Bp1TX6.8XdIDsOVVuXe.3HPnPLtSacZm66.NLY3JGhJv1MfGvcJU42YEQiUvpAhZRe46E.lv38ZPzxvhjjAmGFyFv8UNuhdw6sNIlTwBdct3k1GKA1YSEeVJ_xLiAVa8IaU_XG8PlxMovsBPePOry8__.aAp5loHtmqX6vEVu3lcHEn5NvSZ502QoWkK_20Y.6oja.Fqqxtr6eli_AQXaVzWWDEu_D4_rDV9Mz_.EC8KzXKo.YdUaWQfS9akqNm1v54wTNM4ZDegsbKnaNUR7J0OYgzpzcPj4L57yWKFm7k2af.v2loGrUOKJGO3rBcOQSfUz5jyCKDdd29cdd2L96XA0Uy31RjvdWSsprigS94HjoE9e5TUMHHZt47Wi50DsMq5R87uznHTouuHOKyxT3c_wCejxb_A0lVM5JL4VnrjVEo0CkY5ju1fDXfXG.Q8T4WYbnW_4i4W.DAuaFiRxIsLtrSG5bpMvJWQ8MTfc39gaLkNtGACL_O8IxX7iyFjARapuIXPhu3v3ndEt6qlgcUsEBl6zhxe6WcTQssBTUSDSPQWMmbA8TCYe1xwHd3ukSdqkhkALdIri2oeLLhkbNQRKxouIWHqL5aH0r7CCKM.P87rJE1meb28ux00FrBg4Fa62RM5S5Wn24u0odvPGK9JGmzisi.zM2cULr8C03gwBEeGDXzLIPevVnoqcYvtUfs8_B9xtaFzsKEM.04JX94e5Y_qWqfJs2.vWdY02BwWNsM1ONUzsS5qBzFhNpVnvZYHkNuOGXLb7cg7sL0Zm9pGMQPJsffThK2KY5EGSxbCB_JMqZmu9UtmcFyrsny7Yo1z6uCgu7GzN9_6Tc_DGW4OyuOm6XaLZSbGApmGosEKRKIODNAUGyT6QChSEwnPxhgYVpIn1TYualgrBtwvON5d84Up5.mxTH5ZHDjQcW04oE1dp2mBQhlUHvTF.PbEuUztvA8mMuLZgERcE01oOKkDlh9gvjZNiMs6f8SPmulKmtvheecitvB4Urgkae_PiXbcD4aOL4PyjwByX4zpCw9NG8Ga.6JLv1nH.vEE5XBCzh0_rnEmv0XzNBjiE8nj_p2pntfxmdpEeSGrA8WzigZTHrjawltlC_sMGLqR0EfRqoVrs3NtH8jafQ8DoqKUnR1wiG1BFC9PiQzPbPunYvVT_vMILkfwHDS7gY4bfZAlLrfbC0n8EKumGJc1o1ag_VsfnO2O8vE9667oVTaAGMmxXA_g1qpPVJTDWHRm4kwA6SWTZ6RCSb0Scd_DTXN4cevjn3sSGOCKE5Tocd1s4JRCuDPGQ9XI1OXGSKZrUuuM8mUlZqj6A.FWgdv2c5qXoRla.Qlb6encfFh8gnBNNoIR5X4F9PFl7.Yq38Vi0BJ7zIJVYAU8UXqJqPKKN.qH4A941m8jG7trm9NBrsRIkyCJBE5W1UVZ4x4sBDSuJMT_UCYCyn_qsjHkYpJOaYt44c7PT5U_S8oVUUe0qtuvmQ5DK.cZAU1hdw9fINikie3yGxO66lWRPtmM1rqTHwEHqaJXkn4mnRhQmHE.pqB.N_Byir3AiezaA2EGi6Z7.G99XrOjxJ0tIyim39AkoPZbeWqVlLDL.4AGCzPLQyndMClwWJdjcHBaSrxGGL1OpZ9cGA6w1zLD_6uyP4gK2pGTGxvOk4TFqrpc07eX7j6agiBfkUzYykXSm_JYDVZqiivMwKVEynFsX24erN0kd379wr_QI8Ov2nfXudbZn9EY1bhmupuAtMqpW.dNGk7YJ3AD31zrfz2KcZjdQuLkTYwqW4zI3YEI0jFqk0WYXSUmCNRzbdvmoZI1kAWRw2COuUnYeMfoTiMeJGgUd.g--
\ No newline at end of file diff --git a/scripts/SearchMonkey-Om3.0.txt b/scripts/SearchMonkey-Om3.0.txt new file mode 100644 index 000000000..6f8840962 --- /dev/null +++ b/scripts/SearchMonkey-Om3.0.txt @@ -0,0 +1 @@ +WJofugbSJAtzh.lFcHxO_WHM64iJd7qHJFbsqC9VLnpiqoBxdbE0iwoKozxZC331Svk6O9Un9jonWUrQeTndGO8hldPlxqGdFdbl6OjoucDGG_h6qBw3Ugnbethbyuew1qOaUr6ItfU4Pe9O2GtUj2KbqxZpUAvMeiS20hykHbIZ8n_1.fl.fTToLiJn58zcLc1_ryM0f5jbkIGwmGX_SG6isGJRzC4.BiNmntpJ5ZCKa80e7oUH9S6NlM5SEmXoA3zhuzkbBxF_fKLendcC7EafnTT34MbgD5s4uwTyubSBJvdmBu.mWSO9xrnojM903Vo8h3.UdG.id1LmFrj4xxd24IQqZM2v4zOfl8ugF8ChHaIzp82A1AOuk0ulkqKgiALia6bsZMbKdPZtlu_HGrF06tCt5VGvu5f0ZgjRk_kOlP_f_oppyVKRWzZpSH9GryOpoqJA2vlxgEH2BvZqaaUYEmaYJjIh7eNkLRLVorbK7rGhPf_L5qfHir.31Ar1zZxWgvhjSW7ipkvsNr_3j7oOh1LSTVWNHo.dpLT0_dib6syFopav2FqStJG0RTsWNXkQ_6h.jf439DjwuZmCLMcbUrMAMrRVcsUyR5nfqP5cP0igSx8m.oONA7O.txOXSzc3HjqvIVSTRO8BIHx.vTMJ6mq4NUmZ6_pHWapHbO9esUlIyXf5CF2qhtlM9aulr2fwCf8BqtjQctAtvYLrI_qKP95wNaB_qhcuFsZN1aiql.FtigHe2YYTix4SWg9.67VSBAyOqjWcA5jbyoomf8Gxzks9PZQfSuKbkbw_x3XOshGl4QMo6CEypV0qIYVVW77bOJc7I0WgwgxuAKg6lROlmsIdN0.SeTV4sY1ZcoLEgdNCNb81SVstXdE0iPXPZZsEStez.qluWnQoVkkWfOaBe78PxPZUvQS02RaR0FCH4bksqGWXLA8chAHIe4vPNerCLJwskKG3rA43xRDEZY7sgdEfA93iTztmIRq8dkYA6dJOxOMtvpSdh9jds04xpdmfhb23bVYp1XCp3qWka6JoKlzvQU2THqFr7gNU3KMCbr2ngHHkDTZGNO__MLa3SKlp2Vg3qHXxkivFUmWTNUz5vuW7v.FhsKOVFIFfSrTl3pjJMD3hyIlxzf_HJ60q1LRBkwqxrA9e8Fr5tqWQj.evL5kqz_r26MdHFeMTx9VwfDnHLaVx3eu5Wy2NJmLVPRLNn4t1VhexsEdLquy0ynBVBOBBRa2HbYgv0lXOP.QRl5twTKwJO6fx6J4_L_HhPv6jhcQej1LtUyGyKwLuXrHxnHCOqD.e9ZL_xnqSRthM6NvBsvbnZOPr7falUuQWPzbikXMFUvSlckeetPi2Z11l9pH.cxZDj19B38v7jwT5zZMQN9FzQvTCvzrQCpHxfIxwh3a2cx18BEMKHL7MJWDsoYVURtI3iIdR84WzXcr3kkCz.LM8tqTKVkzHLk8Grx8KT3dF5ZIVhWK5yyb05RFOZdoZQ4cWXmvsaQhDUd6Dm2KRJiypSFntLLSp34URsLaqzxaakMnywHvfmsINah4oKBBy8.NFBRULU9SqTyIOwf6_ggWG06J1WJxWV94RRCD1rMNNM9ISMOo4yB_dmfLHnXKOZm1lOnisEN36gsxniy_psLN3Ed1ozRtbbD.wALfE.92DrDA9ASPOdu08P7xer76iXVbdt_4cg5whY59Hq2N.A1mrSbetDbSu7NeziZ.nBvSUg_YpVvMo2H3elySL.1UsLPFznStGuYfbISN79MZecU.ScSCtaeZQ2cBFekXMNT77HWZmv6YLsz84ceQwL_MidvAYqPh6PUNiBl8iwFR5PCpTB54.g0m3zuALOqF9hJ598v9rh9Zlu1SfE.UfmGpUICMSuXH7C8zHMq4TFZGzCuBY9EOuBc.JQaCfBr8N3jnDq2bwlQjDmgbVW2xm2WpPMCB0OxkqoggA0i4ZZA3gSfqhlZ9mdmr_l9mUe0dOd_EkyWyu0l.Z1.VQLY2KJHl.8pZWyP6S_RAFmABOlEGP3m1E8NxaMP87o9ot_BNg21DeHbwADKbv16deRlDrKmntHoPwfsaTPNo5KembI_4nHxQ3y2B2OjsUPcLYFZZtsP4ukLBhYusR8SdtsEC._plxsMQzS9nH.zRP8nbluMlUjCKgfepGN_rCq.NeGON.L_.FowXEOcX7M1SD.IfihdAHqk0zUpuyTfe.9E77aEu26iIZOGmyOwSqRvN9HksJx.iMk5xL.xah7hl.NByMBbmkRDS52wDMxygNpPXsIHdvu8OyLxq.ZsNBGF.IHs0qiquX4.RZ2TBqTQ6O4AhzOTpFeZlG3UzdmxsEtDI2a7tY_27Gg39apf_83ijjiLaJE2RG5Mb9krZ2RCIAXaFez74o_oqli5dy6WyT4lEIKtw38T7m1bJ_xpLju5FBQUE54RpsK.ZWSAoyh3c05b2mBeN2id_NV7sM4MinY7rEsOgNVevUNrWebNrrdunUF8gsa59cXdGSKvmUw9kEKW_Z6Y14AICD43zlmVGYDYlSLqpHsu32m9aGuQFlqzBlHCKPg9uD9dyFKsZJI8l2yq91sEj9snlYhApmHLVQzGWLiOJCJUclByiPmVD_.OnHE84lBcv0bkXKFYXvUhFs2Xu1VrN1mGXz50KkG4Xovzkw0ueuWlJ2vozPUf9CkJ1mlOA4jwuFLMrQZmN04aXyR3ZWFN8pdSVITI0ADqNr9OGacCra.emTRIWdBLEj18kp39vhlR6BpxI2V0FQjC_27n2hkDUNAUNFaJ1Q84OO2mgzZnPXcN7NYz57W3lB_mMVUtKngnRlTNWn1sFdN6.WFQ1szScjtpFa68NBv5pLUOvKy49VWjn14uS4aUoDL_fbMi9tGw0tlrMEr74fm5hJNwPX1QKd3cy0jqDHLIpZTb1aNxIz_KU4XIJ2wx0gZZQH2zV7eTxsrozzo3J0TtiQC6pPOqbnsRF1TuX1..DV5LzUdKX0TUXyO8x0710.EF4z6pim0HuVKzV2VBKmG6qtzpIRCKzVk14lx2E9YkJTQusU9qZnw9Ixu_YL0Ue_4LachvurMZDYTIRcSyd4St3TmtZswmeLPS6Md6NtHwxQEy.RVLhuCmliiZcw9hB.CH6v0UX1i9E6r_FZyboWtnzX42mZDrJR4n1u2nGFzYwJrDN_kJ3uHKs4EoV9ESEd5AojHDWSkOs4lKbyRlYwhGrHgB25mZ2xRdBtkHMDupYisNjOJ.QEIXzpK291wKHWTL.VdeTOLqGxsthxoR7AOdnzalMIuUItxagzB14Gw2eZ5PcIZvcgO9C4BouZW4SAg0D0Xhmd4A0MW0an7NqzXM4VDVg6WMgeBHqL54yfHjK4oMkwDUQTvqNH13AKINKbtr5t5JJzfpSN0fmfysA1Z1PdkJROhFkyH1_ZXcoMJp2XbYSk6ZXm69U4j4QCYe_vmkp3NM802bMpohywJRxYstmfIxinJukmZOEiSClAk1MhRGVlj60w8ggV29QYa_pdqUjTm0DwYZQF1Z_NVkhVXVv7bQMpRQJPIMwf3TggPPHVAMA1tk0OdPFOCx1207E-
\ No newline at end of file diff --git a/scripts/SearchMonkey-yQP.0.txt b/scripts/SearchMonkey-yQP.0.txt new file mode 100644 index 000000000..dcfc31ad1 --- /dev/null +++ b/scripts/SearchMonkey-yQP.0.txt @@ -0,0 +1 @@ +8Yd1y.bSJBPj3Ul5NjhQHFX0dN0NuJAfBObEdgIY2QDh0bVXkzcJbNlBamPSFBZqHojxbPzIj5GlY3XdxGMY6ttYzBHvc_FK5krngYtlLSmBtjRArxI_bBfngIxeI2kFC3wPvHIdzp8gygRp2.IlDahWHABFhAPrPrxAkAOqv6O3tKUTTzcnZX22eOdoXVXQSMiphlDQIxpfbdpLnduBvMxvI.hwrfAW4iIVY7iBjkdnrtdAVj4N2.u65khGuAwaX9i6Buca3XQJm601Atf6fjM57yOFA0.laixrOss1_F36iqrc4mOeWnYI_UDw8SgIrXroswrJ.KwXlqCdICxel3Ui0hfrOoGnCt4HHT9tiObu9VG.GxM2KQ_tjb1LwFFX0WEisFKXfQwpR_2NU..0j1icWhnmPHFJGsImvX1dFgeTqcNvoAcfZ0y9c8KQKzV5CbQeg9_oPC7uviIdxQK2lJ7SzgRfZAw4FDeDXKDxuVZRE7jZYQEWtkmp9dFlFLM_L0dPk4kiJuRrRPJ8DAyWSiex_ib1mJ3bHAxbsEcWoUunIOivWVdZDudCBath8AdoAQ0P8_f.fl8jYgbZil49Qhg.WmFD_H0w7ikdEi1iHsWnjSrDORtAjENGvoEje0h.gMBf38FbQ6vW2BbKC.RBKp.cQhVPvDHel1UFtqZ8IJm7mTP0BDSDG2iFJp1_N7L5MUoUxEwgskMxeQf99vE1UybdR4q0kbx6i_RR3_6.AQ5QKk1EBeKAfnVYDdwcLGVgWd9JxxvekkL7Scl1ncZ9ViLvlC3Hfrbtrm2Q5rr17pIG6L.a6gDKKH1NGgapyLUCVtKZ27Ysd9ExMF1yHfMAyOKL5I7KaJmZTZnxWQ9ex.hHS6tZ9WjPFhjvpve7H_mB8ZXNBdEc4bL.iRdknHNe3WSSgCLWf2RVFZ4wmVMYW4KwGpIp7iGbaUDBYdBFkcCmv6zeneEsLGJHUYipsay5unopuFyBe611pwFRNHZ3XznmqaK8TXl18k_PCmQ6g93.fXFeWKmszw_FArltYuXHNIm3zwRobvDo7Rp0znnt76Q0ha3q5WHggFd6.QmC6jywGLpki_09v0Pc6qGh4gpGt1vZeZrA1OGQ7VSB7Muo4Mr4TbQU_6342nXeG0tBImIanPZsQrew1.tOmAfn16UpzcCuEC3NWw99yipIaEZirdr4teITB7xX3x6UGRcjtoAlz8oo6VEYaFX7ybG6Bo.K4hspnJLWH6jKK4hcpYedE2qSB0W4z_ieFy6Y.2qrx8_3CL1_8h5w6PjXOFTmsyk0v0DXQVuGh8QxPgPVyrWyDzlXJZ.5_mHTohGRGCI41I6jGJcCOh3qEQZKF2VYb.3o00Le9YlXxpBIBh7rBw5vNypp9jSd.W6VPnQ53xM6QzVbYW4OV3gkVE__AgvKNUzfRHiK9dN7evwvKX66W4tUPGQapjGbRWnFc3Q_0__oMYTtSR3EMxs0Lvkjh87s0SMxy0gzvVCfNt4VrdZCzdBd8N8Tcj5Pc4KJ09ikPtNB3V8i6jtcVUuKzs32B37O6AA2iOydQdsPDEhfkDA0S_ocu3DqqBsJOYmzjRq39e1WFhlRijNftxHF6DRvzpSIIm5VzcwIg8LLl4zbHyeRXEmBDp.KvlfP_.z2IUqilhGeccCmV2XFD_VFidZclzscmceMmuBOXYmaplSW3sX94eM7mp2dyDjVXtR4igukNU8Fabaqilu98OKIv9mLdTlE9u7t25KNqMHQQOsYNM4BUocalSN1K3JOot544vz9VbWJfIljF2L6DCduJd6h9aDH5wLMjljRqrteltA3yz86ensnOZ5wmU8X3NMpPN.OCXM8zxqdhEGxE_jeXkpf4AKIFWYrn8zH84sFU60gpy3xMOleKK6NfrFDRdzxkBIJGV7yhBaDi1_0iZuwm8hVLFe2odNyEKbllCeXYpeMJwe3w_e7XQD1T2Zv4bvK69qYPhmkngPs7_nCYYUFWKlvkg0njZyxn3kNSTONHjzrLSlTWMvGobei1GV74wJzWmmZpC1yQNOe_8Stjbj5Lg47iELys5kCMWU1NyIQf16AT35xTlPCYJ_RNVy3yDNeh5kqy9AMX_HIJOHw8xwJEUoiqKzWzLV.BWmpzcny9_7P2naXBrzRlOYmYyWUtp.P0gGNxLZXtEaKKGgdQB.fYXUyuKH0ptXqj1YCl1g1KWo3.AwndjDy0PE8ZYCaCjz.EyXqx.8bvfJycccGRw5RVU74aydE0DRCC3vF6VI9qbPWK89HNTMWxPSSTHdChY6yAhNsc5UhDwsAmhZ_UIYynZ8AM_oCS232.einbw9fYI4X6yZm_fD60DJ1FsBweU9ivf3Y4X2ucLFY8xPp_8SxZ5UtaP67TKflzMYjuvhGXAUF9.1u8ZKJGOliFmMxIwJ7lPJs93HfZgLN2eyH6F.rZjREeyd0fbsRzZ_vMEs4fx6sX4eIGVoyVFpO5b11kxnBqlKnATI_nw1.exkl5sQj00clwphsecXiVLaDFCEjG94ve_1cw2foqQUoX6pUfqr_hSSpnacdacPclbxWPehuN5LpjMso_5b4v.rj4s9VtzRqxovBinIgBdTFAH560aN5f7wuN5ZZT_BT5aCFNwQBYoDfCTaU9jw3aaXU29vEJmYZcvC9WCpU0RTntciGlx8rIbagu7cUGrYFvLbU2ZekazCMklPO5Sno_z5zzxLnTpFxesNoreOj7M3Cp1RHKUmqAog04bYC9kPFvH_q.jF2g507LEN3nPL9EJUx460UG_o4HRQOhDi2YrmrHk.gLZECgnMwCN770fhL
\ No newline at end of file diff --git a/scripts/facebookqueuehandler.php b/scripts/facebookqueuehandler.php new file mode 100755 index 000000000..c6859cb21 --- /dev/null +++ b/scripts/facebookqueuehandler.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php +<?php +/* + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2008, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +# Abort if called from a web server +if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + print "This script must be run from the command line\n"; + exit(); +} + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); +define('LACONICA', true); + +require_once(INSTALLDIR . '/lib/common.php'); +require_once(INSTALLDIR . '/lib/facebookutil.php'); +require_once(INSTALLDIR . '/lib/queuehandler.php'); + +set_error_handler('common_error_handler'); + +class FacebookQueueHandler extends QueueHandler +{ + + function transport() + { + return 'facebook'; + } + + function start() + { + $this->log(LOG_INFO, "INITIALIZE"); + return true; + } + + function handle_notice($notice) + { + return facebookBroadcastNotice($notice); + } + + function finish() + { + } + +} + +ini_set("max_execution_time", "0"); +ini_set("max_input_time", "0"); +set_time_limit(0); + +mb_internal_encoding('UTF-8'); + +$id = ($argc > 1) ? $argv[1] : null; + +$handler = new FacebookQueueHandler($id); + +$handler->runOnce(); diff --git a/scripts/laconica.spec b/scripts/laconica.spec new file mode 100644 index 000000000..331e10671 --- /dev/null +++ b/scripts/laconica.spec @@ -0,0 +1,98 @@ +# This version needs to match the tarball and unpacked directory name. +%define LACVER 0.7.3 + +BuildRequires: php-pear +BuildRequires: httpd-devel + +Name: laconica +Version: %{LACVER} +Release: 1%{?dist} +License: GAGPL v3 or later +Source: laconica-%{version}.tar.gz +Group: Applications/Internet +Summary: Laconica, the Open Source microblogging platform +BuildArch: noarch + +Requires: httpd +Requires: php >= 5 +Requires: php-pear-Mail-Mime +Requires: php-curl +Requires: php-mysql +Requires: php-mbstring +Requires: php-gettext +Requires: php-xml +Requires: php-gd + +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%define apache_serverroot %(/usr/sbin/apxs -q DATADIR) +%define apache_sysconfdir %(/usr/sbin/apxs -q SYSCONFDIR) +%define wwwpath %{apache_serverroot}/%{name} +%define confpath %{_sysconfdir}/%{name} + +%description +From the ABOUT file: Laconica (pronounced "luh-KAWN-ih-kuh") is a Free +and Open Source microblogging platform. It helps people in a +community, company or group to exchange short (140 character) messages +over the Web. Users can choose which people to "follow" and receive +only their friends' or colleagues' status messages. It provides a +similar service to sites like Twitter, Jaiku, and Plurk. + + +%prep +%setup -q + +%build + + +%install +mkdir -p %{buildroot}%{wwwpath} +cp -a * %{buildroot}%{wwwpath} + +mkdir -p %{buildroot}%{_datadir}/laconica +cp -a db %{buildroot}%{_datadir}/laconica/db + +mkdir -p %{buildroot}%{_datadir}/laconica/avatar + +mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d +cat > %{buildroot}%{_sysconfdir}/httpd/conf.d/laconica.conf <<"EOF" +Alias /laconica/ "/var/www/laconica/" + +<Directory "/var/www/laconica"> + Options Indexes FollowSymLinks + AllowOverride All + Order allow,deny + Allow from all +</Directory> +EOF + +%clean +rm -rf %buildroot + +%files +%defattr(-,root,root) +%dir %{wwwpath} +%{wwwpath}/* +%{_datadir}/laconica/* +%attr(-,apache,apache) %dir %{_datadir}/laconica/avatar +%doc COPYING README doc-src/* +%config(noreplace) %{_sysconfdir}/httpd/conf.d/laconica.conf + +%changelog +* Wed Apr 03 2009 Zach Copley <zach@controlyourself.ca> - 0.7.3 +- Changed version number to 0.7.3. + +* Fri Mar 13 2009 Ken Sedgwick <ksedgwic@bonsai.com> - 0.7.2.1-1 +- Factored laconica version to the first line of the file. + +* Wed Mar 03 2009 Zach Copley <zach@controlyourself.ca> - 0.7.2 +- Changed version number to 0.7.2. + +* Sat Feb 28 2009 Ken Sedgwick <ken@bonsai.com> - 0.7.1-1 +- Modified RPM for Fedora. + +* Thu Feb 13 2009 tuukka.pasanen@ilmi.fi +- packaged laconica version 0.7.1 + +* Wed Feb 04 2009 tuukka.pasanen@ilmi.fi +- packaged laconica version 0.7.0 using the buildservice spec file wizard diff --git a/scripts/pingqueuehandler.php b/scripts/pingqueuehandler.php new file mode 100644 index 000000000..ada6ecdba --- /dev/null +++ b/scripts/pingqueuehandler.php @@ -0,0 +1,64 @@ +#!/usr/bin/env php +<?php +/* + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2008, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +# Abort if called from a web server +if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + print "This script must be run from the command line\n"; + exit(); +} + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); +define('LACONICA', true); + +require_once(INSTALLDIR . '/lib/common.php'); +require_once(INSTALLDIR . '/lib/ping.php'); +require_once(INSTALLDIR . '/lib/queuehandler.php'); + +set_error_handler('common_error_handler'); + +class PingQueueHandler extends QueueHandler { + + function transport() { + return 'ping'; + } + + function start() { + $this->log(LOG_INFO, "INITIALIZE"); + return true; + } + + function handle_notice($notice) { + return ping_broadcast_notice($notice); + } + + function finish() { + } +} + +ini_set("max_execution_time", "0"); +ini_set("max_input_time", "0"); +set_time_limit(0); +mb_internal_encoding('UTF-8'); + +$id = ($argc > 1) ? $argv[1] : NULL; + +$handler = new PingQueueHandler($id); + +$handler->runOnce(); diff --git a/scripts/rebuilddb_psql.sh b/scripts/rebuilddb_psql.sh new file mode 100755 index 000000000..ac169c205 --- /dev/null +++ b/scripts/rebuilddb_psql.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# ******************************* WARNING ********************************* +# Do not run this script until you have read and understood the information +# below, AND backed up your database. Failure to observe these instructions +# may result in losing all the data in your database. +# +# This script is used to upgrade Laconica's PostgreSQL database to the +# latest version. It does the following: +# +# 1. Dumps the existing data to /tmp/rebuilddb_psql.sql +# 2. Clears out the objects (tables, etc) in the database schema +# 3. Reconstructs the database schema using the latest script +# 4. Restores the data dumped in step 1 +# +# You MUST run this script as the 'postgres' user. +# You MUST be able to write to /tmp/rebuilddb_psql.sql +# You MUST specify the laconica database user and database name on the +# command line, e.g. ./rebuilddb_psql.sh myuser mydbname +# + +user=$1 +DB=$2 + +cd `dirname $0` + +pg_dump -a -D --disable-trigger $DB > /tmp/rebuilddb_psql.sql +psql -c "drop schema public cascade; create schema public;" $DB +psql -c "grant all privileges on schema public to $user;" $DB +psql $DB < ../db/laconica_pg.sql +psql $DB < /tmp/rebuilddb_psql.sql +for tab in `psql -c '\dts' $DB -tA | cut -d\| -f2`; do + psql -c "ALTER TABLE \"$tab\" OWNER TO $user;" $DB +done diff --git a/scripts/sitemap.php b/scripts/sitemap.php index 51a9bbd75..39eb859bb 100755 --- a/scripts/sitemap.php +++ b/scripts/sitemap.php @@ -61,7 +61,8 @@ function standard_map() ) ); - $docs = array('about', 'faq', 'contact', 'im', 'openid', 'openmublog', 'privacy', 'source'); + $docs = array('about', 'faq', 'contact', 'im', 'openid', 'openmublog', + 'privacy', 'source', 'badge'); foreach($docs as $title) { $standard_map_urls .= url( diff --git a/scripts/startdaemons.sh b/scripts/startdaemons.sh index 685bd938f..c3729761d 100755 --- a/scripts/startdaemons.sh +++ b/scripts/startdaemons.sh @@ -23,7 +23,8 @@ DIR=`dirname $0` for f in xmppdaemon.php jabberqueuehandler.php publicqueuehandler.php \ - xmppconfirmhandler.php smsqueuehandler.php ombqueuehandler.php; do + xmppconfirmhandler.php smsqueuehandler.php ombqueuehandler.php \ + twitterqueuehandler.php facebookqueuehandler.php pingqueuehandler.php; do echo -n "Starting $f..."; php $DIR/$f diff --git a/scripts/stopdaemons.sh b/scripts/stopdaemons.sh index 08e1d4714..2bb8f9ecb 100755 --- a/scripts/stopdaemons.sh +++ b/scripts/stopdaemons.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Laconica - a distributed open-source microblogging tool @@ -23,19 +23,30 @@ SDIR=`dirname $0` DIR=`php $SDIR/getpiddir.php` -for f in jabberhandler ombhandler publichandler smshandler \ - xmppconfirmhandler xmppdaemon; do +for f in jabberhandler ombhandler publichandler smshandler pinghandler \ + xmppconfirmhandler xmppdaemon twitterhandler facebookhandler ; do FILES="$DIR/$f.*.pid" for ff in "$FILES" ; do - echo -n "Stopping $f..." - PID=`cat $ff` - kill -3 $PID - if kill -9 $PID ; then - echo "DONE." - else - echo "FAILED." + PID=`cat $ff 2>/dev/null` + if [ -n "$PID" ] ; then + echo -n "Stopping $f ($PID)..." + if kill -3 $PID 2>/dev/null ; then + count=0 + while kill -0 $PID 2>/dev/null ; do + sleep 1 + count=$(($count + 1)) + if [ $count -gt 5 ]; then break; fi + done + if kill -9 $PID 2>/dev/null ; then + echo "FORCIBLY TERMINATED" + else + echo "STOPPED CLEANLY" + fi + else + echo "NOT FOUND" + fi fi rm -f $ff done diff --git a/scripts/synctwitterfriends.php b/scripts/synctwitterfriends.php index 0ce34c2ae..794301f0f 100755 --- a/scripts/synctwitterfriends.php +++ b/scripts/synctwitterfriends.php @@ -18,7 +18,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -# Abort if called from a web server +// Abort if called from a web server if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { print "This script must be run from the command line\n"; exit(); @@ -27,11 +27,16 @@ if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); define('LACONICA', true); +// Uncomment this to get useful console output +//define('SCRIPT_DEBUG', true); + require_once(INSTALLDIR . '/lib/common.php'); $flink = new Foreign_link(); $flink->service = 1; // Twitter -$flink->find(); +$cnt = $flink->find(); + +print "Updating Twitter friends subscriptions for $cnt users.\n"; while ($flink->fetch()) { @@ -39,20 +44,30 @@ while ($flink->fetch()) { $user = User::staticGet($flink->user_id); - print "Updating Twitter friends for user $user->nickname ($user->id)\n"; + if (empty($user)) { + common_log(LOG_WARNING, "Unmatched user for ID " . $flink->user_id); + print "Unmatched user for ID $flink->user_id\n"; + continue; + } + + print "Updating Twitter friends for $user->nickname (Laconica ID: $user->id)... "; $fuser = $flink->getForeignUser(); - $result = save_twitter_friends($user, $fuser->id, $fuser->nickname, $flink->credentials); + if (empty($fuser)) { + common_log(LOG_WARNING, "Unmatched user for ID " . $flink->user_id); + print "Unmatched user for ID $flink->user_id\n"; + continue; + } - if ($result == false) { - print "Problems updating Twitter friends! Check the log.\n"; - exit(1); + $result = save_twitter_friends($user, $fuser->id, + $fuser->nickname, $flink->credentials); + if (defined('SCRIPT_DEBUG')) { + print "\nDONE\n"; + } else { + print "DONE\n"; } } - } exit(0); - - diff --git a/scripts/twitterqueuehandler.php b/scripts/twitterqueuehandler.php new file mode 100755 index 000000000..7da4f1e20 --- /dev/null +++ b/scripts/twitterqueuehandler.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php +<?php +/* + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2008, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +# Abort if called from a web server +if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + print "This script must be run from the command line\n"; + exit(); +} + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); +define('LACONICA', true); + +require_once(INSTALLDIR . '/lib/common.php'); +require_once(INSTALLDIR . '/lib/twitter.php'); +require_once(INSTALLDIR . '/lib/queuehandler.php'); + +set_error_handler('common_error_handler'); + +class TwitterQueueHandler extends QueueHandler +{ + + function transport() + { + return 'twitter'; + } + + function start() + { + $this->log(LOG_INFO, "INITIALIZE"); + return true; + } + + function handle_notice($notice) + { + return broadcast_twitter($notice); + } + + function finish() + { + } + +} + +ini_set("max_execution_time", "0"); +ini_set("max_input_time", "0"); +set_time_limit(0); + +mb_internal_encoding('UTF-8'); + +$id = ($argc > 1) ? $argv[1] : null; + +$handler = new TwitterQueueHandler($id); + +$handler->runOnce(); diff --git a/scripts/update_facebook.php b/scripts/update_facebook.php deleted file mode 100755 index 60e10417f..000000000 --- a/scripts/update_facebook.php +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/env php -<?php -/* - * Laconica - a distributed open-source microblogging tool - * Copyright (C) 2008, Controlez-Vous, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -# Abort if called from a web server -if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { - print "This script must be run from the command line\n"; - exit(); -} - -define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); -define('LACONICA', true); - -require_once INSTALLDIR . '/lib/common.php'; -require_once INSTALLDIR . '/lib/facebookutil.php'; - -// For storing the last run date-time -$last_updated_file = INSTALLDIR . '/scripts/facebook_last_updated'; - -// Lock file name -$lock_file = INSTALLDIR . '/scripts/update_facebook.lock'; - -// Make sure only one copy of the script is running at a time -$lock_file = @fopen($lock_file, "w+"); -if (!flock( $lock_file, LOCK_EX | LOCK_NB, &$wouldblock) || $wouldblock) { - die("Can't open lock file. Script already running?\n"); -} - -$facebook = getFacebook(); -$current_time = time(); -$since = getLastUpdated(); -updateLastUpdated($current_time); -$notice = getFacebookNotices($since); -$cnt = 0; - -while($notice->fetch()) { - - $flink = Foreign_link::getByUserID($notice->profile_id, FACEBOOK_SERVICE); - $user = $flink->getUser(); - $fbuid = $flink->foreign_id; - - if (!userCanUpdate($fbuid)) { - continue; - } - - $prefix = $facebook->api_client->data_getUserPreference(FACEBOOK_NOTICE_PREFIX, $fbuid); - $content = "$prefix $notice->content"; - - if (($flink->noticesync & FOREIGN_NOTICE_SEND) == FOREIGN_NOTICE_SEND) { - - // If it's not a reply, or if the user WANTS to send replies... - if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $content) || - (($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) == FOREIGN_NOTICE_SEND_REPLY)) { - - // Avoid a Loop - if ($notice->source != 'Facebook') { - - try { - $facebook->api_client->users_setStatus($content, - $fbuid, false, true); - updateProfileBox($facebook, $flink, $notice); - $cnt++; - } catch(FacebookRestClientException $e) { - print "Couldn't sent notice $notice->id!\n"; - print $e->getMessage(); - - // Remove flink? - } - } - } - } -} - -if ($cnt > 0) { - print date('r', $current_time) . - ": Found $cnt new notices for Facebook since last run at " . - date('r', $since) . "\n"; -} - -fclose($lock_file); -exit(0); - - -function userCanUpdate($fbuid) { - - global $facebook; - - $result = false; - - try { - $result = $facebook->api_client->users_hasAppPermission('status_update', $fbuid); - } catch(FacebookRestClientException $e){ - print_r($e); - } - - return $result; -} - -function getLastUpdated(){ - global $last_updated_file, $current_time; - $last = $current_time; - - if (file_exists($last_updated_file) && - ($file = fopen($last_updated_file, 'r'))) { - $last = fgets($file); - } else { - print "$last_updated_file doesn't exit. Trying to create it...\n"; - $file = fopen($last_updated_file, 'w+') or - die("Can't open $last_updated_file for writing!\n"); - print 'Success. Using current time (' . date('r', $last) . - ") to look for new notices.\n"; - } - - fclose($file); - return $last; -} - -function updateLastUpdated($time){ - global $last_updated_file; - $file = fopen($last_updated_file, 'w') or - die("Can't open $last_updated_file for writing!"); - fwrite($file, $time); - fclose($file); -} - diff --git a/scripts/update_pot.sh b/scripts/update_pot.sh index f3526d514..a7f5e4d3a 100755 --- a/scripts/update_pot.sh +++ b/scripts/update_pot.sh @@ -1,3 +1,3 @@ cd `dirname $0` cd .. -xgettext --from-code=UTF-8 --default-domain=laconica --output=locale/laconica.pot --language=PHP --join-existing actions/*.php classes/*.php lib/*.php scripts/*.php +xgettext --from-code=UTF-8 --default-domain=laconica --output=locale/laconica.po --language=PHP --join-existing actions/*.php classes/*.php lib/*.php scripts/*.php diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index 01fe8914f..ef3f8c63d 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -208,6 +208,8 @@ class XMPPDaemon extends Daemon { if (preg_match('/[\[\(]?[Aa]uto[-\s]?[Rr]e(ply|sponse)[\]\)]/', $txt)) { return true; + } else if (preg_match('/^System: Message wasn\'t delivered. Offline storage size was exceeded.$/', $txt)) { + return true; } else { return false; } diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 3b72d00ce..2fb1c007f 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -22,15 +22,14 @@ line-height:1.65; position:relative; } h1,h2,h3,h4,h5,h6 { -text-transform:uppercase; margin-bottom:7px; overflow:hidden; } h1 { font-size:1.4em; -line-height:1; margin-bottom:18px; } +#showstream h1 { display:none; } h2 { font-size:1.3em; } h3 { font-size:1.2em; } h4 { font-size:1.1em; } @@ -43,7 +42,6 @@ font-weight:bold; legend { font-weight:bold; font-size:1.3em; -text-transform:uppercase; } input, textarea, select, option { padding:4px; @@ -86,12 +84,13 @@ left:0; border:0; } -#page_notice .error, -#page_notice .success { +.error, +.success { padding:4px 7px; border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; +margin-bottom:18px; } form label.submit { display:none; @@ -153,7 +152,9 @@ font-weight:bold; #form_openid_login legend, #form_search legend, #form_invite legend, -#form_notice_delete legend { +#form_notice_delete legend, +#form_password_recover legend, +#form_password_change legend { display:none; } @@ -217,6 +218,9 @@ margin-right:0; address .fn { font-weight:bold; } +address img + .fn { +display:none; +} #header { width:100%; @@ -248,6 +252,7 @@ position:absolute; top:65px; right:18px; width:250px; +width:24%; } #page_notice { clear:both; @@ -257,9 +262,8 @@ margin-bottom:18px; #anon_notice { float:left; -width:432px; -width:28.052em; -padding:11px; +width:43.2%; +padding:1.1%; border-radius:7px; -moz-border-radius:7px; -webkit-border-radius:7px; @@ -300,7 +304,7 @@ padding:4px 11px; border-width:1px; border-style:solid; border-bottom:0; -text-shadow: 4px 4px 4px #ddd; +text-shadow: 2px 2px 2px #ddd; font-weight:bold; } #site_nav_local_views .nav { @@ -367,8 +371,9 @@ margin-right:4px; #wrap { margin:0 auto; -width:71.714em; -width:1003px; +width:100%; +min-width:760px; +max-width:1003px; overflow:hidden; } @@ -380,14 +385,17 @@ margin-bottom:1em; } #content { -width:644px; -padding:18px; +width:64.009%; +min-height:259px; +padding:1.795%; float:left; border-radius:7px; -moz-border-radius:7px; -moz-border-radius-topleft:0; -webkit-border-radius:7px; -webkit-border-top-left-radius:0; +border-style:solid; +border-width:1px; } #content_inner { @@ -397,10 +405,11 @@ float:left; } #aside_primary { -width:280px; +width:27.917%; +min-height:259px; float:left; -margin-left:4px; -padding:18px; +margin-left:0.385%; +padding:1.795%; border-radius:7px; -moz-border-radius:7px; -webkit-border-radius:7px; @@ -408,9 +417,8 @@ border-width:1px; border-style:solid; } -/*Start: FORM NOTICE*/ #form_notice { -width:458px; +width:45.664%; float:left; position:relative; line-height:1; @@ -423,40 +431,30 @@ padding:0; display:none; } #form_notice textarea { +float:left; border-radius:7px; -moz-border-radius:7px; -webkit-border-radius:7px; -width:370px; +width:80.789%; height:67px; line-height:1.5; padding:7px 7px 16px 7px; } #form_notice label { display:block; +float:left; font-size:1.3em; margin-bottom:7px; } -#form_notice .form_data li { -float:left; -} - -#form_notice #notice_attach_file label, #form_notice #notice_submit label { display:none; } - -#form_notice #notice_attachment { -margin-top:25px; -margin-left:4px; -} - #form_notice .form_note { position:absolute; top:99px; right:98px; z-index:9; } - #form_notice .form_note dt { font-weight:bold; display:none; @@ -466,51 +464,28 @@ font-weight:bold; line-height:1.15; padding:1px 2px; } - -#form_notice #notice_data-attach_view { -position:absolute; -top:25px; -right:30px; -margin-left:4px; +#form_notice #notice_action-submit { +width:14%; +height:47px; padding:0; -width:16px; -height:16px; -border:0; -text-indent:-9999px; -} -#form_notice .form_actions { position:absolute; bottom:0; right:0; } -#form_notice .form_actions input.submit { -width:60px; -padding:8px; -} - -#form_notice li { -margin-bottom:0; +#form_notice label[for=to] { +margin-top:7px; } - -#form_notice #notice_to { +#form_notice select[id=to] { margin-bottom:7px; -} - -#notice_to label { -float:left; -margin-right:18px; -margin-top:11px; -} -#notice_to select { +margin-left:18px; float:left; } -/*end FORM NOTICE*/ /* entity_profile */ .entity_profile { position:relative; -width:475px; +width:67.702%; min-height:123px; float:left; margin-bottom:18px; @@ -540,7 +515,6 @@ margin-bottom:18px; .entity_profile .entity_tags { margin-left:113px; margin-bottom:4px; -width:322px; } .entity_profile .entity_fn, @@ -568,14 +542,14 @@ display:none; .entity_profile h2 { display:none; } - /* entity_profile */ /*entity_actions*/ .entity_actions { float:right; -margin-left:28px; +margin-left:4.35%; +max-width:25%; } .entity_actions h2 { display:none; @@ -634,7 +608,9 @@ border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; } - +.entity_actions .accept { +margin-bottom:18px; +} .entity_tags ul { list-style-type:none; @@ -716,7 +692,7 @@ float:none; .profile .entity_profile .entity_note, .profile .entity_profile .entity_url, .profile .entity_profile .entity_tags, -.profile .entity_profile .form_subcription_edit { +.profile .entity_profile .form_subscription_edit { margin-left:59px; clear:none; display:block; @@ -728,7 +704,7 @@ margin-right:11px; } -.profile .entity_profile .form_subcription_edit label { +.profile .entity_profile .form_subscription_edit label { font-weight:normal; margin-right:11px; } @@ -904,7 +880,7 @@ left:0; left:29px; } .notice-options .notice_delete { -left:76px; +right:0; } .notice-options .notice_reply dt { display:none; @@ -943,10 +919,12 @@ display:none; border:0; padding:0; } -/*END: NOTICES */ - +#usergroups #new_group { +float: left; +margin-right: 2em; +} #new_group, #group_search { margin-bottom:18px; } @@ -1175,4 +1153,16 @@ clear:both; margin-bottom:0; } - +.instructions ul { +list-style-position:inside; +} +.instructions p, +.instructions ul { +margin-bottom:18px; +} +.help dt { +display:none; +} +.guide { +clear:both; +} diff --git a/theme/base/css/ie.css b/theme/base/css/ie.css index 45176a201..5d8bea8ae 100644 --- a/theme/base/css/ie.css +++ b/theme/base/css/ie.css @@ -1,8 +1,21 @@ /* IE specific styles */ - -#aside_primary { -padding-left:11px; +legend { +margin-left:-7px; +} +input.checkbox { +top:0; +} +#form_notice textarea { +width:78%; +} +#form_notice #notice_action-submit { +width:17%; +max-width:17%; } +#anon_notice { +max-width:39%; +} + .notice-options input.submit { font-size:0; margin-top:3px; @@ -11,15 +24,9 @@ text-align:right; text-indent:0; width:24px; } - -input.checkbox { -top:0; -} - -legend { -margin-left:-7px; -} - .notice div.entry-content .timestamp a { margin-right:4px; } +.entity_profile { +width:64%; +} diff --git a/theme/base/css/ie6.css b/theme/base/css/ie6.css index 10b31cbcb..76a82c004 100644 --- a/theme/base/css/ie6.css +++ b/theme/base/css/ie6.css @@ -1,4 +1,17 @@ /* IE6 specific styles */ +address { +margin-left:7px; +} +address .fn { +display:none; +} +#content { +width:70%; +} +#aside_primary { +padding:5%; +width:29.5%; +} .entity_profile .entity_nickname, .entity_profile .entity_location, .entity_profile .entity_url, @@ -9,3 +22,9 @@ margin-left:0; .entity_profile .entity_depiction { margin-bottom:123px; } +.entity_actions { +width:20%; +} +.notice div.entry-content { +width:63%; +} diff --git a/theme/base/css/mobile.css b/theme/base/css/mobile.css new file mode 100644 index 000000000..eee98317c --- /dev/null +++ b/theme/base/css/mobile.css @@ -0,0 +1,150 @@ +/** theme: base + * + * @package Laconica + * @author Meitar Moscovitz <meitar@maymay.net> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +body { +font-size:2.5em; +} + +#wrap { +width:95%; +} + +#header, +#header address, +#anon_notice, +#site_nav_local_views .nav, +#form_notice, +#form_notice .form_data li, +#core, +#content_inner, +#notices_primary, +.notice, +.notice .entry-title, +.notice div.entry-content, +.notice-options, +.notice .notice-options a, +.pagination, +.pagination .nav, +.aside .section { +float:none; +} + +.notice-options .notice_reply, +.notice-options .notice_delete, +.notice-options .form_favor, +.notice-options .form_disfavor { +position:static; +} + +#form_notice, +#anon_notice, +#footer, +#form_notice .form_actions input.submit { +width:auto; +} + +.form_settings label { +width:25%; +} +.form_settings .form_data p.form_guide { +margin-left:26%; +} + +#site_nav_global_primary { +width:75%; +} + +.entity_profile { +width:65%; +} +.entity_actions { +margin-left:0; +} + +#form_notice, +#anon_notice { +clear:both; +} + +#content, +#aside_primary { +width:96%; +padding-left:2%; +padding-right:2%; +} + +#site_notice { +position:static; +float:right; +clear:right; +width:75%; +margin-right:0; +margin-bottom:11px; +} + +.notices { +font-size:1.5em; +} + +#form_notice textarea { +width:80%; +height:5em; +} +#form_notice .form_note { +right:20%; +top:6em; +} + + +.vcard .photo, +.section .vcard .photo { +margin-right:18px; +} +.notice, +.profile { +margin-bottom:18px; +} + +.notices .entry-title, +.notices div.entry-content { +width:90%; +} +.notice div.entry-content { +margin-left:0; +} + +.notice .author .photo { +height:4.5em; +width:4.5em; +} +.notice-options { +position:absolute; +top:0; +right:0; +padding-left:7%; +width:3%; +} + +.notice-options .notice_delete a { +float:left; +} +.pagination .nav { +overflow:auto; +} + +#export_data { +display:none; +} + +#site_nav_local_views li { +margin-right:4px; +} +#site_nav_local_views a { +padding:18px 11px; +} diff --git a/theme/base/css/print.css b/theme/base/css/print.css new file mode 100644 index 000000000..d76dd608c --- /dev/null +++ b/theme/base/css/print.css @@ -0,0 +1,36 @@ +/** theme: base + * + * @package Laconica + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @copyright 2009 Control Yourself, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +a:after { background-color:#fff; } +a:not([href^="#"]):after { content:" ( "attr(href)" ) "; } + +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} + +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} + +.profiles li, +.notices li { +margin-bottom:18px; +} diff --git a/theme/base/images/icons/icon_processing.gif b/theme/base/images/icons/icon_processing.gif Binary files differnew file mode 100644 index 000000000..d0bce1542 --- /dev/null +++ b/theme/base/images/icons/icon_processing.gif diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 85b5aa13e..c5d694610 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -17,10 +17,7 @@ font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; font-size:1em; } address { -margin-right:71px; -} -address .fn { -display:none; +margin-right:7.18%; } input, textarea, select, option { @@ -40,7 +37,6 @@ background:none; input.submit, #form_notice.warning #notice_text-count, -#nav_register a, .form_settings .form_note, .entity_remote_subscribe { background-color:#A9BF4F; @@ -51,7 +47,6 @@ input:focus, textarea:focus, select:focus, border-color:#A9BF4F; } input.submit, -#nav_register a, .entity_remote_subscribe { color:#fff; } @@ -94,12 +89,10 @@ color:#333; #form_notice.warning #notice_text-count { color:#000; } - - -#nav_register a { -text-decoration:none; -font-weight:bold; -padding:2px 4px; +#form_notice.processing #notice_action-submit { +background:#fff url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +cursor:wait; +text-indent:-9999px; } #content, @@ -120,10 +113,10 @@ background-color:rgba(255, 255, 255, 0.7); } -#page_notice .error { +.error { background-color:#F7E8E8; } -#page_notice .success { +.success { background-color:#EFF3DC; } @@ -171,7 +164,8 @@ background-color:#A9BF4F; color:#fff; } .form_user_unsubscribe input.submit, -.form_group_leave input.submit { +.form_group_leave input.submit, +.form_user_authorization input.reject { background-color:#97BFD1; } @@ -238,10 +232,6 @@ background-color:#fcfcfc; #new_group a { background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; } -#usergroups #new_group { -float: left; -margin-right: 2em; -} .pagination .nav_prev a, .pagination .nav_next a { diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 576a2e14b..c32b6269d 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -17,10 +17,7 @@ font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; font-size:1em; } address { -margin-right:71px; -} -address .fn { -display:none; +margin-right:7.18%; } input, textarea, select, option { @@ -40,7 +37,6 @@ background:none; input.submit, #form_notice.warning #notice_text-count, -#nav_register a, .form_settings .form_note, .entity_remote_subscribe { background-color:#9BB43E; @@ -51,7 +47,6 @@ input:focus, textarea:focus, select:focus, border-color:#9BB43E; } input.submit, -#nav_register a, .entity_remote_subscribe { color:#fff; } @@ -94,12 +89,10 @@ color:#333; #form_notice.warning #notice_text-count { color:#000; } - - -#nav_register a { -text-decoration:none; -font-weight:bold; -padding:2px 4px; +#form_notice.processing #notice_action-submit { +background:#fff url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +cursor:wait; +text-indent:-9999px; } #content, @@ -120,10 +113,10 @@ background-color:rgba(255, 255, 255, 0.7); } -#page_notice .error { +.error { background-color:#F7E8E8; } -#page_notice .success { +.success { background-color:#EFF3DC; } @@ -171,7 +164,8 @@ background-color:#9BB43E; color:#fff; } .form_user_unsubscribe input.submit, -.form_group_leave input.submit { +.form_group_leave input.submit, +.form_user_authorization input.reject { background-color:#87B4C8; } @@ -238,10 +232,6 @@ background-color:#fcfcfc; #new_group a { background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; } -#usergroups #new_group { -float: left; -margin-right: 2em; -} .pagination .nav_prev a, .pagination .nav_next a { diff --git a/theme/readme.txt b/theme/readme.txt index 335801385..4998b3c98 100644 --- a/theme/readme.txt +++ b/theme/readme.txt @@ -31,3 +31,6 @@ cp -r ./default ./mytheme nano ./mytheme/css/display.css 3. Search and replace a colour or a path to the background image of your choice. + +4. Set /config.php to load 'mytheme': +$config['site']['theme'] = 'mytheme'; diff --git a/tpl/index.php b/tpl/index.php new file mode 100644 index 000000000..5f1ed8439 --- /dev/null +++ b/tpl/index.php @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html +PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title><?php echo section('title'); ?></title> + <?php echo section('styles'); ?> + <?php echo section('scripts'); ?> + <?php echo section('search'); ?> + <?php echo section('feeds'); ?> + <?php echo section('description'); ?> + <?php echo section('head'); ?> + </head> + <body id="<?php echo section('action'); ?>"> + <div id="wrap"> + <div id="header"> + <?php echo section('logo'); ?> + <?php echo section('nav'); ?> + <?php echo section('notice'); ?> + <?php echo section('noticeform'); ?> + </div> + <div id="core"> + <?php echo section('localnav'); ?> + <?php echo section('bodytext'); ?> + <div id="aside_primary" class="aside"> + <?php echo section('export'); ?> + <?php echo section('subscriptions'); ?> + <?php echo section('subscribers'); ?> + <?php echo section('groups'); ?> + <?php echo section('statistics'); ?> + <?php echo section('cloud'); ?> + <?php echo section('groupmembers'); ?> + <?php echo section('groupstatistics'); ?> + <?php echo section('groupcloud'); ?> + <?php echo section('popular'); ?> + <?php echo section('groupsbyposts'); ?> + <?php echo section('featuredusers'); ?> + <?php echo section('groupsbymembers'); ?> + </div> + </div> + <div id="footer"> + <?php echo section('secondarynav'); ?> + <?php echo section('licenses'); ?> + </div> + </div> + </body> + </html>
\ No newline at end of file |