diff options
author | Sarven Capadisli <csarven@status.net> | 2010-02-04 16:56:34 +0000 |
---|---|---|
committer | Sarven Capadisli <csarven@status.net> | 2010-02-04 16:56:34 +0000 |
commit | 7ebd13fa69d2a5dac8bc59799281d3d6e017eeae (patch) | |
tree | 605267bbe7c902d7a71766cdeb523bfbb266a0f9 | |
parent | 339eb1adadc7f3495ad31ef0a5cf20cdca47ce1f (diff) | |
parent | 9e940445f1ab1ec53f3bad14a1a94dc2064d0ee6 (diff) |
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
120 files changed, 15955 insertions, 8728 deletions
diff --git a/EVENTS.txt b/EVENTS.txt index 1ed670697..6bf12bf13 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -699,3 +699,18 @@ StartShowContentLicense: Showing the default license for content EndShowContentLicense: Showing the default license for content - $action: the current action + +StartUserRegister: When a new user is being registered +- &$profile: new profile data (no ID) +- &$user: new user account (no ID or URI) + +EndUserRegister: When a new user has been registered +- &$profile: new profile data +- &$user: new user account + +StartRobotsTxt: Before outputting the robots.txt page +- &$action: RobotstxtAction being shown + +EndRobotsTxt: After the default robots.txt page (good place for customization) +- &$action: RobotstxtAction being shown + @@ -2,8 +2,8 @@ README ------ -StatusNet 0.9.0 ("Stand") Beta 3 -20 Jan 2010 +StatusNet 0.9.0 ("Stand") Beta 5 +1 Feb 2010 This is the README file for StatusNet (formerly Laconica), the Open Source microblogging platform. It includes installation instructions, @@ -78,6 +78,11 @@ New this version ================ This is a major feature release since version 0.8.2, released Nov 1 2009. +It is also a security release since 0.9.0beta4 January 27 2010. Beta +users are strongly encouraged to upgrade to deal with a security alert. + +http://status.net/wiki/Security_alert_0000002 + Notable changes this version: - Records of deleted notices are stored without the notice content. @@ -198,6 +203,77 @@ Notable changes this version: - Major refactoring of queue handlers to manage very large hosting site (like status.net) - SubscriptionThrottle plugin to prevent subscription spamming +- Don't enqueue into plugin or SMS queues when disabled (breaks unqueuehandler if SMS queue isn't attached) +- Improve name validation checks on local File references +- fix local file include vulnerability in doc.php +- Reusing fixed selector name for 'processing' in util.js +- Removed hAtom pattern from registration page. +- restructuring of User::registerNew() lost password munging +- Add a script to clear the cache for a given key +- buggy fetch for site owner +- Added missing concat of </li> in Realtime response +- Updated XHR binded events to work better in jQuery 1.4.1. Using .live() for event delegation instead of jQuery.data() and checking to see if an element was previously binded. +- Updated jQuery Form Plugin from v2.17 to v2.36 +- Updated jQuery JavaScript Library from v1.3.2 to v1.4.1 +- move schema.type.php to typeschema.php like other files +- Add Really Simple Discovery (RSD) support +- Add a robots.txt URL to the site root +- error clearing tags for profiles from memcached +- on exceptions, stomp logs the error and reenqueues +- add lat, lon, location and remove closing tag from geocode.php +- Use passed-in lat long in geocode.php +- better handling of null responses from geonames.org +- Globalized form notice data geo values +- Using jQuery chaining in FormNoticeXHR +- Using form object instead of form_id and find(). Slightly faster and easier to read. +- removed describeTable from base class, and fixed it up in pgsql +- getTableDef() mostly working in postgres +- move the schema DDL sql off into seperate files for each db we support +- plugin to limit number of registered users +- add hooks for user registration +- live fast, die young in bash scripts +- for single-user mode, retrieve either site owner or defined nickname +- method to get the site owner +- define a constant for the 'owner' role of a site +- add simple cache getter/setter static functions to Memcached_DataObject +- Adds notice author's name to @title in Realtime response +- Hides .author from XHR response in showstream +- Hides .author from XHR response in showstream +- Fix more fatal errors in queue edge cases +- Don't attempt to resend XMPP messages that can't be broadcast due to the profile being deleted. +- Wrap each bit of distrib queue handler's saving operation in a try/catch; log exceptions but let everything else continue. +- Log exceptions from queuedaemon.php if they're not already caught +- Move sessions settings to its own panel +- Fixes for status_network db object .ini and tag setter script +- Add a script to set tags for sites +- Adjust API authentication to also check for OAuth protocol params in the HTTP Authorization header, as defined in OAuth HTTP Authorization Scheme. +- Last-chance distribution if enqueueing fails +- Manual failover for stomp queues. +- lost config in index.php made all traffic go to master +- "Revert "move RW setup above user get in index.php so remember_me works"" +- Revert "move RW setup above user get in index.php so remember_me works" +- move RW setup above user get in index.php so remember_me works +- hide most DB_DataObject errors +- always set up database_rw, regardless, so cached sessions work +- update mysqltimestamps on insert and update +- additional debugging data for Sessions +- 'Sign in with Twitter' button img +- Update to biz theme +- Remove redundant session token field from form (was already being added by base class). +- 'Sign in with Twitter' button img +- Can now set $config['queue']['stomp_persistent'] = false; to explicitly disable persistence when we queue items +- Showing processing indicator for form_repeat on submit instead of form +- Removed avatar from repeat of username (matches noticelist) +- Removed unused variable assignment for avatar URL and added missing fn +- Don't preemptively close existing DB connections for web views (needed to keep # of conns from going insane on multi-site queue daemons, so just doing for CLI) May, or may not, help with mystery session problems +- dropping the setcookie() call from common_ensure_session() since we're pretty sure it's unnecessary +- append '/' on cookie path for now (may still need some refactoring) +- set session cookie correctly +- Fix for Mapstraction plugin's zoomed map links +- debug log line for control channel sub +- Move faceboookapp.js to the Facebook plugin +- fix for fix for bad realtime JS load +- default 24-hour expiry on Memcached objects where not specified. Prerequisites ============= @@ -597,26 +673,19 @@ server is probably a good idea for high-volume sites. needs as a parameter the install path; if you run it from the StatusNet dir, "." should suffice. -This will run eight (for now) queue handlers: +This will run the queue handlers: +* queuedaemon.php - polls for queued items for inbox processing and + pushing out to OMB, SMS, XMPP, etc. * xmppdaemon.php - listens for new XMPP messages from users and stores - them as notices in the database. -* jabberqueuehandler.php - sends queued notices in the database to - registered users who should receive them. -* publicqueuehandler.php - sends queued notices in the database to - public feed listeners. -* ombqueuehandler.php - sends queued notices to OpenMicroBlogging - recipients on foreign servers. -* smsqueuehandler.php - sends queued notices to SMS-over-email addresses - of registered users. -* xmppconfirmhandler.php - sends confirmation messages to registered - users. - -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 -regular (daily or so) basis with a cron job. Also, if they lose -the connection to the XMPP server for too long, they'll simply die. It -may be a good idea to use a daemon-monitoring service, like 'monit', + them as notices in the database; also pulls queued XMPP output from + queuedaemon.php to push out to clients. + +These two daemons will automatically restart in most cases of failure +including memory leaks (if a memory_limit is set), but may still die +or behave oddly if they lose connections to the XMPP or queue servers. + +It may be a good idea to use a daemon-monitoring service, like 'monit', to check their status and keep them running. All the daemons write their process IDs (pids) to /var/run/ by @@ -626,7 +695,7 @@ daemons. Since version 0.8.0, it's now possible to use a STOMP server instead of our kind of hacky home-grown DB-based queue solution. See the "queues" config section below for how to configure to use STOMP. As of this -writing, the software has been tested with ActiveMQ ( +writing, the software has been tested with ActiveMQ. Sitemaps -------- @@ -712,10 +781,12 @@ subdirectory to add a new language to your system. You'll need to compile the ".po" files into ".mo" files, however. Contributions of translation information to StatusNet are very easy: -you can use the Web interface at http://status.net/pootle/ to add one +you can use the Web interface at TranslateWiki.net to add one or a few or lots of new translations -- or even new languages. You can also download more up-to-date .po files there, if you so desire. +For info on helping with translations, see http://status.net/wiki/Translations + Backups ------- @@ -1501,6 +1572,20 @@ interface. It also makes the user's profile the root URL. enabled: Whether to run in "single user mode". Default false. nickname: nickname of the single user. +robotstxt +--------- + +We put out a default robots.txt file to guide the processing of +Web crawlers. See http://www.robotstxt.org/ for more information +on the format of this file. + +crawldelay: if non-empty, this value is provided as the Crawl-Delay: + for the robots.txt file. see http://ur1.ca/l5a0 + for more information. Default is zero, no explicit delay. +disallow: Array of (virtual) directories to disallow. Default is 'main', + 'search', 'message', 'settings', 'admin'. Ignored when site + is private, in which case the entire site ('/') is disallowed. + Plugins ======= diff --git a/actions/apioauthauthorize.php b/actions/apioauthauthorize.php index eebc926ee..e7c6f3761 100644 --- a/actions/apioauthauthorize.php +++ b/actions/apioauthauthorize.php @@ -67,8 +67,6 @@ class ApiOauthAuthorizeAction extends ApiOauthAction { parent::prepare($args); - common_debug("apioauthauthorize"); - $this->nickname = $this->trimmed('nickname'); $this->password = $this->arg('password'); $this->oauth_token = $this->arg('oauth_token'); @@ -99,24 +97,17 @@ class ApiOauthAuthorizeAction extends ApiOauthAction } else { - // XXX: make better error messages - if (empty($this->oauth_token)) { - - common_debug("No request token found."); - - $this->clientError(_('Bad request.')); + $this->clientError(_('No oauth_token parameter provided.')); return; } if (empty($this->app)) { - common_debug('No app for that token.'); - $this->clientError(_('Bad request.')); + $this->clientError(_('Invalid token.')); return; } $name = $this->app->name; - common_debug("Requesting auth for app: " . $name); $this->showForm(); } @@ -124,8 +115,6 @@ class ApiOauthAuthorizeAction extends ApiOauthAction function handlePost() { - common_debug("handlePost()"); - // check session token for CSRF protection. $token = $this->trimmed('token'); @@ -202,21 +191,15 @@ class ApiOauthAuthorizeAction extends ApiOauthAction // A callback specified in the app setup overrides whatever // is passed in with the request. - common_debug("Req token is authorized - doing callback"); - if (!empty($this->app->callback_url)) { $this->callback = $this->app->callback_url; } if (!empty($this->callback)) { - // XXX: Need better way to build this redirect url. - $target_url = $this->getCallback($this->callback, array('oauth_token' => $this->oauth_token)); - common_debug("Doing callback to $target_url"); - common_redirect($target_url, 303); } else { common_debug("callback was empty!"); @@ -236,9 +219,12 @@ class ApiOauthAuthorizeAction extends ApiOauthAction } else if ($this->arg('deny')) { + $datastore = new ApiStatusNetOAuthDataStore(); + $datastore->revoke_token($this->oauth_token, 0); + $this->elementStart('p'); - $this->raw(sprintf(_("The request token %s has been denied."), + $this->raw(sprintf(_("The request token %s has been denied and revoked."), $this->oauth_token)); $this->elementEnd('p'); @@ -303,13 +289,17 @@ class ApiOauthAuthorizeAction extends ApiOauthAction $access = ($this->app->access_type & Oauth_application::$writeAccess) ? 'access and update' : 'access'; - $msg = _("The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " . - "the ability to <strong>%3$s</strong> your account data."); + $msg = _('The application <strong>%1$s</strong> by ' . + '<strong>%2$s</strong> would like the ability ' . + 'to <strong>%3$s</strong> your %4$s account data. ' . + 'You should only give access to your %4$s account ' . + 'to third parties you trust.'); $this->raw(sprintf($msg, $this->app->name, $this->app->organization, - $access)); + $access, + common_config('site', 'name'))); $this->elementEnd('p'); $this->elementEnd('li'); $this->elementEnd('ul'); @@ -371,6 +361,31 @@ class ApiOauthAuthorizeAction extends ApiOauthAction function showLocalNav() { + // NOP + } + + /** + * Show site notice. + * + * @return nothing + */ + + function showSiteNotice() + { + // NOP + } + + /** + * Show notice form. + * + * Show the form for posting a new notice + * + * @return nothing + */ + + function showNoticeForm() + { + // NOP } } diff --git a/actions/deleteapplication.php b/actions/deleteapplication.php new file mode 100644 index 000000000..17526e111 --- /dev/null +++ b/actions/deleteapplication.php @@ -0,0 +1,176 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Action class to delete an OAuth application + * + * 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 Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Delete an OAuth appliction + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class DeleteapplicationAction extends Action +{ + var $app = null; + + /** + * Take arguments for running + * + * @param array $args $_REQUEST args + * + * @return boolean success flag + */ + + function prepare($args) + { + if (!parent::prepare($args)) { + return false; + } + + if (!common_logged_in()) { + $this->clientError(_('You must be logged in to delete an application.')); + return false; + } + + $id = (int)$this->arg('id'); + $this->app = Oauth_application::staticGet('id', $id); + + if (empty($this->app)) { + $this->clientError(_('Application not found.')); + return false; + } + + $cur = common_current_user(); + + if ($cur->id != $this->app->owner) { + $this->clientError(_('You are not the owner of this application.'), 401); + return false; + } + + return true; + } + + /** + * Handle request + * + * Shows a page with list of favorite notices + * + * @param array $args $_REQUEST args; handled in prepare() + * + * @return void + */ + + function handle($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + + // CSRF protection + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->clientError(_('There was a problem with your session token.')); + return; + } + + if ($this->arg('no')) { + common_redirect(common_local_url('showapplication', + array('id' => $this->app->id)), 303); + } elseif ($this->arg('yes')) { + $this->handlePost(); + common_redirect(common_local_url('oauthappssettings'), 303); + } else { + $this->showPage(); + } + } + } + + function showContent() { + $this->areYouSureForm(); + } + + function title() { + return _('Delete application'); + } + + function showNoticeForm() { + // nop + } + + /** + * Confirm with user. + * + * Shows a confirmation form. + * + * @return void + */ + function areYouSureForm() + { + $id = $this->app->id; + $this->elementStart('form', array('id' => 'deleteapplication-' . $id, + 'method' => 'post', + 'class' => 'form_settings form_entity_block', + 'action' => common_local_url('deleteapplication', + array('id' => $this->app->id)))); + $this->elementStart('fieldset'); + $this->hidden('token', common_session_token()); + $this->element('legend', _('Delete application')); + $this->element('p', null, + _('Are you sure you want to delete this application? '. + 'This will clear all data about the application from the '. + 'database, including all existing user connections.')); + $this->submit('form_action-no', + _('No'), + 'submit form_action-primary', + 'no', + _("Do not delete this application")); + $this->submit('form_action-yes', + _('Yes'), + 'submit form_action-secondary', + 'yes', _('Delete this application')); + $this->elementEnd('fieldset'); + $this->elementEnd('form'); + } + + /** + * Actually delete the app + * + * @return void + */ + + function handlePost() + { + $this->app->delete(); + } +} + diff --git a/actions/doc.php b/actions/doc.php index 25d363472..eaf4b7df2 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -54,6 +54,9 @@ class DocAction extends Action parent::prepare($args); $this->title = $this->trimmed('title'); + if (!preg_match('/^[a-zA-Z0-9_-]*$/', $this->title)) { + $this->title = 'help'; + } $this->output = null; $this->loadDoc(); diff --git a/actions/editapplication.php b/actions/editapplication.php index 9cc3e3cea..ca5dba1e4 100644 --- a/actions/editapplication.php +++ b/actions/editapplication.php @@ -179,6 +179,9 @@ class EditApplicationAction extends OwnerDesignAction } elseif (mb_strlen($name) > 255) { $this->showForm(_('Name is too long (max 255 chars).')); return; + } else if ($this->nameExists($name)) { + $this->showForm(_('Name already in use. Try another one.')); + return; } elseif (empty($description)) { $this->showForm(_('Description is required.')); return; @@ -260,5 +263,26 @@ class EditApplicationAction extends OwnerDesignAction common_redirect(common_local_url('oauthappssettings'), 303); } + /** + * Does the app name already exist? + * + * Checks the DB to see someone has already registered an app + * with the same name. + * + * @param string $name app name to check + * + * @return boolean true if the name already exists + */ + + function nameExists($name) + { + $newapp = Oauth_application::staticGet('name', $name); + if (!$newapp) { + return false; + } else { + return $newapp->id != $this->app->id; + } + } + } diff --git a/actions/geocode.php b/actions/geocode.php index 9671d2c27..e883c6ce4 100644 --- a/actions/geocode.php +++ b/actions/geocode.php @@ -42,6 +42,10 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { */ class GeocodeAction extends Action { + var $lat = null; + var $lon = null; + var $location = null; + function prepare($args) { parent::prepare($args); @@ -52,12 +56,7 @@ class GeocodeAction extends Action } $this->lat = $this->trimmed('lat'); $this->lon = $this->trimmed('lon'); - $location = Location::fromLatLon($this->lat, $this->lon); - if ($location) { - $this->location = Location::fromId($location->location_id, $location->location_ns); - $this->lat = $this->location->lat; - $this->lon = $this->location->lon; - } + $this->location = Location::fromLatLon($this->lat, $this->lon); return true; } @@ -95,4 +94,3 @@ class GeocodeAction extends Action return true; } } -?> diff --git a/actions/getfile.php b/actions/getfile.php index cd327e410..9cbe8e1d9 100644 --- a/actions/getfile.php +++ b/actions/getfile.php @@ -71,7 +71,7 @@ class GetfileAction extends Action $filename = $this->trimmed('filename'); $path = null; - if ($filename) { + if ($filename && File::validFilename($filename)) { $path = File::path($filename); } diff --git a/actions/newapplication.php b/actions/newapplication.php index c499fe7c7..c0c520797 100644 --- a/actions/newapplication.php +++ b/actions/newapplication.php @@ -158,6 +158,9 @@ class NewApplicationAction extends OwnerDesignAction if (empty($name)) { $this->showForm(_('Name is required.')); return; + } else if ($this->nameExists($name)) { + $this->showForm(_('Name already in use. Try another one.')); + return; } elseif (mb_strlen($name) > 255) { $this->showForm(_('Name is too long (max 255 chars).')); return; @@ -273,5 +276,22 @@ class NewApplicationAction extends OwnerDesignAction } + /** + * Does the app name already exist? + * + * Checks the DB to see someone has already registered an app + * with the same name. + * + * @param string $name app name to check + * + * @return boolean true if the name already exists + */ + + function nameExists($name) + { + $app = Oauth_application::staticGet('name', $name); + return ($app !== false); + } + } diff --git a/actions/oauthconnectionssettings.php b/actions/oauthconnectionssettings.php index c2e8d441b..b1467f0d0 100644 --- a/actions/oauthconnectionssettings.php +++ b/actions/oauthconnectionssettings.php @@ -33,6 +33,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { require_once INSTALLDIR . '/lib/connectsettingsaction.php'; require_once INSTALLDIR . '/lib/applicationlist.php'; +require_once INSTALLDIR . '/lib/apioauthstore.php'; /** * Show connected OAuth applications @@ -71,11 +72,6 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction return _('Connected applications'); } - function isReadOnly($args) - { - return true; - } - /** * Instructions for use * @@ -153,6 +149,13 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction } } + /** + * Revoke access to an authorized OAuth application + * + * @param int $appId the ID of the application + * + */ + function revokeAccess($appId) { $cur = common_current_user(); @@ -164,6 +167,8 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction return false; } + // XXX: Transaction here? + $appUser = Oauth_application_user::getByKeys($cur, $app); if (empty($appUser)) { @@ -171,12 +176,13 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction return false; } - $orig = clone($appUser); - $appUser->access_type = 0; // No access - $result = $appUser->update(); + $datastore = new ApiStatusNetOAuthDataStore(); + $datastore->revoke_token($appUser->token, 1); + + $result = $appUser->delete(); if (!$result) { - common_log_db_error($orig, 'UPDATE', __FILE__); + common_log_db_error($orig, 'DELETE', __FILE__); $this->clientError(_('Unable to revoke access for app: ' . $app->id)); return false; } diff --git a/actions/public.php b/actions/public.php index 982dfde15..50278bfce 100644 --- a/actions/public.php +++ b/actions/public.php @@ -131,12 +131,20 @@ class PublicAction extends Action return _('Public timeline'); } } - + function extraHead() { parent::extraHead(); $this->element('meta', array('http-equiv' => 'X-XRDS-Location', 'content' => common_local_url('publicxrds'))); + + $rsd = common_local_url('rsd'); + + // RSD, http://tales.phrasewise.com/rfc/rsd + + $this->element('link', array('rel' => 'EditURI', + 'type' => 'application/rsd+xml', + 'href' => $rsd)); } /** diff --git a/actions/robotstxt.php b/actions/robotstxt.php new file mode 100644 index 000000000..5131097c8 --- /dev/null +++ b/actions/robotstxt.php @@ -0,0 +1,100 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * robots.txt generator + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * 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('STATUSNET')) { + exit(1); +} + +/** + * Prints out a static robots.txt + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class RobotstxtAction extends Action +{ + /** + * Handles requests + * + * Since this is a relatively static document, we + * don't do a prepare() + * + * @param array $args GET, POST, and URL params; unused. + * + * @return void + */ + + function handle($args) + { + if (Event::handle('StartRobotsTxt', array($this))) { + + header('Content-Type: text/plain'); + + print "User-Agent: *\n"; + + if (common_config('site', 'private')) { + + print "Disallow: /\n"; + + } else { + + $disallow = common_config('robotstxt', 'disallow'); + + foreach ($disallow as $dir) { + print "Disallow: /$dir/\n"; + } + + $crawldelay = common_config('robotstxt', 'crawldelay'); + + if (!empty($crawldelay)) { + print "Crawl-delay: " . $crawldelay . "\n"; + } + } + + Event::handle('EndRobotsTxt', array($this)); + } + } + + /** + * Return true; this page doesn't touch the DB. + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + return true; + } +} diff --git a/actions/rsd.php b/actions/rsd.php new file mode 100644 index 000000000..f88bf2e9a --- /dev/null +++ b/actions/rsd.php @@ -0,0 +1,226 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008-2010, StatusNet, Inc. + * + * Really Simple Discovery (RSD) for API access + * + * PHP version 5 + * + * 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 API + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * RSD action class + * + * Really Simple Discovery (RSD) is a simple (to a fault, maybe) + * discovery tool for blog APIs. + * + * http://tales.phrasewise.com/rfc/rsd + * + * Anil Dash suggested that RSD be used for services that implement + * the Twitter API: + * + * http://dashes.com/anil/2009/12/the-twitter-api-is-finished.html + * + * It's in use now for WordPress.com blogs: + * + * http://matt.wordpress.com/xmlrpc.php?rsd + * + * I (evan@status.net) have tried to stay faithful to the premise of + * RSD, while adding information useful to StatusNet client developers. + * In particular: + * + * - There is a link from each user's profile page to their personal + * RSD feed. A personal rsd.xml includes a 'blogID' element that is + * their username. + * - There is a link from the public root to '/rsd.xml', a public RSD + * feed. It's identical to the personal rsd except it doesn't include + * a blogId. + * - I've added a setting to the API to indicate that OAuth support is + * available. + * + * @category API + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class RsdAction extends Action +{ + /** + * Optional attribute for the personal rsd.xml file. + */ + + var $user = null; + + /** + * Prepare the action for use. + * + * Check for a nickname; redirect if non-canonical; if + * not provided, assume public rsd.xml. + * + * @param array $args GET, POST, and URI arguments. + * + * @return boolean success flag + */ + + function prepare($args) + { + parent::prepare($args); + + // optional argument + + $nickname_arg = $this->arg('nickname'); + + if (empty($nickname_arg)) { + $this->user = null; + } else { + $nickname = common_canonical_nickname($nickname_arg); + + // Permanent redirect on non-canonical nickname + + if ($nickname_arg != $nickname) { + common_redirect(common_local_url('rsd', + array('nickname' => $nickname)), + 301); + return false; + } + + $this->user = User::staticGet('nickname', $nickname); + + if (empty($this->user)) { + $this->clientError(_('No such user.'), 404); + return false; + } + } + + return true; + } + + /** + * Action handler. + * + * Outputs the XML format for an RSD file. May include + * personal information if this is a personal file + * (based on whether $user attribute is set). + * + * @param array $args array of arguments + * + * @return nothing + */ + + function handle($args) + { + header('Content-Type: application/rsd+xml'); + + $this->startXML(); + + $rsdNS = 'http://archipelago.phrasewise.com/rsd'; + $this->elementStart('rsd', array('version' => '1.0', + 'xmlns' => $rsdNS)); + $this->elementStart('service'); + $this->element('engineName', null, _('StatusNet')); + $this->element('engineLink', null, 'http://status.net/'); + $this->elementStart('apis'); + if (Event::handle('StartRsdListApis', array($this, $this->user))) { + + $blogID = (empty($this->user)) ? '' : $this->user->nickname; + $apiAttrs = array('name' => 'Twitter', + 'preferred' => 'true', + 'apiLink' => $this->_apiRoot(), + 'blogID' => $blogID); + + $this->elementStart('api', $apiAttrs); + $this->elementStart('settings'); + $this->element('docs', null, + 'http://status.net/wiki/TwitterCompatibleAPI'); + $this->element('setting', array('name' => 'OAuth'), + 'true'); + $this->elementEnd('settings'); + $this->elementEnd('api'); + Event::handle('EndRsdListApis', array($this, $this->user)); + } + $this->elementEnd('apis'); + $this->elementEnd('service'); + $this->elementEnd('rsd'); + + $this->endXML(); + + return true; + } + + /** + * Returns last-modified date for use in caching + * + * Per-user rsd.xml is dated to last change of user + * (in case of nickname change); public has no date. + * + * @return string date of last change of this page + */ + + function lastModified() + { + if (!empty($this->user)) { + return $this->user->modified; + } else { + return null; + } + } + + /** + * Flag to indicate if this action is read-only + * + * It is; it doesn't change the DB. + * + * @param array $args ignored + * + * @return boolean true + */ + + function isReadOnly($args) + { + return true; + } + + /** + * Return current site's API root + * + * Varies based on URL parameters, like if fancy URLs are + * turned on. + * + * @return string API root URI for this site + */ + + private function _apiRoot() + { + if (common_config('site', 'fancy')) { + return common_path('api/', true); + } else { + return common_path('index.php/api/', true); + } + } +} diff --git a/actions/showapplication.php b/actions/showapplication.php index a6ff425c7..fa4484481 100644 --- a/actions/showapplication.php +++ b/actions/showapplication.php @@ -149,7 +149,6 @@ class ShowApplicationAction extends OwnerDesignAction function showContent() { - $cur = common_current_user(); $consumer = $this->application->getConsumer(); @@ -201,7 +200,7 @@ class ShowApplicationAction extends OwnerDesignAction $userCnt = $appUsers->count(); $this->raw(sprintf( - _('created by %1$s - %2$s access by default - %3$d users'), + _('Created by %1$s - %2$s access by default - %3$d users'), $profile->getBestName(), $defaultAccess, $userCnt @@ -222,18 +221,39 @@ class ShowApplicationAction extends OwnerDesignAction $this->elementStart('li', 'entity_reset_keysecret'); $this->elementStart('form', array( - 'id' => 'forma_reset_key', + 'id' => 'form_reset_key', 'class' => 'form_reset_key', 'method' => 'POST', 'action' => common_local_url('showapplication', array('id' => $this->application->id)))); + $this->elementStart('fieldset'); + $this->hidden('token', common_session_token()); + + $this->element('input', array('type' => 'submit', + 'id' => 'reset', + 'name' => 'reset', + 'class' => 'submit', + 'value' => _('Reset key & secret'), + 'onClick' => 'return confirmReset()')); + $this->elementEnd('fieldset'); + $this->elementEnd('form'); + $this->elementEnd('li'); + + $this->elementStart('li', 'entity_delete'); + $this->elementStart('form', array( + 'id' => 'form_delete_application', + 'class' => 'form_delete_application', + 'method' => 'POST', + 'action' => common_local_url('deleteapplication', + array('id' => $this->application->id)))); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); - $this->submit('reset', _('Reset key & secret')); + $this->submit('delete', _('Delete')); $this->elementEnd('fieldset'); $this->elementEnd('form'); $this->elementEnd('li'); + $this->elementEnd('ul'); $this->elementEnd('div'); @@ -276,14 +296,53 @@ class ShowApplicationAction extends OwnerDesignAction $this->elementEnd('p'); } + /** + * Add a confirm script for Consumer key/secret reset + * + * @return void + */ + + function showScripts() + { + parent::showScripts(); + + $msg = _('Are you sure you want to reset your consumer key and secret?'); + + $js = 'function confirmReset() { '; + $js .= ' var agree = confirm("' . $msg . '"); '; + $js .= ' return agree;'; + $js .= '}'; + + $this->inlineScript($js); + } + + /** + * Reset an application's Consumer key and secret + * + * XXX: Should this be moved to its own page with a confirm? + * + */ + function resetKey() { $this->application->query('BEGIN'); + $oauser = new Oauth_application_user(); + $oauser->application_id = $this->application->id; + $result = $oauser->delete(); + + if ($result === false) { + common_log_db_error($oauser, 'DELETE', __FILE__); + $this->success = false; + $this->msg = ('Unable to reset consumer key and secret.'); + $this->showPage(); + return; + } + $consumer = $this->application->getConsumer(); $result = $consumer->delete(); - if (!$result) { + if ($result === false) { common_log_db_error($consumer, 'DELETE', __FILE__); $this->success = false; $this->msg = ('Unable to reset consumer key and secret.'); @@ -295,7 +354,7 @@ class ShowApplicationAction extends OwnerDesignAction $result = $consumer->insert(); - if (!$result) { + if (empty($result)) { common_log_db_error($consumer, 'INSERT', __FILE__); $this->application->query('ROLLBACK'); $this->success = false; @@ -308,7 +367,7 @@ class ShowApplicationAction extends OwnerDesignAction $this->application->consumer_key = $consumer->consumer_key; $result = $this->application->update($orig); - if (!$result) { + if ($result === false) { common_log_db_error($application, 'UPDATE', __FILE__); $this->application->query('ROLLBACK'); $this->success = false; diff --git a/actions/showstream.php b/actions/showstream.php index c52919386..07cc68b76 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -178,6 +178,15 @@ class ShowstreamAction extends ProfileAction $this->element('link', array('rel' => 'microsummary', 'href' => common_local_url('microsummary', array('nickname' => $this->profile->nickname)))); + + $rsd = common_local_url('rsd', + array('nickname' => $this->profile->nickname)); + + // RSD, http://tales.phrasewise.com/rfc/rsd + $this->element('link', array('rel' => 'EditURI', + 'type' => 'application/rsd+xml', + 'href' => $rsd)); + } function showProfile() diff --git a/actions/userauthorization.php b/actions/userauthorization.php index 4321f1302..7f71c60db 100644 --- a/actions/userauthorization.php +++ b/actions/userauthorization.php @@ -127,10 +127,10 @@ class UserauthorizationAction extends Action $location = $params->getLocation(); $avatar = $params->getAvatarURL(); - $this->elementStart('div', array('class' => 'profile')); $this->elementStart('div', 'entity_profile vcard'); - $this->elementStart('a', array('href' => $profile, - 'class' => 'url')); + $this->elementStart('dl', 'entity_depiction'); + $this->element('dt', null, _('Photo')); + $this->elementStart('dd'); if ($avatar) { $this->element('img', array('src' => $avatar, 'class' => 'photo avatar', @@ -138,11 +138,19 @@ class UserauthorizationAction extends Action 'height' => AVATAR_PROFILE_SIZE, 'alt' => $nickname)); } + $this->elementEnd('dd'); + $this->elementEnd('dl'); + + $this->elementStart('dl', 'entity_nickname'); + $this->element('dt', null, _('Nickname')); + $this->elementStart('dd'); $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname'; - $this->elementStart('span', $hasFN); + $this->elementStart('a', array('href' => $profile, + 'class' => 'url '.$hasFN)); $this->raw($nickname); - $this->elementEnd('span'); $this->elementEnd('a'); + $this->elementEnd('dd'); + $this->elementEnd('dl'); if (!is_null($fullname)) { $this->elementStart('dl', 'entity_fn'); @@ -214,7 +222,6 @@ class UserauthorizationAction extends Action $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('div'); - $this->elementEnd('div'); } function sendAuthorization() @@ -350,4 +357,4 @@ class UserauthorizationAction extends Action } } } -}
\ No newline at end of file +} diff --git a/classes/Consumer.php b/classes/Consumer.php index ad64a8491..ce399f278 100644 --- a/classes/Consumer.php +++ b/classes/Consumer.php @@ -36,4 +36,34 @@ class Consumer extends Memcached_DataObject return $cons; } + /** + * Delete a Consumer and related tokens and nonces + * + * XXX: Should this happen in an OAuthDataStore instead? + * + */ + function delete() + { + // XXX: Is there any reason NOT to do this kind of cleanup? + + $this->_deleteTokens(); + $this->_deleteNonces(); + + parent::delete(); + } + + function _deleteTokens() + { + $token = new Token(); + $token->consumer_key = $this->consumer_key; + $token->delete(); + } + + function _deleteNonces() + { + $nonce = new Nonce(); + $nonce->consumer_key = $this->consumer_key; + $nonce->delete(); + } + } diff --git a/classes/File.php b/classes/File.php index 34e4632a8..307fdb686 100644 --- a/classes/File.php +++ b/classes/File.php @@ -176,8 +176,22 @@ class File extends Memcached_DataObject return "$nickname-$datestamp-$random.$ext"; } + /** + * Validation for as-saved base filenames + */ + static function validFilename($filename) + { + return preg_match('/^[A-Za-z0-9._-]+$/', $filename); + } + + /** + * @throws ClientException on invalid filename + */ static function path($filename) { + if (!self::validFilename($filename)) { + throw new ClientException("Invalid filename"); + } $dir = common_config('attachments', 'dir'); if ($dir[strlen($dir)-1] != '/') { @@ -189,6 +203,9 @@ class File extends Memcached_DataObject static function url($filename) { + if (!self::validFilename($filename)) { + throw new ClientException("Invalid filename"); + } if(common_config('site','private')) { return common_local_url('getfile', diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 2cc6377f8..ab65c30ce 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -147,6 +147,7 @@ class Memcached_DataObject extends DB_DataObject { $result = parent::insert(); if ($result) { + $this->fixupTimestamps(); $this->encache(); // in case of cached negative lookups } return $result; @@ -159,6 +160,7 @@ class Memcached_DataObject extends DB_DataObject } $result = parent::update($orig); if ($result) { + $this->fixupTimestamps(); $this->encache(); } return $result; @@ -366,7 +368,7 @@ class Memcached_DataObject extends DB_DataObject } /** - * sends query to database - this is the private one that must work + * sends query to database - this is the private one that must work * - internal functions use this rather than $this->query() * * Overridden to do logging. @@ -428,7 +430,7 @@ class Memcached_DataObject extends DB_DataObject // // WARNING WARNING if we end up actually using multiple DBs at a time // we'll need some fancier logic here. - if (!$exists && !empty($_DB_DATAOBJECT['CONNECTIONS'])) { + if (!$exists && !empty($_DB_DATAOBJECT['CONNECTIONS']) && php_sapi_name() == 'cli') { foreach ($_DB_DATAOBJECT['CONNECTIONS'] as $index => $conn) { if (!empty($conn)) { $conn->disconnect(); @@ -529,4 +531,51 @@ class Memcached_DataObject extends DB_DataObject return $c->delete($cacheKey); } + + function fixupTimestamps() + { + // Fake up timestamp columns + $columns = $this->table(); + foreach ($columns as $name => $type) { + if ($type & DB_DATAOBJECT_MYSQLTIMESTAMP) { + $this->$name = common_sql_now(); + } + } + } + + function debugDump() + { + common_debug("debugDump: " . common_log_objstring($this)); + } + + function raiseError($message, $type = null, $behaviour = null) + { + throw new ServerException("DB_DataObject error [$type]: $message"); + } + + static function cacheGet($keyPart) + { + $c = self::memcache(); + + if (empty($c)) { + return false; + } + + $cacheKey = common_cache_key($keyPart); + + return $c->get($cacheKey); + } + + static function cacheSet($keyPart, $value) + { + $c = self::memcache(); + + if (empty($c)) { + return false; + } + + $cacheKey = common_cache_key($keyPart); + + return $c->set($cacheKey, $value); + } } diff --git a/classes/Notice.php b/classes/Notice.php index 0966697e2..42878d94f 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -140,7 +140,7 @@ class Notice extends Memcached_DataObject foreach(array_unique($hashtags) as $hashtag) { /* elide characters we don't want in the tag */ $this->saveTag($hashtag); - self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, $tag->tag); + self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, $hashtag); } return true; } @@ -326,9 +326,7 @@ class Notice extends Memcached_DataObject # XXX: someone clever could prepend instead of clearing the cache $notice->blowOnInsert(); - $qm = QueueManager::get(); - - $qm->enqueue($notice, 'distrib'); + $notice->distribute(); return $notice; } @@ -1374,8 +1372,6 @@ class Notice extends Memcached_DataObject } $reply->free(); - - return $ids; } function clearRepeats() @@ -1445,4 +1441,31 @@ class Notice extends Memcached_DataObject $gi->free(); } + + function distribute() + { + if (common_config('queue', 'inboxes')) { + // If there's a failure, we want to _force_ + // distribution at this point. + try { + $qm = QueueManager::get(); + $qm->enqueue($this, 'distrib'); + } catch (Exception $e) { + // If the exception isn't transient, this + // may throw more exceptions as DQH does + // its own enqueueing. So, we ignore them! + try { + $handler = new DistribQueueHandler(); + $handler->handle($this); + } catch (Exception $e) { + common_log(LOG_ERR, "emergency redistribution resulted in " . $e->getMessage()); + } + // Re-throw so somebody smarter can handle it. + throw $e; + } + } else { + $handler = new DistribQueueHandler(); + $handler->handle($this); + } + } } diff --git a/classes/Oauth_application.php b/classes/Oauth_application.php index a6b539087..748b64220 100644 --- a/classes/Oauth_application.php +++ b/classes/Oauth_application.php @@ -137,4 +137,21 @@ class Oauth_application extends Memcached_DataObject } } + function delete() + { + $this->_deleteAppUsers(); + + $consumer = $this->getConsumer(); + $consumer->delete(); + + parent::delete(); + } + + function _deleteAppUsers() + { + $oauser = new Oauth_application_user(); + $oauser->application_id = $this->id; + $oauser->delete(); + } + } diff --git a/classes/Profile_role.php b/classes/Profile_role.php index 74aca3730..bf2c453ed 100644 --- a/classes/Profile_role.php +++ b/classes/Profile_role.php @@ -48,6 +48,7 @@ class Profile_role extends Memcached_DataObject return Memcached_DataObject::pkeyGet('Profile_role', $kv); } + const OWNER = 'owner'; const MODERATOR = 'moderator'; const ADMINISTRATOR = 'administrator'; const SANDBOXED = 'sandboxed'; diff --git a/classes/Session.php b/classes/Session.php index 79a69a96e..2422f8b68 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -64,8 +64,12 @@ class Session extends Memcached_DataObject $session = Session::staticGet('id', $id); if (empty($session)) { + self::logdeb("Couldn't find '$id'"); return ''; } else { + self::logdeb("Found '$id', returning " . + strlen($session->session_data) . + " chars of data"); return (string)$session->session_data; } } @@ -77,14 +81,24 @@ class Session extends Memcached_DataObject $session = Session::staticGet('id', $id); if (empty($session)) { + self::logdeb("'$id' doesn't yet exist; inserting."); $session = new Session(); $session->id = $id; $session->session_data = $session_data; $session->created = common_sql_now(); - return $session->insert(); + $result = $session->insert(); + + if (!$result) { + common_log_db_error($session, 'INSERT', __FILE__); + self::logdeb("Failed to insert '$id'."); + } else { + self::logdeb("Successfully inserted '$id' (result = $result)."); + } + return $result; } else { + self::logdeb("'$id' already exists; updating."); if (strcmp($session->session_data, $session_data) == 0) { self::logdeb("Not writing session '$id'; unchanged"); return true; @@ -95,7 +109,16 @@ class Session extends Memcached_DataObject $session->session_data = $session_data; - return $session->update($orig); + $result = $session->update($orig); + + if (!$result) { + common_log_db_error($session, 'UPDATE', __FILE__); + self::logdeb("Failed to update '$id'."); + } else { + self::logdeb("Successfully updated '$id' (result = $result)."); + } + + return $result; } } } @@ -106,8 +129,17 @@ class Session extends Memcached_DataObject $session = Session::staticGet('id', $id); - if (!empty($session)) { - return $session->delete(); + if (empty($session)) { + self::logdeb("Can't find '$id' to delete."); + } else { + $result = $session->delete(); + if (!$result) { + common_log_db_error($session, 'DELETE', __FILE__); + self::logdeb("Failed to delete '$id'."); + } else { + self::logdeb("Successfully deleted '$id' (result = $result)."); + } + return $result; } } @@ -132,7 +164,10 @@ class Session extends Memcached_DataObject $session->free(); + self::logdeb("Found " . count($ids) . " ids to delete."); + foreach ($ids as $id) { + self::logdeb("Destroying session '$id'."); self::destroy($id); } } diff --git a/classes/User.php b/classes/User.php index 6ea975202..0ab816b57 100644 --- a/classes/User.php +++ b/classes/User.php @@ -209,8 +209,6 @@ class User extends Memcached_DataObject $profile = new Profile(); - $profile->query('BEGIN'); - if(!empty($email)) { $email = common_canonical_email($email); @@ -220,7 +218,7 @@ class User extends Memcached_DataObject $profile->nickname = $nickname; if(! User::allowed_nickname($nickname)){ common_log(LOG_WARNING, sprintf("Attempted to register a nickname that is not allowed: %s", $profile->nickname), - __FILE__); + __FILE__); } $profile->profileurl = common_profile_url($nickname); @@ -248,22 +246,10 @@ class User extends Memcached_DataObject $profile->created = common_sql_now(); - $id = $profile->insert(); - - if (empty($id)) { - common_log_db_error($profile, 'INSERT', __FILE__); - return false; - } - $user = new User(); - $user->id = $id; $user->nickname = $nickname; - 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 if (!empty($code)) { @@ -282,109 +268,129 @@ class User extends Memcached_DataObject $user->inboxed = 1; $user->created = common_sql_now(); - $user->uri = common_user_uri($user); - - $result = $user->insert(); - if (!$result) { - common_log_db_error($user, 'INSERT', __FILE__); - return false; - } - - // Everyone gets an inbox + if (Event::handle('StartUserRegister', array(&$user, &$profile))) { - $inbox = new Inbox(); + $profile->query('BEGIN'); - $inbox->user_id = $user->id; - $inbox->notice_ids = ''; + $id = $profile->insert(); - $result = $inbox->insert(); + if (empty($id)) { + common_log_db_error($profile, 'INSERT', __FILE__); + return false; + } - if (!$result) { - common_log_db_error($inbox, 'INSERT', __FILE__); - return false; - } + $user->id = $id; + $user->uri = common_user_uri($user); + if (!empty($password)) { // may not have a password for OpenID users + $user->password = common_munge_password($password, $id); + } - // Everyone is subscribed to themself + $result = $user->insert(); - $subscription = new Subscription(); - $subscription->subscriber = $user->id; - $subscription->subscribed = $user->id; - $subscription->created = $user->created; + if (!$result) { + common_log_db_error($user, 'INSERT', __FILE__); + return false; + } - $result = $subscription->insert(); + // Everyone gets an inbox - if (!$result) { - common_log_db_error($subscription, 'INSERT', __FILE__); - return false; - } + $inbox = new Inbox(); - if (!empty($email) && !$user->email) { + $inbox->user_id = $user->id; + $inbox->notice_ids = ''; - $confirm = new Confirm_address(); - $confirm->code = common_confirmation_code(128); - $confirm->user_id = $user->id; - $confirm->address = $email; - $confirm->address_type = 'email'; + $result = $inbox->insert(); - $result = $confirm->insert(); if (!$result) { - common_log_db_error($confirm, 'INSERT', __FILE__); + common_log_db_error($inbox, 'INSERT', __FILE__); return false; } - } - if (!empty($code) && $user->email) { - $user->emailChanged(); - } + // Everyone is subscribed to themself - // Default system subscription + $subscription = new Subscription(); + $subscription->subscriber = $user->id; + $subscription->subscribed = $user->id; + $subscription->created = $user->created; - $defnick = common_config('newuser', 'default'); + $result = $subscription->insert(); - 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; + if (!$result) { + common_log_db_error($subscription, 'INSERT', __FILE__); + return false; + } + + if (!empty($email) && !$user->email) { + + $confirm = new Confirm_address(); + $confirm->code = common_confirmation_code(128); + $confirm->user_id = $user->id; + $confirm->address = $email; + $confirm->address_type = 'email'; - $result = $defsub->insert(); + $result = $confirm->insert(); if (!$result) { - common_log_db_error($defsub, 'INSERT', __FILE__); + common_log_db_error($confirm, 'INSERT', __FILE__); return false; } } - } - $profile->query('COMMIT'); + if (!empty($code) && $user->email) { + $user->emailChanged(); + } + + // Default system subscription - if (!empty($email) && !$user->email) { - mail_confirm_address($user, $confirm->code, $profile->nickname, $email); - } + $defnick = common_config('newuser', 'default'); - // Welcome message + 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; - $welcome = common_config('newuser', 'welcome'); + $result = $defsub->insert(); - 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'); + if (!$result) { + common_log_db_error($defsub, 'INSERT', __FILE__); + return false; + } + } + } + $profile->query('COMMIT'); + + if (!empty($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'); + + } } + + Event::handle('EndUserRegister', array(&$profile, &$user)); } return $user; @@ -925,4 +931,30 @@ class User extends Memcached_DataObject return $share; } } + + static function siteOwner() + { + $owner = self::cacheGet('user:site_owner'); + + if ($owner === false) { // cache miss + + $pr = new Profile_role(); + + $pr->role = Profile_role::OWNER; + + $pr->orderBy('created'); + + $pr->limit(1); + + if ($pr->find(true)) { + $owner = User::staticGet('id', $pr->profile_id); + } else { + $owner = null; + } + + self::cacheSet('user:site_owner', $owner); + } + + return $owner; + } } diff --git a/classes/status_network.ini b/classes/status_network.ini index 8123265e4..adb71cba7 100644 --- a/classes/status_network.ini +++ b/classes/status_network.ini @@ -11,6 +11,7 @@ theme = 2 logo = 2 created = 142 modified = 384 +tags = 34 [status_network__keys] nickname = K diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 6203650a6..4ace4407b 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -353,7 +353,7 @@ notice_id = K id = 129 owner = 129 consumer_key = 130 -name = 130 +name = 2 description = 2 icon = 130 source_url = 2 @@ -367,6 +367,7 @@ modified = 384 [oauth_application__keys] id = N +name = U [oauth_application_user] profile_id = 129 diff --git a/db/08to09.sql b/db/08to09.sql index b10e47dbc..d5f30a26b 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -110,3 +110,34 @@ insert into queue_item_new (frame,transport,created,claimed) alter table queue_item rename to queue_item_old; alter table queue_item_new rename to queue_item; +alter table consumer + add column consumer_secret varchar(255) not null comment 'secret value'; + +create table oauth_application ( + id integer auto_increment primary key comment 'unique identifier', + owner integer not null comment 'owner of the application' references profile (id), + consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key), + name varchar(255) not null comment 'name of the application', + description varchar(255) comment 'description of the application', + icon varchar(255) not null comment 'application icon', + source_url varchar(255) comment 'application homepage - used for source link', + organization varchar(255) comment 'name of the organization running the application', + homepage varchar(255) comment 'homepage for the organization', + callback_url varchar(255) comment 'url to redirect to after authentication', + type tinyint default 0 comment 'type of app, 1 = browser, 2 = desktop', + access_type tinyint default 0 comment 'default access type, bit 1 = read, bit 2 = write', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +create table oauth_application_user ( + profile_id integer not null comment 'user of the application' references profile (id), + application_id integer not null comment 'id of the application' references oauth_application (id), + access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write, bit 3 = revoked', + token varchar(255) comment 'request or access token', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + constraint primary key (profile_id, application_id) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + + diff --git a/db/rc3torc4.sql b/db/rc3torc4.sql index 8342c4bc6..917c1f1c4 100644 --- a/db/rc3torc4.sql +++ b/db/rc3torc4.sql @@ -15,7 +15,9 @@ alter table queue_item rename to queue_item_old; alter table queue_item_new rename to queue_item; alter table consumer - add consumer_secret varchar(255) not null comment 'secret value', + add consumer_secret varchar(255) not null comment 'secret value'; + +alter table token add verifier varchar(255) comment 'verifier string for OAuth 1.0a', add verified_callback varchar(255) comment 'verified callback URL for OAuth 1.0a'; diff --git a/db/statusnet.sql b/db/statusnet.sql index 17de4fd0d..8946f4d7e 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -214,7 +214,7 @@ create table oauth_application ( id integer auto_increment primary key comment 'unique identifier', owner integer not null comment 'owner of the application' references profile (id), consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key), - name varchar(255) not null comment 'name of the application', + name varchar(255) unique key comment 'name of the application', description varchar(255) comment 'description of the application', icon varchar(255) not null comment 'application icon', source_url varchar(255) comment 'application homepage - used for source link', @@ -230,7 +230,7 @@ create table oauth_application ( create table oauth_application_user ( profile_id integer not null comment 'user of the application' references profile (id), application_id integer not null comment 'id of the application' references oauth_application (id), - access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write, bit 3 = revoked', + access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write', token varchar(255) comment 'request or access token', created datetime not null comment 'date this record was created', modified timestamp comment 'date this record was modified', @@ -146,12 +146,27 @@ function formatBacktraceLine($n, $line) return $out; } -function checkMirror($action_obj, $args) +function setupRW() { global $config; static $alwaysRW = array('session', 'remember_me'); + // We ensure that these tables always are used + // on the master DB + + $config['db']['database_rw'] = $config['db']['database']; + $config['db']['ini_rw'] = INSTALLDIR.'/classes/statusnet.ini'; + + foreach ($alwaysRW as $table) { + $config['db']['table_'.$table] = 'rw'; + } +} + +function checkMirror($action_obj, $args) +{ + global $config; + if (common_config('db', 'mirror') && $action_obj->isReadOnly($args)) { if (is_array(common_config('db', 'mirror'))) { // "load balancing", ha ha @@ -162,16 +177,6 @@ function checkMirror($action_obj, $args) $mirror = common_config('db', 'mirror'); } - // We ensure that these tables always are used - // on the master DB - - $config['db']['database_rw'] = $config['db']['database']; - $config['db']['ini_rw'] = INSTALLDIR.'/classes/statusnet.ini'; - - foreach ($alwaysRW as $table) { - $config['db']['table_'.$table] = 'rw'; - } - // everyone else uses the mirror $config['db']['database'] = $mirror; @@ -237,9 +242,13 @@ function main() PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); + // Make sure RW database is setup + + setupRW(); + // XXX: we need a little more structure in this script - // get and cache current user + // get and cache current user (may hit RW!) $user = common_current_user(); @@ -276,8 +285,9 @@ function main() if (!$user && common_config('site', 'private') && !isLoginAction($action) && !preg_match('/rss$/', $action) - && !preg_match('/^Api/', $action) - ) { + && $action != 'robotstxt' + && !preg_match('/^Api/', $action)) { + // set returnto $rargs =& common_copy_args($args); unset($rargs['action']); diff --git a/js/jquery.form.js b/js/jquery.form.js index 936b847ab..dde394270 100644 --- a/js/jquery.form.js +++ b/js/jquery.form.js @@ -1,632 +1,660 @@ -/*
- * jQuery Form Plugin
- * version: 2.17 (06-NOV-2008)
- * @requires jQuery v1.2.2 or later
- *
- * Examples and documentation at: http://malsup.com/jquery/form/
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id$
- */
-;(function($) {
-
-/*
- Usage Note:
- -----------
- Do not use both ajaxSubmit and ajaxForm on the same form. These
- functions are intended to be exclusive. Use ajaxSubmit if you want
- to bind your own submit handler to the form. For example,
-
- $(document).ready(function() {
- $('#myForm').bind('submit', function() {
- $(this).ajaxSubmit({
- target: '#output'
- });
- return false; // <-- important!
- });
- });
-
- Use ajaxForm when you want the plugin to manage all the event binding
- for you. For example,
-
- $(document).ready(function() {
- $('#myForm').ajaxForm({
- target: '#output'
- });
- });
-
- When using ajaxForm, the ajaxSubmit function will be invoked for you
- at the appropriate time.
-*/
-
-/**
- * ajaxSubmit() provides a mechanism for immediately submitting
- * an HTML form using AJAX.
- */
-$.fn.ajaxSubmit = function(options) {
- // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
- if (!this.length) {
- log('ajaxSubmit: skipping submit process - no element selected');
- return this;
- }
-
- if (typeof options == 'function')
- options = { success: options };
-
- options = $.extend({
- url: this.attr('action') || window.location.toString(),
- type: this.attr('method') || 'GET'
- }, options || {});
-
- // hook for manipulating the form data before it is extracted;
- // convenient for use with rich editors like tinyMCE or FCKEditor
- var veto = {};
- this.trigger('form-pre-serialize', [this, options, veto]);
- if (veto.veto) {
- log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
- return this;
- }
-
- // provide opportunity to alter form data before it is serialized
- if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
- log('ajaxSubmit: submit aborted via beforeSerialize callback');
- return this;
- }
-
- var a = this.formToArray(options.semantic);
- if (options.data) {
- options.extraData = options.data;
- for (var n in options.data) {
- if(options.data[n] instanceof Array) {
- for (var k in options.data[n])
- a.push( { name: n, value: options.data[n][k] } )
- }
- else
- a.push( { name: n, value: options.data[n] } );
- }
- }
-
- // give pre-submit callback an opportunity to abort the submit
- if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
- log('ajaxSubmit: submit aborted via beforeSubmit callback');
- return this;
- }
-
- // fire vetoable 'validate' event
- this.trigger('form-submit-validate', [a, this, options, veto]);
- if (veto.veto) {
- log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
- return this;
- }
-
- var q = $.param(a);
-
- if (options.type.toUpperCase() == 'GET') {
- options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
- options.data = null; // data is null for 'get'
- }
- else
- options.data = q; // data is the query string for 'post'
-
- var $form = this, callbacks = [];
- if (options.resetForm) callbacks.push(function() { $form.resetForm(); });
- if (options.clearForm) callbacks.push(function() { $form.clearForm(); });
-
- // perform a load on the target only if dataType is not provided
- if (!options.dataType && options.target) {
- var oldSuccess = options.success || function(){};
- callbacks.push(function(data) {
- $(options.target).html(data).each(oldSuccess, arguments);
- });
- }
- else if (options.success)
- callbacks.push(options.success);
-
- options.success = function(data, status) {
- for (var i=0, max=callbacks.length; i < max; i++)
- callbacks[i].apply(options, [data, status, $form]);
- };
-
- // are there files to upload?
- var files = $('input:file', this).fieldValue();
- var found = false;
- for (var j=0; j < files.length; j++)
- if (files[j])
- found = true;
-
- // options.iframe allows user to force iframe mode
- if (options.iframe || found) {
- // hack to fix Safari hang (thanks to Tim Molendijk for this)
- // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
- if ($.browser.safari && options.closeKeepAlive)
- $.get(options.closeKeepAlive, fileUpload);
- else
- fileUpload();
- }
- else
- $.ajax(options);
-
- // fire 'notify' event
- this.trigger('form-submit-notify', [this, options]);
- return this;
-
-
- // private function for handling file uploads (hat tip to YAHOO!)
- function fileUpload() {
- var form = $form[0];
-
- if ($(':input[name=submit]', form).length) {
- alert('Error: Form elements must not be named "submit".');
- return;
- }
-
- var opts = $.extend({}, $.ajaxSettings, options);
- var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts);
-
- var id = 'jqFormIO' + (new Date().getTime());
- var $io = $('<iframe id="' + id + '" name="' + id + '" />');
- var io = $io[0];
-
- if ($.browser.msie || $.browser.opera)
- io.src = 'javascript:false;document.write("");';
- $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
-
- var xhr = { // mock object
- aborted: 0,
- responseText: null,
- responseXML: null,
- status: 0,
- statusText: 'n/a',
- getAllResponseHeaders: function() {},
- getResponseHeader: function() {},
- setRequestHeader: function() {},
- abort: function() {
- this.aborted = 1;
- $io.attr('src','about:blank'); // abort op in progress
- }
- };
-
- var g = opts.global;
- // trigger ajax global events so that activity/block indicators work like normal
- if (g && ! $.active++) $.event.trigger("ajaxStart");
- if (g) $.event.trigger("ajaxSend", [xhr, opts]);
-
- if (s.beforeSend && s.beforeSend(xhr, s) === false) {
- s.global && jQuery.active--;
- return;
- }
- if (xhr.aborted)
- return;
-
- var cbInvoked = 0;
- var timedOut = 0;
-
- // add submitting element to data if we know it
- var sub = form.clk;
- if (sub) {
- var n = sub.name;
- if (n && !sub.disabled) {
- options.extraData = options.extraData || {};
- options.extraData[n] = sub.value;
- if (sub.type == "image") {
- options.extraData[name+'.x'] = form.clk_x;
- options.extraData[name+'.y'] = form.clk_y;
- }
- }
- }
-
- // take a breath so that pending repaints get some cpu time before the upload starts
- setTimeout(function() {
- // make sure form attrs are set
- var t = $form.attr('target'), a = $form.attr('action');
- $form.attr({
- target: id,
- method: 'POST',
- action: opts.url
- });
-
- // ie borks in some cases when setting encoding
- if (! options.skipEncodingOverride) {
- $form.attr({
- encoding: 'multipart/form-data',
- enctype: 'multipart/form-data'
- });
- }
-
- // support timout
- if (opts.timeout)
- setTimeout(function() { timedOut = true; cb(); }, opts.timeout);
-
- // add "extra" data to form if provided in options
- var extraInputs = [];
- try {
- if (options.extraData)
- for (var n in options.extraData)
- extraInputs.push(
- $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
- .appendTo(form)[0]);
-
- // add iframe to doc and submit the form
- $io.appendTo('body');
- io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
- form.submit();
- }
- finally {
- // reset attrs and remove "extra" input elements
- $form.attr('action', a);
- t ? $form.attr('target', t) : $form.removeAttr('target');
- $(extraInputs).remove();
- }
- }, 10);
-
- function cb() {
- if (cbInvoked++) return;
-
- io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
-
- var operaHack = 0;
- var ok = true;
- try {
- if (timedOut) throw 'timeout';
- // extract the server response from the iframe
- var data, doc;
-
- doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
-
- if (doc.body == null && !operaHack && $.browser.opera) {
- // In Opera 9.2.x the iframe DOM is not always traversable when
- // the onload callback fires so we give Opera 100ms to right itself
- operaHack = 1;
- cbInvoked--;
- setTimeout(cb, 100);
- return;
- }
-
- xhr.responseText = doc.body ? doc.body.innerHTML : null;
- xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
- xhr.getResponseHeader = function(header){
- var headers = {'content-type': opts.dataType};
- return headers[header];
- };
-
- if (opts.dataType == 'json' || opts.dataType == 'script') {
- var ta = doc.getElementsByTagName('textarea')[0];
- xhr.responseText = ta ? ta.value : xhr.responseText;
- }
- else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
- xhr.responseXML = toXml(xhr.responseText);
- }
- data = $.httpData(xhr, opts.dataType);
- }
- catch(e){
- ok = false;
- $.handleError(opts, xhr, 'error', e);
- }
-
- // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
- if (ok) {
- opts.success(data, 'success');
- if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);
- }
- if (g) $.event.trigger("ajaxComplete", [xhr, opts]);
- if (g && ! --$.active) $.event.trigger("ajaxStop");
- if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');
-
- // clean up
- setTimeout(function() {
- $io.remove();
- xhr.responseXML = null;
- }, 100);
- };
-
- function toXml(s, doc) {
- if (window.ActiveXObject) {
- doc = new ActiveXObject('Microsoft.XMLDOM');
- doc.async = 'false';
- doc.loadXML(s);
- }
- else
- doc = (new DOMParser()).parseFromString(s, 'text/xml');
- return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
- };
- };
-};
-
-/**
- * ajaxForm() provides a mechanism for fully automating form submission.
- *
- * The advantages of using this method instead of ajaxSubmit() are:
- *
- * 1: This method will include coordinates for <input type="image" /> elements (if the element
- * is used to submit the form).
- * 2. This method will include the submit element's name/value data (for the element that was
- * used to submit the form).
- * 3. This method binds the submit() method to the form for you.
- *
- * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
- * passes the options argument along after properly binding events for submit elements and
- * the form itself.
- */
-$.fn.ajaxForm = function(options) {
- return this.ajaxFormUnbind().bind('submit.form-plugin',function() {
- $(this).ajaxSubmit(options);
- return false;
- }).each(function() {
- // store options in hash
- $(":submit,input:image", this).bind('click.form-plugin',function(e) {
- var form = this.form;
- form.clk = this;
- if (this.type == 'image') {
- if (e.offsetX != undefined) {
- form.clk_x = e.offsetX;
- form.clk_y = e.offsetY;
- } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
- var offset = $(this).offset();
- form.clk_x = e.pageX - offset.left;
- form.clk_y = e.pageY - offset.top;
- } else {
- form.clk_x = e.pageX - this.offsetLeft;
- form.clk_y = e.pageY - this.offsetTop;
- }
- }
- // clear form vars
- setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 10);
- });
- });
-};
-
-// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
-$.fn.ajaxFormUnbind = function() {
- this.unbind('submit.form-plugin');
- return this.each(function() {
- $(":submit,input:image", this).unbind('click.form-plugin');
- });
-
-};
-
-/**
- * formToArray() gathers form element data into an array of objects that can
- * be passed to any of the following ajax functions: $.get, $.post, or load.
- * Each object in the array has both a 'name' and 'value' property. An example of
- * an array for a simple login form might be:
- *
- * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- *
- * It is this array that is passed to pre-submit callback functions provided to the
- * ajaxSubmit() and ajaxForm() methods.
- */
-$.fn.formToArray = function(semantic) {
- var a = [];
- if (this.length == 0) return a;
-
- var form = this[0];
- var els = semantic ? form.getElementsByTagName('*') : form.elements;
- if (!els) return a;
- for(var i=0, max=els.length; i < max; i++) {
- var el = els[i];
- var n = el.name;
- if (!n) continue;
-
- if (semantic && form.clk && el.type == "image") {
- // handle image inputs on the fly when semantic == true
- if(!el.disabled && form.clk == el)
- a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
- continue;
- }
-
- var v = $.fieldValue(el, true);
- if (v && v.constructor == Array) {
- for(var j=0, jmax=v.length; j < jmax; j++)
- a.push({name: n, value: v[j]});
- }
- else if (v !== null && typeof v != 'undefined')
- a.push({name: n, value: v});
- }
-
- if (!semantic && form.clk) {
- // input type=='image' are not found in elements array! handle them here
- var inputs = form.getElementsByTagName("input");
- for(var i=0, max=inputs.length; i < max; i++) {
- var input = inputs[i];
- var n = input.name;
- if(n && !input.disabled && input.type == "image" && form.clk == input)
- a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
- }
- }
- return a;
-};
-
-/**
- * Serializes form data into a 'submittable' string. This method will return a string
- * in the format: name1=value1&name2=value2
- */
-$.fn.formSerialize = function(semantic) {
- //hand off to jQuery.param for proper encoding
- return $.param(this.formToArray(semantic));
-};
-
-/**
- * Serializes all field elements in the jQuery object into a query string.
- * This method will return a string in the format: name1=value1&name2=value2
- */
-$.fn.fieldSerialize = function(successful) {
- var a = [];
- this.each(function() {
- var n = this.name;
- if (!n) return;
- var v = $.fieldValue(this, successful);
- if (v && v.constructor == Array) {
- for (var i=0,max=v.length; i < max; i++)
- a.push({name: n, value: v[i]});
- }
- else if (v !== null && typeof v != 'undefined')
- a.push({name: this.name, value: v});
- });
- //hand off to jQuery.param for proper encoding
- return $.param(a);
-};
-
-/**
- * Returns the value(s) of the element in the matched set. For example, consider the following form:
- *
- * <form><fieldset>
- * <input name="A" type="text" />
- * <input name="A" type="text" />
- * <input name="B" type="checkbox" value="B1" />
- * <input name="B" type="checkbox" value="B2"/>
- * <input name="C" type="radio" value="C1" />
- * <input name="C" type="radio" value="C2" />
- * </fieldset></form>
- *
- * var v = $(':text').fieldValue();
- * // if no values are entered into the text inputs
- * v == ['','']
- * // if values entered into the text inputs are 'foo' and 'bar'
- * v == ['foo','bar']
- *
- * var v = $(':checkbox').fieldValue();
- * // if neither checkbox is checked
- * v === undefined
- * // if both checkboxes are checked
- * v == ['B1', 'B2']
- *
- * var v = $(':radio').fieldValue();
- * // if neither radio is checked
- * v === undefined
- * // if first radio is checked
- * v == ['C1']
- *
- * The successful argument controls whether or not the field element must be 'successful'
- * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
- * The default value of the successful argument is true. If this value is false the value(s)
- * for each element is returned.
- *
- * Note: This method *always* returns an array. If no valid value can be determined the
- * array will be empty, otherwise it will contain one or more values.
- */
-$.fn.fieldValue = function(successful) {
- for (var val=[], i=0, max=this.length; i < max; i++) {
- var el = this[i];
- var v = $.fieldValue(el, successful);
- if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length))
- continue;
- v.constructor == Array ? $.merge(val, v) : val.push(v);
- }
- return val;
-};
-
-/**
- * Returns the value of the field element.
- */
-$.fieldValue = function(el, successful) {
- var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
- if (typeof successful == 'undefined') successful = true;
-
- if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
- (t == 'checkbox' || t == 'radio') && !el.checked ||
- (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
- tag == 'select' && el.selectedIndex == -1))
- return null;
-
- if (tag == 'select') {
- var index = el.selectedIndex;
- if (index < 0) return null;
- var a = [], ops = el.options;
- var one = (t == 'select-one');
- var max = (one ? index+1 : ops.length);
- for(var i=(one ? index : 0); i < max; i++) {
- var op = ops[i];
- if (op.selected) {
- // extra pain for IE...
- var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value;
- if (one) return v;
- a.push(v);
- }
- }
- return a;
- }
- return el.value;
-};
-
-/**
- * Clears the form data. Takes the following actions on the form's input fields:
- * - input text fields will have their 'value' property set to the empty string
- * - select elements will have their 'selectedIndex' property set to -1
- * - checkbox and radio inputs will have their 'checked' property set to false
- * - inputs of type submit, button, reset, and hidden will *not* be effected
- * - button elements will *not* be effected
- */
-$.fn.clearForm = function() {
- return this.each(function() {
- $('input,select,textarea', this).clearFields();
- });
-};
-
-/**
- * Clears the selected form elements.
- */
-$.fn.clearFields = $.fn.clearInputs = function() {
- return this.each(function() {
- var t = this.type, tag = this.tagName.toLowerCase();
- if (t == 'file' || t == 'text' || t == 'password' || tag == 'textarea')
- this.value = '';
- else if (t == 'checkbox' || t == 'radio')
- this.checked = false;
- else if (tag == 'select')
- this.selectedIndex = -1;
- });
-};
-
-/**
- * Resets the form data. Causes all form elements to be reset to their original value.
- */
-$.fn.resetForm = function() {
- return this.each(function() {
- // guard against an input with the name of 'reset'
- // note that IE reports the reset function as an 'object'
- if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType))
- this.reset();
- });
-};
-
-/**
- * Enables or disables any matching elements.
- */
-$.fn.enable = function(b) {
- if (b == undefined) b = true;
- return this.each(function() {
- this.disabled = !b
- });
-};
-
-/**
- * Checks/unchecks any matching checkboxes or radio buttons and
- * selects/deselects and matching option elements.
- */
-$.fn.selected = function(select) {
- if (select == undefined) select = true;
- return this.each(function() {
- var t = this.type;
- if (t == 'checkbox' || t == 'radio')
- this.checked = select;
- else if (this.tagName.toLowerCase() == 'option') {
- var $sel = $(this).parent('select');
- if (select && $sel[0] && $sel[0].type == 'select-one') {
- // deselect all other options
- $sel.find('option').selected(false);
- }
- this.selected = select;
- }
- });
-};
-
-// helper fn for console logging
-// set $.fn.ajaxSubmit.debug to true to enable debug logging
-function log() {
- if ($.fn.ajaxSubmit.debug && window.console && window.console.log)
- window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,''));
-};
-
-})(jQuery);
+/* + * jQuery Form Plugin + * version: 2.36 (07-NOV-2009) + * @requires jQuery v1.2.6 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +;(function($) { + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are intended to be exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').bind('submit', function() { + $(this).ajaxSubmit({ + target: '#output' + }); + return false; // <-- important! + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + if (typeof options == 'function') + options = { success: options }; + + var url = $.trim(this.attr('action')); + if (url) { + // clean url (don't include hash vaue) + url = (url.match(/^([^#]+)/)||[])[1]; + } + url = url || window.location.href || ''; + + options = $.extend({ + url: url, + type: this.attr('method') || 'GET', + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + }, options || {}); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var a = this.formToArray(options.semantic); + if (options.data) { + options.extraData = options.data; + for (var n in options.data) { + if(options.data[n] instanceof Array) { + for (var k in options.data[n]) + a.push( { name: n, value: options.data[n][k] } ); + } + else + a.push( { name: n, value: options.data[n] } ); + } + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a); + + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else + options.data = q; // data is the query string for 'post' + + var $form = this, callbacks = []; + if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); + if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + $(options.target).html(data).each(oldSuccess, arguments); + }); + } + else if (options.success) + callbacks.push(options.success); + + options.success = function(data, status) { + for (var i=0, max=callbacks.length; i < max; i++) + callbacks[i].apply(options, [data, status, $form]); + }; + + // are there files to upload? + var files = $('input:file', this).fieldValue(); + var found = false; + for (var j=0; j < files.length; j++) + if (files[j]) + found = true; + + var multipart = false; +// var mp = 'multipart/form-data'; +// multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if ((files.length && options.iframe !== false) || options.iframe || found || multipart) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) + $.get(options.closeKeepAlive, fileUpload); + else + fileUpload(); + } + else + $.ajax(options); + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUpload() { + var form = $form[0]; + + if ($(':input[name=submit]', form).length) { + alert('Error: Form elements must not be named "submit".'); + return; + } + + var opts = $.extend({}, $.ajaxSettings, options); + var s = $.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); + + var id = 'jqFormIO' + (new Date().getTime()); + var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ opts.iframeSrc +'" />'); + var io = $io[0]; + + $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' }); + + var xhr = { // mock object + aborted: 0, + responseText: null, + responseXML: null, + status: 0, + statusText: 'n/a', + getAllResponseHeaders: function() {}, + getResponseHeader: function() {}, + setRequestHeader: function() {}, + abort: function() { + this.aborted = 1; + $io.attr('src', opts.iframeSrc); // abort op in progress + } + }; + + var g = opts.global; + // trigger ajax global events so that activity/block indicators work like normal + if (g && ! $.active++) $.event.trigger("ajaxStart"); + if (g) $.event.trigger("ajaxSend", [xhr, opts]); + + if (s.beforeSend && s.beforeSend(xhr, s) === false) { + s.global && $.active--; + return; + } + if (xhr.aborted) + return; + + var cbInvoked = 0; + var timedOut = 0; + + // add submitting element to data if we know it + var sub = form.clk; + if (sub) { + var n = sub.name; + if (n && !sub.disabled) { + options.extraData = options.extraData || {}; + options.extraData[n] = sub.value; + if (sub.type == "image") { + options.extraData[name+'.x'] = form.clk_x; + options.extraData[name+'.y'] = form.clk_y; + } + } + } + + // take a breath so that pending repaints get some cpu time before the upload starts + setTimeout(function() { + // make sure form attrs are set + var t = $form.attr('target'), a = $form.attr('action'); + + // update form attrs in IE friendly way + form.setAttribute('target',id); + if (form.getAttribute('method') != 'POST') + form.setAttribute('method', 'POST'); + if (form.getAttribute('action') != opts.url) + form.setAttribute('action', opts.url); + + // ie borks in some cases when setting encoding + if (! options.skipEncodingOverride) { + $form.attr({ + encoding: 'multipart/form-data', + enctype: 'multipart/form-data' + }); + } + + // support timout + if (opts.timeout) + setTimeout(function() { timedOut = true; cb(); }, opts.timeout); + + // add "extra" data to form if provided in options + var extraInputs = []; + try { + if (options.extraData) + for (var n in options.extraData) + extraInputs.push( + $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />') + .appendTo(form)[0]); + + // add iframe to doc and submit the form + $io.appendTo('body'); + io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false); + form.submit(); + } + finally { + // reset attrs and remove "extra" input elements + form.setAttribute('action',a); + t ? form.setAttribute('target', t) : $form.removeAttr('target'); + $(extraInputs).remove(); + } + }, 10); + + var domCheckCount = 50; + + function cb() { + if (cbInvoked++) return; + + io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false); + + var ok = true; + try { + if (timedOut) throw 'timeout'; + // extract the server response from the iframe + var data, doc; + + doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document; + + var isXml = opts.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc); + log('isXml='+isXml); + if (!isXml && (doc.body == null || doc.body.innerHTML == '')) { + if (--domCheckCount) { + // in some browsers (Opera) the iframe DOM is not always traversable when + // the onload callback fires, so we loop a bit to accommodate + cbInvoked = 0; + setTimeout(cb, 100); + return; + } + log('Could not access iframe DOM after 50 tries.'); + return; + } + + xhr.responseText = doc.body ? doc.body.innerHTML : null; + xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc; + xhr.getResponseHeader = function(header){ + var headers = {'content-type': opts.dataType}; + return headers[header]; + }; + + if (opts.dataType == 'json' || opts.dataType == 'script') { + // see if user embedded response in textarea + var ta = doc.getElementsByTagName('textarea')[0]; + if (ta) + xhr.responseText = ta.value; + else { + // account for browsers injecting pre around json response + var pre = doc.getElementsByTagName('pre')[0]; + if (pre) + xhr.responseText = pre.innerHTML; + } + } + else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { + xhr.responseXML = toXml(xhr.responseText); + } + data = $.httpData(xhr, opts.dataType); + } + catch(e){ + ok = false; + $.handleError(opts, xhr, 'error', e); + } + + // ordering of these callbacks/triggers is odd, but that's how $.ajax does it + if (ok) { + opts.success(data, 'success'); + if (g) $.event.trigger("ajaxSuccess", [xhr, opts]); + } + if (g) $.event.trigger("ajaxComplete", [xhr, opts]); + if (g && ! --$.active) $.event.trigger("ajaxStop"); + if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error'); + + // clean up + setTimeout(function() { + $io.remove(); + xhr.responseXML = null; + }, 100); + }; + + function toXml(s, doc) { + if (window.ActiveXObject) { + doc = new ActiveXObject('Microsoft.XMLDOM'); + doc.async = 'false'; + doc.loadXML(s); + } + else + doc = (new DOMParser()).parseFromString(s, 'text/xml'); + return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null; + }; + }; +}; + +/** + * ajaxForm() provides a mechanism for fully automating form submission. + * + * The advantages of using this method instead of ajaxSubmit() are: + * + * 1: This method will include coordinates for <input type="image" /> elements (if the element + * is used to submit the form). + * 2. This method will include the submit element's name/value data (for the element that was + * used to submit the form). + * 3. This method binds the submit() method to the form for you. + * + * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely + * passes the options argument along after properly binding events for submit elements and + * the form itself. + */ +$.fn.ajaxForm = function(options) { + return this.ajaxFormUnbind().bind('submit.form-plugin', function() { + $(this).ajaxSubmit(options); + return false; + }).bind('click.form-plugin', function(e) { + var target = e.target; + var $el = $(target); + if (!($el.is(":submit,input:image"))) { + // is this a child element of the submit el? (ex: a span within a button) + var t = $el.closest(':submit'); + if (t.length == 0) + return; + target = t[0]; + } + var form = this; + form.clk = target; + if (target.type == 'image') { + if (e.offsetX != undefined) { + form.clk_x = e.offsetX; + form.clk_y = e.offsetY; + } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin + var offset = $el.offset(); + form.clk_x = e.pageX - offset.left; + form.clk_y = e.pageY - offset.top; + } else { + form.clk_x = e.pageX - target.offsetLeft; + form.clk_y = e.pageY - target.offsetTop; + } + } + // clear form vars + setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100); + }); +}; + +// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm +$.fn.ajaxFormUnbind = function() { + return this.unbind('submit.form-plugin click.form-plugin'); +}; + +/** + * formToArray() gathers form element data into an array of objects that can + * be passed to any of the following ajax functions: $.get, $.post, or load. + * Each object in the array has both a 'name' and 'value' property. An example of + * an array for a simple login form might be: + * + * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] + * + * It is this array that is passed to pre-submit callback functions provided to the + * ajaxSubmit() and ajaxForm() methods. + */ +$.fn.formToArray = function(semantic) { + var a = []; + if (this.length == 0) return a; + + var form = this[0]; + var els = semantic ? form.getElementsByTagName('*') : form.elements; + if (!els) return a; + for(var i=0, max=els.length; i < max; i++) { + var el = els[i]; + var n = el.name; + if (!n) continue; + + if (semantic && form.clk && el.type == "image") { + // handle image inputs on the fly when semantic == true + if(!el.disabled && form.clk == el) { + a.push({name: n, value: $(el).val()}); + a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); + } + continue; + } + + var v = $.fieldValue(el, true); + if (v && v.constructor == Array) { + for(var j=0, jmax=v.length; j < jmax; j++) + a.push({name: n, value: v[j]}); + } + else if (v !== null && typeof v != 'undefined') + a.push({name: n, value: v}); + } + + if (!semantic && form.clk) { + // input type=='image' are not found in elements array! handle it here + var $input = $(form.clk), input = $input[0], n = input.name; + if (n && !input.disabled && input.type == 'image') { + a.push({name: n, value: $input.val()}); + a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); + } + } + return a; +}; + +/** + * Serializes form data into a 'submittable' string. This method will return a string + * in the format: name1=value1&name2=value2 + */ +$.fn.formSerialize = function(semantic) { + //hand off to jQuery.param for proper encoding + return $.param(this.formToArray(semantic)); +}; + +/** + * Serializes all field elements in the jQuery object into a query string. + * This method will return a string in the format: name1=value1&name2=value2 + */ +$.fn.fieldSerialize = function(successful) { + var a = []; + this.each(function() { + var n = this.name; + if (!n) return; + var v = $.fieldValue(this, successful); + if (v && v.constructor == Array) { + for (var i=0,max=v.length; i < max; i++) + a.push({name: n, value: v[i]}); + } + else if (v !== null && typeof v != 'undefined') + a.push({name: this.name, value: v}); + }); + //hand off to jQuery.param for proper encoding + return $.param(a); +}; + +/** + * Returns the value(s) of the element in the matched set. For example, consider the following form: + * + * <form><fieldset> + * <input name="A" type="text" /> + * <input name="A" type="text" /> + * <input name="B" type="checkbox" value="B1" /> + * <input name="B" type="checkbox" value="B2"/> + * <input name="C" type="radio" value="C1" /> + * <input name="C" type="radio" value="C2" /> + * </fieldset></form> + * + * var v = $(':text').fieldValue(); + * // if no values are entered into the text inputs + * v == ['',''] + * // if values entered into the text inputs are 'foo' and 'bar' + * v == ['foo','bar'] + * + * var v = $(':checkbox').fieldValue(); + * // if neither checkbox is checked + * v === undefined + * // if both checkboxes are checked + * v == ['B1', 'B2'] + * + * var v = $(':radio').fieldValue(); + * // if neither radio is checked + * v === undefined + * // if first radio is checked + * v == ['C1'] + * + * The successful argument controls whether or not the field element must be 'successful' + * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). + * The default value of the successful argument is true. If this value is false the value(s) + * for each element is returned. + * + * Note: This method *always* returns an array. If no valid value can be determined the + * array will be empty, otherwise it will contain one or more values. + */ +$.fn.fieldValue = function(successful) { + for (var val=[], i=0, max=this.length; i < max; i++) { + var el = this[i]; + var v = $.fieldValue(el, successful); + if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) + continue; + v.constructor == Array ? $.merge(val, v) : val.push(v); + } + return val; +}; + +/** + * Returns the value of the field element. + */ +$.fieldValue = function(el, successful) { + var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); + if (typeof successful == 'undefined') successful = true; + + if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || + (t == 'checkbox' || t == 'radio') && !el.checked || + (t == 'submit' || t == 'image') && el.form && el.form.clk != el || + tag == 'select' && el.selectedIndex == -1)) + return null; + + if (tag == 'select') { + var index = el.selectedIndex; + if (index < 0) return null; + var a = [], ops = el.options; + var one = (t == 'select-one'); + var max = (one ? index+1 : ops.length); + for(var i=(one ? index : 0); i < max; i++) { + var op = ops[i]; + if (op.selected) { + var v = op.value; + if (!v) // extra pain for IE... + v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value; + if (one) return v; + a.push(v); + } + } + return a; + } + return el.value; +}; + +/** + * Clears the form data. Takes the following actions on the form's input fields: + * - input text fields will have their 'value' property set to the empty string + * - select elements will have their 'selectedIndex' property set to -1 + * - checkbox and radio inputs will have their 'checked' property set to false + * - inputs of type submit, button, reset, and hidden will *not* be effected + * - button elements will *not* be effected + */ +$.fn.clearForm = function() { + return this.each(function() { + $('input,select,textarea', this).clearFields(); + }); +}; + +/** + * Clears the selected form elements. + */ +$.fn.clearFields = $.fn.clearInputs = function() { + return this.each(function() { + var t = this.type, tag = this.tagName.toLowerCase(); + if (t == 'text' || t == 'password' || tag == 'textarea') + this.value = ''; + else if (t == 'checkbox' || t == 'radio') + this.checked = false; + else if (tag == 'select') + this.selectedIndex = -1; + }); +}; + +/** + * Resets the form data. Causes all form elements to be reset to their original value. + */ +$.fn.resetForm = function() { + return this.each(function() { + // guard against an input with the name of 'reset' + // note that IE reports the reset function as an 'object' + if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) + this.reset(); + }); +}; + +/** + * Enables or disables any matching elements. + */ +$.fn.enable = function(b) { + if (b == undefined) b = true; + return this.each(function() { + this.disabled = !b; + }); +}; + +/** + * Checks/unchecks any matching checkboxes or radio buttons and + * selects/deselects and matching option elements. + */ +$.fn.selected = function(select) { + if (select == undefined) select = true; + return this.each(function() { + var t = this.type; + if (t == 'checkbox' || t == 'radio') + this.checked = select; + else if (this.tagName.toLowerCase() == 'option') { + var $sel = $(this).parent('select'); + if (select && $sel[0] && $sel[0].type == 'select-one') { + // deselect all other options + $sel.find('option').selected(false); + } + this.selected = select; + } + }); +}; + +// helper fn for console logging +// set $.fn.ajaxSubmit.debug to true to enable debug logging +function log() { + if ($.fn.ajaxSubmit.debug && window.console && window.console.log) + window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,'')); +}; + +})(jQuery); diff --git a/js/jquery.js b/js/jquery.js index 926357433..237e1b908 100644 --- a/js/jquery.js +++ b/js/jquery.js @@ -1,136 +1,221 @@ /*! - * jQuery JavaScript Library v1.3.2 + * jQuery JavaScript Library v1.4.1 * http://jquery.com/ * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Jan 25 19:43:33 2010 -0500 */ -(function(){ +(function( window, undefined ) { + +// Define a local copy of jQuery +var jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context ); + }, -var - // Will speed up references to window, and allows munging its name. - window = this, - // Will speed up references to undefined, and allows munging its name. - undefined, // Map over jQuery in case of overwrite _jQuery = window.jQuery, + // Map over the $ in case of overwrite _$ = window.$, - jQuery = window.jQuery = window.$ = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context ); - }, + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + // A central reference to the root jQuery(document) + rootjQuery, // A simple way to check for HTML strings or ID strings // (both of which we optimize for) - quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, + quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, + // Is it a simple selector - isSimple = /^.[^:#\[\.,]*$/; + isSimple = /^.[^:#\[\.,]*$/, + + // Check if a string has a non-whitespace character in it + rnotwhite = /\S/, + + // Used for trimming whitespace + rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + + // Keep a UserAgent string for use with jQuery.browser + userAgent = navigator.userAgent, + + // For matching the engine and version of the browser + browserMatch, + + // Has the ready events already been bound? + readyBound = false, + + // The functions to execute on DOM ready + readyList = [], + + // The ready event handler + DOMContentLoaded, + + // Save a reference to some core methods + toString = Object.prototype.toString, + hasOwnProperty = Object.prototype.hasOwnProperty, + push = Array.prototype.push, + slice = Array.prototype.slice, + indexOf = Array.prototype.indexOf; jQuery.fn = jQuery.prototype = { init: function( selector, context ) { - // Make sure that a selection was provided - selector = selector || document; + var match, elem, ret, doc; + + // Handle $(""), $(null), or $(undefined) + if ( !selector ) { + return this; + } // Handle $(DOMElement) if ( selector.nodeType ) { - this[0] = selector; + this.context = this[0] = selector; this.length = 1; - this.context = selector; return this; } + // Handle HTML strings if ( typeof selector === "string" ) { // Are we dealing with HTML string or an ID? - var match = quickExpr.exec( selector ); + match = quickExpr.exec( selector ); // Verify a match, and that no context was specified for #id if ( match && (match[1] || !context) ) { // HANDLE: $(html) -> $(array) - if ( match[1] ) - selector = jQuery.clean( [ match[1] ], context ); + if ( match[1] ) { + doc = (context ? context.ownerDocument || context : document); + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + ret = rsingleTag.exec( selector ); + + if ( ret ) { + if ( jQuery.isPlainObject( context ) ) { + selector = [ document.createElement( ret[1] ) ]; + jQuery.fn.attr.call( selector, context, true ); + + } else { + selector = [ doc.createElement( ret[1] ) ]; + } + + } else { + ret = buildFragment( [ match[1] ], [ doc ] ); + selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes; + } // HANDLE: $("#id") - else { - var elem = document.getElementById( match[3] ); - - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem && elem.id != match[3] ) - return jQuery().find( selector ); - - // Otherwise, we inject the element directly into the jQuery object - var ret = jQuery( elem || [] ); - ret.context = document; - ret.selector = selector; - return ret; + } else { + elem = document.getElementById( match[2] ); + + if ( elem ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; } - // HANDLE: $(expr, [context]) - // (which is just equivalent to: $(content).find(expr) - } else + // HANDLE: $("TAG") + } else if ( !context && /^\w+$/.test( selector ) ) { + this.selector = selector; + this.context = document; + selector = document.getElementsByTagName( selector ); + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return (context || rootjQuery).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { return jQuery( context ).find( selector ); + } // HANDLE: $(function) // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) - return jQuery( document ).ready( selector ); + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } - // Make sure that old selector state is passed along - if ( selector.selector && selector.context ) { + if (selector.selector !== undefined) { this.selector = selector.selector; this.context = selector.context; } - return this.setArray(jQuery.isArray( selector ) ? - selector : - jQuery.makeArray(selector)); + return jQuery.isArray( selector ) ? + this.setArray( selector ) : + jQuery.makeArray( selector, this ); }, // Start with an empty selector selector: "", // The current version of jQuery being used - jquery: "1.3.2", + jquery: "1.4.1", + + // The default length of a jQuery object is 0 + length: 0, // The number of elements contained in the matched element set size: function() { return this.length; }, + toArray: function() { + return slice.call( this, 0 ); + }, + // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { - return num === undefined ? + return num == null ? // Return a 'clean' array - Array.prototype.slice.call( this ) : + this.toArray() : // Return just the object - this[ num ]; + ( num < 0 ? this.slice(num)[ 0 ] : this[ num ] ); }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems, name, selector ) { // Build a new jQuery matched element set - var ret = jQuery( elems ); + var ret = jQuery( elems || null ); // Add the old object onto the stack (as a reference) ret.prevObject = this; ret.context = this.context; - if ( name === "find" ) + if ( name === "find" ) { ret.selector = this.selector + (this.selector ? " " : "") + selector; - else if ( name ) + } else if ( name ) { ret.selector = this.selector + "." + name + "(" + selector + ")"; + } // Return the newly-formed element set return ret; @@ -143,7 +228,7 @@ jQuery.fn = jQuery.prototype = { // Resetting the length to 0, then using the native Array push // is a super-fast way to populate an object with array-like properties this.length = 0; - Array.prototype.push.apply( this, elems ); + push.apply( this, elems ); return this; }, @@ -154,822 +239,1208 @@ jQuery.fn = jQuery.prototype = { each: function( callback, args ) { return jQuery.each( this, callback, args ); }, + + ready: function( fn ) { + // Attach the listeners + jQuery.bindReady(); - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem && elem.jquery ? elem[0] : elem - , this ); - }, + // If the DOM is already ready + if ( jQuery.isReady ) { + // Execute the function immediately + fn.call( document, jQuery ); - attr: function( name, value, type ) { - var options = name; + // Otherwise, remember the function for later + } else if ( readyList ) { + // Add the function to the wait list + readyList.push( fn ); + } - // Look for the case where we're accessing a style value - if ( typeof name === "string" ) - if ( value === undefined ) - return this[0] && jQuery[ type || "attr" ]( this[0], name ); + return this; + }, + + eq: function( i ) { + return i === -1 ? + this.slice( i ) : + this.slice( i, +i + 1 ); + }, - else { - options = {}; - options[ name ] = value; - } + first: function() { + return this.eq( 0 ); + }, - // Check to see if we're setting style values - return this.each(function(i){ - // Set all the styles - for ( name in options ) - jQuery.attr( - type ? - this.style : - this, - name, jQuery.prop( this, options[ name ], type, i, name ) - ); - }); + last: function() { + return this.eq( -1 ); }, - css: function( key, value ) { - // ignore negative width and height values - if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) - value = undefined; - return this.attr( key, value, "curCSS" ); + slice: function() { + return this.pushStack( slice.apply( this, arguments ), + "slice", slice.call(arguments).join(",") ); }, - text: function( text ) { - if ( typeof text !== "object" && text != null ) - return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || jQuery(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: [].sort, + splice: [].splice +}; - var ret = ""; +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; - jQuery.each( text || this, function(){ - jQuery.each( this.childNodes, function(){ - if ( this.nodeType != 8 ) - ret += this.nodeType != 1 ? - this.nodeValue : - jQuery.fn.text( [ this ] ); - }); - }); +jQuery.extend = jQuery.fn.extend = function() { + // copy reference to target object + var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options, name, src, copy; - return ret; - }, + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } - wrapAll: function( html ) { - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).clone(); + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } - if ( this[0].parentNode ) - wrap.insertBefore( this[0] ); + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } - wrap.map(function(){ - var elem = this; + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; - while ( elem.firstChild ) - elem = elem.firstChild; + // Prevent never-ending loop + if ( target === copy ) { + continue; + } - return elem; - }).append(this); + // Recurse if we're merging object literal values or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || jQuery.isArray(copy) ) ) { + var clone = src && ( jQuery.isPlainObject(src) || jQuery.isArray(src) ) ? src + : jQuery.isArray(copy) ? [] : {}; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } } + } - return this; - }, + // Return the modified object + return target; +}; - wrapInner: function( html ) { - return this.each(function(){ - jQuery( this ).contents().wrapAll( html ); - }); +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) { + window.jQuery = _jQuery; + } + + return jQuery; }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // Handle when the DOM is ready + ready: function() { + // Make sure that the DOM is not already loaded + if ( !jQuery.isReady ) { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 13 ); + } - wrap: function( html ) { - return this.each(function(){ - jQuery( this ).wrapAll( html ); - }); + // Remember that the DOM is ready + jQuery.isReady = true; + + // If there are functions bound, to execute + if ( readyList ) { + // Execute all of them + var fn, i = 0; + while ( (fn = readyList[ i++ ]) ) { + fn.call( document, jQuery ); + } + + // Reset the list of functions + readyList = null; + } + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + } + } }, + + bindReady: function() { + if ( readyBound ) { + return; + } - append: function() { - return this.domManip(arguments, true, function(elem){ - if (this.nodeType == 1) - this.appendChild( elem ); - }); + readyBound = true; + + // Catch cases where $(document).ready() is called after the + // browser event has already occurred. + if ( document.readyState === "complete" ) { + return jQuery.ready(); + } + + // Mozilla, Opera and webkit nightlies currently support this event + if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else if ( document.attachEvent ) { + // ensure firing before onload, + // maybe late but safe also for iframes + document.attachEvent("onreadystatechange", DOMContentLoaded); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var toplevel = false; + + try { + toplevel = window.frameElement == null; + } catch(e) {} + + if ( document.documentElement.doScroll && toplevel ) { + doScrollCheck(); + } + } }, - prepend: function() { - return this.domManip(arguments, true, function(elem){ - if (this.nodeType == 1) - this.insertBefore( elem, this.firstChild ); - }); + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return toString.call(obj) === "[object Function]"; }, - before: function() { - return this.domManip(arguments, false, function(elem){ - this.parentNode.insertBefore( elem, this ); - }); + isArray: function( obj ) { + return toString.call(obj) === "[object Array]"; }, - after: function() { - return this.domManip(arguments, false, function(elem){ - this.parentNode.insertBefore( elem, this.nextSibling ); - }); + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval ) { + return false; + } + + // Not own constructor property must be Object + if ( obj.constructor + && !hasOwnProperty.call(obj, "constructor") + && !hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || hasOwnProperty.call( obj, key ); }, - end: function() { - return this.prevObject || jQuery( [] ); + isEmptyObject: function( obj ) { + for ( var name in obj ) { + return false; + } + return true; }, + + error: function( msg ) { + throw msg; + }, + + parseJSON: function( data ) { + if ( typeof data !== "string" || !data ) { + return null; + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") + .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") + .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) { - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: [].push, - sort: [].sort, - splice: [].splice, + // Try to use the native JSON parser first + return window.JSON && window.JSON.parse ? + window.JSON.parse( data ) : + (new Function("return " + data))(); - find: function( selector ) { - if ( this.length === 1 ) { - var ret = this.pushStack( [], "find", selector ); - ret.length = 0; - jQuery.find( selector, this[0], ret ); - return ret; } else { - return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ - return jQuery.find( selector, elem ); - })), "find", selector ); + jQuery.error( "Invalid JSON: " + data ); } }, - clone: function( events ) { - // Do the clone - var ret = this.map(function(){ - if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { - // IE copies events bound via attachEvent when - // using cloneNode. Calling detachEvent on the - // clone will also remove the events from the orignal - // In order to get around this, we use innerHTML. - // Unfortunately, this means some modifications to - // attributes in IE that are actually only stored - // as properties will not be copied (such as the - // the name attribute on an input). - var html = this.outerHTML; - if ( !html ) { - var div = this.ownerDocument.createElement("div"); - div.appendChild( this.cloneNode(true) ); - html = div.innerHTML; - } + noop: function() {}, - return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; - } else - return this.cloneNode(true); - }); + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && rnotwhite.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, + script = document.createElement("script"); - // Copy the events from the original to the clone - if ( events === true ) { - var orig = this.find("*").andSelf(), i = 0; + script.type = "text/javascript"; - ret.find("*").andSelf().each(function(){ - if ( this.nodeName !== orig[i].nodeName ) - return; + if ( jQuery.support.scriptEval ) { + script.appendChild( document.createTextNode( data ) ); + } else { + script.text = data; + } - var events = jQuery.data( orig[i], "events" ); + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, - for ( var type in events ) { - for ( var handler in events[ type ] ) { - jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, + length = object.length, + isObj = length === undefined || jQuery.isFunction(object); + + if ( args ) { + if ( isObj ) { + for ( name in object ) { + if ( callback.apply( object[ name ], args ) === false ) { + break; } } + } else { + for ( ; i < length; ) { + if ( callback.apply( object[ i++ ], args ) === false ) { + break; + } + } + } - i++; - }); + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in object ) { + if ( callback.call( object[ name ], name, object[ name ] ) === false ) { + break; + } + } + } else { + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + } } - // Return the cloned set - return ret; + return object; }, - filter: function( selector ) { - return this.pushStack( - jQuery.isFunction( selector ) && - jQuery.grep(this, function(elem, i){ - return selector.call( elem, i ); - }) || - - jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ - return elem.nodeType === 1; - }) ), "filter", selector ); - }, - - closest: function( selector ) { - 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) ) { - jQuery.data(cur, "closest", closer); - return cur; - } - cur = cur.parentNode; - closer++; - } - }); + trim: function( text ) { + return (text || "").replace( rtrim, "" ); }, - not: function( selector ) { - if ( typeof selector === "string" ) - // test special case where just one selector is passed in - if ( isSimple.test( selector ) ) - return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); - else - selector = jQuery.multiFilter( selector, this ); - - var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; - return this.filter(function() { - return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; - }); - }, + // results is for internal usage only + makeArray: function( array, results ) { + var ret = results || []; - add: function( selector ) { - return this.pushStack( jQuery.unique( jQuery.merge( - this.get(), - typeof selector === "string" ? - jQuery( selector ) : - jQuery.makeArray( selector ) - ))); - }, + if ( array != null ) { + // The window, strings (and functions) also have 'length' + // The extra typeof function check is to prevent crashes + // in Safari 2 (See: #3039) + if ( array.length == null || typeof array === "string" || jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) { + push.call( ret, array ); + } else { + jQuery.merge( ret, array ); + } + } - is: function( selector ) { - return !!selector && jQuery.multiFilter( selector, this ).length > 0; + return ret; }, - hasClass: function( selector ) { - return !!selector && this.is( "." + selector ); + inArray: function( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; }, - val: function( value ) { - if ( value === undefined ) { - var elem = this[0]; + merge: function( first, second ) { + var i = first.length, j = 0; - if ( elem ) { - if( jQuery.nodeName( elem, 'option' ) ) - return (elem.attributes.value || {}).specified ? elem.value : elem.text; - - // We need to handle select boxes special - if ( jQuery.nodeName( elem, "select" ) ) { - var index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type == "select-one"; + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } - // Nothing was selected - if ( index < 0 ) - return null; + first.length = i; - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; + return first; + }, - if ( option.selected ) { - // Get the specifc value for the option - value = jQuery(option).val(); + grep: function( elems, callback, inv ) { + var ret = []; - // We don't need an array for one selects - if ( one ) - return value; + // Go through the array, only saving the items + // that pass the validator function + for ( var i = 0, length = elems.length; i < length; i++ ) { + if ( !inv !== !callback( elems[ i ], i ) ) { + ret.push( elems[ i ] ); + } + } - // Multi-Selects return an array - values.push( value ); - } - } + return ret; + }, - return values; - } + // arg is for internal usage only + map: function( elems, callback, arg ) { + var ret = [], value; - // Everything else, we just grab the value - return (elem.value || "").replace(/\r/g, ""); + // Go through the array, translating each of the items to their + // new value (or values). + for ( var i = 0, length = elems.length; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + if ( value != null ) { + ret[ ret.length ] = value; } - - return undefined; } - if ( typeof value === "number" ) - value += ''; + return ret.concat.apply( [], ret ); + }, - return this.each(function(){ - if ( this.nodeType != 1 ) - return; + // A global GUID counter for objects + guid: 1, - if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) - this.checked = (jQuery.inArray(this.value, value) >= 0 || - jQuery.inArray(this.name, value) >= 0); + proxy: function( fn, proxy, thisObject ) { + if ( arguments.length === 2 ) { + if ( typeof proxy === "string" ) { + thisObject = fn; + fn = thisObject[ proxy ]; + proxy = undefined; - else if ( jQuery.nodeName( this, "select" ) ) { - var values = jQuery.makeArray(value); + } else if ( proxy && !jQuery.isFunction( proxy ) ) { + thisObject = proxy; + proxy = undefined; + } + } - jQuery( "option", this ).each(function(){ - this.selected = (jQuery.inArray( this.value, values ) >= 0 || - jQuery.inArray( this.text, values ) >= 0); - }); + if ( !proxy && fn ) { + proxy = function() { + return fn.apply( thisObject || this, arguments ); + }; + } - if ( !values.length ) - this.selectedIndex = -1; + // Set the guid of unique handler to the same of original handler, so it can be removed + if ( fn ) { + proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; + } - } else - this.value = value; - }); + // So proxy can be declared as an argument + return proxy; }, - html: function( value ) { - return value === undefined ? - (this[0] ? - this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : - null) : - this.empty().append( value ); - }, + // Use of jQuery.browser is frowned upon. + // More details: http://docs.jquery.com/Utilities/jQuery.browser + uaMatch: function( ua ) { + ua = ua.toLowerCase(); - replaceWith: function( value ) { - return this.after( value ).remove(); - }, + var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) || + /(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) || + /(msie) ([\w.]+)/.exec( ua ) || + !/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) || + []; - eq: function( i ) { - return this.slice( i, +i + 1 ); + return { browser: match[1] || "", version: match[2] || "0" }; }, - slice: function() { - return this.pushStack( Array.prototype.slice.apply( this, arguments ), - "slice", Array.prototype.slice.call(arguments).join(",") ); - }, + browser: {} +}); - map: function( callback ) { - return this.pushStack( jQuery.map(this, function(elem, i){ - return callback.call( elem, i, elem ); - })); - }, +browserMatch = jQuery.uaMatch( userAgent ); +if ( browserMatch.browser ) { + jQuery.browser[ browserMatch.browser ] = true; + jQuery.browser.version = browserMatch.version; +} - andSelf: function() { - return this.add( this.prevObject ); - }, +// Deprecated, use jQuery.browser.webkit instead +if ( jQuery.browser.webkit ) { + jQuery.browser.safari = true; +} - domManip: function( args, table, callback ) { - if ( this[0] ) { - var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), - scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), - first = fragment.firstChild; - - if ( first ) - for ( var i = 0, l = this.length; i < l; i++ ) - callback.call( root(this[i], first), this.length > 1 || i > 0 ? - fragment.cloneNode(true) : fragment ); - - if ( scripts ) - jQuery.each( scripts, evalScript ); - } +if ( indexOf ) { + jQuery.inArray = function( elem, array ) { + return indexOf.call( array, elem ); + }; +} - return this; - - function root( elem, cur ) { - return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; +// All jQuery objects should point back to these +rootjQuery = jQuery(document); + +// Cleanup functions for the document ready method +if ( document.addEventListener ) { + DOMContentLoaded = function() { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + }; + +} else if ( document.attachEvent ) { + DOMContentLoaded = function() { + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( document.readyState === "complete" ) { + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); } + }; +} + +// The DOM ready check for Internet Explorer +function doScrollCheck() { + if ( jQuery.isReady ) { + return; } -}; -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; + try { + // If IE is used, use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + document.documentElement.doScroll("left"); + } catch( error ) { + setTimeout( doScrollCheck, 1 ); + return; + } + + // and execute any waiting functions + jQuery.ready(); +} function evalScript( i, elem ) { - if ( elem.src ) + if ( elem.src ) { jQuery.ajax({ url: elem.src, async: false, dataType: "script" }); - - else + } else { jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + } - if ( elem.parentNode ) + if ( elem.parentNode ) { elem.parentNode.removeChild( elem ); + } } -function now(){ - return +new Date; +// Mutifunctional method to get and set values to a collection +// The value/s can be optionally by executed if its a function +function access( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : null; } -jQuery.extend = jQuery.fn.extend = function() { - // copy reference to target object - var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; +function now() { + return (new Date).getTime(); +} +(function() { - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } + jQuery.support = {}; - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) - target = {}; + var root = document.documentElement, + script = document.createElement("script"), + div = document.createElement("div"), + id = "script" + now(); - // extend jQuery itself if only one argument is passed - if ( length == i ) { - target = this; - --i; + div.style.display = "none"; + div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; + + var all = div.getElementsByTagName("*"), + a = div.getElementsByTagName("a")[0]; + + // Can't get basic test support + if ( !all || !all.length || !a ) { + return; } - for ( ; i < length; i++ ) - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) - // Extend the base object - for ( var name in options ) { - var src = target[ name ], copy = options[ name ]; + jQuery.support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, - // Prevent never-ending loop - if ( target === copy ) - continue; + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, - // Recurse if we're merging object values - if ( deep && copy && typeof copy === "object" && !copy.nodeType ) - target[ name ] = jQuery.extend( deep, - // Never move original objects, clone them - src || ( copy.length != null ? [ ] : { } ) - , copy ); + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, - // Don't bring in undefined values - else if ( copy !== undefined ) - target[ name ] = copy; + // Get the style information from getAttribute + // (IE uses .cssText insted) + style: /red/.test( a.getAttribute("style") ), - } + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", - // Return the modified object - return target; -}; + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), -// exclude the following css properties to add px -var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, - // cache defaultView - defaultView = document.defaultView || {}, - toString = Object.prototype.toString; + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, -jQuery.extend({ - noConflict: function( deep ) { - window.$ = _$; + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: div.getElementsByTagName("input")[0].value === "on", - if ( deep ) - window.jQuery = _jQuery; + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected, - return jQuery; - }, + // Will be defined later + checkClone: false, + scriptEval: false, + noCloneEvent: true, + boxModel: null + }; - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return toString.call(obj) === "[object Function]"; - }, + script.type = "text/javascript"; + try { + script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); + } catch(e) {} - isArray: function( obj ) { - return toString.call(obj) === "[object Array]"; - }, + root.insertBefore( script, root.firstChild ); - // check if an element is in a (or is an) XML document - isXMLDoc: function( elem ) { - return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || - !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); - }, + // Make sure that the execution of code works by injecting a script + // tag with appendChild/createTextNode + // (IE doesn't support this, fails, and uses .text instead) + if ( window[ id ] ) { + jQuery.support.scriptEval = true; + delete window[ id ]; + } - // Evalulates a script in a global context - globalEval: function( 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, - script = document.createElement("script"); + root.removeChild( script ); - script.type = "text/javascript"; - if ( jQuery.support.scriptEval ) - script.appendChild( document.createTextNode( data ) ); - else - script.text = data; + if ( div.attachEvent && div.fireEvent ) { + div.attachEvent("onclick", function click() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + jQuery.support.noCloneEvent = false; + div.detachEvent("onclick", click); + }); + div.cloneNode(true).fireEvent("onclick"); + } - // Use insertBefore instead of appendChild to circumvent an IE6 bug. - // This arises when a base node is used (#2709). - head.insertBefore( script, head.firstChild ); - head.removeChild( script ); - } - }, + div = document.createElement("div"); + div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + var fragment = document.createDocumentFragment(); + fragment.appendChild( div.firstChild ); + + // WebKit doesn't clone checked state correctly in fragments + jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked; + + // Figure out if the W3C box model works as expected + // document.body must exist before we can do this + jQuery(function() { + var div = document.createElement("div"); + div.style.width = div.style.paddingLeft = "1px"; + + document.body.appendChild( div ); + jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; + document.body.removeChild( div ).style.display = 'none'; + div = null; + }); + + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; + + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; + + return isSupported; + }; + + jQuery.support.submitBubbles = eventSupported("submit"); + jQuery.support.changeBubbles = eventSupported("change"); + + // release memory in IE + root = script = div = all = a = null; +})(); + +jQuery.props = { + "for": "htmlFor", + "class": "className", + readonly: "readOnly", + maxlength: "maxLength", + cellspacing: "cellSpacing", + rowspan: "rowSpan", + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder" +}; +var expando = "jQuery" + now(), uuid = 0, windowData = {}; +var emptyObject = {}; + +jQuery.extend({ + cache: {}, + + expando:expando, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + "object": true, + "applet": true }, - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, length = object.length; + data: function( elem, name, data ) { + if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { + return; + } - if ( args ) { - if ( length === undefined ) { - for ( name in object ) - if ( callback.apply( object[ name ], args ) === false ) - break; - } else - for ( ; i < length; ) - if ( callback.apply( object[ i++ ], args ) === false ) - break; + elem = elem == window ? + windowData : + elem; - // A special, fast, case for the most common use of each + var id = elem[ expando ], cache = jQuery.cache, thisCache; + + // Handle the case where there's no name immediately + if ( !name && !id ) { + return null; + } + + // Compute a unique ID for the element + if ( !id ) { + id = ++uuid; + } + + // Avoid generating a new cache unless none exists and we + // want to manipulate it. + if ( typeof name === "object" ) { + elem[ expando ] = id; + thisCache = cache[ id ] = jQuery.extend(true, {}, name); + } else if ( cache[ id ] ) { + thisCache = cache[ id ]; + } else if ( typeof data === "undefined" ) { + thisCache = emptyObject; } else { - if ( length === undefined ) { - for ( name in object ) - if ( callback.call( object[ name ], name, object[ name ] ) === false ) - break; - } else - for ( var value = object[0]; - i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} + thisCache = cache[ id ] = {}; } - return object; + // Prevent overriding the named cache with undefined values + if ( data !== undefined ) { + elem[ expando ] = id; + thisCache[ name ] = data; + } + + return typeof name === "string" ? thisCache[ name ] : thisCache; }, - prop: function( elem, value, type, i, name ) { - // Handle executable functions - if ( jQuery.isFunction( value ) ) - value = value.call( elem, i ); + removeData: function( elem, name ) { + if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { + return; + } - // Handle passing in a number to a CSS property - return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? - value + "px" : - value; - }, + elem = elem == window ? + windowData : + elem; + + var id = elem[ expando ], cache = jQuery.cache, thisCache = cache[ id ]; + + // If we want to remove a specific section of the element's data + if ( name ) { + if ( thisCache ) { + // Remove the section of cache data + delete thisCache[ name ]; + + // If we've removed all the data, remove the element's cache + if ( jQuery.isEmptyObject(thisCache) ) { + jQuery.removeData( elem ); + } + } + + // Otherwise, we want to remove all of the element's data + } else { + // Clean up the element expando + try { + delete elem[ expando ]; + } catch( e ) { + // IE has trouble directly removing the expando + // but it's ok with using removeAttribute + if ( elem.removeAttribute ) { + elem.removeAttribute( expando ); + } + } + + // Completely remove the data cache + delete cache[ id ]; + } + } +}); - className: { - // internal only, use addClass("class") - add: function( elem, classNames ) { - jQuery.each((classNames || "").split(/\s+/), function(i, className){ - if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) - elem.className += (elem.className ? " " : "") + className; +jQuery.fn.extend({ + data: function( key, value ) { + if ( typeof key === "undefined" && this.length ) { + return jQuery.data( this[0] ); + + } else if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); }); - }, + } - // internal only, use removeClass("class") - remove: function( elem, classNames ) { - if (elem.nodeType == 1) - elem.className = classNames !== undefined ? - jQuery.grep(elem.className.split(/\s+/), function(className){ - return !jQuery.className.has( classNames, className ); - }).join(" ") : - ""; - }, + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; - // internal only, use hasClass("class") - has: function( elem, className ) { - return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; + if ( value === undefined ) { + var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + if ( data === undefined && this.length ) { + data = jQuery.data( this[0], key ); + } + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + } else { + return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() { + jQuery.data( this, key, value ); + }); } }, - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback ) { - var old = {}; - // Remember the old values, and insert the new ones - for ( var name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); +jQuery.extend({ + queue: function( elem, type, data ) { + if ( !elem ) { + return; } - callback.call( elem ); + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type ); - // Revert the old values - for ( var name in options ) - elem.style[ name ] = old[ name ]; + // Speed up dequeue by getting out quickly if this is just a lookup + if ( !data ) { + return q || []; + } + + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data) ); + + } else { + q.push( data ); + } + + return q; }, - 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" ]; + dequeue: function( elem, type ) { + type = type || "fx"; - function getWH() { - val = name == "width" ? elem.offsetWidth : elem.offsetHeight; + var queue = jQuery.queue( elem, type ), fn = queue.shift(); - if ( extra === "border" ) - return; + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + } - jQuery.each( which, function() { - 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; - }); + if ( fn ) { + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift("inprogress"); } - if ( elem.offsetWidth !== 0 ) - getWH(); - else - jQuery.swap( elem, props, getWH ); + fn.call(elem, function() { + jQuery.dequeue(elem, type); + }); + } + } +}); - return Math.max(0, Math.round(val)); +jQuery.fn.extend({ + queue: function( type, data ) { + if ( typeof type !== "string" ) { + data = type; + type = "fx"; } - return jQuery.curCSS( elem, name, force ); - }, + if ( data === undefined ) { + return jQuery.queue( this[0], type ); + } + return this.each(function( i, elem ) { + var queue = jQuery.queue( this, type, data ); - curCSS: function( elem, name, force ) { - var ret, style = elem.style; + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, - // We need to handle opacity special in IE - if ( name == "opacity" && !jQuery.support.opacity ) { - ret = jQuery.attr( style, "opacity" ); + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; + type = type || "fx"; + + return this.queue( type, function() { + var elem = this; + setTimeout(function() { + jQuery.dequeue( elem, type ); + }, time ); + }); + }, - return ret == "" ? - "1" : - ret; - } + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + } +}); +var rclass = /[\n\t]/g, + rspace = /\s+/, + rreturn = /\r/g, + rspecialurl = /href|src|style/, + rtype = /(button|input)/i, + rfocusable = /(button|input|object|select|textarea)/i, + rclickable = /^(a|area)$/i, + rradiocheck = /radio|checkbox/; - // Make sure we're using the right name for getting the float value - if ( name.match( /float/i ) ) - name = styleFloat; +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, name, value, true, jQuery.attr ); + }, - if ( !force && style && style[ name ] ) - ret = style[ name ]; + removeAttr: function( name, fn ) { + return this.each(function(){ + jQuery.attr( this, name, "" ); + if ( this.nodeType === 1 ) { + this.removeAttribute( name ); + } + }); + }, - else if ( defaultView.getComputedStyle ) { + addClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.addClass( value.call(this, i, self.attr("class")) ); + }); + } - // Only "float" is needed here - if ( name.match( /float/i ) ) - name = "float"; + if ( value && typeof value === "string" ) { + var classNames = (value || "").split( rspace ); - name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; - var computedStyle = defaultView.getComputedStyle( elem, null ); + if ( elem.nodeType === 1 ) { + if ( !elem.className ) { + elem.className = value; - if ( computedStyle ) - ret = computedStyle.getPropertyValue( name ); + } else { + var className = " " + elem.className + " "; + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { + elem.className += " " + classNames[c]; + } + } + } + } + } + } - // We should always get a number back from opacity - if ( name == "opacity" && ret == "" ) - ret = "1"; + return this; + }, - } else if ( elem.currentStyle ) { - var camelCase = name.replace(/\-(\w)/g, function(all, letter){ - return letter.toUpperCase(); + removeClass: function( value ) { + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + self.removeClass( value.call(this, i, self.attr("class")) ); }); + } - ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; + if ( (value && typeof value === "string") || value === undefined ) { + var classNames = (value || "").split(rspace); - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + for ( var i = 0, l = this.length; i < l; i++ ) { + var elem = this[i]; - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { - // Remember the original values - var left = style.left, rsLeft = elem.runtimeStyle.left; - - // Put in the new values to get a computed value out - elem.runtimeStyle.left = elem.currentStyle.left; - style.left = ret || 0; - ret = style.pixelLeft + "px"; + if ( elem.nodeType === 1 && elem.className ) { + if ( value ) { + var className = (" " + elem.className + " ").replace(rclass, " "); + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { + className = className.replace(" " + classNames[c] + " ", " "); + } + elem.className = className.substring(1, className.length - 1); - // Revert the changed values - style.left = left; - elem.runtimeStyle.left = rsLeft; + } else { + elem.className = ""; + } + } } } - return ret; + return this; }, - clean: function( elems, context, fragment ) { - context = context || document; - - // !context.createElement fails in IE with an error but returns typeof 'object' - if ( typeof context.createElement === "undefined" ) - context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + toggleClass: function( value, stateVal ) { + var type = typeof value, isBool = typeof stateVal === "boolean"; - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { - var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); - if ( match ) - return [ context.createElement( match[1] ) ]; + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this); + self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); + }); } - var ret = [], scripts = [], div = context.createElement("div"); + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, i = 0, self = jQuery(this), + state = stateVal, + classNames = value.split( rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space seperated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } - jQuery.each(elems, function(i, elem){ - if ( typeof elem === "number" ) - elem += ''; + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery.data( this, "__className__", this.className ); + } - if ( !elem ) - return; + // toggle whole className + this.className = this.className || value === false ? "" : jQuery.data( this, "__className__" ) || ""; + } + }); + }, - // Convert html string into DOM nodes - if ( typeof elem === "string" ) { - // Fix "XHTML"-style tags in all browsers - elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ - return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? - all : - front + "></" + tag + ">"; - }); + hasClass: function( selector ) { + var className = " " + selector + " "; + for ( var i = 0, l = this.length; i < l; i++ ) { + if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + return true; + } + } - // Trim whitespace, otherwise indexOf won't work as expected - var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); + return false; + }, - var wrap = - // option or optgroup - !tags.indexOf("<opt") && - [ 1, "<select multiple='multiple'>", "</select>" ] || + val: function( value ) { + if ( value === undefined ) { + var elem = this[0]; - !tags.indexOf("<leg") && - [ 1, "<fieldset>", "</fieldset>" ] || + if ( elem ) { + if ( jQuery.nodeName( elem, "option" ) ) { + return (elem.attributes.value || {}).specified ? elem.value : elem.text; + } - tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && - [ 1, "<table>", "</table>" ] || + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type === "select-one"; - !tags.indexOf("<tr") && - [ 2, "<table><tbody>", "</tbody></table>" ] || + // Nothing was selected + if ( index < 0 ) { + return null; + } - // <thead> matched above - (!tags.indexOf("<td") || !tags.indexOf("<th")) && - [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] || + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; - !tags.indexOf("<col") && - [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] || + if ( option.selected ) { + // Get the specifc value for the option + value = jQuery(option).val(); - // IE can't serialize <link> and <script> tags normally - !jQuery.support.htmlSerialize && - [ 1, "div<div>", "</div>" ] || + // We don't need an array for one selects + if ( one ) { + return value; + } - [ 0, "", "" ]; + // Multi-Selects return an array + values.push( value ); + } + } - // Go to html and back, then peel off extra wrappers - div.innerHTML = wrap[1] + elem + wrap[2]; + return values; + } - // Move to the right depth - while ( wrap[0]-- ) - div = div.lastChild; + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + } + - // Remove IE's autoinserted <tbody> from table fragments - if ( !jQuery.support.tbody ) { + // Everything else, we just grab the value + return (elem.value || "").replace(rreturn, ""); - // String was a <table>, *may* have spurious <tbody> - 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>" && !hasBody ? - div.childNodes : - []; + return undefined; + } - for ( var j = tbody.length - 1; j >= 0 ; --j ) - if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) - tbody[ j ].parentNode.removeChild( tbody[ j ] ); + var isFunction = jQuery.isFunction(value); - } + return this.each(function(i) { + var self = jQuery(this), val = value; - // IE completely kills leading whitespace when innerHTML is used - if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) ) - div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild ); - - elem = jQuery.makeArray( div.childNodes ); + if ( this.nodeType !== 1 ) { + return; } - if ( elem.nodeType ) - ret.push( elem ); - else - ret = jQuery.merge( ret, elem ); + if ( isFunction ) { + val = value.call(this, i, self.val()); + } - }); + // Typecast each time if the value is a Function and the appended + // value is therefore different each time. + if ( typeof val === "number" ) { + val += ""; + } - if ( fragment ) { - for ( var i = 0; ret[i]; i++ ) { - if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { - scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); - } else { - if ( ret[i].nodeType === 1 ) - ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); - fragment.appendChild( ret[i] ); + if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { + this.checked = jQuery.inArray( self.val(), val ) >= 0; + + } else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(val); + + jQuery( "option", this ).each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + this.selectedIndex = -1; } + + } else { + this.value = val; } - - return scripts; - } + }); + } +}); - return ret; +jQuery.extend({ + attrFn: { + val: true, + css: true, + html: true, + text: true, + data: true, + width: true, + height: true, + offset: true }, - - attr: function( elem, name, value ) { + + attr: function( elem, name, value, pass ) { // don't set attributes on text and comment nodes - if (!elem || elem.nodeType == 3 || elem.nodeType == 8) + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { return undefined; + } + + if ( pass && name in jQuery.attrFn ) { + return jQuery(elem)[name](value); + } - var notxml = !jQuery.isXMLDoc( elem ), + var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ), // Whether we are setting (or getting) set = value !== undefined; @@ -977,472 +1448,1120 @@ jQuery.extend({ name = notxml && jQuery.props[ name ] || name; // Only do all the following if this is a node (faster for style) - // IE elem.getAttribute passes even for style - if ( elem.tagName ) { - + if ( elem.nodeType === 1 ) { // These attributes require special treatment - var special = /href|src|style/.test( name ); + var special = rspecialurl.test( name ); - // Safari mis-reports the default selected property of a hidden option + // Safari mis-reports the default selected property of an option // Accessing the parent's selectedIndex property fixes it - if ( name == "selected" && elem.parentNode ) - elem.parentNode.selectedIndex; + if ( name === "selected" && !jQuery.support.optSelected ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } // If applicable, access the attribute via the DOM 0 way if ( name in elem && notxml && !special ) { - if ( set ){ + if ( set ) { // We can't allow the type property to be changed (since it causes problems in IE) - if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) - throw "type property can't be changed"; + if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } elem[ name ] = value; } // browsers index elements by id/name on forms, give priority to attributes. - if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) + if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { return elem.getAttributeNode( name ).nodeValue; + } // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - if ( name == "tabIndex" ) { + if ( name === "tabIndex" ) { var attributeNode = elem.getAttributeNode( "tabIndex" ); - return attributeNode && attributeNode.specified - ? attributeNode.value - : elem.nodeName.match(/(button|input|object|select|textarea)/i) - ? 0 - : elem.nodeName.match(/^(a|area)$/i) && elem.href - ? 0 - : undefined; + + return attributeNode && attributeNode.specified ? + attributeNode.value : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; } return elem[ name ]; } - if ( !jQuery.support.style && notxml && name == "style" ) - return jQuery.attr( elem.style, "cssText", value ); + if ( !jQuery.support.style && notxml && name === "style" ) { + if ( set ) { + elem.style.cssText = "" + value; + } + + return elem.style.cssText; + } - if ( set ) + if ( set ) { // convert the value to a string (all browsers do this but IE) see #1070 elem.setAttribute( name, "" + value ); + } - var attr = !jQuery.support.hrefNormalized && notxml && special + var attr = !jQuery.support.hrefNormalized && notxml && special ? // Some attributes require a special call on IE - ? elem.getAttribute( name, 2 ) - : elem.getAttribute( name ); + elem.getAttribute( name, 2 ) : + elem.getAttribute( name ); // Non-existent attributes return null, we normalize to undefined return attr === null ? undefined : attr; } // elem is actually elem.style ... set the style + // Using attr for specific style information is now deprecated. Use style insead. + return jQuery.style( elem, name, value ); + } +}); +var fcleanup = function( nm ) { + return nm.replace(/[^\w\s\.\|`]/g, function( ch ) { + return "\\" + ch; + }); +}; - // IE uses filters for opacity - if ( !jQuery.support.opacity && name == "opacity" ) { - if ( set ) { - // IE has trouble with opacity if it does not have layout - // Force it by setting the zoom level - elem.zoom = 1; +/* + * A number of helper functions used for managing events. + * Many of the ideas behind this code originated from + * Dean Edwards' addEvent library. + */ +jQuery.event = { - // Set the alpha filter to set the opacity - elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) + - (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"); - } + // Bind an event to an element + // Original by Dean Edwards + add: function( elem, types, handler, data ) { + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } - return elem.filter && elem.filter.indexOf("opacity=") >= 0 ? - (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '': - ""; + // For whatever reason, IE has trouble passing the window object + // around, causing it to be cloned in the process + if ( elem.setInterval && ( elem !== window && !elem.frameElement ) ) { + elem = window; } - name = name.replace(/-([a-z])/ig, function(all, letter){ - return letter.toUpperCase(); - }); + // Make sure that the function being executed has a unique ID + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } - if ( set ) - elem[ name ] = value; + // if data is passed, bind to handler + if ( data !== undefined ) { + // Create temporary function pointer to original handler + var fn = handler; - return elem[ name ]; - }, + // Create unique handler function, wrapped around original handler + handler = jQuery.proxy( fn ); - trim: function( text ) { - return (text || "").replace( /^\s+|\s+$/g, "" ); - }, + // Store data in unique handler + handler.data = data; + } - makeArray: function( array ) { - var ret = []; + // Init the element's event structure + var events = jQuery.data( elem, "events" ) || jQuery.data( elem, "events", {} ), + handle = jQuery.data( elem, "handle" ), eventHandle; - if( array != null ){ - var i = array.length; - // The window, strings (and functions) also have 'length' - if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval ) - ret[0] = array; - else - while( i ) - ret[--i] = array[i]; + if ( !handle ) { + eventHandle = function() { + // Handle the second event of a trigger and when + // an event is called after a page has unloaded + return typeof jQuery !== "undefined" && !jQuery.event.triggered ? + jQuery.event.handle.apply( eventHandle.elem, arguments ) : + undefined; + }; + + handle = jQuery.data( elem, "handle", eventHandle ); } - return ret; - }, + // If no handle is found then we must be trying to bind to one of the + // banned noData elements + if ( !handle ) { + return; + } - inArray: function( elem, array ) { - for ( var i = 0, length = array.length; i < length; i++ ) - // Use === because on IE, window == document - if ( array[ i ] === elem ) - return i; + // Add elem as a property of the handle function + // This is to prevent a memory leak with non-native + // event in IE. + handle.elem = elem; - return -1; + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = types.split( /\s+/ ); + + var type, i = 0; + + while ( (type = types[ i++ ]) ) { + // Namespaced event handlers + var namespaces = type.split("."); + type = namespaces.shift(); + + if ( i > 1 ) { + handler = jQuery.proxy( handler ); + + if ( data !== undefined ) { + handler.data = data; + } + } + + handler.type = namespaces.slice(0).sort().join("."); + + // Get the current list of functions bound to this event + var handlers = events[ type ], + special = this.special[ type ] || {}; + + // Init the event handler queue + if ( !handlers ) { + handlers = events[ type ] = {}; + + // Check for a special event handler + // Only use addEventListener/attachEvent if the special + // events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, handler) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, handle, false ); + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, handle ); + } + } + } + + if ( special.add ) { + var modifiedHandler = special.add.call( elem, handler, data, namespaces, handlers ); + if ( modifiedHandler && jQuery.isFunction( modifiedHandler ) ) { + modifiedHandler.guid = modifiedHandler.guid || handler.guid; + modifiedHandler.data = modifiedHandler.data || handler.data; + modifiedHandler.type = modifiedHandler.type || handler.type; + handler = modifiedHandler; + } + } + + // Add the function to the element's handler list + handlers[ handler.guid ] = handler; + + // Keep track of which events have been used, for global triggering + this.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; }, - merge: function( first, second ) { - // We have to loop this way because IE & Opera overwrite the length - // expando of getElementsByTagName - var i = 0, elem, pos = first.length; - // Also, we need to make sure that the correct elements are being returned - // (IE returns comment nodes in a '*' query) - if ( !jQuery.support.getAll ) { - while ( (elem = second[ i++ ]) != null ) - if ( elem.nodeType != 8 ) - first[ pos++ ] = elem; - - } else - while ( (elem = second[ i++ ]) != null ) - first[ pos++ ] = elem; + global: {}, - return first; + // Detach an event or set of events from an element + remove: function( elem, types, handler ) { + // don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + var events = jQuery.data( elem, "events" ), ret, type, fn; + + if ( events ) { + // Unbind all events for the element + if ( types === undefined || (typeof types === "string" && types.charAt(0) === ".") ) { + for ( type in events ) { + this.remove( elem, type + (types || "") ); + } + } else { + // types is actually an event object here + if ( types.type ) { + handler = types.handler; + types = types.type; + } + + // Handle multiple events separated by a space + // jQuery(...).unbind("mouseover mouseout", fn); + types = types.split(/\s+/); + var i = 0; + while ( (type = types[ i++ ]) ) { + // Namespaced event handlers + var namespaces = type.split("."); + type = namespaces.shift(); + var all = !namespaces.length, + cleaned = jQuery.map( namespaces.slice(0).sort(), fcleanup ), + namespace = new RegExp("(^|\\.)" + cleaned.join("\\.(?:.*\\.)?") + "(\\.|$)"), + special = this.special[ type ] || {}; + + if ( events[ type ] ) { + // remove the given handler for the given type + if ( handler ) { + fn = events[ type ][ handler.guid ]; + delete events[ type ][ handler.guid ]; + + // remove all handlers for the given type + } else { + for ( var handle in events[ type ] ) { + // Handle the removal of namespaced events + if ( all || namespace.test( events[ type ][ handle ].type ) ) { + delete events[ type ][ handle ]; + } + } + } + + if ( special.remove ) { + special.remove.call( elem, namespaces, fn); + } + + // remove generic event handler if no more handlers exist + for ( ret in events[ type ] ) { + break; + } + if ( !ret ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, jQuery.data( elem, "handle" ), false ); + } else if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, jQuery.data( elem, "handle" ) ); + } + } + ret = null; + delete events[ type ]; + } + } + } + } + + // Remove the expando if it's no longer used + for ( ret in events ) { + break; + } + if ( !ret ) { + var handle = jQuery.data( elem, "handle" ); + if ( handle ) { + handle.elem = null; + } + jQuery.removeData( elem, "events" ); + jQuery.removeData( elem, "handle" ); + } + } }, - unique: function( array ) { - var ret = [], done = {}; + // bubbling is internal + trigger: function( event, data, elem /*, bubbling */ ) { + // Event object or event type + var type = event.type || event, + bubbling = arguments[3]; + + if ( !bubbling ) { + event = typeof event === "object" ? + // jQuery.Event object + event[expando] ? event : + // Object literal + jQuery.extend( jQuery.Event(type), event ) : + // Just the event type (string) + jQuery.Event(type); + + if ( type.indexOf("!") >= 0 ) { + event.type = type = type.slice(0, -1); + event.exclusive = true; + } + + // Handle a global trigger + if ( !elem ) { + // Don't bubble custom events when global (to avoid too much overhead) + event.stopPropagation(); + + // Only trigger if we've ever bound an event for it + if ( this.global[ type ] ) { + jQuery.each( jQuery.cache, function() { + if ( this.events && this.events[type] ) { + jQuery.event.trigger( event, data, this.handle.elem ); + } + }); + } + } + + // Handle triggering a single element + + // don't do events on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { + return undefined; + } + + // Clean up in case it is reused + event.result = undefined; + event.target = elem; + + // Clone the incoming data, if any + data = jQuery.makeArray( data ); + data.unshift( event ); + } + + event.currentTarget = elem; + + // Trigger the event, it is assumed that "handle" is a function + var handle = jQuery.data( elem, "handle" ); + if ( handle ) { + handle.apply( elem, data ); + } + + var parent = elem.parentNode || elem.ownerDocument; + // Trigger an inline bound script try { + if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { + if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { + event.result = false; + } + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (e) {} - for ( var i = 0, length = array.length; i < length; i++ ) { - var id = jQuery.data( array[ i ] ); + if ( !event.isPropagationStopped() && parent ) { + jQuery.event.trigger( event, data, parent, true ); - if ( !done[ id ] ) { - done[ id ] = true; - ret.push( array[ i ] ); + } else if ( !event.isDefaultPrevented() ) { + var target = event.target, old, + isClick = jQuery.nodeName(target, "a") && type === "click"; + + if ( !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { + try { + if ( target[ type ] ) { + // Make sure that we don't accidentally re-trigger the onFOO events + old = target[ "on" + type ]; + + if ( old ) { + target[ "on" + type ] = null; + } + + this.triggered = true; + target[ type ](); + } + + // prevent IE from throwing an error for some elements with some event types, see #3533 + } catch (e) {} + + if ( old ) { + target[ "on" + type ] = old; } + + this.triggered = false; } + } + }, + + handle: function( event ) { + // returned undefined or false + 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(); + + // Cache this now, all = true means, any handler + all = !namespaces.length && !event.exclusive; + + var namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); + + handlers = ( jQuery.data(this, "events") || {} )[ event.type ]; + + for ( var j in handlers ) { + var handler = handlers[ j ]; + + // Filter the functions by class + if ( all || namespace.test(handler.type) ) { + // Pass in a reference to the handler function itself + // So that we can later remove it + event.handler = handler; + event.data = handler.data; + + var ret = handler.apply( this, arguments ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } - } catch( e ) { - ret = array; + if ( event.isImmediatePropagationStopped() ) { + break; + } + + } } - return ret; + return event.result; }, - grep: function( elems, callback, inv ) { - var ret = []; + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) - if ( !inv != !callback( elems[ i ], i ) ) - ret.push( elems[ i ] ); + fix: function( event ) { + if ( event[ expando ] ) { + return event; + } - return ret; + // store a copy of the original event object + // and "clone" to set read-only properties + var originalEvent = event; + event = jQuery.Event( originalEvent ); + + for ( var i = this.props.length, prop; i; ) { + prop = this.props[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary + if ( !event.target ) { + event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either + } + + // check if target is a textnode (safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && event.fromElement ) { + event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; + } + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && event.clientX != null ) { + var doc = document.documentElement, body = document.body; + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); + } + + // Add which for key events + if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) { + event.which = event.charCode || event.keyCode; + } + + // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) + if ( !event.metaKey && event.ctrlKey ) { + event.metaKey = event.ctrlKey; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && event.button !== undefined ) { + event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + } + + return event; }, - map: function( elems, callback ) { - var ret = []; + // Deprecated, use jQuery.guid instead + guid: 1E8, - // Go through the array, translating each of the items to their - // new value (or values). - for ( var i = 0, length = elems.length; i < length; i++ ) { - var value = callback( elems[ i ], i ); + // Deprecated, use jQuery.proxy instead + proxy: jQuery.proxy, - if ( value != null ) - ret[ ret.length ] = value; + special: { + ready: { + // Make sure the ready event is setup + setup: jQuery.bindReady, + teardown: jQuery.noop + }, + + live: { + add: function( proxy, data, namespaces, live ) { + jQuery.extend( proxy, data || {} ); + + proxy.guid += data.selector + data.live; + data.liveProxy = proxy; + + jQuery.event.add( this, data.live, liveHandler, data ); + + }, + + remove: function( namespaces ) { + if ( namespaces.length ) { + var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); + + jQuery.each( (jQuery.data(this, "events").live || {}), function() { + if ( name.test(this.type) ) { + remove++; + } + }); + + if ( remove < 1 ) { + jQuery.event.remove( this, namespaces[0], liveHandler ); + } + } + }, + special: {} + }, + beforeunload: { + setup: function( data, namespaces, fn ) { + // We only want to do this special case on windows + if ( this.setInterval ) { + this.onbeforeunload = fn; + } + + return false; + }, + teardown: function( namespaces, fn ) { + if ( this.onbeforeunload === fn ) { + this.onbeforeunload = null; + } + } } + } +}; - return ret.concat.apply( [], ret ); +jQuery.Event = function( src ) { + // Allow instantiation without the 'new' keyword + if ( !this.preventDefault ) { + return new jQuery.Event( src ); } -}); -// Use of jQuery.browser is deprecated. -// It's included for backwards compatibility and plugins, -// although they should work to migrate away. + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + // Event type + } else { + this.type = src; + } -var userAgent = navigator.userAgent.toLowerCase(); + // timeStamp is buggy for some events on Firefox(#3843) + // So we won't rely on the native value + this.timeStamp = now(); -// Figure out what browser is being used -jQuery.browser = { - version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1], - safari: /webkit/.test( userAgent ), - opera: /opera/.test( userAgent ), - msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ), - mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ) + // Mark it as fixed + this[ expando ] = true; }; -jQuery.each({ - parent: function(elem){return elem.parentNode;}, - parents: function(elem){return jQuery.dir(elem,"parentNode");}, - next: function(elem){return jQuery.nth(elem,2,"nextSibling");}, - prev: function(elem){return jQuery.nth(elem,2,"previousSibling");}, - nextAll: function(elem){return jQuery.dir(elem,"nextSibling");}, - prevAll: function(elem){return jQuery.dir(elem,"previousSibling");}, - siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);}, - children: function(elem){return jQuery.sibling(elem.firstChild);}, - contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);} -}, function(name, fn){ - jQuery.fn[ name ] = function( selector ) { - var ret = jQuery.map( this, fn ); +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} - if ( selector && typeof selector == "string" ) - ret = jQuery.multiFilter( selector, ret ); +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; - return this.pushStack( jQuery.unique( ret ), name, selector ); - }; -}); + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + } + // otherwise set the returnValue property of the original event to false (IE) + e.returnValue = false; + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function(name, original){ - jQuery.fn[ name ] = function( selector ) { - var ret = [], insert = jQuery( selector ); + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; - 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 ); +// Checks if an event happened on an element within another element +// Used in jQuery.event.special.mouseenter and mouseleave handlers +var withinElement = function( event ) { + // Check if mouse(over|out) are still within the same parent element + var parent = event.relatedTarget; + + // Traverse up the tree + while ( parent && parent !== this ) { + // Firefox sometimes assigns relatedTarget a XUL element + // which we cannot access the parentNode property of + try { + parent = parent.parentNode; + + // assuming we've left the element since we most likely mousedover a xul element + } catch(e) { + break; } + } + + if ( parent !== this ) { + // set the correct event type + event.type = event.data; + + // handle event if we actually just moused on to a non sub-element + jQuery.event.handle.apply( this, arguments ); + } + +}, + +// In case of event delegation, we only need to rename the event.type, +// liveHandler will take care of the rest. +delegate = function( event ) { + event.type = event.data; + jQuery.event.handle.apply( this, arguments ); +}; - return this.pushStack( ret, name, selector ); +// Create mouseenter and mouseleave events +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + setup: function( data ) { + jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); + }, + teardown: function( data ) { + jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); + } }; }); -jQuery.each({ - removeAttr: function( name ) { - jQuery.attr( this, name, "" ); - if (this.nodeType == 1) - this.removeAttribute( name ); - }, +// submit delegation +if ( !jQuery.support.submitBubbles ) { - addClass: function( classNames ) { - jQuery.className.add( this, classNames ); +jQuery.event.special.submit = { + setup: function( data, namespaces, fn ) { + if ( this.nodeName.toLowerCase() !== "form" ) { + jQuery.event.add(this, "click.specialSubmit." + fn.guid, function( e ) { + var elem = e.target, type = elem.type; + + if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + return trigger( "submit", this, arguments ); + } + }); + + jQuery.event.add(this, "keypress.specialSubmit." + fn.guid, function( e ) { + var elem = e.target, type = elem.type; + + if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + return trigger( "submit", this, arguments ); + } + }); + + } else { + return false; + } }, - removeClass: function( classNames ) { - jQuery.className.remove( this, classNames ); + remove: function( namespaces, fn ) { + jQuery.event.remove( this, "click.specialSubmit" + (fn ? "."+fn.guid : "") ); + jQuery.event.remove( this, "keypress.specialSubmit" + (fn ? "."+fn.guid : "") ); + } +}; + +} + +// change delegation, happens here so we have bind. +if ( !jQuery.support.changeBubbles ) { + +var formElems = /textarea|input|select/i; + +function getVal( elem ) { + var type = elem.type, val = elem.value; + + if ( type === "radio" || type === "checkbox" ) { + val = elem.checked; + + } else if ( type === "select-multiple" ) { + val = elem.selectedIndex > -1 ? + jQuery.map( elem.options, function( elem ) { + return elem.selected; + }).join("-") : + ""; + + } else if ( elem.nodeName.toLowerCase() === "select" ) { + val = elem.selectedIndex; + } + + return val; +} + +function testChange( e ) { + var elem = e.target, data, val; + + if ( !formElems.test( elem.nodeName ) || elem.readOnly ) { + return; + } + + data = jQuery.data( elem, "_change_data" ); + val = getVal(elem); + + // the current data will be also retrieved by beforeactivate + if ( e.type !== "focusout" || elem.type !== "radio" ) { + jQuery.data( elem, "_change_data", val ); + } + + if ( data === undefined || val === data ) { + return; + } + + if ( data != null || val ) { + e.type = "change"; + return jQuery.event.trigger( e, arguments[1], elem ); + } +} + +jQuery.event.special.change = { + filters: { + focusout: testChange, + + click: function( e ) { + var elem = e.target, type = elem.type; + + if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { + return testChange.call( this, e ); + } + }, + + // Change has to be called before submit + // Keydown will be called before keypress, which is used in submit-event delegation + keydown: function( e ) { + var elem = e.target, type = elem.type; + + if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || + (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || + type === "select-multiple" ) { + return testChange.call( this, e ); + } + }, + + // Beforeactivate happens also before the previous element is blurred + // with this event you can't trigger a change event, but you can store + // information/focus[in] is not needed anymore + beforeactivate: function( e ) { + var elem = e.target; + + if ( elem.nodeName.toLowerCase() === "input" && elem.type === "radio" ) { + jQuery.data( elem, "_change_data", getVal(elem) ); + } + } }, + setup: function( data, namespaces, fn ) { + for ( var type in changeFilters ) { + jQuery.event.add( this, type + ".specialChange." + fn.guid, changeFilters[type] ); + } - toggleClass: function( classNames, state ) { - if( typeof state !== "boolean" ) - state = !jQuery.className.has( this, classNames ); - jQuery.className[ state ? "add" : "remove" ]( this, classNames ); + return formElems.test( this.nodeName ); }, + remove: function( namespaces, fn ) { + for ( var type in changeFilters ) { + jQuery.event.remove( this, type + ".specialChange" + (fn ? "."+fn.guid : ""), changeFilters[type] ); + } - remove: function( selector ) { - if ( !selector || jQuery.filter( selector, [ this ] ).length ) { - // Prevent memory leaks - jQuery( "*", this ).add([this]).each(function(){ - jQuery.event.remove(this); - jQuery.removeData(this); + return formElems.test( this.nodeName ); + } +}; + +var changeFilters = jQuery.event.special.change.filters; + +} + +function trigger( type, elem, args ) { + args[0].type = type; + return jQuery.event.handle.apply( elem, args ); +} + +// Create "bubbling" focus and blur events +if ( document.addEventListener ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + jQuery.event.special[ fix ] = { + setup: function() { + this.addEventListener( orig, handler, true ); + }, + teardown: function() { + this.removeEventListener( orig, handler, true ); + } + }; + + function handler( e ) { + e = jQuery.event.fix( e ); + e.type = fix; + return jQuery.event.handle.call( this, e ); + } + }); +} + +jQuery.each(["bind", "one"], function( i, name ) { + jQuery.fn[ name ] = function( type, data, fn ) { + // Handle object literals + if ( typeof type === "object" ) { + for ( var key in type ) { + this[ name ](key, data, type[key], fn); + } + return this; + } + + if ( jQuery.isFunction( data ) ) { + fn = data; + data = undefined; + } + + var handler = name === "one" ? jQuery.proxy( fn, function( event ) { + jQuery( this ).unbind( event, handler ); + return fn.apply( this, arguments ); + }) : fn; + + return type === "unload" && name !== "one" ? + this.one( type, data, fn ) : + this.each(function() { + jQuery.event.add( this, type, handler, data ); }); - if (this.parentNode) - this.parentNode.removeChild( this ); + }; +}); + +jQuery.fn.extend({ + unbind: function( type, fn ) { + // Handle object literals + if ( typeof type === "object" && !type.preventDefault ) { + for ( var key in type ) { + this.unbind(key, type[key]); + } + return this; + } + + return this.each(function() { + jQuery.event.remove( this, type, fn ); + }); + }, + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + + triggerHandler: function( type, data ) { + if ( this[0] ) { + var event = jQuery.Event( type ); + event.preventDefault(); + event.stopPropagation(); + jQuery.event.trigger( event, data, this[0] ); + return event.result; } }, - empty: function() { - // Remove element nodes and prevent memory leaks - jQuery(this).children().remove(); + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, i = 1; - // Remove any remaining nodes - while ( this.firstChild ) - this.removeChild( this.firstChild ); + // link all the functions, so any of them can unbind this click handler + while ( i < args.length ) { + jQuery.proxy( fn, args[ i++ ] ); + } + + return this.click( jQuery.proxy( fn, function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + })); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } -}, function(name, fn){ - jQuery.fn[ name ] = function(){ - return this.each( fn, arguments ); +}); + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn ) { + var type, i = 0; + + if ( jQuery.isFunction( data ) ) { + fn = data; + data = undefined; + } + + types = (types || "").split( /\s+/ ); + + while ( (type = types[ i++ ]) != null ) { + type = type === "focus" ? "focusin" : // focus --> focusin + type === "blur" ? "focusout" : // blur --> focusout + type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support + type; + + if ( name === "live" ) { + // bind live handler + jQuery( this.context ).bind( liveConvert( type, this.selector ), { + data: data, selector: this.selector, live: type + }, fn ); + + } else { + // unbind live handler + jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null ); + } + } + + return this; + } +}); + +function liveHandler( event ) { + var stop, elems = [], selectors = [], args = arguments, + related, match, fn, elem, j, i, l, data, + live = jQuery.extend({}, jQuery.data( this, "events" ).live); + + // Make sure we avoid non-left-click bubbling in Firefox (#3861) + if ( event.button && event.type === "click" ) { + return; + } + + for ( j in live ) { + fn = live[j]; + if ( fn.live === event.type || + fn.altLive && jQuery.inArray(event.type, fn.altLive) > -1 ) { + + data = fn.data; + if ( !(data.beforeFilter && data.beforeFilter[event.type] && + !data.beforeFilter[event.type](event)) ) { + selectors.push( fn.selector ); + } + } else { + delete live[j]; + } + } + + match = jQuery( event.target ).closest( selectors, event.currentTarget ); + + for ( i = 0, l = match.length; i < l; i++ ) { + for ( j in live ) { + fn = live[j]; + elem = match[i].elem; + related = null; + + if ( match[i].selector === fn.selector ) { + // Those two events require additional checking + if ( fn.live === "mouseenter" || fn.live === "mouseleave" ) { + related = jQuery( event.relatedTarget ).closest( fn.selector )[0]; + } + + if ( !related || related !== elem ) { + elems.push({ elem: elem, fn: fn }); + } + } + } + } + + for ( i = 0, l = elems.length; i < l; i++ ) { + match = elems[i]; + event.currentTarget = match.elem; + event.data = match.fn.data; + if ( match.fn.apply( match.elem, args ) === false ) { + stop = false; + break; + } + } + + return stop; +} + +function liveConvert( type, selector ) { + return "live." + (type ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&"); +} + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( fn ) { + return fn ? this.bind( name, fn ) : this.trigger( name ); }; + + if ( jQuery.attrFn ) { + jQuery.attrFn[ name ] = true; + } }); -// Helper function used by the dimensions and offset modules -function num(elem, prop) { - return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0; +// Prevent memory leaks in IE +// Window isn't included so as not to unbind existing unload events +// More info: +// - http://isaacschlueter.com/2006/10/msie-memory-leaks/ +if ( window.attachEvent && !window.addEventListener ) { + window.attachEvent("onunload", function() { + for ( var id in jQuery.cache ) { + if ( jQuery.cache[ id ].handle ) { + // Try/Catch is to handle iframes being unloaded, see #4280 + try { + jQuery.event.remove( jQuery.cache[ id ].handle.elem ); + } catch(e) {} + } + } + }); } -var expando = "jQuery" + now(), uuid = 0, windowData = {};
-
-jQuery.extend({
- cache: {},
-
- data: function( elem, name, data ) {
- elem = elem == window ?
- windowData :
- elem;
-
- var id = elem[ expando ];
-
- // Compute a unique ID for the element
- if ( !id )
- id = elem[ expando ] = ++uuid;
-
- // Only generate the data cache if we're
- // trying to access or manipulate it
- if ( name && !jQuery.cache[ id ] )
- jQuery.cache[ id ] = {};
-
- // Prevent overriding the named cache with undefined values
- if ( data !== undefined )
- jQuery.cache[ id ][ name ] = data;
-
- // Return the named cache data, or the ID for the element
- return name ?
- jQuery.cache[ id ][ name ] :
- id;
- },
-
- removeData: function( elem, name ) {
- elem = elem == window ?
- windowData :
- elem;
-
- var id = elem[ expando ];
-
- // If we want to remove a specific section of the element's data
- if ( name ) {
- if ( jQuery.cache[ id ] ) {
- // Remove the section of cache data
- delete jQuery.cache[ id ][ name ];
-
- // If we've removed all the data, remove the element's cache
- name = "";
-
- for ( name in jQuery.cache[ id ] )
- break;
-
- if ( !name )
- jQuery.removeData( elem );
- }
-
- // Otherwise, we want to remove all of the element's data
- } else {
- // Clean up the element expando
- try {
- delete elem[ expando ];
- } catch(e){
- // IE has trouble directly removing the expando
- // but it's ok with using removeAttribute
- if ( elem.removeAttribute )
- elem.removeAttribute( expando );
- }
-
- // Completely remove the data cache
- delete jQuery.cache[ id ];
- }
- },
- queue: function( elem, type, data ) {
- if ( elem ){
-
- type = (type || "fx") + "queue";
-
- var q = jQuery.data( elem, type );
-
- if ( !q || jQuery.isArray(data) )
- q = jQuery.data( elem, type, jQuery.makeArray(data) );
- else if( data )
- q.push( data );
-
- }
- return q;
- },
-
- dequeue: function( elem, type ){
- var queue = jQuery.queue( elem, type ),
- fn = queue.shift();
-
- if( !type || type === "fx" )
- fn = queue[0];
-
- if( fn !== undefined )
- fn.call(elem);
- }
-});
-
-jQuery.fn.extend({
- data: function( key, value ){
- var parts = key.split(".");
- parts[1] = parts[1] ? "." + parts[1] : "";
-
- if ( value === undefined ) {
- var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
- if ( data === undefined && this.length )
- data = jQuery.data( this[0], key );
-
- return data === undefined && parts[1] ?
- this.data( parts[0] ) :
- data;
- } else
- return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
- jQuery.data( this, key, value );
- });
- },
-
- removeData: function( key ){
- return this.each(function(){
- jQuery.removeData( this, key );
- });
- },
- queue: function(type, data){
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- }
-
- if ( data === undefined )
- return jQuery.queue( this[0], type );
-
- return this.each(function(){
- var queue = jQuery.queue( this, type, data );
-
- if( type == "fx" && queue.length == 1 )
- queue[0].call(this);
- });
- },
- dequeue: function(type){
- return this.each(function(){
- jQuery.dequeue( this, type );
- });
- }
-});/*! - * Sizzle CSS Selector Engine - v0.9.3 +/*! + * Sizzle CSS Selector Engine - v1.0 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){ -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, done = 0, - toString = Object.prototype.toString; + toString = Object.prototype.toString, + hasDuplicate = false, + baseHasDuplicate = true; + +// Here we check if the JavaScript engine is using some sort of +// optimization where it does not always call our comparision +// function. If that is the case, discard the hasDuplicate value. +// Thus far that includes Google Chrome. +[0, 0].sort(function(){ + baseHasDuplicate = false; + return 0; +}); var Sizzle = function(selector, context, results, seed) { results = results || []; - context = context || document; + var origContext = context = context || document; - if ( context.nodeType !== 1 && context.nodeType !== 9 ) + if ( context.nodeType !== 1 && context.nodeType !== 9 ) { return []; + } if ( !selector || typeof selector !== "string" ) { return results; } - var parts = [], m, set, checkSet, check, mode, extra, prune = true; + var parts = [], m, set, checkSet, extra, prune = true, contextXML = isXML(context), + soFar = selector; // Reset the position of the chunker regexp (start from head) - chunker.lastIndex = 0; - - while ( (m = chunker.exec(selector)) !== null ) { + while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) { + soFar = m[3]; + parts.push( m[1] ); if ( m[2] ) { - extra = RegExp.rightContext; + extra = m[3]; break; } } @@ -1458,38 +2577,51 @@ var Sizzle = function(selector, context, results, seed) { while ( parts.length ) { selector = parts.shift(); - if ( Expr.relative[ selector ] ) + if ( Expr.relative[ selector ] ) { selector += parts.shift(); - + } + set = posProcess( selector, set ); } } } else { - var ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) ); - set = Sizzle.filter( ret.expr, ret.set ); - - if ( parts.length > 0 ) { - checkSet = makeArray(set); - } else { - prune = false; + // Take a shortcut and set the context if the root selector is an ID + // (but not if it'll be faster if the inner selector is an ID) + if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && + Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { + var ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; } - while ( parts.length ) { - var cur = parts.pop(), pop = cur; + if ( context ) { + var ret = seed ? + { expr: parts.pop(), set: makeArray(seed) } : + Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); + set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; - if ( !Expr.relative[ cur ] ) { - cur = ""; + if ( parts.length > 0 ) { + checkSet = makeArray(set); } else { - pop = parts.pop(); + prune = false; } - if ( pop == null ) { - pop = context; - } + while ( parts.length ) { + var cur = parts.pop(), pop = cur; + + if ( !Expr.relative[ cur ] ) { + cur = ""; + } else { + pop = parts.pop(); + } + + if ( pop == null ) { + pop = context; + } - Expr.relative[ cur ]( checkSet, pop, isXML(context) ); + Expr.relative[ cur ]( checkSet, pop, contextXML ); + } + } else { + checkSet = parts = []; } } @@ -1498,13 +2630,13 @@ var Sizzle = function(selector, context, results, seed) { } if ( !checkSet ) { - throw "Syntax error, unrecognized expression: " + (cur || selector); + Sizzle.error( cur || selector ); } if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { results.push.apply( results, checkSet ); - } else if ( context.nodeType === 1 ) { + } else if ( context && context.nodeType === 1 ) { for ( var i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { results.push( set[i] ); @@ -1522,17 +2654,22 @@ var Sizzle = function(selector, context, results, seed) { } if ( extra ) { - Sizzle( extra, context, results, seed ); + Sizzle( extra, origContext, results, seed ); + Sizzle.uniqueSort( results ); + } - if ( sortOrder ) { - hasDuplicate = false; - results.sort(sortOrder); + return results; +}; - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[i-1] ) { - results.splice(i--, 1); - } +Sizzle.uniqueSort = function(results){ + if ( sortOrder ) { + hasDuplicate = baseHasDuplicate; + results.sort(sortOrder); + + if ( hasDuplicate ) { + for ( var i = 1; i < results.length; i++ ) { + if ( results[i] === results[i-1] ) { + results.splice(i--, 1); } } } @@ -1555,8 +2692,9 @@ Sizzle.find = function(expr, context, isXML){ for ( var i = 0, l = Expr.order.length; i < l; i++ ) { var type = Expr.order[i], match; - if ( (match = Expr.match[ type ].exec( expr )) ) { - var left = RegExp.leftContext; + if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { + var left = match[1]; + match.splice(1,1); if ( left.substr( left.length - 1 ) !== "\\" ) { match[1] = (match[1] || "").replace(/\\/g, ""); @@ -1582,11 +2720,17 @@ Sizzle.filter = function(expr, set, inplace, not){ while ( expr && set.length ) { for ( var type in Expr.filter ) { - if ( (match = Expr.match[ type ].exec( expr )) != null ) { - var filter = Expr.filter[ type ], found, item; + if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { + var filter = Expr.filter[ type ], found, item, left = match[1]; anyFound = false; - if ( curLoop == result ) { + match.splice(1,1); + + if ( left.substr( left.length - 1 ) === "\\" ) { + continue; + } + + if ( curLoop === result ) { result = []; } @@ -1637,9 +2781,9 @@ Sizzle.filter = function(expr, set, inplace, not){ } // Improper expression - if ( expr == old ) { + if ( expr === old ) { if ( anyFound == null ) { - throw "Syntax error, unrecognized expression: " + expr; + Sizzle.error( expr ); } else { break; } @@ -1651,18 +2795,23 @@ Sizzle.filter = function(expr, set, inplace, not){ return curLoop; }; +Sizzle.error = function( msg ) { + throw "Syntax error, unrecognized expression: " + msg; +}; + var Expr = Sizzle.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\*_-]|\\.)+)/, + 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\))?/ + PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, + leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" @@ -1673,20 +2822,20 @@ var Expr = Sizzle.selectors = { } }, relative: { - "+": function(checkSet, part, isXML){ + "+": function(checkSet, part){ var isPartStr = typeof part === "string", isTag = isPartStr && !/\W/.test(part), isPartStrNotTag = isPartStr && !isTag; - if ( isTag && !isXML ) { - part = part.toUpperCase(); + if ( isTag ) { + part = part.toLowerCase(); } 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 ? + checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? elem || false : elem === part; } @@ -1696,17 +2845,17 @@ var Expr = Sizzle.selectors = { Sizzle.filter( part, checkSet, true ); } }, - ">": function(checkSet, part, isXML){ + ">": function(checkSet, part){ var isPartStr = typeof part === "string"; if ( isPartStr && !/\W/.test(part) ) { - part = isXML ? part : part.toUpperCase(); + part = part.toLowerCase(); for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; if ( elem ) { var parent = elem.parentNode; - checkSet[i] = parent.nodeName === part ? parent : false; + checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; } } } else { @@ -1727,8 +2876,8 @@ var Expr = Sizzle.selectors = { "": function(checkSet, part, isXML){ var doneName = done++, checkFn = dirCheck; - if ( !part.match(/\W/) ) { - var nodeCheck = part = isXML ? part : part.toUpperCase(); + if ( typeof part === "string" && !/\W/.test(part) ) { + var nodeCheck = part = part.toLowerCase(); checkFn = dirNodeCheck; } @@ -1737,8 +2886,8 @@ var Expr = Sizzle.selectors = { "~": function(checkSet, part, isXML){ var doneName = done++, checkFn = dirCheck; - if ( typeof part === "string" && !part.match(/\W/) ) { - var nodeCheck = part = isXML ? part : part.toUpperCase(); + if ( typeof part === "string" && !/\W/.test(part) ) { + var nodeCheck = part = part.toLowerCase(); checkFn = dirNodeCheck; } @@ -1752,7 +2901,7 @@ var Expr = Sizzle.selectors = { return m ? [m] : []; } }, - NAME: function(match, context, isXML){ + NAME: function(match, context){ if ( typeof context.getElementsByName !== "undefined" ) { var ret = [], results = context.getElementsByName(match[1]); @@ -1779,9 +2928,10 @@ var Expr = Sizzle.selectors = { for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) { - if ( !inplace ) + if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) { + if ( !inplace ) { result.push( elem ); + } } else if ( inplace ) { curLoop[i] = false; } @@ -1794,14 +2944,13 @@ var Expr = Sizzle.selectors = { return match[1].replace(/\\/g, ""); }, TAG: function(match, curLoop){ - for ( var i = 0; curLoop[i] === false; i++ ){} - return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase(); + return match[1].toLowerCase(); }, CHILD: function(match){ - if ( match[1] == "nth" ) { + if ( match[1] === "nth" ) { // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( - match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" || + match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); // calculate the numbers (first)n+(last) including if they are negative @@ -1830,7 +2979,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 || /^\w/.test(match[3]) ) { + if ( ( chunker.exec(match[3]) || "" ).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); @@ -1903,7 +3052,7 @@ var Expr = Sizzle.selectors = { return "reset" === elem.type; }, button: function(elem){ - return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON"; + return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; }, input: function(elem){ return /input|select|textarea|button/i.test(elem.nodeName); @@ -1929,10 +3078,10 @@ var Expr = Sizzle.selectors = { return i > match[3] - 0; }, nth: function(elem, i, match){ - return match[3] - 0 == i; + return match[3] - 0 === i; }, eq: function(elem, i, match){ - return match[3] - 0 == i; + return match[3] - 0 === i; } }, filter: { @@ -1942,7 +3091,7 @@ var Expr = Sizzle.selectors = { if ( filter ) { return filter( elem, i, match, array ); } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0; + return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; } else if ( name === "not" ) { var not = match[3]; @@ -1953,6 +3102,8 @@ var Expr = Sizzle.selectors = { } return true; + } else { + Sizzle.error( "Syntax error, unrecognized expression: " + name ); } }, CHILD: function(elem, match){ @@ -1960,20 +3111,26 @@ var Expr = Sizzle.selectors = { switch (type) { case 'only': case 'first': - while (node = node.previousSibling) { - if ( node.nodeType === 1 ) return false; + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + if ( type === "first" ) { + return true; } - if ( type == 'first') return true; node = elem; case 'last': - while (node = node.nextSibling) { - if ( node.nodeType === 1 ) return false; + 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 ) { + if ( first === 1 && last === 0 ) { return true; } @@ -1991,10 +3148,10 @@ var Expr = Sizzle.selectors = { } var diff = elem.nodeIndex - last; - if ( first == 0 ) { - return diff == 0; + if ( first === 0 ) { + return diff === 0; } else { - return ( diff % first == 0 && diff / first >= 0 ); + return ( diff % first === 0 && diff / first >= 0 ); } } }, @@ -2002,7 +3159,7 @@ var Expr = Sizzle.selectors = { return elem.nodeType === 1 && elem.getAttribute("id") === match; }, TAG: function(elem, match){ - return (match === "*" && elem.nodeType === 1) || elem.nodeName === match; + return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; }, CLASS: function(elem, match){ return (" " + (elem.className || elem.getAttribute("class")) + " ") @@ -2030,7 +3187,7 @@ var Expr = Sizzle.selectors = { !check ? value && result !== false : type === "!=" ? - value != check : + value !== check : type === "^=" ? value.indexOf(check) === 0 : type === "$=" ? @@ -2052,11 +3209,14 @@ var Expr = Sizzle.selectors = { var origPOS = Expr.match.POS; for ( var type in Expr.match ) { - Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, function(all, num){ + return "\\" + (num - 0 + 1); + })); } var makeArray = function(array, results) { - array = Array.prototype.slice.call( array ); + array = Array.prototype.slice.call( array, 0 ); if ( results ) { results.push.apply( results, array ); @@ -2069,7 +3229,7 @@ var makeArray = function(array, results) { // Perform a simple check to determine if the browser is capable of // converting a NodeList to an array using builtin methods. try { - Array.prototype.slice.call( document.documentElement.childNodes ); + Array.prototype.slice.call( document.documentElement.childNodes, 0 ); // Provide a fallback method if it does not work } catch(e){ @@ -2098,6 +3258,13 @@ var sortOrder; if ( document.documentElement.compareDocumentPosition ) { sortOrder = function( a, b ) { + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { + if ( a == b ) { + hasDuplicate = true; + } + return a.compareDocumentPosition ? -1 : 1; + } + var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; if ( ret === 0 ) { hasDuplicate = true; @@ -2106,6 +3273,13 @@ if ( document.documentElement.compareDocumentPosition ) { }; } else if ( "sourceIndex" in document.documentElement ) { sortOrder = function( a, b ) { + if ( !a.sourceIndex || !b.sourceIndex ) { + if ( a == b ) { + hasDuplicate = true; + } + return a.sourceIndex ? -1 : 1; + } + var ret = a.sourceIndex - b.sourceIndex; if ( ret === 0 ) { hasDuplicate = true; @@ -2114,11 +3288,18 @@ if ( document.documentElement.compareDocumentPosition ) { }; } else if ( document.createRange ) { sortOrder = function( a, b ) { + if ( !a.ownerDocument || !b.ownerDocument ) { + if ( a == b ) { + hasDuplicate = true; + } + return a.ownerDocument ? -1 : 1; + } + var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); - aRange.selectNode(a); - aRange.collapse(true); - bRange.selectNode(b); - bRange.collapse(true); + aRange.setStart(a, 0); + aRange.setEnd(a, 0); + bRange.setStart(b, 0); + bRange.setEnd(b, 0); var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); if ( ret === 0 ) { hasDuplicate = true; @@ -2127,13 +3308,33 @@ if ( document.documentElement.compareDocumentPosition ) { }; } +// Utility function for retreiving the text value of an array of DOM nodes +function getText( elems ) { + var ret = "", elem; + + for ( var i = 0; elems[i]; i++ ) { + elem = elems[i]; + + // Get the text from text nodes and CDATA nodes + if ( elem.nodeType === 3 || elem.nodeType === 4 ) { + ret += elem.nodeValue; + + // Traverse everything else, except comment nodes + } else if ( elem.nodeType !== 8 ) { + ret += getText( elem.childNodes ); + } + } + + return ret; +} + // Check to see if the browser returns elements by name when // querying by getElementById (and provide a workaround) (function(){ // We're going to inject a fake input element with a specified name - var form = document.createElement("form"), + var form = document.createElement("div"), id = "script" + (new Date).getTime(); - form.innerHTML = "<input name='" + id + "'/>"; + form.innerHTML = "<a name='" + id + "'/>"; // Inject it into the root element, check its status, and remove it quickly var root = document.documentElement; @@ -2141,7 +3342,7 @@ if ( document.documentElement.compareDocumentPosition ) { // The workaround has to do additional checks after a getElementById // Which slows things down for other browsers (hence the branching) - if ( !!document.getElementById( id ) ) { + if ( document.getElementById( id ) ) { Expr.find.ID = function(match, context, isXML){ if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); @@ -2156,6 +3357,7 @@ if ( document.documentElement.compareDocumentPosition ) { } root.removeChild( form ); + root = form = null; // release memory in IE })(); (function(){ @@ -2196,69 +3398,75 @@ if ( document.documentElement.compareDocumentPosition ) { return elem.getAttribute("href", 2); }; } + + div = null; // release memory in IE })(); -if ( document.querySelectorAll ) (function(){ - var oldSizzle = Sizzle, div = document.createElement("div"); - div.innerHTML = "<p class='TEST'></p>"; +if ( document.querySelectorAll ) { + (function(){ + var oldSizzle = Sizzle, div = document.createElement("div"); + div.innerHTML = "<p class='TEST'></p>"; - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } + // Safari can't handle uppercase or unicode characters when + // in quirks mode. + if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { + return; + } - Sizzle = function(query, context, extra, seed){ - context = context || document; + Sizzle = function(query, context, extra, seed){ + context = context || document; + + // Only use querySelectorAll on non-XML documents + // (ID selectors don't work in non-HTML documents) + if ( !seed && context.nodeType === 9 && !isXML(context) ) { + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(e){} + } + + return oldSizzle(query, context, extra, seed); + }; - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && context.nodeType === 9 && !isXML(context) ) { - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(e){} + for ( var prop in oldSizzle ) { + Sizzle[ prop ] = oldSizzle[ prop ]; } - - return oldSizzle(query, context, extra, seed); - }; - Sizzle.find = oldSizzle.find; - Sizzle.filter = oldSizzle.filter; - Sizzle.selectors = oldSizzle.selectors; - Sizzle.matches = oldSizzle.matches; -})(); + div = null; // release memory in IE + })(); +} -if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){ +(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 ) + // Also, make sure that getElementsByClassName actually exists + if ( !div.getElementsByClassName || 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 ) + if ( div.getElementsByClassName("e").length === 1 ) { return; - + } + Expr.order.splice(1, 0, "CLASS"); Expr.find.CLASS = function(match, context, isXML) { if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { return context.getElementsByClassName(match[1]); } }; + + div = null; // release memory in IE })(); 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; @@ -2273,7 +3481,7 @@ function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { elem.sizset = i; } - if ( elem.nodeName === cur ) { + if ( elem.nodeName.toLowerCase() === cur ) { match = elem; break; } @@ -2287,14 +3495,9 @@ 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; @@ -2329,15 +3532,17 @@ function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { } } -var contains = document.compareDocumentPosition ? function(a, b){ +var contains = document.compareDocumentPosition ? function(a, b){ return a.compareDocumentPosition(b) & 16; } : function(a, b){ return a !== b && (a.contains ? a.contains(b) : true); }; var isXML = function(elem){ - return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || - !!elem.ownerDocument && isXML( elem.ownerDocument ); + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; }; var posProcess = function(selector, context){ @@ -2362,873 +3567,1068 @@ var posProcess = function(selector, context){ // EXPOSE jQuery.find = Sizzle; -jQuery.filter = Sizzle.filter; jQuery.expr = Sizzle.selectors; jQuery.expr[":"] = jQuery.expr.filters; +jQuery.unique = Sizzle.uniqueSort; +jQuery.getText = getText; +jQuery.isXMLDoc = isXML; +jQuery.contains = contains; -Sizzle.selectors.filters.hidden = function(elem){ - return elem.offsetWidth === 0 || elem.offsetHeight === 0; -}; +return; -Sizzle.selectors.filters.visible = function(elem){ - return elem.offsetWidth > 0 || elem.offsetHeight > 0; -}; +window.Sizzle = Sizzle; -Sizzle.selectors.filters.animated = function(elem){ - return jQuery.grep(jQuery.timers, function(fn){ - return elem === fn.elem; - }).length; -}; +})(); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prevUntil|prevAll)/, + // Note: This RegExp should be improved, or likely pulled from Sizzle + rmultiselector = /,/, + slice = Array.prototype.slice; + +// Implement the identical functionality for filter and not +var winnow = function( elements, qualifier, keep ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) === keep; + }); -jQuery.multiFilter = function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); - return Sizzle.matches(expr, elems); -}; + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); -jQuery.dir = function( elem, dir ){ - var matched = [], cur = elem[dir]; - while ( cur && cur != document ) { - if ( cur.nodeType == 1 ) - matched.push( cur ); - cur = cur[dir]; + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } } - return matched; + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); }; -jQuery.nth = function(cur, result, dir, elem){ - result = result || 1; - var num = 0; +jQuery.fn.extend({ + find: function( selector ) { + var ret = this.pushStack( "", "find", selector ), length = 0; + + for ( var i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( var n = length; n < ret.length; n++ ) { + for ( var r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } - for ( ; cur; cur = cur[dir] ) - if ( cur.nodeType == 1 && ++num == result ) - break; + return ret; + }, - return cur; -}; + has: function( target ) { + var targets = jQuery( target ); + return this.filter(function() { + for ( var i = 0, l = targets.length; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, -jQuery.sibling = function(n, elem){ - var r = []; + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType == 1 && n != elem ) - r.push( n ); - } + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && jQuery.filter( selector, this ).length > 0; + }, - return r; -}; + closest: function( selectors, context ) { + if ( jQuery.isArray( selectors ) ) { + var ret = [], cur = this[0], match, matches = {}, selector; -return; + if ( cur && selectors.length ) { + for ( var i = 0, l = selectors.length; i < l; i++ ) { + selector = selectors[i]; -window.Sizzle = Sizzle; + if ( !matches[selector] ) { + matches[selector] = jQuery.expr.match.POS.test( selector ) ? + jQuery( selector, context || this.context ) : + selector; + } + } -})(); -/* - * A number of helper functions used for managing events. - * Many of the ideas behind this code originated from - * Dean Edwards' addEvent library. - */ -jQuery.event = { + while ( cur && cur.ownerDocument && cur !== context ) { + for ( selector in matches ) { + match = matches[selector]; - // Bind an event to an element - // Original by Dean Edwards - add: function(elem, types, handler, data) { - if ( elem.nodeType == 3 || elem.nodeType == 8 ) - return; + if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { + ret.push({ selector: selector, elem: cur }); + delete matches[selector]; + } + } + cur = cur.parentNode; + } + } - // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( elem.setInterval && elem != window ) - elem = window; + return ret; + } - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) - handler.guid = this.guid++; + var pos = jQuery.expr.match.POS.test( selectors ) ? + jQuery( selectors, context || this.context ) : null; - // if data is passed, bind to handler - if ( data !== undefined ) { - // Create temporary function pointer to original handler - var fn = handler; + return this.map(function( i, cur ) { + while ( cur && cur.ownerDocument && cur !== context ) { + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selectors) ) { + return cur; + } + cur = cur.parentNode; + } + return null; + }); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + if ( !elem || typeof elem === "string" ) { + return jQuery.inArray( this[0], + // If it receives a string, the selector is used + // If it receives nothing, the siblings are used + elem ? jQuery( elem ) : this.parent().children() ); + } + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, - // Create unique handler function, wrapped around original handler - handler = this.proxy( fn ); + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context || this.context ) : + jQuery.makeArray( selector ), + all = jQuery.merge( this.get(), set ); - // Store data in unique handler - handler.data = data; + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + andSelf: function() { + return this.add( this.prevObject ); + } +}); + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return jQuery.nth( elem, 2, "nextSibling" ); + }, + prev: function( elem ) { + return jQuery.nth( elem, 2, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( elem.parentNode.firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.makeArray( elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; } - // Init the element's event structure - var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}), - handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){ - // Handle the second event of a trigger and when - // an event is called after a page has unloaded - return typeof jQuery !== "undefined" && !jQuery.event.triggered ? - jQuery.event.handle.apply(arguments.callee.elem, arguments) : - undefined; - }); - // Add elem as a property of the handle function - // This is to prevent a memory leak with non-native - // event in IE. - handle.elem = elem; + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - jQuery.each(types.split(/\s+/), function(index, type) { - // Namespaced event handlers - var namespaces = type.split("."); - type = namespaces.shift(); - handler.type = namespaces.slice().sort().join("."); + ret = this.length > 1 ? jQuery.unique( ret ) : ret; - // Get the current list of functions bound to this event - var handlers = events[type]; - - if ( jQuery.event.specialAll[type] ) - jQuery.event.specialAll[type].setup.call(elem, data, namespaces); + if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } - // Init the event handler queue - if (!handlers) { - handlers = events[type] = {}; + return this.pushStack( ret, name, slice.call(arguments).join(",") ); + }; +}); - // Check for a special event handler - // Only use addEventListener/attachEvent if the special - // events handler returns false - if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) { - // Bind the global event handler to the element - if (elem.addEventListener) - elem.addEventListener(type, handle, false); - else if (elem.attachEvent) - elem.attachEvent("on" + type, handle); - } +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], cur = elem[dir]; + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); } + cur = cur[dir]; + } + return matched; + }, - // Add the function to the element's handler list - handlers[handler.guid] = handler; + nth: function( cur, result, dir, elem ) { + result = result || 1; + var num = 0; - // Keep track of which events have been used, for global triggering - jQuery.event.global[type] = true; - }); + for ( ; cur; cur = cur[dir] ) { + if ( cur.nodeType === 1 && ++num === result ) { + break; + } + } - // Nullify elem to prevent memory leaks in IE - elem = null; + return cur; }, - guid: 1, - global: {}, + sibling: function( n, elem ) { + var r = []; - // Detach an event or set of events from an element - remove: function(elem, types, handler) { - // don't do events on text and comment nodes - if ( elem.nodeType == 3 || elem.nodeType == 8 ) - return; + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } - var events = jQuery.data(elem, "events"), ret, index; + return r; + } +}); +var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g, + rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, + rtagName = /<([\w:]+)/, + rtbody = /<tbody/i, + rhtml = /<|&\w+;/, + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, // checked="checked" or checked (html5) + fcloseTag = function( all, front, tag ) { + return rselfClosing.test( tag ) ? + all : + front + "></" + tag + ">"; + }, + wrapMap = { + option: [ 1, "<select multiple='multiple'>", "</select>" ], + legend: [ 1, "<fieldset>", "</fieldset>" ], + thead: [ 1, "<table>", "</table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], + area: [ 1, "<map>", "</map>" ], + _default: [ 0, "", "" ] + }; - if ( events ) { - // Unbind all events for the element - if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") ) - for ( var type in events ) - this.remove( elem, type + (types || "") ); - else { - // types is actually an event object here - if ( types.type ) { - handler = types.handler; - types = types.type; - } +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; - // Handle multiple events seperated by a space - // jQuery(...).unbind("mouseover mouseout", fn); - jQuery.each(types.split(/\s+/), function(index, type){ - // Namespaced event handlers - var namespaces = type.split("."); - type = namespaces.shift(); - var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); +// IE can't serialize <link> and <script> tags normally +if ( !jQuery.support.htmlSerialize ) { + wrapMap._default = [ 1, "div<div>", "</div>" ]; +} - if ( events[type] ) { - // remove the given handler for the given type - if ( handler ) - delete events[type][handler.guid]; +jQuery.fn.extend({ + text: function( text ) { + if ( jQuery.isFunction(text) ) { + return this.each(function(i) { + var self = jQuery(this); + self.text( text.call(this, i, self.text()) ); + }); + } - // remove all handlers for the given type - else - for ( var handle in events[type] ) - // Handle the removal of namespaced events - if ( namespace.test(events[type][handle].type) ) - delete events[type][handle]; - - if ( jQuery.event.specialAll[type] ) - jQuery.event.specialAll[type].teardown.call(elem, namespaces); + if ( typeof text !== "object" && text !== undefined ) { + return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + } - // remove generic event handler if no more handlers exist - for ( ret in events[type] ) break; - if ( !ret ) { - if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) { - if (elem.removeEventListener) - elem.removeEventListener(type, jQuery.data(elem, "handle"), false); - else if (elem.detachEvent) - elem.detachEvent("on" + type, jQuery.data(elem, "handle")); - } - ret = null; - delete events[type]; - } - } - }); - } + return jQuery.getText( this ); + }, - // Remove the expando if it's no longer used - for ( ret in events ) break; - if ( !ret ) { - var handle = jQuery.data( elem, "handle" ); - if ( handle ) handle.elem = null; - jQuery.removeData( elem, "events" ); - jQuery.removeData( elem, "handle" ); + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append(this); } + + return this; }, - // bubbling is internal - trigger: function( event, data, elem, bubbling ) { - // Event object or event type - var type = event.type || event; + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } - if( !bubbling ){ - event = typeof event === "object" ? - // jQuery.Event object - event[expando] ? event : - // Object literal - jQuery.extend( jQuery.Event(type), event ) : - // Just the event type (string) - jQuery.Event(type); + return this.each(function() { + var self = jQuery( this ), contents = self.contents(); - if ( type.indexOf("!") >= 0 ) { - event.type = type = type.slice(0, -1); - event.exclusive = true; - } + if ( contents.length ) { + contents.wrapAll( html ); - // Handle a global trigger - if ( !elem ) { - // Don't bubble custom events when global (to avoid too much overhead) - event.stopPropagation(); - // Only trigger if we've ever bound an event for it - if ( this.global[type] ) - jQuery.each( jQuery.cache, function(){ - if ( this.events && this.events[type] ) - jQuery.event.trigger( event, data, this.handle.elem ); - }); + } else { + self.append( html ); } + }); + }, - // Handle triggering a single element - - // don't do events on text and comment nodes - if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 ) - return undefined; - - // Clean up in case it is reused - event.result = undefined; - event.target = elem; - - // Clone the incoming data, if any - data = jQuery.makeArray(data); - data.unshift( event ); - } + wrap: function( html ) { + return this.each(function() { + jQuery( this ).wrapAll( html ); + }); + }, - event.currentTarget = elem; + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, - // Trigger the event, it is assumed that "handle" is a function - var handle = jQuery.data(elem, "handle"); - if ( handle ) - handle.apply( elem, data ); + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 ) { + this.appendChild( elem ); + } + }); + }, - // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links) - if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false ) - event.result = false; + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, - // Trigger the native events (except for clicks on links) - if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) { - this.triggered = true; - try { - elem[ type ](); - // prevent IE from throwing an error for some hidden elements - } catch (e) {} + before: function() { + if ( this[0] && this[0].parentNode ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this ); + }); + } else if ( arguments.length ) { + var set = jQuery(arguments[0]); + set.push.apply( set, this.toArray() ); + return this.pushStack( set, "before", arguments ); } + }, - this.triggered = false; - - if ( !event.isPropagationStopped() ) { - var parent = elem.parentNode || elem.ownerDocument; - if ( parent ) - jQuery.event.trigger(event, data, parent, true); + after: function() { + if ( this[0] && this[0].parentNode ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + } else if ( arguments.length ) { + var set = this.pushStack( this, "after", arguments ); + set.push.apply( set, jQuery(arguments[0]).toArray() ); + return set; } }, - handle: function(event) { - // returned undefined or false - var all, handlers; + clone: function( events ) { + // Do the clone + var ret = this.map(function() { + if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { + // IE copies events bound via attachEvent when + // using cloneNode. Calling detachEvent on the + // clone will also remove the events from the orignal + // In order to get around this, we use innerHTML. + // Unfortunately, this means some modifications to + // attributes in IE that are actually only stored + // as properties will not be copied (such as the + // the name attribute on an input). + var html = this.outerHTML, ownerDocument = this.ownerDocument; + if ( !html ) { + var div = ownerDocument.createElement("div"); + div.appendChild( this.cloneNode(true) ); + html = div.innerHTML; + } - event = arguments[0] = jQuery.event.fix( event || window.event ); - event.currentTarget = this; - - // Namespaced event handlers - var namespaces = event.type.split("."); - event.type = namespaces.shift(); + return jQuery.clean([html.replace(rinlinejQuery, "") + .replace(rleadingWhitespace, "")], ownerDocument)[0]; + } else { + return this.cloneNode(true); + } + }); - // Cache this now, all = true means, any handler - all = !namespaces.length && !event.exclusive; - - var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); + // Copy the events from the original to the clone + if ( events === true ) { + cloneCopyEvent( this, ret ); + cloneCopyEvent( this.find("*"), ret.find("*") ); + } - handlers = ( jQuery.data(this, "events") || {} )[event.type]; + // Return the cloned set + return ret; + }, - for ( var j in handlers ) { - var handler = handlers[j]; + html: function( value ) { + if ( value === undefined ) { + return this[0] && this[0].nodeType === 1 ? + this[0].innerHTML.replace(rinlinejQuery, "") : + null; - // Filter the functions by class - if ( all || namespace.test(handler.type) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handler; - event.data = handler.data; + // See if we can take a shortcut and just use innerHTML + } else if ( typeof value === "string" && !/<script/i.test( value ) && + (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) && + !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { - var ret = handler.apply(this, arguments); + value = value.replace(rxhtmlTag, fcloseTag); - if( ret !== undefined ){ - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); + try { + for ( var i = 0, l = this.length; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + if ( this[i].nodeType === 1 ) { + jQuery.cleanData( this[i].getElementsByTagName("*") ); + this[i].innerHTML = value; } } - if( event.isImmediatePropagationStopped() ) - break; - + // If using innerHTML throws an exception, use the fallback method + } catch(e) { + this.empty().append( value ); } + + } else if ( jQuery.isFunction( value ) ) { + this.each(function(i){ + var self = jQuery(this), old = self.html(); + self.empty().append(function(){ + return value.call( this, i, old ); + }); + }); + + } else { + this.empty().append( value ); } + + return this; }, - 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(" "), + replaceWith: function( value ) { + if ( this[0] && this[0].parentNode ) { + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( !jQuery.isFunction( value ) ) { + value = jQuery( value ).detach(); - fix: function(event) { - if ( event[expando] ) - return event; + } else { + return this.each(function(i) { + var self = jQuery(this), old = self.html(); + self.replaceWith( value.call( this, i, old ) ); + }); + } - // store a copy of the original event object - // and "clone" to set read-only properties - var originalEvent = event; - event = jQuery.Event( originalEvent ); + return this.each(function() { + var next = this.nextSibling, parent = this.parentNode; - for ( var i = this.props.length, prop; i; ){ - prop = this.props[ --i ]; - event[ prop ] = originalEvent[ prop ]; + jQuery(this).remove(); + + if ( next ) { + jQuery(next).before( value ); + } else { + jQuery(parent).append( value ); + } + }); + } else { + return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ); } + }, - // Fix target property, if necessary - if ( !event.target ) - event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either + detach: function( selector ) { + return this.remove( selector, true ); + }, - // check if target is a textnode (safari) - if ( event.target.nodeType == 3 ) - event.target = event.target.parentNode; + domManip: function( args, table, callback ) { + var results, first, value = args[0], scripts = []; - // Add relatedTarget, if necessary - if ( !event.relatedTarget && event.fromElement ) - event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement; + // We can't cloneNode fragments that contain checked, in WebKit + if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { + return this.each(function() { + jQuery(this).domManip( args, table, callback, true ); + }); + } - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && event.clientX != null ) { - var doc = document.documentElement, body = document.body; - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0); + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + args[0] = value.call(this, i, table ? self.html() : undefined); + self.domManip( args, table, callback ); + }); } - // Add which for key events - if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) - event.which = event.charCode || event.keyCode; + if ( this[0] ) { + // If we're in a fragment, just use that instead of building a new one + if ( args[0] && args[0].parentNode && args[0].parentNode.nodeType === 11 ) { + results = { fragment: args[0].parentNode }; + } else { + results = buildFragment( args, this, scripts ); + } - // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) - if ( !event.metaKey && event.ctrlKey ) - event.metaKey = event.ctrlKey; + first = results.fragment.firstChild; - // Add which for click: 1 == left; 2 == middle; 3 == right - // Note: button is not normalized, so don't use it - if ( !event.which && event.button ) - event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); - return event; - }, + for ( var i = 0, l = this.length; i < l; i++ ) { + callback.call( + table ? + root(this[i], first) : + this[i], + results.cacheable || this.length > 1 || i > 0 ? + results.fragment.cloneNode(true) : + results.fragment + ); + } + } - proxy: function( fn, proxy ){ - proxy = proxy || function(){ return fn.apply(this, arguments); }; - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++; - // So proxy can be declared as an argument - return proxy; - }, + if ( scripts ) { + jQuery.each( scripts, evalScript ); + } + } - special: { - ready: { - // Make sure the ready event is setup - setup: bindReady, - teardown: function() {} + return this; + + function root( elem, cur ) { + return jQuery.nodeName(elem, "table") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; } - }, - - specialAll: { - live: { - setup: function( selector, namespaces ){ - jQuery.event.add( this, namespaces[0], liveHandler ); - }, - teardown: function( namespaces ){ - if ( namespaces.length ) { - var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); - - jQuery.each( (jQuery.data(this, "events").live || {}), function(){ - if ( name.test(this.type) ) - remove++; - }); - - if ( remove < 1 ) - jQuery.event.remove( this, namespaces[0], liveHandler ); + } +}); + +function cloneCopyEvent(orig, ret) { + var i = 0; + + ret.each(function() { + if ( this.nodeName !== (orig[i] && orig[i].nodeName) ) { + return; + } + + var oldData = jQuery.data( orig[i++] ), curData = jQuery.data( this, oldData ), events = oldData && oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( var type in events ) { + for ( var handler in events[ type ] ) { + jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); } } } + }); +} + +function buildFragment( args, nodes, scripts ) { + var fragment, cacheable, cacheresults, doc; + + // webkit does not clone 'checked' attribute of radio inputs on cloneNode, so don't cache if string has a checked + if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && args[0].indexOf("<option") < 0 && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) { + cacheable = true; + cacheresults = jQuery.fragments[ args[0] ]; + if ( cacheresults ) { + if ( cacheresults !== 1 ) { + fragment = cacheresults; + } + } } -}; -jQuery.Event = function( src ){ - // Allow instantiation without the 'new' keyword - if( !this.preventDefault ) - return new jQuery.Event(src); - - // Event object - if( src && src.type ){ - this.originalEvent = src; - this.type = src.type; - // Event type - }else - this.type = src; + if ( !fragment ) { + doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); + fragment = doc.createDocumentFragment(); + jQuery.clean( args, doc, fragment, scripts ); + } - // timeStamp is buggy for some events on Firefox(#3843) - // So we won't rely on the native value - this.timeStamp = now(); - - // Mark it as fixed - this[expando] = true; -}; + if ( cacheable ) { + jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1; + } -function returnFalse(){ - return false; -} -function returnTrue(){ - return true; + return { fragment: fragment, cacheable: cacheable }; } -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; +jQuery.fragments = {}; - var e = this.originalEvent; - if( !e ) - return; - // if preventDefault exists run it on the original event - if (e.preventDefault) - e.preventDefault(); - // otherwise set the returnValue property of the original event to false (IE) - e.returnValue = false; - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var ret = [], insert = jQuery( selector ); - var e = this.originalEvent; - if( !e ) - return; - // if stopPropagation exists run it on the original event - if (e.stopPropagation) - e.stopPropagation(); - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation:function(){ - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; -// Checks if an event happened on an element within another element -// Used in jQuery.event.special.mouseenter and mouseleave handlers -var withinElement = function(event) { - // Check if mouse(over|out) are still within the same parent element - var parent = event.relatedTarget; - // Traverse up the tree - while ( parent && parent != this ) - try { parent = parent.parentNode; } - catch(e) { parent = this; } - - if( parent != this ){ - // set the correct event type - event.type = event.data; - // handle event if we actually just moused on to a non sub-element - jQuery.event.handle.apply( this, arguments ); - } -}; - -jQuery.each({ - mouseover: 'mouseenter', - mouseout: 'mouseleave' -}, function( orig, fix ){ - jQuery.event.special[ fix ] = { - setup: function(){ - jQuery.event.add( this, orig, withinElement, fix ); - }, - teardown: function(){ - jQuery.event.remove( this, orig, withinElement ); + 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, insert.selector ); + }; }); -jQuery.fn.extend({ - bind: function( type, data, fn ) { - return type == "unload" ? this.one(type, data, fn) : this.each(function(){ - jQuery.event.add( this, type, fn || data, fn && data ); - }); - }, +jQuery.each({ + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + if ( !selector || jQuery.filter( selector, [ this ] ).length ) { + if ( !keepData && this.nodeType === 1 ) { + jQuery.cleanData( this.getElementsByTagName("*") ); + jQuery.cleanData( [ this ] ); + } - one: function( type, data, fn ) { - var one = jQuery.event.proxy( fn || data, function(event) { - jQuery(this).unbind(event, one); - return (fn || data).apply( this, arguments ); - }); - return this.each(function(){ - jQuery.event.add( this, type, one, fn && data); - }); + if ( this.parentNode ) { + this.parentNode.removeChild( this ); + } + } }, - unbind: function( type, fn ) { - return this.each(function(){ - jQuery.event.remove( this, type, fn ); - }); - }, + empty: function() { + // Remove element nodes and prevent memory leaks + if ( this.nodeType === 1 ) { + jQuery.cleanData( this.getElementsByTagName("*") ); + } - trigger: function( type, data ) { - return this.each(function(){ - jQuery.event.trigger( type, data, this ); - }); - }, + // Remove any remaining nodes + while ( this.firstChild ) { + this.removeChild( this.firstChild ); + } + } +}, function( name, fn ) { + jQuery.fn[ name ] = function() { + return this.each( fn, arguments ); + }; +}); - triggerHandler: function( type, data ) { - if( this[0] ){ - var event = jQuery.Event(type); - event.preventDefault(); - event.stopPropagation(); - jQuery.event.trigger( event, data, this[0] ); - return event.result; - } - }, +jQuery.extend({ + clean: function( elems, context, fragment, scripts ) { + context = context || document; - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, i = 1; + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) { + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + } - // link all the functions, so any of them can unbind this click handler - while( i < args.length ) - jQuery.event.proxy( fn, args[i++] ); + var ret = []; - return this.click( jQuery.event.proxy( fn, function(event) { - // Figure out which function to execute - this.lastToggle = ( this.lastToggle || 0 ) % i; + jQuery.each(elems, function( i, elem ) { + if ( typeof elem === "number" ) { + elem += ""; + } - // Make sure that clicks stop - event.preventDefault(); + if ( !elem ) { + return; + } - // and execute the function - return args[ this.lastToggle++ ].apply( this, arguments ) || false; - })); - }, + // Convert html string into DOM nodes + if ( typeof elem === "string" && !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); - hover: function(fnOver, fnOut) { - return this.mouseenter(fnOver).mouseleave(fnOut); - }, + } else if ( typeof elem === "string" ) { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, fcloseTag); - ready: function(fn) { - // Attach the listeners - bindReady(); + // Trim whitespace, otherwise indexOf won't work as expected + var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), + wrap = wrapMap[ tag ] || wrapMap._default, + depth = wrap[0], + div = context.createElement("div"); - // If the DOM is already ready - if ( jQuery.isReady ) - // Execute the function immediately - fn.call( document, jQuery ); + // Go to html and back, then peel off extra wrappers + div.innerHTML = wrap[1] + elem + wrap[2]; - // Otherwise, remember the function for later - else - // Add the function to the wait list - jQuery.readyList.push( fn ); + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } - return this; - }, - - live: function( type, fn ){ - var proxy = jQuery.event.proxy( fn ); - proxy.guid += this.selector + type; + // Remove IE's autoinserted <tbody> from table fragments + if ( !jQuery.support.tbody ) { + + // String was a <table>, *may* have spurious <tbody> + var hasBody = rtbody.test(elem), + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : - jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy ); + // String was a bare <thead> or <tfoot> + wrap[1] === "<table>" && !hasBody ? + div.childNodes : + []; - return this; + for ( var j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } + } + + } + + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } + + elem = jQuery.makeArray( div.childNodes ); + } + + if ( elem.nodeType ) { + ret.push( elem ); + } else { + ret = jQuery.merge( ret, elem ); + } + + }); + + if ( fragment ) { + for ( var i = 0; ret[i]; i++ ) { + if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { + scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); + } else { + if ( ret[i].nodeType === 1 ) { + ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); + } + fragment.appendChild( ret[i] ); + } + } + } + + return ret; }, - die: function( type, fn ){ - jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null ); - return this; + cleanData: function( elems ) { + for ( var i = 0, elem, id; (elem = elems[i]) != null; i++ ) { + jQuery.event.remove( elem ); + jQuery.removeData( elem ); + } } }); +// exclude the following css properties to add px +var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, + ralpha = /alpha\([^)]*\)/, + ropacity = /opacity=([^)]*)/, + rfloat = /float/i, + rdashAlpha = /-([a-z])/ig, + rupper = /([A-Z])/g, + rnumpx = /^-?\d+(?:px)?$/i, + rnum = /^-?\d/, + + cssShow = { position: "absolute", visibility: "hidden", display:"block" }, + cssWidth = [ "Left", "Right" ], + cssHeight = [ "Top", "Bottom" ], + + // cache check for defaultView.getComputedStyle + getComputedStyle = document.defaultView && document.defaultView.getComputedStyle, + // normalize float css property + styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat", + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; -function liveHandler( event ){ - var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"), - stop = true, - elems = []; - - jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){ - if ( check.test(fn.type) ) { - var elem = jQuery(event.target).closest(fn.data)[0]; - if ( elem ) - elems.push({ elem: elem, fn: fn }); +jQuery.fn.css = function( name, value ) { + return access( this, name, value, true, function( elem, name, value ) { + if ( value === undefined ) { + return jQuery.curCSS( elem, name ); + } + + if ( typeof value === "number" && !rexclude.test(name) ) { + value += "px"; } - }); - 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 ) - return (stop = false); + jQuery.style( elem, name, value ); }); +}; - return stop; -} +jQuery.extend({ + style: function( elem, name, value ) { + // don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { + return undefined; + } -function liveConvert(type, selector){ - return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join("."); -} + // ignore negative width and height values #1599 + if ( (name === "width" || name === "height") && parseFloat(value) < 0 ) { + value = undefined; + } -jQuery.extend({ - isReady: false, - readyList: [], - // Handle when the DOM is ready - ready: function() { - // Make sure that the DOM is not already loaded - if ( !jQuery.isReady ) { - // Remember that the DOM is ready - jQuery.isReady = true; + var style = elem.style || elem, set = value !== undefined; - // If there are functions bound, to execute - if ( jQuery.readyList ) { - // Execute all of them - jQuery.each( jQuery.readyList, function(){ - this.call( document, jQuery ); - }); + // IE uses filters for opacity + if ( !jQuery.support.opacity && name === "opacity" ) { + if ( set ) { + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; - // Reset the list of functions - jQuery.readyList = null; + // Set the alpha filter to set the opacity + var opacity = parseInt( value, 10 ) + "" === "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"; + var filter = style.filter || jQuery.curCSS( elem, "filter" ) || ""; + style.filter = ralpha.test(filter) ? filter.replace(ralpha, opacity) : opacity; } - // Trigger any bound ready events - jQuery(document).triggerHandler("ready"); + return style.filter && style.filter.indexOf("opacity=") >= 0 ? + (parseFloat( ropacity.exec(style.filter)[1] ) / 100) + "": + ""; } - } -}); -var readyBound = false; + // Make sure we're using the right name for getting the float value + if ( rfloat.test( name ) ) { + name = styleFloat; + } -function bindReady(){ - if ( readyBound ) return; - readyBound = true; + name = name.replace(rdashAlpha, fcamelCase); - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", function(){ - document.removeEventListener( "DOMContentLoaded", arguments.callee, false ); - jQuery.ready(); - }, false ); + if ( set ) { + style[ name ] = value; + } + + return style[ name ]; + }, + + css: function( elem, name, force, extra ) { + if ( name === "width" || name === "height" ) { + var val, props = cssShow, which = name === "width" ? cssWidth : cssHeight; + + function getWH() { + val = name === "width" ? elem.offsetWidth : elem.offsetHeight; + + if ( extra === "border" ) { + return; + } - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent("onreadystatechange", function(){ - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", arguments.callee ); - jQuery.ready(); + jQuery.each( which, function() { + 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; + } + }); } - }); - // If IE and not an iframe - // continually check to see if the document is ready - if ( document.documentElement.doScroll && window == window.top ) (function(){ - if ( jQuery.isReady ) return; + if ( elem.offsetWidth !== 0 ) { + getWH(); + } else { + jQuery.swap( elem, props, getWH ); + } - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch( error ) { - setTimeout( arguments.callee, 0 ); - return; + return Math.max(0, Math.round(val)); + } + + return jQuery.curCSS( elem, name, force ); + }, + + curCSS: function( elem, name, force ) { + var ret, style = elem.style, filter; + + // IE uses filters for opacity + if ( !jQuery.support.opacity && name === "opacity" && elem.currentStyle ) { + ret = ropacity.test(elem.currentStyle.filter || "") ? + (parseFloat(RegExp.$1) / 100) + "" : + ""; + + return ret === "" ? + "1" : + ret; + } + + // Make sure we're using the right name for getting the float value + if ( rfloat.test( name ) ) { + name = styleFloat; + } + + if ( !force && style && style[ name ] ) { + ret = style[ name ]; + + } else if ( getComputedStyle ) { + + // Only "float" is needed here + if ( rfloat.test( name ) ) { + name = "float"; } - // and execute any waiting functions - jQuery.ready(); - })(); - } + name = name.replace( rupper, "-$1" ).toLowerCase(); - // A fallback to window.onload, that will always work - jQuery.event.add( window, "load", jQuery.ready ); -} + var defaultView = elem.ownerDocument.defaultView; -jQuery.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(i, name){ + if ( !defaultView ) { + return null; + } - // Handle event binding - jQuery.fn[name] = function(fn){ - return fn ? this.bind(name, fn) : this.trigger(name); - }; -}); + var computedStyle = defaultView.getComputedStyle( elem, null ); -// Prevent memory leaks in IE -// And prevent errors on refresh with events like mouseover in other browsers -// Window isn't included so as not to unbind existing unload events -jQuery( window ).bind( 'unload', function(){ - for ( var id in jQuery.cache ) - // Skip the window - if ( id != 1 && jQuery.cache[ id ].handle ) - jQuery.event.remove( jQuery.cache[ id ].handle.elem ); -}); -(function(){ + if ( computedStyle ) { + ret = computedStyle.getPropertyValue( name ); + } - jQuery.support = {}; + // We should always get a number back from opacity + if ( name === "opacity" && ret === "" ) { + ret = "1"; + } - var root = document.documentElement, - script = document.createElement("script"), - div = document.createElement("div"), - id = "script" + (new Date).getTime(); + } else if ( elem.currentStyle ) { + var camelCase = name.replace(rdashAlpha, fcamelCase); - div.style.display = "none"; - div.innerHTML = ' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>'; + ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; - var all = div.getElementsByTagName("*"), - a = div.getElementsByTagName("a")[0]; + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - // Can't get basic test support - if ( !all || !all.length || !a ) { - return; - } + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { + // Remember the original values + var left = style.left, rsLeft = elem.runtimeStyle.left; - jQuery.support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType == 3, - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that you can get all elements in an <object> element - // IE 7 always returns no results - objectAll: !!div.getElementsByTagName("object")[0] - .getElementsByTagName("*").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText insted) - style: /red/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", - - // Make sure that element opacity exists - // (IE uses filter instead) - opacity: a.style.opacity === "0.5", - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = camelCase === "fontSize" ? "1em" : (ret || 0); + ret = style.pixelLeft + "px"; - // Will be defined later - scriptEval: false, - noCloneEvent: true, - boxModel: null - }; - - script.type = "text/javascript"; - try { - script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); - } catch(e){} + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + } - root.insertBefore( script, root.firstChild ); - - // Make sure that the execution of code works by injecting a script - // tag with appendChild/createTextNode - // (IE doesn't support this, fails, and uses .text instead) - if ( window[ id ] ) { - jQuery.support.scriptEval = true; - delete window[ id ]; - } + return ret; + }, - root.removeChild( script ); + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var old = {}; - if ( div.attachEvent && div.fireEvent ) { - div.attachEvent("onclick", function(){ - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - jQuery.support.noCloneEvent = false; - div.detachEvent("onclick", arguments.callee); - }); - div.cloneNode(true).fireEvent("onclick"); + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( var name in options ) { + elem.style[ name ] = old[ name ]; + } } +}); - // Figure out if the W3C box model works as expected - // document.body must exist before we can do this - jQuery(function(){ - var div = document.createElement("div"); - div.style.width = div.style.paddingLeft = "1px"; +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.hidden = function( elem ) { + var width = elem.offsetWidth, height = elem.offsetHeight, + skip = elem.nodeName.toLowerCase() === "tr"; - document.body.appendChild( div ); - jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; - document.body.removeChild( div ).style.display = 'none'; - }); -})(); + return width === 0 && height === 0 && !skip ? + true : + width > 0 && height > 0 && !skip ? + false : + jQuery.curCSS(elem, "display") === "none"; + }; -var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat"; + jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); + }; +} +var jsc = now(), + rscript = /<script(.|\s)*?\/script>/gi, + rselectTextarea = /select|textarea/i, + rinput = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, + jsre = /=\?(&|$)/, + rquery = /\?/, + rts = /(\?|&)_=.*?(&|$)/, + rurl = /^(\w+:)?\/\/([^\/?#]+)/, + r20 = /%20/g; -jQuery.props = { - "for": "htmlFor", - "class": "className", - "float": styleFloat, - cssFloat: styleFloat, - styleFloat: styleFloat, - readonly: "readOnly", - maxlength: "maxLength", - cellspacing: "cellSpacing", - rowspan: "rowSpan", - tabindex: "tabIndex" -}; jQuery.fn.extend({ // Keep a copy of the old load _load: jQuery.fn.load, load: function( url, params, callback ) { - if ( typeof url !== "string" ) + if ( typeof url !== "string" ) { return this._load( url ); + // Don't do a request if no elements are being requested + } else if ( !this.length ) { + return this; + } + var off = url.indexOf(" "); if ( off >= 0 ) { var selector = url.slice(off, url.length); @@ -3239,7 +4639,7 @@ jQuery.fn.extend({ var type = "GET"; // If the second parameter was provided - if ( params ) + if ( params ) { // If it's a function if ( jQuery.isFunction( params ) ) { // We assume that it's the callback @@ -3247,10 +4647,11 @@ jQuery.fn.extend({ params = null; // Otherwise, build a param string - } else if( typeof params === "object" ) { - params = jQuery.param( params ); + } else if ( typeof params === "object" ) { + params = jQuery.param( params, jQuery.ajaxSettings.traditional ); type = "POST"; } + } var self = this; @@ -3260,27 +4661,30 @@ jQuery.fn.extend({ type: type, dataType: "html", data: params, - complete: function(res, status){ + complete: function( res, status ) { // If successful, inject the HTML into all the matched elements - if ( status == "success" || status == "notmodified" ) + if ( status === "success" || status === "notmodified" ) { // See if a selector was specified self.html( selector ? // Create a dummy div to hold the results - jQuery("<div/>") + jQuery("<div />") // inject the contents of the document in, removing the scripts // to avoid any 'Permission Denied' errors in IE - .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")) + .append(res.responseText.replace(rscript, "")) // Locate the specified elements .find(selector) : // If not, just inject the full result res.responseText ); + } - if( callback ) + if ( callback ) { self.each( callback, [res.responseText, status, res] ); + } } }); + return this; }, @@ -3288,40 +4692,41 @@ jQuery.fn.extend({ return jQuery.param(this.serializeArray()); }, serializeArray: function() { - return this.map(function(){ + return this.map(function() { return this.elements ? jQuery.makeArray(this.elements) : this; }) - .filter(function(){ + .filter(function() { return this.name && !this.disabled && - (this.checked || /select|textarea/i.test(this.nodeName) || - /text|hidden|password|search/i.test(this.type)); + (this.checked || rselectTextarea.test(this.nodeName) || + rinput.test(this.type)); }) - .map(function(i, elem){ + .map(function( i, elem ) { var val = jQuery(this).val(); - return val == null ? null : + + return val == null ? + null : jQuery.isArray(val) ? - jQuery.map( val, function(val, i){ - return {name: elem.name, value: val}; + jQuery.map( val, function( val, i ) { + return { name: elem.name, value: val }; }) : - {name: elem.name, value: val}; + { name: elem.name, value: val }; }).get(); } }); // Attach a bunch of functions for handling common AJAX events -jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){ - jQuery.fn[o] = function(f){ +jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function( i, o ) { + jQuery.fn[o] = function( f ) { return this.bind(o, f); }; }); -var jsc = now(); - jQuery.extend({ - + get: function( url, data, callback, type ) { - // shift arguments if data argument was ommited + // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { + type = type || callback; callback = data; data = null; } @@ -3344,7 +4749,9 @@ jQuery.extend({ }, post: function( url, data, callback, type ) { + // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { + type = type || callback; callback = data; data = {}; } @@ -3374,13 +4781,21 @@ jQuery.extend({ data: null, username: null, password: null, + traditional: false, */ // Create the request object; Microsoft failed to properly - // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available + // implement the XMLHttpRequest in IE7 (can't request local files), + // so we use the ActiveXObject when it is available // This function can be overriden by calling jQuery.ajaxSetup - xhr:function(){ - return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); - }, + xhr: window.XMLHttpRequest && (window.location.protocol !== "file:" || !window.ActiveXObject) ? + function() { + return new window.XMLHttpRequest(); + } : + function() { + try { + return new window.ActiveXObject("Microsoft.XMLHTTP"); + } catch(e) {} + }, accepts: { xml: "application/xml, text/xml", html: "text/html", @@ -3393,36 +4808,41 @@ jQuery.extend({ // Last-Modified header cache for next request lastModified: {}, + etag: {}, - ajax: function( s ) { - // Extend the settings, but re-extend 's' so that it can be - // checked again later (in the test suite, specifically) - s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s)); - - var jsonp, jsre = /=\?(&|$)/g, status, data, + ajax: function( origSettings ) { + var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings); + + var jsonp, status, data, + callbackContext = origSettings && origSettings.context || s, type = s.type.toUpperCase(); // convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) - s.data = jQuery.param(s.data); + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } // Handle JSONP Parameter Callbacks - if ( s.dataType == "jsonp" ) { - if ( type == "GET" ) { - if ( !s.url.match(jsre) ) - s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?"; - } else if ( !s.data || !s.data.match(jsre) ) + if ( s.dataType === "jsonp" ) { + if ( type === "GET" ) { + if ( !jsre.test( s.url ) ) { + s.url += (rquery.test( s.url ) ? "&" : "?") + (s.jsonp || "callback") + "=?"; + } + } else if ( !s.data || !jsre.test(s.data) ) { s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; + } s.dataType = "json"; } // Build temporary JSONP function - if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) { - jsonp = "jsonp" + jsc++; + if ( s.dataType === "json" && (s.data && jsre.test(s.data) || jsre.test(s.url)) ) { + jsonp = s.jsonpCallback || ("jsonp" + jsc++); // Replace the =? sequence both in the query string and the data - if ( s.data ) + if ( s.data ) { s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); + } + s.url = s.url.replace(jsre, "=" + jsonp + "$1"); // We need to make sure @@ -3430,75 +4850,85 @@ jQuery.extend({ s.dataType = "script"; // Handle JSONP-style loading - window[ jsonp ] = function(tmp){ + window[ jsonp ] = window[ jsonp ] || function( tmp ) { data = tmp; success(); complete(); // Garbage collect window[ jsonp ] = undefined; - try{ delete window[ jsonp ]; } catch(e){} - if ( head ) + + try { + delete window[ jsonp ]; + } catch(e) {} + + if ( head ) { head.removeChild( script ); + } }; } - if ( s.dataType == "script" && s.cache == null ) + if ( s.dataType === "script" && s.cache === null ) { s.cache = false; + } - if ( s.cache === false && type == "GET" ) { + if ( s.cache === false && type === "GET" ) { var ts = now(); + // try replacing _= if it is there - var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2"); + var ret = s.url.replace(rts, "$1_=" + ts + "$2"); + // if nothing was replaced, add timestamp to the end - s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : ""); + s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : ""); } // If data is available, append data to url for get requests - if ( s.data && type == "GET" ) { - s.url += (s.url.match(/\?/) ? "&" : "?") + s.data; - - // IE likes to send both get and post data, prevent this - s.data = null; + if ( s.data && type === "GET" ) { + s.url += (rquery.test(s.url) ? "&" : "?") + s.data; } // Watch for a new set of requests - if ( s.global && ! jQuery.active++ ) + if ( s.global && ! jQuery.active++ ) { jQuery.event.trigger( "ajaxStart" ); + } // Matches an absolute URL, and saves the domain - var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url ); + var parts = rurl.exec( s.url ), + remote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host); // If we're requesting a remote document // and trying to load JSON or Script with a GET - if ( s.dataType == "script" && type == "GET" && parts - && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){ - - var head = document.getElementsByTagName("head")[0]; + if ( s.dataType === "script" && type === "GET" && remote ) { + var head = document.getElementsByTagName("head")[0] || document.documentElement; var script = document.createElement("script"); script.src = s.url; - if (s.scriptCharset) + if ( s.scriptCharset ) { script.charset = s.scriptCharset; + } // Handle Script loading if ( !jsonp ) { var done = false; // Attach handlers for all browsers - script.onload = script.onreadystatechange = function(){ + script.onload = script.onreadystatechange = function() { if ( !done && (!this.readyState || - this.readyState == "loaded" || this.readyState == "complete") ) { + this.readyState === "loaded" || this.readyState === "complete") ) { done = true; success(); complete(); // Handle memory leak in IE script.onload = script.onreadystatechange = null; - head.removeChild( script ); + if ( head && script.parentNode ) { + head.removeChild( script ); + } } }; } - head.appendChild(script); + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709 and #4378). + head.insertBefore( script, head.firstChild ); // We handle everything using the script element injection return undefined; @@ -3509,158 +4939,197 @@ jQuery.extend({ // Create the request object var xhr = s.xhr(); + if ( !xhr ) { + return; + } + // Open the socket // Passing null username, generates a login popup on Opera (#2865) - if( s.username ) + if ( s.username ) { xhr.open(type, s.url, s.async, s.username, s.password); - else + } else { xhr.open(type, s.url, s.async); + } // Need an extra try/catch for cross domain requests in Firefox 3 try { // Set the correct header, if data is being sent - if ( s.data ) + if ( s.data || origSettings && origSettings.contentType ) { xhr.setRequestHeader("Content-Type", s.contentType); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[s.url] ) { + xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url]); + } - // Set the If-Modified-Since header, if ifModified mode. - if ( s.ifModified ) - xhr.setRequestHeader("If-Modified-Since", - jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" ); + if ( jQuery.etag[s.url] ) { + xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]); + } + } // Set header so the called script knows that it's an XMLHttpRequest - xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + // Only send the header if it's not a remote XHR + if ( !remote ) { + xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + } // Set the Accepts header for the server, depending on the dataType xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ? s.accepts[ s.dataType ] + ", */*" : s.accepts._default ); - } catch(e){} + } catch(e) {} // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && s.beforeSend(xhr, s) === false ) { + if ( s.beforeSend && s.beforeSend.call(callbackContext, xhr, s) === false ) { // Handle the global AJAX counter - if ( s.global && ! --jQuery.active ) + if ( s.global && ! --jQuery.active ) { jQuery.event.trigger( "ajaxStop" ); + } + // close opended socket xhr.abort(); return false; } - if ( s.global ) - jQuery.event.trigger("ajaxSend", [xhr, s]); + if ( s.global ) { + trigger("ajaxSend", [xhr, s]); + } // Wait for a response to come back - var onreadystatechange = function(isTimeout){ - // The request was aborted, clear the interval and decrement jQuery.active - if (xhr.readyState == 0) { - if (ival) { - // clear poll interval - clearInterval(ival); - ival = null; - // Handle the global AJAX counter - if ( s.global && ! --jQuery.active ) - jQuery.event.trigger( "ajaxStop" ); + var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) { + // The request was aborted + if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) { + // Opera doesn't call onreadystatechange before this point + // so we simulate the call + if ( !requestDone ) { + complete(); + } + + requestDone = true; + if ( xhr ) { + xhr.onreadystatechange = jQuery.noop; } + // The transfer is complete and the data is available, or the request timed out - } else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) { + } else if ( !requestDone && xhr && (xhr.readyState === 4 || isTimeout === "timeout") ) { requestDone = true; + xhr.onreadystatechange = jQuery.noop; - // clear poll interval - if (ival) { - clearInterval(ival); - ival = null; - } + status = isTimeout === "timeout" ? + "timeout" : + !jQuery.httpSuccess( xhr ) ? + "error" : + s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? + "notmodified" : + "success"; - status = isTimeout == "timeout" ? "timeout" : - !jQuery.httpSuccess( xhr ) ? "error" : - s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" : - "success"; + var errMsg; - if ( status == "success" ) { + if ( status === "success" ) { // Watch for, and catch, XML document parse errors try { // process the data (runs the xml through httpData regardless of callback) data = jQuery.httpData( xhr, s.dataType, s ); - } catch(e) { + } catch(err) { status = "parsererror"; + errMsg = err; } } // Make sure that the request was successful or notmodified - if ( status == "success" ) { - // Cache Last-Modified header, if ifModified mode. - var modRes; - try { - modRes = xhr.getResponseHeader("Last-Modified"); - } catch(e) {} // swallow exception thrown by FF if header is not available - - if ( s.ifModified && modRes ) - jQuery.lastModified[s.url] = modRes; - + if ( status === "success" || status === "notmodified" ) { // JSONP handles its own success callback - if ( !jsonp ) + if ( !jsonp ) { success(); - } else - jQuery.handleError(s, xhr, status); + } + } else { + jQuery.handleError(s, xhr, status, errMsg); + } // Fire the complete handlers complete(); - if ( isTimeout ) + if ( isTimeout === "timeout" ) { xhr.abort(); + } // Stop memory leaks - if ( s.async ) + if ( s.async ) { xhr = null; + } } }; - if ( s.async ) { - // don't attach the handler to the request, just poll it instead - var ival = setInterval(onreadystatechange, 13); + // Override the abort handler, if we can (IE doesn't allow it, but that's OK) + // Opera doesn't fire onreadystatechange at all on abort + try { + var oldAbort = xhr.abort; + xhr.abort = function() { + if ( xhr ) { + oldAbort.call( xhr ); + } - // Timeout checker - if ( s.timeout > 0 ) - setTimeout(function(){ - // Check to see if the request is still happening - if ( xhr && !requestDone ) - onreadystatechange( "timeout" ); - }, s.timeout); + onreadystatechange( "abort" ); + }; + } catch(e) { } + + // Timeout checker + if ( s.async && s.timeout > 0 ) { + setTimeout(function() { + // Check to see if the request is still happening + if ( xhr && !requestDone ) { + onreadystatechange( "timeout" ); + } + }, s.timeout); } // Send the data try { - xhr.send(s.data); + xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null ); } catch(e) { jQuery.handleError(s, xhr, null, e); + // Fire the complete handlers + complete(); } // firefox 1.5 doesn't fire statechange for sync requests - if ( !s.async ) + if ( !s.async ) { onreadystatechange(); + } - function success(){ + function success() { // If a local callback was specified, fire it and pass it the data - if ( s.success ) - s.success( data, status ); + if ( s.success ) { + s.success.call( callbackContext, data, status, xhr ); + } // Fire the global callback - if ( s.global ) - jQuery.event.trigger( "ajaxSuccess", [xhr, s] ); + if ( s.global ) { + trigger( "ajaxSuccess", [xhr, s] ); + } } - function complete(){ + function complete() { // Process result - if ( s.complete ) - s.complete(xhr, status); + if ( s.complete ) { + s.complete.call( callbackContext, xhr, status); + } // The request was completed - if ( s.global ) - jQuery.event.trigger( "ajaxComplete", [xhr, s] ); + if ( s.global ) { + trigger( "ajaxComplete", [xhr, s] ); + } // Handle the global AJAX counter - if ( s.global && ! --jQuery.active ) + if ( s.global && ! --jQuery.active ) { jQuery.event.trigger( "ajaxStop" ); + } + } + + function trigger(type, args) { + (s.context ? jQuery(s.context) : jQuery.event).trigger(type, args); } // return XMLHttpRequest to allow aborting the request etc. @@ -3669,11 +5138,14 @@ jQuery.extend({ handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it - if ( s.error ) s.error( xhr, status, e ); + if ( s.error ) { + s.error.call( s.context || s, xhr, status, e ); + } // Fire the global callback - if ( s.global ) - jQuery.event.trigger( "ajaxError", [xhr, s, e] ); + if ( s.global ) { + (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] ); + } }, // Counter for holding the number of active queries @@ -3683,86 +5155,131 @@ jQuery.extend({ httpSuccess: function( xhr ) { try { // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 - return !xhr.status && location.protocol == "file:" || - ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223; - } catch(e){} + return !xhr.status && location.protocol === "file:" || + // Opera returns 0 when status is 304 + ( xhr.status >= 200 && xhr.status < 300 ) || + xhr.status === 304 || xhr.status === 1223 || xhr.status === 0; + } catch(e) {} + return false; }, // Determines if an XMLHttpRequest returns NotModified httpNotModified: function( xhr, url ) { - try { - var xhrRes = xhr.getResponseHeader("Last-Modified"); + var lastModified = xhr.getResponseHeader("Last-Modified"), + etag = xhr.getResponseHeader("Etag"); - // Firefox always returns 200. check Last-Modified date - return xhr.status == 304 || xhrRes == jQuery.lastModified[url]; - } catch(e){} - return false; + if ( lastModified ) { + jQuery.lastModified[url] = lastModified; + } + + if ( etag ) { + jQuery.etag[url] = etag; + } + + // Opera returns 0 when status is 304 + return xhr.status === 304 || xhr.status === 0; }, httpData: function( xhr, type, s ) { - var ct = xhr.getResponseHeader("content-type"), - xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0, + var ct = xhr.getResponseHeader("content-type") || "", + xml = type === "xml" || !type && ct.indexOf("xml") >= 0, data = xml ? xhr.responseXML : xhr.responseText; - if ( xml && data.documentElement.tagName == "parsererror" ) - throw "parsererror"; - + if ( xml && data.documentElement.nodeName === "parsererror" ) { + jQuery.error( "parsererror" ); + } + // Allow a pre-filtering function to sanitize the response - // s != null is checked to keep backwards compatibility - if( s && s.dataFilter ) + // s is checked to keep backwards compatibility + if ( s && s.dataFilter ) { data = s.dataFilter( data, type ); + } // The filter can actually parse the response - if( typeof data === "string" ){ + if ( typeof data === "string" ) { + // Get the JavaScript object, if JSON is used. + if ( type === "json" || !type && ct.indexOf("json") >= 0 ) { + data = jQuery.parseJSON( data ); // If the type is "script", eval it in global context - if ( type == "script" ) + } else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) { jQuery.globalEval( data ); - - // Get the JavaScript object, if JSON is used. - if ( type == "json" ) - data = window["eval"]("(" + data + ")"); + } } - + return data; }, // Serialize an array of form elements or a set of // key/values into a query string - param: function( a ) { - var s = [ ]; - - function add( key, value ){ - s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value); - }; - - // If an array was passed in, assume that it is an array - // of form elements - if ( jQuery.isArray(a) || a.jquery ) + param: function( a, traditional ) { + var s = []; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray(a) || a.jquery ) { // Serialize the form elements - jQuery.each( a, function(){ + jQuery.each( a, function() { add( this.name, this.value ); }); - - // Otherwise, assume that it's an object of key/value pairs - else - // Serialize the key/values - for ( var j in a ) - // If the value is an array then the key names need to be repeated - if ( jQuery.isArray(a[j]) ) - jQuery.each( a[j], function(){ - add( j, this ); - }); - else - add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] ); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( var prefix in a ) { + buildParams( prefix, a[prefix] ); + } + } // Return the resulting serialization - return s.join("&").replace(/%20/g, "+"); - } + return s.join("&").replace(r20, "+"); + + function buildParams( prefix, obj ) { + if ( jQuery.isArray(obj) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional ) { + // Treat each array item as a scalar. + add( prefix, v ); + } else { + // If array item is non-scalar (array or object), encode its + // numeric index to resolve deserialization ambiguity issues. + // Note that rack (as of 1.0.0) can't currently deserialize + // nested arrays properly, and attempting to do so may cause + // a server error. Possible fixes are to modify rack's + // deserialization algorithm or to provide an option or flag + // to force array serialization to be shallow. + buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v ); + } + }); + + } else if ( !traditional && obj != null && typeof obj === "object" ) { + // Serialize object item. + jQuery.each( obj, function( k, v ) { + buildParams( prefix + "[" + k + "]", v ); + }); + + } else { + // Serialize scalar item. + add( prefix, obj ); + } + } + function add( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction(value) ? value() : value; + s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value); + } + } }); var elemdisplay = {}, + rfxtypes = /toggle|show|hide/, + rfxnum = /^([+-]=)?([\d+-.]+)(.*)$/, timerId, fxAttrs = [ // height animations @@ -3773,69 +5290,67 @@ var elemdisplay = {}, [ "opacity" ] ]; -function genFx( type, num ){ - var obj = {}; - jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){ - obj[ this ] = type; - }); - return obj; -} - jQuery.fn.extend({ - show: function(speed,callback){ - if ( speed ) { + show: function( speed, callback ) { + if ( speed || speed === 0) { return this.animate( genFx("show", 3), speed, callback); + } else { - for ( var i = 0, l = this.length; i < l; i++ ){ + for ( var i = 0, l = this.length; i < l; i++ ) { var old = jQuery.data(this[i], "olddisplay"); - + this[i].style.display = old || ""; - + if ( jQuery.css(this[i], "display") === "none" ) { - var tagName = this[i].tagName, display; - - if ( elemdisplay[ tagName ] ) { - display = elemdisplay[ tagName ]; + var nodeName = this[i].nodeName, display; + + if ( elemdisplay[ nodeName ] ) { + display = elemdisplay[ nodeName ]; + } else { - var elem = jQuery("<" + tagName + " />").appendTo("body"); - + var elem = jQuery("<" + nodeName + " />").appendTo("body"); + display = elem.css("display"); - if ( display === "none" ) + + if ( display === "none" ) { display = "block"; - + } + elem.remove(); - - elemdisplay[ tagName ] = display; + + elemdisplay[ nodeName ] = 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") || ""; + for ( var j = 0, k = this.length; j < k; j++ ) { + this[j].style.display = jQuery.data(this[j], "olddisplay") || ""; } - + return this; } }, - hide: function(speed,callback){ - if ( speed ) { + hide: function( speed, callback ) { + if ( speed || speed === 0 ) { return this.animate( genFx("hide", 3), speed, callback); + } else { - for ( var i = 0, l = this.length; i < l; i++ ){ + for ( var i = 0, l = this.length; i < l; i++ ) { var old = jQuery.data(this[i], "olddisplay"); - if ( !old && old !== "none" ) + 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"; + for ( var j = 0, k = this.length; j < k; j++ ) { + this[j].style.display = "none"; } return this; @@ -3845,77 +5360,107 @@ jQuery.fn.extend({ // Save the old toggle function _toggle: jQuery.fn.toggle, - toggle: function( fn, fn2 ){ + toggle: function( fn, fn2 ) { var bool = typeof fn === "boolean"; - return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ? - this._toggle.apply( this, arguments ) : - fn == null || bool ? - this.each(function(){ - var state = bool ? fn : jQuery(this).is(":hidden"); - jQuery(this)[ state ? "show" : "hide" ](); - }) : - this.animate(genFx("toggle", 3), fn, fn2); + if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { + this._toggle.apply( this, arguments ); + + } else if ( fn == null || bool ) { + this.each(function() { + var state = bool ? fn : jQuery(this).is(":hidden"); + jQuery(this)[ state ? "show" : "hide" ](); + }); + + } else { + this.animate(genFx("toggle", 3), fn, fn2); + } + + return this; }, - fadeTo: function(speed,to,callback){ - return this.animate({opacity: to}, speed, callback); + fadeTo: function( speed, to, callback ) { + return this.filter(":hidden").css("opacity", 0).show().end() + .animate({opacity: to}, speed, callback); }, animate: function( prop, speed, easing, callback ) { var optall = jQuery.speed(speed, easing, callback); - return this[ optall.queue === false ? "each" : "queue" ](function(){ - + if ( jQuery.isEmptyObject( prop ) ) { + return this.each( optall.complete ); + } + + return this[ optall.queue === false ? "each" : "queue" ](function() { var opt = jQuery.extend({}, optall), p, - hidden = this.nodeType == 1 && jQuery(this).is(":hidden"), + hidden = this.nodeType === 1 && jQuery(this).is(":hidden"), self = this; - + for ( p in prop ) { - if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden ) + var name = p.replace(rdashAlpha, fcamelCase); + + if ( p !== name ) { + prop[ name ] = prop[ p ]; + delete prop[ p ]; + p = name; + } + + if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) { return opt.complete.call(this); + } - if ( ( p == "height" || p == "width" ) && this.style ) { + if ( ( p === "height" || p === "width" ) && this.style ) { // Store display property opt.display = jQuery.css(this, "display"); // Make sure that nothing sneaks out opt.overflow = this.style.overflow; } + + if ( jQuery.isArray( prop[p] ) ) { + // Create (if needed) and add to specialEasing + (opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1]; + prop[p] = prop[p][0]; + } } - if ( opt.overflow != null ) + if ( opt.overflow != null ) { this.style.overflow = "hidden"; + } opt.curAnim = jQuery.extend({}, prop); - jQuery.each( prop, function(name, val){ + jQuery.each( prop, function( name, val ) { var e = new jQuery.fx( self, opt, name ); - if ( /toggle|show|hide/.test(val) ) - e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop ); - else { - var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/), + if ( rfxtypes.test(val) ) { + e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop ); + + } else { + var parts = rfxnum.exec(val), start = e.cur(true) || 0; if ( parts ) { - var end = parseFloat(parts[2]), + var end = parseFloat( parts[2] ), unit = parts[3] || "px"; // We need to compute starting value - if ( unit != "px" ) { + if ( unit !== "px" ) { self.style[ name ] = (end || 1) + unit; start = ((end || 1) / e.cur(true)) * start; self.style[ name ] = start + unit; } // If a +=/-= token was provided, we're doing a relative animation - if ( parts[1] ) - end = ((parts[1] == "-=" ? -1 : 1) * end) + start; + if ( parts[1] ) { + end = ((parts[1] === "-=" ? -1 : 1) * end) + start; + } e.custom( start, end, unit ); - } else + + } else { e.custom( start, val, "" ); + } } }); @@ -3924,26 +5469,31 @@ jQuery.fn.extend({ }); }, - stop: function(clearQueue, gotoEnd){ + stop: function( clearQueue, gotoEnd ) { var timers = jQuery.timers; - if (clearQueue) + if ( clearQueue ) { this.queue([]); + } - this.each(function(){ + this.each(function() { // go in reverse order so anything added to the queue during the loop is ignored - for ( var i = timers.length - 1; i >= 0; i-- ) - if ( timers[i].elem == this ) { - if (gotoEnd) + for ( var i = timers.length - 1; i >= 0; i-- ) { + if ( timers[i].elem === this ) { + if (gotoEnd) { // force the next step to be the last timers[i](true); + } + timers.splice(i, 1); } + } }); // start the next in the queue if the last step wasn't forced - if (!gotoEnd) + if ( !gotoEnd ) { this.dequeue(); + } return this; } @@ -3957,16 +5507,15 @@ jQuery.each({ slideToggle: genFx("toggle", 1), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" } -}, function( name, props ){ - jQuery.fn[ name ] = function( speed, callback ){ +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, callback ) { return this.animate( props, speed, callback ); }; }); jQuery.extend({ - - speed: function(speed, easing, fn) { - var opt = typeof speed === "object" ? speed : { + speed: function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? speed : { complete: fn || !fn && easing || jQuery.isFunction( speed ) && speed, duration: speed, @@ -3978,11 +5527,13 @@ jQuery.extend({ // Queueing opt.old = opt.complete; - opt.complete = function(){ - if ( opt.queue !== false ) + opt.complete = function() { + if ( opt.queue !== false ) { jQuery(this).dequeue(); - if ( jQuery.isFunction( opt.old ) ) + } + if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); + } }; return opt; @@ -3999,42 +5550,45 @@ jQuery.extend({ timers: [], - fx: function( elem, options, prop ){ + fx: function( elem, options, prop ) { this.options = options; this.elem = elem; this.prop = prop; - if ( !options.orig ) + if ( !options.orig ) { options.orig = {}; + } } }); jQuery.fx.prototype = { - // Simple function for setting a style value - update: function(){ - if ( this.options.step ) + update: function() { + if ( this.options.step ) { this.options.step.call( this.elem, this.now, this ); + } (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); // Set display property to block for height/width animations - if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style ) + if ( ( this.prop === "height" || this.prop === "width" ) && this.elem.style ) { this.elem.style.display = "block"; + } }, // Get the current size - cur: function(force){ - if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) + cur: function( force ) { + if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) { return this.elem[ this.prop ]; + } var r = parseFloat(jQuery.css(this.elem, this.prop, force)); return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0; }, // Start an animation from one number to another - custom: function(from, to, unit){ + custom: function( from, to, unit ) { this.startTime = now(); this.start = from; this.end = to; @@ -4043,47 +5597,36 @@ jQuery.fx.prototype = { this.pos = this.state = 0; var self = this; - function t(gotoEnd){ + function t( gotoEnd ) { return self.step(gotoEnd); } t.elem = this.elem; if ( t() && jQuery.timers.push(t) && !timerId ) { - timerId = setInterval(function(){ - var timers = jQuery.timers; - - for ( var i = 0; i < timers.length; i++ ) - if ( !timers[i]() ) - timers.splice(i--, 1); - - if ( !timers.length ) { - clearInterval( timerId ); - timerId = undefined; - } - }, 13); + timerId = setInterval(jQuery.fx.tick, 13); } }, // Simple 'show' function - show: function(){ + show: function() { // Remember where we started, so that we can go back to it later - this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop ); + this.options.orig[this.prop] = jQuery.style( this.elem, this.prop ); this.options.show = true; // Begin the animation // Make sure that we start at a small width/height to avoid any // flash of content - this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur()); + this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()); // Start by showing the element - jQuery(this.elem).show(); + jQuery( this.elem ).show(); }, // Simple 'hide' function - hide: function(){ + hide: function() { // Remember where we started, so that we can go back to it later - this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop ); + this.options.orig[this.prop] = jQuery.style( this.elem, this.prop ); this.options.hide = true; // Begin the animation @@ -4091,8 +5634,8 @@ jQuery.fx.prototype = { }, // Each step of an animation - step: function(gotoEnd){ - var t = now(); + step: function( gotoEnd ) { + var t = now(), done = true; if ( gotoEnd || t >= this.options.duration + this.startTime ) { this.now = this.end; @@ -4101,10 +5644,11 @@ jQuery.fx.prototype = { this.options.curAnim[ this.prop ] = true; - var done = true; - for ( var i in this.options.curAnim ) - if ( this.options.curAnim[i] !== true ) + for ( var i in this.options.curAnim ) { + if ( this.options.curAnim[i] !== true ) { done = false; + } + } if ( done ) { if ( this.options.display != null ) { @@ -4112,31 +5656,40 @@ jQuery.fx.prototype = { this.elem.style.overflow = this.options.overflow; // Reset the display - this.elem.style.display = this.options.display; - if ( jQuery.css(this.elem, "display") == "none" ) + var old = jQuery.data(this.elem, "olddisplay"); + this.elem.style.display = old ? old : this.options.display; + + if ( jQuery.css(this.elem, "display") === "none" ) { this.elem.style.display = "block"; + } } // Hide the element if the "hide" operation was done - if ( this.options.hide ) + if ( this.options.hide ) { jQuery(this.elem).hide(); + } // Reset the properties, if the item has been hidden or shown - if ( this.options.hide || this.options.show ) - for ( var p in this.options.curAnim ) - jQuery.attr(this.elem.style, p, this.options.orig[p]); - + if ( this.options.hide || this.options.show ) { + for ( var p in this.options.curAnim ) { + jQuery.style(this.elem, p, this.options.orig[p]); + } + } + // Execute the complete function this.options.complete.call( this.elem ); } return false; + } else { var n = t - this.startTime; this.state = n / this.options.duration; // Perform the easing function, defaults to swing - this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration); + var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop]; + var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear"); + this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration); this.now = this.start + ((this.end - this.start) * this.pos); // Perform the next step of the animation @@ -4145,232 +5698,382 @@ jQuery.fx.prototype = { return true; } - }; jQuery.extend( jQuery.fx, { - speeds:{ + tick: function() { + var timers = jQuery.timers; + + for ( var i = 0; i < timers.length; i++ ) { + if ( !timers[i]() ) { + timers.splice(i--, 1); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + }, + + stop: function() { + clearInterval( timerId ); + timerId = null; + }, + + speeds: { slow: 600, fast: 200, // Default speed _default: 400 }, - step: { - opacity: function(fx){ - jQuery.attr(fx.elem.style, "opacity", fx.now); + step: { + opacity: function( fx ) { + jQuery.style(fx.elem, "opacity", fx.now); }, - _default: function(fx){ - if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) - fx.elem.style[ fx.prop ] = fx.now + fx.unit; - else + _default: function( fx ) { + if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) { + fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit; + } else { fx.elem[ fx.prop ] = fx.now; + } } } }); -if ( document.documentElement["getBoundingClientRect"] ) - jQuery.fn.offset = function() { - if ( !this[0] ) return { top: 0, left: 0 }; - if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] ); - var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement, + +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; + }; +} + +function genFx( type, num ) { + var obj = {}; + + jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() { + obj[ this ] = type; + }); + + return obj; +} +if ( "getBoundingClientRect" in document.documentElement ) { + jQuery.fn.offset = function( options ) { + var elem = this[0]; + + if ( options ) { + return this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + if ( !elem || !elem.ownerDocument ) { + return null; + } + + if ( elem === elem.ownerDocument.body ) { + return jQuery.offset.bodyOffset( elem ); + } + + var box = elem.getBoundingClientRect(), doc = elem.ownerDocument, body = doc.body, docElem = doc.documentElement, clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft; + top = box.top + (self.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop, + left = box.left + (self.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft; + return { top: top, left: left }; }; -else - jQuery.fn.offset = function() { - if ( !this[0] ) return { top: 0, left: 0 }; - if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] ); - jQuery.offset.initialized || jQuery.offset.initialize(); - var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem, +} else { + jQuery.fn.offset = function( options ) { + var elem = this[0]; + + if ( options ) { + return this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + if ( !elem || !elem.ownerDocument ) { + return null; + } + + if ( elem === elem.ownerDocument.body ) { + return jQuery.offset.bodyOffset( elem ); + } + + jQuery.offset.initialize(); + + var offsetParent = elem.offsetParent, prevOffsetParent = elem, doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement, body = doc.body, defaultView = doc.defaultView, - prevComputedStyle = defaultView.getComputedStyle(elem, null), + prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle, top = elem.offsetTop, left = elem.offsetLeft; while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) { - computedStyle = defaultView.getComputedStyle(elem, null); - top -= elem.scrollTop, left -= elem.scrollLeft; + if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) { + break; + } + + computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle; + top -= elem.scrollTop; + left -= elem.scrollLeft; + if ( elem === offsetParent ) { - top += elem.offsetTop, left += elem.offsetLeft; - if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) ) - top += parseInt( computedStyle.borderTopWidth, 10) || 0, - left += parseInt( computedStyle.borderLeftWidth, 10) || 0; + top += elem.offsetTop; + left += elem.offsetLeft; + + if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.nodeName)) ) { + top += parseFloat( computedStyle.borderTopWidth ) || 0; + left += parseFloat( computedStyle.borderLeftWidth ) || 0; + } + prevOffsetParent = offsetParent, offsetParent = elem.offsetParent; } - if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) - top += parseInt( computedStyle.borderTopWidth, 10) || 0, - left += parseInt( computedStyle.borderLeftWidth, 10) || 0; + + if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) { + top += parseFloat( computedStyle.borderTopWidth ) || 0; + left += parseFloat( computedStyle.borderLeftWidth ) || 0; + } + prevComputedStyle = computedStyle; } - if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) - top += body.offsetTop, + if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) { + top += body.offsetTop; left += body.offsetLeft; + } - if ( prevComputedStyle.position === "fixed" ) - top += Math.max(docElem.scrollTop, body.scrollTop), - left += Math.max(docElem.scrollLeft, body.scrollLeft); + if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) { + top += Math.max( docElem.scrollTop, body.scrollTop ); + left += Math.max( docElem.scrollLeft, body.scrollLeft ); + } return { top: top, left: left }; }; +} jQuery.offset = { initialize: function() { - if ( this.initialized ) return; - var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop, - html = '<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>'; + var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.curCSS(body, "marginTop", true) ) || 0, + html = "<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>"; - rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' }; - for ( prop in rules ) container.style[prop] = rules[prop]; + jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } ); container.innerHTML = html; - body.insertBefore(container, body.firstChild); - innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild; + body.insertBefore( container, body.firstChild ); + innerDiv = container.firstChild; + checkDiv = innerDiv.firstChild; + td = innerDiv.nextSibling.firstChild.firstChild; this.doesNotAddBorder = (checkDiv.offsetTop !== 5); this.doesAddBorderForTableAndCells = (td.offsetTop === 5); - innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative'; + checkDiv.style.position = "fixed", checkDiv.style.top = "20px"; + // safari subtracts parent border width here which is 5px + this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15); + checkDiv.style.position = checkDiv.style.top = ""; + + innerDiv.style.overflow = "hidden", innerDiv.style.position = "relative"; this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5); - body.style.marginTop = '1px'; - this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0); - body.style.marginTop = bodyMarginTop; + this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop); - body.removeChild(container); - this.initialized = true; + body.removeChild( container ); + body = container = innerDiv = checkDiv = table = td = null; + jQuery.offset.initialize = jQuery.noop; }, - bodyOffset: function(body) { - jQuery.offset.initialized || jQuery.offset.initialize(); + bodyOffset: function( body ) { var top = body.offsetTop, left = body.offsetLeft; - if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) - top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) || 0, - left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0; + + jQuery.offset.initialize(); + + if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) { + top += parseFloat( jQuery.curCSS(body, "marginTop", true) ) || 0; + left += parseFloat( jQuery.curCSS(body, "marginLeft", true) ) || 0; + } + return { top: top, left: left }; + }, + + setOffset: function( elem, options, i ) { + // set position first, in-case top/left are set even on static elem + if ( /static/.test( jQuery.curCSS( elem, "position" ) ) ) { + elem.style.position = "relative"; + } + var curElem = jQuery( elem ), + curOffset = curElem.offset(), + curTop = parseInt( jQuery.curCSS( elem, "top", true ), 10 ) || 0, + curLeft = parseInt( jQuery.curCSS( elem, "left", true ), 10 ) || 0; + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + var props = { + top: (options.top - curOffset.top) + curTop, + left: (options.left - curOffset.left) + curLeft + }; + + if ( "using" in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } } }; jQuery.fn.extend({ position: function() { - var left = 0, top = 0, results; - - if ( this[0] ) { - // Get *real* offsetParent - var offsetParent = this.offsetParent(), - - // Get correct offsets - offset = this.offset(), - parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset(); - - // Subtract element margins - // note: when an element has margin: auto the offsetLeft and marginLeft - // are the same in Safari causing offset.left to incorrectly be 0 - offset.top -= num( this, 'marginTop' ); - offset.left -= num( this, 'marginLeft' ); - - // Add offsetParent borders - parentOffset.top += num( offsetParent, 'borderTopWidth' ); - parentOffset.left += num( offsetParent, 'borderLeftWidth' ); - - // Subtract the two offsets - results = { - top: offset.top - parentOffset.top, - left: offset.left - parentOffset.left - }; + if ( !this[0] ) { + return null; } - return results; + var elem = this[0], + + // Get *real* offsetParent + offsetParent = this.offsetParent(), + + // Get correct offsets + offset = this.offset(), + parentOffset = /^body|html$/i.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( jQuery.curCSS(elem, "marginTop", true) ) || 0; + offset.left -= parseFloat( jQuery.curCSS(elem, "marginLeft", true) ) || 0; + + // Add offsetParent borders + parentOffset.top += parseFloat( jQuery.curCSS(offsetParent[0], "borderTopWidth", true) ) || 0; + parentOffset.left += parseFloat( jQuery.curCSS(offsetParent[0], "borderLeftWidth", true) ) || 0; + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; }, offsetParent: function() { - var offsetParent = this[0].offsetParent || document.body; - while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') ) - offsetParent = offsetParent.offsetParent; - return jQuery(offsetParent); + return this.map(function() { + var offsetParent = this.offsetParent || document.body; + while ( offsetParent && (!/^body|html$/i.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { + offsetParent = offsetParent.offsetParent; + } + return offsetParent; + }); } }); // Create scrollLeft and scrollTop methods -jQuery.each( ['Left', 'Top'], function(i, name) { - var method = 'scroll' + name; - - jQuery.fn[ method ] = function(val) { - if (!this[0]) return null; +jQuery.each( ["Left", "Top"], function( i, name ) { + var method = "scroll" + name; - return val !== undefined ? + jQuery.fn[ method ] = function(val) { + var elem = this[0], win; + + if ( !elem ) { + return null; + } + if ( val !== undefined ) { // Set the scroll offset - this.each(function() { - this == window || this == document ? - window.scrollTo( - !i ? val : jQuery(window).scrollLeft(), - i ? val : jQuery(window).scrollTop() - ) : + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery(win).scrollLeft(), + i ? val : jQuery(win).scrollTop() + ); + + } else { this[ method ] = val; - }) : + } + }); + } else { + win = getWindow( elem ); // Return the scroll offset - this[0] == window || this[0] == document ? - self[ i ? 'pageYOffset' : 'pageXOffset' ] || - jQuery.boxModel && document.documentElement[ method ] || - document.body[ method ] : - this[0][ method ]; + return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] : + jQuery.support.boxModel && win.document.documentElement[ method ] || + win.document.body[ method ] : + elem[ method ]; + } }; }); + +function getWindow( elem ) { + return ("scrollTo" in elem && elem.document) ? + elem : + elem.nodeType === 9 ? + elem.defaultView || elem.parentWindow : + false; +} // Create innerHeight, innerWidth, outerHeight and outerWidth methods -jQuery.each([ "Height", "Width" ], 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 - lower = name.toLowerCase(); + var type = name.toLowerCase(); // innerHeight and innerWidth - jQuery.fn["inner" + name] = function(){ + jQuery.fn["inner" + name] = function() { return this[0] ? - jQuery.css( this[0], lower, false, "padding" ) : + jQuery.css( this[0], type, false, "padding" ) : null; }; // outerHeight and outerWidth - jQuery.fn["outer" + name] = function(margin) { + jQuery.fn["outer" + name] = function( margin ) { return this[0] ? - jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) : + jQuery.css( this[0], type, false, margin ? "margin" : "border" ) : null; }; - - var type = name.toLowerCase(); jQuery.fn[ type ] = function( size ) { // Get window width or height - return this[0] == window ? + var elem = this[0]; + if ( !elem ) { + return size == null ? null : this; + } + + if ( jQuery.isFunction( size ) ) { + return this.each(function( i ) { + var self = jQuery( this ); + self[ type ]( size.call( this, i, self[ type ]() ) ); + }); + } + + return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window? // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode - document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || - document.body[ "client" + name ] : + elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] || + elem.document.body[ "client" + name ] : // Get document width or height - this[0] == document ? + (elem.nodeType === 9) ? // is it a document // Either scroll[Width/Height] or offset[Width/Height], whichever is greater Math.max( - document.documentElement["client" + name], - document.body["scroll" + name], document.documentElement["scroll" + name], - document.body["offset" + name], document.documentElement["offset" + name] + elem.documentElement["client" + name], + elem.body["scroll" + name], elem.documentElement["scroll" + name], + elem.body["offset" + name], elem.documentElement["offset" + name] ) : // Get or set width or height on the element size === undefined ? // Get width or height on the element - (this.length ? jQuery.css( this[0], type ) : null) : + jQuery.css( elem, type ) : // Set the width or height on the element (default to pixels if value is unitless) this.css( type, typeof size === "string" ? size : size + "px" ); }; }); -})(); +// Expose jQuery to the global object +window.jQuery = window.$ = jQuery; + +})(window); + diff --git a/js/jquery.min.js b/js/jquery.min.js index b1ae21d8b..950198f47 100644 --- a/js/jquery.min.js +++ b/js/jquery.min.js @@ -1,19 +1,153 @@ -/* - * jQuery JavaScript Library v1.3.2 +/*! + * jQuery JavaScript Library v1.4.1 * http://jquery.com/ * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license * - * 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.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/ + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Jan 25 19:43:33 2010 -0500 */ -(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 +(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j? +e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f, +a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType=== +11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment(); +c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent, +va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]], +[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a, +this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this, +a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice}; +c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$= +Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload", +c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false; +return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]|| +r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d= +a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!== +v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b}, +uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded", +L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support= +{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null}; +b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild); +c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props= +{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true, +{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this, +a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d); +return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]|| +a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m= +c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca), +d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o= +a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value|| +{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val()); +if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d); +f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText= +""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j= +function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a, +d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+ +s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a, +"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d, +b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b, +d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b= +0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true}; +c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b= +a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!== +"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this, +"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"|| +d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a= +a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this, +f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a, +b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+ +a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector, +live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache=== +k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g|| +typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u= +l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&& +y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q, +h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da= +l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.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\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length, +p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p= +h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}}, +TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&& +"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true); +return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"=== +g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2=== +0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+ +q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>= +0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="? +k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g}; +try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g=== +h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END, +l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id"); +return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href", +2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length=== +0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[], +l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a, +function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d= +0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)> +-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(), +a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")}, +nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e): +e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!== +b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"], +col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)}, +wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length? +d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments, +false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&& +!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)|| +["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this, +b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j=== +"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n, +Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&& +this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j=== +"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild); +j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i, +Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})}; +c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a, +b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&& +a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left= +a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb= +J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b= +c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&& +(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a, +b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}: +function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")} +function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)|| +N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&& +c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&& +A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept", +e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)? +"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e, +w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]= +f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n, +function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/, +W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove(); +ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&& +c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"), +o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a); +else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle", +1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a, +b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]== +null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop=== +"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow= +this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos= +c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!= +null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(), +f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f= +b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)|| +0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"), +d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<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>";a.insertBefore(b,a.firstChild); +d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop}, +bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left- +e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a= +this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}}); +c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]|| +e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window); + diff --git a/js/util.js b/js/util.js index b864867fd..c6a9682de 100644 --- a/js/util.js +++ b/js/util.js @@ -143,87 +143,85 @@ var SN = { // StatusNet SN.U.Counter(form); }, - FormXHR: function(f) { - if (jQuery.data(f[0], "ElementData") === undefined) { - jQuery.data(f[0], "ElementData", {Bind:'submit'}); - f.bind('submit', function(e) { - form_id = $(this)[0].id; - $.ajax({ - type: 'POST', - dataType: 'xml', - url: $(this)[0].action, - data: $(this).serialize() + '&ajax=1', - beforeSend: function(xhr) { - $('#'+form_id).addClass(SN.C.S.Processing); - $('#'+form_id+' .submit').addClass(SN.C.S.Disabled); - $('#'+form_id+' .submit').attr(SN.C.S.Disabled, SN.C.S.Disabled); - }, - error: function (xhr, textStatus, errorThrown) { - alert(errorThrown || textStatus); - }, - success: function(data, textStatus) { - if (typeof($('form', data)[0]) != 'undefined') { - form_new = document._importNode($('form', data)[0], true); - $('#'+form_id).replaceWith(form_new); - $('#'+form_new.id).each(function() { SN.U.FormXHR($(this)); }); - } - else { - $('#'+form_id).replaceWith(document._importNode($('p', data)[0], true)); - } - } - }); - return false; - }); - } + FormXHR: function(form) { + $.ajax({ + type: 'POST', + dataType: 'xml', + url: form.attr('action'), + data: form.serialize() + '&ajax=1', + beforeSend: function(xhr) { + form + .addClass(SN.C.S.Processing) + .find('.submit') + .addClass(SN.C.S.Disabled) + .attr(SN.C.S.Disabled, SN.C.S.Disabled); + }, + error: function (xhr, textStatus, errorThrown) { + alert(errorThrown || textStatus); + }, + success: function(data, textStatus) { + if (typeof($('form', data)[0]) != 'undefined') { + form_new = document._importNode($('form', data)[0], true); + form.replaceWith(form_new); + } + else { + form.replaceWith(document._importNode($('p', data)[0], true)); + } + } + }); }, FormNoticeXHR: function(form) { - var NDG, NLat, NLon, NLNS, NLID; + SN.C.I.NoticeDataGeo = {}; form_id = form.attr('id'); form.append('<input type="hidden" name="ajax" value="1"/>'); form.ajaxForm({ dataType: 'xml', timeout: '60000', beforeSend: function(formData) { - if ($('#'+form_id+' #'+SN.C.S.NoticeDataText)[0].value.length === 0) { + if (form.find('#'+SN.C.S.NoticeDataText)[0].value.length === 0) { form.addClass(SN.C.S.Warning); return false; } - form.addClass(SN.C.S.Processing); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).attr(SN.C.S.Disabled, SN.C.S.Disabled); - - NLat = $('#'+SN.C.S.NoticeLat).val(); - NLon = $('#'+SN.C.S.NoticeLon).val(); - NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); - NLID = $('#'+SN.C.S.NoticeLocationId).val(); - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); + form + .addClass(SN.C.S.Processing) + .find('#'+SN.C.S.NoticeActionSubmit) + .addClass(SN.C.S.Disabled) + .attr(SN.C.S.Disabled, SN.C.S.Disabled); + + SN.C.I.NoticeDataGeo.NLat = $('#'+SN.C.S.NoticeLat).val(); + SN.C.I.NoticeDataGeo.NLon = $('#'+SN.C.S.NoticeLon).val(); + SN.C.I.NoticeDataGeo.NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); + SN.C.I.NoticeDataGeo.NLID = $('#'+SN.C.S.NoticeLocationId).val(); + SN.C.I.NoticeDataGeo.NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); cookieValue = $.cookie(SN.C.S.NoticeDataGeoCookie); if (cookieValue !== null && cookieValue != 'disabled') { cookieValue = JSON.parse(cookieValue); - NLat = $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat).val(); - NLon = $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon).val(); + SN.C.I.NoticeDataGeo.NLat = $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat).val(); + SN.C.I.NoticeDataGeo.NLon = $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon).val(); if ($('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS)) { - NLNS = $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS).val(); - NLID = $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID).val(); + SN.C.I.NoticeDataGeo.NLNS = $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS).val(); + SN.C.I.NoticeDataGeo.NLID = $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID).val(); } } if (cookieValue == 'disabled') { - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', false).attr('checked'); + SN.C.I.NoticeDataGeo.NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', false).attr('checked'); } else { - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', true).attr('checked'); + SN.C.I.NoticeDataGeo.NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', true).attr('checked'); } return true; }, error: function (xhr, textStatus, errorThrown) { - form.removeClass(SN.C.S.Processing); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); - $('#'+form_id+' .form_response').remove(); + form + .removeClass(SN.C.S.Processing) + .find('#'+SN.C.S.NoticeActionSubmit) + .removeClass(SN.C.S.Disabled) + .removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); + form.find('.form_response').remove(); if (textStatus == 'timeout') { form.append('<p class="form_response error">Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.</p>'); } @@ -233,9 +231,10 @@ var SN = { // StatusNet } else { if (parseInt(xhr.status) === 0 || jQuery.inArray(parseInt(xhr.status), SN.C.I.HTTP20x30x) >= 0) { - $('#'+form_id).resetForm(); - $('#'+form_id+' #'+SN.C.S.NoticeDataAttachSelected).remove(); - SN.U.FormNoticeEnhancements($('#'+form_id)); + form + .resetForm() + .find('#'+SN.C.S.NoticeDataAttachSelected).remove(); + SN.U.FormNoticeEnhancements(form); } else { form.append('<p class="form_response error">(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.</p>'); @@ -244,7 +243,7 @@ var SN = { // StatusNet } }, success: function(data, textStatus) { - $('#'+form_id+' .form_response').remove(); + form.find('.form_response').remove(); var result; if ($('#'+SN.C.S.Error, data).length > 0) { result = document._importNode($('p', data)[0], true); @@ -277,11 +276,11 @@ var SN = { // StatusNet else { notices.prepend(notice); } - $('#'+notice.id).css({display:'none'}); - $('#'+notice.id).fadeIn(2500); + $('#'+notice.id) + .css({display:'none'}) + .fadeIn(2500); SN.U.NoticeWithAttachment($('#'+notice.id)); SN.U.NoticeReplyTo($('#'+notice.id)); - SN.U.FormXHR($('#'+notice.id+' .form_favor')); } } else { @@ -290,24 +289,26 @@ var SN = { // StatusNet form.append('<p class="form_response success">'+result_title+'</p>'); } } - $('#'+form_id).resetForm(); - $('#'+form_id+' #'+SN.C.S.NoticeInReplyTo).val(''); - $('#'+form_id+' #'+SN.C.S.NoticeDataAttachSelected).remove(); - SN.U.FormNoticeEnhancements($('#'+form_id)); + form.resetForm(); + form.find('#'+SN.C.S.NoticeInReplyTo).val(''); + form.find('#'+SN.C.S.NoticeDataAttachSelected).remove(); + SN.U.FormNoticeEnhancements(form); } }, complete: function(xhr, textStatus) { - form.removeClass(SN.C.S.Processing); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled); - $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); - - $('#'+SN.C.S.NoticeLat).val(NLat); - $('#'+SN.C.S.NoticeLon).val(NLon); + form + .removeClass(SN.C.S.Processing) + .find('#'+SN.C.S.NoticeActionSubmit) + .removeAttr(SN.C.S.Disabled) + .removeClass(SN.C.S.Disabled); + + $('#'+SN.C.S.NoticeLat).val(SN.C.I.NoticeDataGeo.NLat); + $('#'+SN.C.S.NoticeLon).val(SN.C.I.NoticeDataGeo.NLon); if ($('#'+SN.C.S.NoticeLocationNs)) { - $('#'+SN.C.S.NoticeLocationNs).val(NLNS); - $('#'+SN.C.S.NoticeLocationId).val(NLID); + $('#'+SN.C.S.NoticeLocationNs).val(SN.C.I.NoticeDataGeo.NLNS); + $('#'+SN.C.S.NoticeLocationId).val(SN.C.I.NoticeDataGeo.NLID); } - $('#'+SN.C.S.NoticeDataGeo).attr('checked', NDG); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', SN.C.I.NoticeDataGeo.NDG); } }); }, @@ -350,14 +351,15 @@ var SN = { // StatusNet }, NoticeFavor: function() { - $('.form_favor').each(function() { SN.U.FormXHR($(this)); }); - $('.form_disfavor').each(function() { SN.U.FormXHR($(this)); }); + $('.form_favor').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_disfavor').live('click', function() { SN.U.FormXHR($(this)); return false; }); }, NoticeRepeat: function() { - $('.form_repeat').each(function() { + $('.form_repeat').live('click', function() { SN.U.FormXHR($(this)); SN.U.NoticeRepeatConfirmation($(this)); + return false; }); }, @@ -639,7 +641,7 @@ var SN = { // StatusNet NDM.bind('click', function() { var NDMF = $('.entity_send-a-message form'); if (NDMF.length === 0) { - $(this).addClass('processing'); + $(this).addClass(SN.C.S.Processing); $.get(NDM.attr('href'), null, function(data) { $('.entity_send-a-message').append(document._importNode($('form', data)[0], true)); NDMF = $('.entity_send-a-message .form_notice'); @@ -650,7 +652,7 @@ var SN = { // StatusNet NDMF.hide(); return false; }); - NDM.removeClass('processing'); + NDM.removeClass(SN.C.S.Processing); }); } else { @@ -695,11 +697,11 @@ var SN = { // StatusNet EntityActions: function() { if ($('body.user_in').length > 0) { - $('.form_user_subscribe').each(function() { SN.U.FormXHR($(this)); }); - $('.form_user_unsubscribe').each(function() { SN.U.FormXHR($(this)); }); - $('.form_group_join').each(function() { SN.U.FormXHR($(this)); }); - $('.form_group_leave').each(function() { SN.U.FormXHR($(this)); }); - $('.form_user_nudge').each(function() { SN.U.FormXHR($(this)); }); + $('.form_user_subscribe').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_user_unsubscribe').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_group_join').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_group_leave').live('click', function() { SN.U.FormXHR($(this)); return false; }); + $('.form_user_nudge').live('click', function() { SN.U.FormXHR($(this)); return false; }); SN.U.NewDirectMessage(); } diff --git a/lib/api.php b/lib/api.php index 825262b4c..7d94eaee4 100644 --- a/lib/api.php +++ b/lib/api.php @@ -299,7 +299,7 @@ class ApiAction extends Action } } - if ($include_user) { + if ($include_user && $profile) { # Don't get notice (recursive!) $twitter_user = $this->twitterUserArray($profile, false); $twitter_status['user'] = $twitter_user; @@ -1250,10 +1250,27 @@ class ApiAction extends Action case 'api': break; default: + + $name = null; + $url = null; + $ns = Notice_source::staticGet($source); + if ($ns) { - $source_name = '<a href="' . $ns->url . '">' . $ns->name . '</a>'; + $name = $ns->name; + $url = $ns->url; + } else { + $app = Oauth_application::staticGet('name', $source); + if ($app) { + $name = $app->name; + $url = $app->source_url; + } + } + + if (!empty($name) && !empty($url)) { + $source_name = '<a href="' . $url . '">' . $name . '</a>'; } + break; } return $source_name; diff --git a/lib/apiauth.php b/lib/apiauth.php index 262f4b966..25e2196cf 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -55,6 +55,7 @@ class ApiAuthAction extends ApiAction { var $auth_user_nickname = null; var $auth_user_password = null; + var $oauth_source = null; /** * Take arguments for running, looks for an OAuth request, @@ -73,28 +74,23 @@ class ApiAuthAction extends ApiAction // NOTE: $this->auth_user has to get set in prepare(), not handle(), // because subclasses do stuff with it in their prepares. - if ($this->requiresAuth()) { + $oauthReq = $this->getOAuthRequest(); - $oauthReq = $this->getOAuthRequest(); - - if (!$oauthReq) { + if (!$oauthReq) { + if ($this->requiresAuth()) { $this->checkBasicAuthUser(true); } else { - $this->checkOAuthRequest($oauthReq); + // Check to see if a basic auth user is there even + // if one's not required + $this->checkBasicAuthUser(false); } } else { - - // Check to see if a basic auth user is there even - // if one's not required - $this->checkBasicAuthUser(false); + $this->checkOAuthRequest($oauthReq); } // Reject API calls with the wrong access level if ($this->isReadOnly($args) == false) { - - common_debug(get_class($this) . ' is not read-only!'); - if ($this->access != self::READ_WRITE) { $msg = _('API resource requires read-write access, ' . 'but you only have read access.'); @@ -111,7 +107,6 @@ class ApiAuthAction extends ApiAction * This is to avoid doign any unnecessary DB lookups. * * @return mixed the OAuthRequest or false - * */ function getOAuthRequest() @@ -140,7 +135,6 @@ class ApiAuthAction extends ApiAction * @param OAuthRequest $request the OAuth Request * * @return nothing - * */ function checkOAuthRequest($request) diff --git a/lib/apioauthstore.php b/lib/apioauthstore.php index 32110d057..1bb11cbca 100644 --- a/lib/apioauthstore.php +++ b/lib/apioauthstore.php @@ -159,5 +159,32 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore } } + /** + * Revoke specified access token + * + * Revokes the token specified by $token_key. + * Throws exceptions in case of error. + * + * @param string $token_key the token to be revoked + * @param int $type type of token (0 = req, 1 = access) + * + * @access public + * + * @return void + */ + + public function revoke_token($token_key, $type = 0) { + $rt = new Token(); + $rt->tok = $token_key; + $rt->type = $type; + $rt->state = 0; + if (!$rt->find(true)) { + throw new Exception('Tried to revoke unknown token'); + } + if (!$rt->delete()) { + throw new Exception('Failed to delete revoked token'); + } + } + } diff --git a/lib/common.php b/lib/common.php index ada48b339..b95cd1175 100644 --- a/lib/common.php +++ b/lib/common.php @@ -22,7 +22,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } //exit with 200 response, if this is checking fancy from the installer if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; } -define('STATUSNET_VERSION', '0.9.0beta3'); +define('STATUSNET_VERSION', '0.9.0beta5'); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility define('STATUSNET_CODENAME', 'Stand'); @@ -115,6 +115,10 @@ function __autoload($cls) require_once 'Validate.php'; require_once 'markdown.php'; +// XXX: other formats here + +define('NICKNAME_FMT', VALIDATE_NUM.VALIDATE_ALPHA_LOWER); + require_once INSTALLDIR.'/lib/util.php'; require_once INSTALLDIR.'/lib/action.php'; require_once INSTALLDIR.'/lib/mail.php'; @@ -136,6 +140,3 @@ try { exit; } -// XXX: other formats here - -define('NICKNAME_FMT', VALIDATE_NUM.VALIDATE_ALPHA_LOWER); diff --git a/lib/default.php b/lib/default.php index 64fb7a786..437f350dd 100644 --- a/lib/default.php +++ b/lib/default.php @@ -84,9 +84,12 @@ $default = 'control_channel' => '/topic/statusnet-control', // broadcasts to all queue daemons 'stomp_username' => null, 'stomp_password' => null, + 'stomp_persistent' => true, // keep items across queue server restart, if persistence is enabled + 'stomp_manual_failover' => true, // if multiple servers are listed, treat them as separate (enqueue on one randomly, listen on all) 'monitor' => null, // URL to monitor ping endpoint (work in progress) 'softlimit' => '90%', // total size or % of memory_limit at which to restart queue threads gracefully 'debug_memory' => false, // true to spit memory usage to log + 'inboxes' => true, // true to do inbox distribution & output queueing from in background via 'distrib' queue ), 'license' => array('type' => 'cc', # can be 'cc', 'allrightsreserved', 'private' @@ -269,4 +272,8 @@ $default = 'singleuser' => array('enabled' => false, 'nickname' => null), + 'robotstxt' => + array('crawldelay' => 0, + 'disallow' => array('main', 'settings', 'admin', 'search', 'message') + ), ); diff --git a/lib/distribqueuehandler.php b/lib/distribqueuehandler.php index f458d238d..4477468d0 100644 --- a/lib/distribqueuehandler.php +++ b/lib/distribqueuehandler.php @@ -62,23 +62,60 @@ class DistribQueueHandler { // XXX: do we need to change this for remote users? - $notice->saveTags(); + try { + $notice->saveTags(); + } catch (Exception $e) { + $this->logit($notice, $e); + } - $groups = $notice->saveGroups(); + try { + $groups = $notice->saveGroups(); + } catch (Exception $e) { + $this->logit($notice, $e); + } - $recipients = $notice->saveReplies(); + try { + $recipients = $notice->saveReplies(); + } catch (Exception $e) { + $this->logit($notice, $e); + } - $notice->addToInboxes($groups, $recipients); + try { + $notice->addToInboxes($groups, $recipients); + } catch (Exception $e) { + $this->logit($notice, $e); + } - $notice->saveUrls(); + try { + $notice->saveUrls(); + } catch (Exception $e) { + $this->logit($notice, $e); + } - Event::handle('EndNoticeSave', array($notice)); + try { + Event::handle('EndNoticeSave', array($notice)); + // Enqueue for other handlers + } catch (Exception $e) { + $this->logit($notice, $e); + } - // Enqueue for other handlers - - common_enqueue_notice($notice); + try { + common_enqueue_notice($notice); + } catch (Exception $e) { + $this->logit($notice, $e); + } return true; } + + protected function logit($notice, $e) + { + common_log(LOG_ERR, "Distrib queue exception saving notice $notice->id: " . + $e->getMessage() . ' ' . + str_replace("\n", " ", $e->getTraceAsString())); + + // We'll still return true so we don't get stuck in a loop + // trying to run a bad insert over and over... + } } diff --git a/lib/jabber.php b/lib/jabber.php index b6b23521b..e1bf06ba6 100644 --- a/lib/jabber.php +++ b/lib/jabber.php @@ -358,7 +358,7 @@ function jabber_broadcast_notice($notice) common_log(LOG_WARNING, 'Refusing to broadcast notice with ' . 'unknown profile ' . common_log_objstring($notice), __FILE__); - return false; + return true; // not recoverable; discard. } $msg = jabber_format_notice($profile, $notice); @@ -437,7 +437,7 @@ function jabber_public_notice($notice) common_log(LOG_WARNING, 'Refusing to broadcast notice with ' . 'unknown profile ' . common_log_objstring($notice), __FILE__); - return false; + return true; // not recoverable; discard. } $msg = jabber_format_notice($profile, $notice); diff --git a/lib/jabberqueuehandler.php b/lib/jabberqueuehandler.php index 83471f2df..d6b4b7416 100644 --- a/lib/jabberqueuehandler.php +++ b/lib/jabberqueuehandler.php @@ -40,7 +40,7 @@ class JabberQueueHandler extends QueueHandler try { return jabber_broadcast_notice($notice); } catch (XMPPHP_Exception $e) { - $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage()); + common_log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage()); return false; } } diff --git a/lib/liberalstomp.php b/lib/liberalstomp.php index c9233843a..3d38953fd 100644 --- a/lib/liberalstomp.php +++ b/lib/liberalstomp.php @@ -34,6 +34,22 @@ class LiberalStomp extends Stomp } /** + * Return the host we're currently connected to. + * + * @return string + */ + function getServer() + { + $idx = $this->_currentHost; + if ($idx >= 0) { + $host = $this->_hosts[$idx]; + return "$host[0]:$host[1]"; + } else { + return '[unconnected]'; + } + } + + /** * Make socket connection to the server * We also set the stream to non-blocking mode, since we'll be * select'ing to wait for updates. In blocking mode it seems @@ -71,10 +87,12 @@ class LiberalStomp extends Stomp // @fixme this sometimes hangs in blocking mode... // shouldn't we have been idle until we found there's more data? $read = fread($this->_socket, $rb); - if ($read === false) { - $this->_reconnect(); + if ($read === false || ($read === '' && feof($this->_socket))) { + // @fixme possibly attempt an auto reconnect as old code? + throw new StompException("Error reading"); + //$this->_reconnect(); // @fixme this will lose prior items - return $this->readFrames(); + //return $this->readFrames(); } $data .= $read; if (strpos($data, "\x00") !== false) { diff --git a/lib/mysqlschema.php b/lib/mysqlschema.php new file mode 100644 index 000000000..1f7c3d092 --- /dev/null +++ b/lib/mysqlschema.php @@ -0,0 +1,537 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Database schema utilities + * + * 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 Database + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Class representing the database schema + * + * A class representing the database schema. Can be used to + * manipulate the schema -- especially for plugins and upgrade + * utilities. + * + * @category Database + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class MysqlSchema extends Schema +{ + static $_single = null; + protected $conn = null; + + /** + * Constructor. Only run once for singleton object. + */ + + protected function __construct() + { + // XXX: there should be an easier way to do this. + $user = new User(); + + $this->conn = $user->getDatabaseConnection(); + + $user->free(); + + unset($user); + } + + /** + * Main public entry point. Use this to get + * the singleton object. + * + * @return Schema the (single) Schema object + */ + + static function get() + { + if (empty(self::$_single)) { + self::$_single = new Schema(); + } + return self::$_single; + } + + /** + * Returns a TableDef object for the table + * in the schema with the given name. + * + * Throws an exception if the table is not found. + * + * @param string $name Name of the table to get + * + * @return TableDef tabledef for that table. + */ + + public function getTableDef($name) + { + $res = $this->conn->query('DESCRIBE ' . $name); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + $td = new TableDef(); + + $td->name = $name; + $td->columns = array(); + + $row = array(); + + while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { + + $cd = new ColumnDef(); + + $cd->name = $row['Field']; + + $packed = $row['Type']; + + if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { + $cd->type = $match[1]; + $cd->size = $match[2]; + } else { + $cd->type = $packed; + } + + $cd->nullable = ($row['Null'] == 'YES') ? true : false; + $cd->key = $row['Key']; + $cd->default = $row['Default']; + $cd->extra = $row['Extra']; + + $td->columns[] = $cd; + } + + return $td; + } + + /** + * Gets a ColumnDef object for a single column. + * + * Throws an exception if the table is not found. + * + * @param string $table name of the table + * @param string $column name of the column + * + * @return ColumnDef definition of the column or null + * if not found. + */ + + public function getColumnDef($table, $column) + { + $td = $this->getTableDef($table); + + foreach ($td->columns as $cd) { + if ($cd->name == $column) { + return $cd; + } + } + + return null; + } + + /** + * Creates a table with the given names and columns. + * + * @param string $name Name of the table + * @param array $columns Array of ColumnDef objects + * for new table. + * + * @return boolean success flag + */ + + public function createTable($name, $columns) + { + $uniques = array(); + $primary = array(); + $indices = array(); + + $sql = "CREATE TABLE $name (\n"; + + for ($i = 0; $i < count($columns); $i++) { + + $cd =& $columns[$i]; + + if ($i > 0) { + $sql .= ",\n"; + } + + $sql .= $this->_columnSql($cd); + + switch ($cd->key) { + case 'UNI': + $uniques[] = $cd->name; + break; + case 'PRI': + $primary[] = $cd->name; + break; + case 'MUL': + $indices[] = $cd->name; + break; + } + } + + if (count($primary) > 0) { // it really should be... + $sql .= ",\nconstraint primary key (" . implode(',', $primary) . ")"; + } + + foreach ($uniques as $u) { + $sql .= ",\nunique index {$name}_{$u}_idx ($u)"; + } + + foreach ($indices as $i) { + $sql .= ",\nindex {$name}_{$i}_idx ($i)"; + } + + $sql .= "); "; + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Drops a table from the schema + * + * Throws an exception if the table is not found. + * + * @param string $name Name of the table to drop + * + * @return boolean success flag + */ + + public function dropTable($name) + { + $res = $this->conn->query("DROP TABLE $name"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Adds an index to a table. + * + * If no name is provided, a name will be made up based + * on the table name and column names. + * + * Throws an exception on database error, esp. if the table + * does not exist. + * + * @param string $table Name of the table + * @param array $columnNames Name of columns to index + * @param string $name (Optional) name of the index + * + * @return boolean success flag + */ + + public function createIndex($table, $columnNames, $name=null) + { + if (!is_array($columnNames)) { + $columnNames = array($columnNames); + } + + if (empty($name)) { + $name = "$table_".implode("_", $columnNames)."_idx"; + } + + $res = $this->conn->query("ALTER TABLE $table ". + "ADD INDEX $name (". + implode(",", $columnNames).")"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Drops a named index from a table. + * + * @param string $table name of the table the index is on. + * @param string $name name of the index + * + * @return boolean success flag + */ + + public function dropIndex($table, $name) + { + $res = $this->conn->query("ALTER TABLE $table DROP INDEX $name"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Adds a column to a table + * + * @param string $table name of the table + * @param ColumnDef $columndef Definition of the new + * column. + * + * @return boolean success flag + */ + + public function addColumn($table, $columndef) + { + $sql = "ALTER TABLE $table ADD COLUMN " . $this->_columnSql($columndef); + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Modifies a column in the schema. + * + * The name must match an existing column and table. + * + * @param string $table name of the table + * @param ColumnDef $columndef new definition of the column. + * + * @return boolean success flag + */ + + public function modifyColumn($table, $columndef) + { + $sql = "ALTER TABLE $table MODIFY COLUMN " . + $this->_columnSql($columndef); + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Drops a column from a table + * + * The name must match an existing column. + * + * @param string $table name of the table + * @param string $columnName name of the column to drop + * + * @return boolean success flag + */ + + public function dropColumn($table, $columnName) + { + $sql = "ALTER TABLE $table DROP COLUMN $columnName"; + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Ensures that a table exists with the given + * name and the given column definitions. + * + * If the table does not yet exist, it will + * create the table. If it does exist, it will + * alter the table to match the column definitions. + * + * @param string $tableName name of the table + * @param array $columns array of ColumnDef + * objects for the table + * + * @return boolean success flag + */ + + public function ensureTable($tableName, $columns) + { + // XXX: DB engine portability -> toilet + + try { + $td = $this->getTableDef($tableName); + } catch (Exception $e) { + if (preg_match('/no such table/', $e->getMessage())) { + return $this->createTable($tableName, $columns); + } else { + throw $e; + } + } + + $cur = $this->_names($td->columns); + $new = $this->_names($columns); + + $toadd = array_diff($new, $cur); + $todrop = array_diff($cur, $new); + $same = array_intersect($new, $cur); + $tomod = array(); + + foreach ($same as $m) { + $curCol = $this->_byName($td->columns, $m); + $newCol = $this->_byName($columns, $m); + + if (!$newCol->equals($curCol)) { + $tomod[] = $newCol->name; + } + } + + if (count($toadd) + count($todrop) + count($tomod) == 0) { + // nothing to do + return true; + } + + // For efficiency, we want this all in one + // query, instead of using our methods. + + $phrase = array(); + + foreach ($toadd as $columnName) { + $cd = $this->_byName($columns, $columnName); + + $phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd); + } + + foreach ($todrop as $columnName) { + $phrase[] = 'DROP COLUMN ' . $columnName; + } + + foreach ($tomod as $columnName) { + $cd = $this->_byName($columns, $columnName); + + $phrase[] = 'MODIFY COLUMN ' . $this->_columnSql($cd); + } + + $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Returns the array of names from an array of + * ColumnDef objects. + * + * @param array $cds array of ColumnDef objects + * + * @return array strings for name values + */ + + private function _names($cds) + { + $names = array(); + + foreach ($cds as $cd) { + $names[] = $cd->name; + } + + return $names; + } + + /** + * Get a ColumnDef from an array matching + * name. + * + * @param array $cds Array of ColumnDef objects + * @param string $name Name of the column + * + * @return ColumnDef matching item or null if no match. + */ + + private function _byName($cds, $name) + { + foreach ($cds as $cd) { + if ($cd->name == $name) { + return $cd; + } + } + + return null; + } + + /** + * Return the proper SQL for creating or + * altering a column. + * + * Appropriate for use in CREATE TABLE or + * ALTER TABLE statements. + * + * @param ColumnDef $cd column to create + * + * @return string correct SQL for that column + */ + + private function _columnSql($cd) + { + $sql = "{$cd->name} "; + + if (!empty($cd->size)) { + $sql .= "{$cd->type}({$cd->size}) "; + } else { + $sql .= "{$cd->type} "; + } + + if (!empty($cd->default)) { + $sql .= "default {$cd->default} "; + } else { + $sql .= ($cd->nullable) ? "null " : "not null "; + } + + if (!empty($cd->auto_increment)) { + $sql .= " auto_increment "; + } + + if (!empty($cd->extra)) { + $sql .= "{$cd->extra} "; + } + + return $sql; + } +} diff --git a/lib/noticelist.php b/lib/noticelist.php index 85c169716..a4a0f2651 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -486,12 +486,28 @@ class NoticeListItem extends Widget $this->out->element('span', 'device', $source_name); break; default: + + $name = null; + $url = null; + $ns = Notice_source::staticGet($this->notice->source); + if ($ns) { + $name = $ns->name; + $url = $ns->url; + } else { + $app = Oauth_application::staticGet('name', $this->notice->source); + if ($app) { + $name = $app->name; + $url = $app->source_url; + } + } + + if (!empty($name) && !empty($url)) { $this->out->elementStart('span', 'device'); - $this->out->element('a', array('href' => $ns->url, + $this->out->element('a', array('href' => $url, 'rel' => 'external'), - $ns->name); + $name); $this->out->elementEnd('span'); } else { $this->out->element('span', 'device', $source_name); diff --git a/lib/ombqueuehandler.php b/lib/ombqueuehandler.php index 24896c784..1921c2bac 100644 --- a/lib/ombqueuehandler.php +++ b/lib/ombqueuehandler.php @@ -39,7 +39,7 @@ class OmbQueueHandler extends QueueHandler function handle($notice) { if ($this->is_remote($notice)) { - $this->log(LOG_DEBUG, 'Ignoring remote notice ' . $notice->id); + common_log(LOG_DEBUG, 'Ignoring remote notice ' . $notice->id); return true; } else { require_once(INSTALLDIR.'/lib/omb.php'); diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php new file mode 100644 index 000000000..91bc09667 --- /dev/null +++ b/lib/pgsqlschema.php @@ -0,0 +1,503 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Database schema utilities + * + * 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 Database + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Class representing the database schema + * + * A class representing the database schema. Can be used to + * manipulate the schema -- especially for plugins and upgrade + * utilities. + * + * @category Database + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class PgsqlSchema extends Schema +{ + + /** + * Returns a TableDef object for the table + * in the schema with the given name. + * + * Throws an exception if the table is not found. + * + * @param string $name Name of the table to get + * + * @return TableDef tabledef for that table. + */ + + public function getTableDef($name) + { + $res = $this->conn->query("select *, column_default as default, is_nullable as Null, udt_name as Type, column_name AS Field from INFORMATION_SCHEMA.COLUMNS where table_name = '$name'"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + $td = new TableDef(); + + $td->name = $name; + $td->columns = array(); + + $row = array(); + + while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { +// var_dump($row); + $cd = new ColumnDef(); + + $cd->name = $row['field']; + + $packed = $row['type']; + + if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { + $cd->type = $match[1]; + $cd->size = $match[2]; + } else { + $cd->type = $packed; + } + + $cd->nullable = ($row['null'] == 'YES') ? true : false; + $cd->key = $row['Key']; + $cd->default = $row['default']; + $cd->extra = $row['Extra']; + + $td->columns[] = $cd; + } + return $td; + } + + /** + * Gets a ColumnDef object for a single column. + * + * Throws an exception if the table is not found. + * + * @param string $table name of the table + * @param string $column name of the column + * + * @return ColumnDef definition of the column or null + * if not found. + */ + + public function getColumnDef($table, $column) + { + $td = $this->getTableDef($table); + + foreach ($td->columns as $cd) { + if ($cd->name == $column) { + return $cd; + } + } + + return null; + } + + /** + * Creates a table with the given names and columns. + * + * @param string $name Name of the table + * @param array $columns Array of ColumnDef objects + * for new table. + * + * @return boolean success flag + */ + + public function createTable($name, $columns) + { + $uniques = array(); + $primary = array(); + $indices = array(); + + $sql = "CREATE TABLE $name (\n"; + + for ($i = 0; $i < count($columns); $i++) { + + $cd =& $columns[$i]; + + if ($i > 0) { + $sql .= ",\n"; + } + + $sql .= $this->_columnSql($cd); + + switch ($cd->key) { + case 'UNI': + $uniques[] = $cd->name; + break; + case 'PRI': + $primary[] = $cd->name; + break; + case 'MUL': + $indices[] = $cd->name; + break; + } + } + + if (count($primary) > 0) { // it really should be... + $sql .= ",\nconstraint primary key (" . implode(',', $primary) . ")"; + } + + foreach ($uniques as $u) { + $sql .= ",\nunique index {$name}_{$u}_idx ($u)"; + } + + foreach ($indices as $i) { + $sql .= ",\nindex {$name}_{$i}_idx ($i)"; + } + + $sql .= "); "; + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Drops a table from the schema + * + * Throws an exception if the table is not found. + * + * @param string $name Name of the table to drop + * + * @return boolean success flag + */ + + public function dropTable($name) + { + $res = $this->conn->query("DROP TABLE $name"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Adds an index to a table. + * + * If no name is provided, a name will be made up based + * on the table name and column names. + * + * Throws an exception on database error, esp. if the table + * does not exist. + * + * @param string $table Name of the table + * @param array $columnNames Name of columns to index + * @param string $name (Optional) name of the index + * + * @return boolean success flag + */ + + public function createIndex($table, $columnNames, $name=null) + { + if (!is_array($columnNames)) { + $columnNames = array($columnNames); + } + + if (empty($name)) { + $name = "$table_".implode("_", $columnNames)."_idx"; + } + + $res = $this->conn->query("ALTER TABLE $table ". + "ADD INDEX $name (". + implode(",", $columnNames).")"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Drops a named index from a table. + * + * @param string $table name of the table the index is on. + * @param string $name name of the index + * + * @return boolean success flag + */ + + public function dropIndex($table, $name) + { + $res = $this->conn->query("ALTER TABLE $table DROP INDEX $name"); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Adds a column to a table + * + * @param string $table name of the table + * @param ColumnDef $columndef Definition of the new + * column. + * + * @return boolean success flag + */ + + public function addColumn($table, $columndef) + { + $sql = "ALTER TABLE $table ADD COLUMN " . $this->_columnSql($columndef); + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Modifies a column in the schema. + * + * The name must match an existing column and table. + * + * @param string $table name of the table + * @param ColumnDef $columndef new definition of the column. + * + * @return boolean success flag + */ + + public function modifyColumn($table, $columndef) + { + $sql = "ALTER TABLE $table MODIFY COLUMN " . + $this->_columnSql($columndef); + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Drops a column from a table + * + * The name must match an existing column. + * + * @param string $table name of the table + * @param string $columnName name of the column to drop + * + * @return boolean success flag + */ + + public function dropColumn($table, $columnName) + { + $sql = "ALTER TABLE $table DROP COLUMN $columnName"; + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Ensures that a table exists with the given + * name and the given column definitions. + * + * If the table does not yet exist, it will + * create the table. If it does exist, it will + * alter the table to match the column definitions. + * + * @param string $tableName name of the table + * @param array $columns array of ColumnDef + * objects for the table + * + * @return boolean success flag + */ + + public function ensureTable($tableName, $columns) + { + // XXX: DB engine portability -> toilet + + try { + $td = $this->getTableDef($tableName); + } catch (Exception $e) { + if (preg_match('/no such table/', $e->getMessage())) { + return $this->createTable($tableName, $columns); + } else { + throw $e; + } + } + + $cur = $this->_names($td->columns); + $new = $this->_names($columns); + + $toadd = array_diff($new, $cur); + $todrop = array_diff($cur, $new); + $same = array_intersect($new, $cur); + $tomod = array(); + + foreach ($same as $m) { + $curCol = $this->_byName($td->columns, $m); + $newCol = $this->_byName($columns, $m); + + if (!$newCol->equals($curCol)) { + $tomod[] = $newCol->name; + } + } + + if (count($toadd) + count($todrop) + count($tomod) == 0) { + // nothing to do + return true; + } + + // For efficiency, we want this all in one + // query, instead of using our methods. + + $phrase = array(); + + foreach ($toadd as $columnName) { + $cd = $this->_byName($columns, $columnName); + + $phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd); + } + + foreach ($todrop as $columnName) { + $phrase[] = 'DROP COLUMN ' . $columnName; + } + + foreach ($tomod as $columnName) { + $cd = $this->_byName($columns, $columnName); + + $phrase[] = 'MODIFY COLUMN ' . $this->_columnSql($cd); + } + + $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); + + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + return true; + } + + /** + * Returns the array of names from an array of + * ColumnDef objects. + * + * @param array $cds array of ColumnDef objects + * + * @return array strings for name values + */ + + private function _names($cds) + { + $names = array(); + + foreach ($cds as $cd) { + $names[] = $cd->name; + } + + return $names; + } + + /** + * Get a ColumnDef from an array matching + * name. + * + * @param array $cds Array of ColumnDef objects + * @param string $name Name of the column + * + * @return ColumnDef matching item or null if no match. + */ + + private function _byName($cds, $name) + { + foreach ($cds as $cd) { + if ($cd->name == $name) { + return $cd; + } + } + + return null; + } + + /** + * Return the proper SQL for creating or + * altering a column. + * + * Appropriate for use in CREATE TABLE or + * ALTER TABLE statements. + * + * @param ColumnDef $cd column to create + * + * @return string correct SQL for that column + */ + + private function _columnSql($cd) + { + $sql = "{$cd->name} "; + + if (!empty($cd->size)) { + $sql .= "{$cd->type}({$cd->size}) "; + } else { + $sql .= "{$cd->type} "; + } + + if (!empty($cd->default)) { + $sql .= "default {$cd->default} "; + } else { + $sql .= ($cd->nullable) ? "null " : "not null "; + } + + if (!empty($cd->auto_increment)) { + $sql .= " auto_increment "; + } + + if (!empty($cd->extra)) { + $sql .= "{$cd->extra} "; + } + + return $sql; + } +} diff --git a/lib/publicqueuehandler.php b/lib/publicqueuehandler.php index c9edb8d5d..a497d1385 100644 --- a/lib/publicqueuehandler.php +++ b/lib/publicqueuehandler.php @@ -38,7 +38,7 @@ class PublicQueueHandler extends QueueHandler try { return jabber_public_notice($notice); } catch (XMPPHP_Exception $e) { - $this->log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage()); + common_log(LOG_ERR, "Got an XMPPHP_Exception: " . $e->getMessage()); return false; } } diff --git a/lib/router.php b/lib/router.php index be9cfac0c..987d0152e 100644 --- a/lib/router.php +++ b/lib/router.php @@ -73,6 +73,8 @@ class Router if (Event::handle('StartInitializeRouter', array(&$m))) { + $m->connect('robots.txt', array('action' => 'robotstxt')); + $m->connect('opensearch/people', array('action' => 'opensearch', 'type' => 'people')); $m->connect('opensearch/notice', array('action' => 'opensearch', @@ -150,6 +152,10 @@ class Router array('action' => 'editapplication'), array('id' => '[0-9]+') ); + $m->connect('settings/oauthapps/delete/:id', + array('action' => 'deleteapplication'), + array('id' => '[0-9]+') + ); // search @@ -649,7 +655,16 @@ class Router if (common_config('singleuser', 'enabled')) { - $nickname = common_config('singleuser', 'nickname'); + $user = User::siteOwner(); + + if (!empty($user)) { + $nickname = $user->nickname; + } else { + $nickname = common_config('singleuser', 'nickname'); + if (empty($nickname)) { + throw new ServerException(_("No single user defined for single-user mode.")); + } + } foreach (array('subscriptions', 'subscribers', 'all', 'foaf', 'xrds', @@ -697,6 +712,10 @@ class Router 'nickname' => $nickname), array('tag' => '[a-zA-Z0-9]+')); + $m->connect('rsd.xml', + array('action' => 'rsd', + 'nickname' => $nickname)); + $m->connect('', array('action' => 'showstream', 'nickname' => $nickname)); @@ -711,6 +730,7 @@ class Router $m->connect('featured', array('action' => 'featured')); $m->connect('favorited/', array('action' => 'favorited')); $m->connect('favorited', array('action' => 'favorited')); + $m->connect('rsd.xml', array('action' => 'rsd')); foreach (array('subscriptions', 'subscribers', 'nudge', 'all', 'foaf', 'xrds', @@ -758,6 +778,10 @@ class Router array('nickname' => '[a-zA-Z0-9]{1,64}'), array('tag' => '[a-zA-Z0-9]+')); + $m->connect(':nickname/rsd.xml', + array('action' => 'rsd'), + array('nickname' => '[a-zA-Z0-9]{1,64}')); + $m->connect(':nickname', array('action' => 'showstream'), array('nickname' => '[a-zA-Z0-9]{1,64}')); diff --git a/lib/schema.php b/lib/schema.php index a7f64ebed..137b814e0 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -75,65 +75,15 @@ class Schema static function get() { + $type = common_config('db', 'type'); if (empty(self::$_single)) { - self::$_single = new Schema(); + $schemaClass = ucfirst($type).'Schema'; + self::$_single = new $schemaClass(); } return self::$_single; } /** - * Returns a TableDef object for the table - * in the schema with the given name. - * - * Throws an exception if the table is not found. - * - * @param string $name Name of the table to get - * - * @return TableDef tabledef for that table. - */ - - public function getTableDef($name) - { - $res = $this->conn->query('DESCRIBE ' . $name); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - $td = new TableDef(); - - $td->name = $name; - $td->columns = array(); - - $row = array(); - - while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { - - $cd = new ColumnDef(); - - $cd->name = $row['Field']; - - $packed = $row['Type']; - - if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { - $cd->type = $match[1]; - $cd->size = $match[2]; - } else { - $cd->type = $packed; - } - - $cd->nullable = ($row['Null'] == 'YES') ? true : false; - $cd->key = $row['Key']; - $cd->default = $row['Default']; - $cd->extra = $row['Extra']; - - $td->columns[] = $cd; - } - - return $td; - } - - /** * Gets a ColumnDef object for a single column. * * Throws an exception if the table is not found. @@ -523,7 +473,7 @@ class Schema } else { $sql .= ($cd->nullable) ? "null " : "not null "; } - + if (!empty($cd->auto_increment)) { $sql .= " auto_increment "; } diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php index 19e8c49b5..6730cd213 100644 --- a/lib/stompqueuemanager.php +++ b/lib/stompqueuemanager.php @@ -29,28 +29,36 @@ */ require_once 'Stomp.php'; - +require_once 'Stomp/Exception.php'; class StompQueueManager extends QueueManager { - var $server = null; - var $username = null; - var $password = null; - var $base = null; - var $con = null; + protected $servers; + protected $username; + protected $password; + protected $base; protected $control; - + + protected $useTransactions = true; + protected $sites = array(); protected $subscriptions = array(); - protected $useTransactions = true; - protected $transaction = null; - protected $transactionCount = 0; + protected $cons = array(); // all open connections + protected $disconnect = array(); + protected $transaction = array(); + protected $transactionCount = array(); + protected $defaultIdx = 0; function __construct() { parent::__construct(); - $this->server = common_config('queue', 'stomp_server'); + $server = common_config('queue', 'stomp_server'); + if (is_array($server)) { + $this->servers = $server; + } else { + $this->servers = array($server); + } $this->username = common_config('queue', 'stomp_username'); $this->password = common_config('queue', 'stomp_password'); $this->base = common_config('queue', 'queue_basename'); @@ -99,9 +107,9 @@ class StompQueueManager extends QueueManager $message .= ':' . $param; } $this->_connect(); - $result = $this->con->send($this->control, - $message, - array ('created' => common_sql_now())); + $result = $this->_send($this->control, + $message, + array ('created' => common_sql_now())); if ($result) { $this->_log(LOG_INFO, "Sent control ping to queue daemons: $message"); return true; @@ -166,28 +174,59 @@ class StompQueueManager extends QueueManager /** * Saves a notice object reference into the queue item table. * @return boolean true on success + * @throws StompException on connection or send error */ public function enqueue($object, $queue) { + $this->_connect(); + return $this->_doEnqueue($object, $queue, $this->defaultIdx); + } + + /** + * Saves a notice object reference into the queue item table + * on the given connection. + * + * @return boolean true on success + * @throws StompException on connection or send error + */ + protected function _doEnqueue($object, $queue, $idx) + { $msg = $this->encode($object); $rep = $this->logrep($object); - $this->_connect(); - - // XXX: serialize and send entire notice + $props = array('created' => common_sql_now()); + if ($this->isPersistent($queue)) { + $props['persistent'] = 'true'; + } - $result = $this->con->send($this->queueName($queue), - $msg, // BODY of the message - array ('created' => common_sql_now(), - 'persistent' => 'true')); + $con = $this->cons[$idx]; + $host = $con->getServer(); + $result = $con->send($this->queueName($queue), $msg, $props); if (!$result) { - common_log(LOG_ERR, "Error sending $rep to $queue queue"); + common_log(LOG_ERR, "Error sending $rep to $queue queue on $host"); return false; } - common_log(LOG_DEBUG, "complete remote queueing $rep for $queue"); + common_log(LOG_DEBUG, "complete remote queueing $rep for $queue on $host"); $this->stats('enqueued', $queue); + return true; + } + + /** + * Determine whether messages to this queue should be marked as persistent. + * Actual persistent storage depends on the queue server's configuration. + * @param string $queue + * @return bool + */ + protected function isPersistent($queue) + { + $mode = common_config('queue', 'stomp_persistent'); + if (is_array($mode)) { + return in_array($queue, $mode); + } else { + return (bool)$mode; + } } /** @@ -198,7 +237,29 @@ class StompQueueManager extends QueueManager */ public function getSockets() { - return array($this->con->getSocket()); + $sockets = array(); + foreach ($this->cons as $con) { + if ($con) { + $sockets[] = $con->getSocket(); + } + } + return $sockets; + } + + /** + * Get the Stomp connection object associated with the given socket. + * @param resource $socket + * @return int index into connections list + * @throws Exception + */ + protected function connectionFromSocket($socket) + { + foreach ($this->cons as $i => $con) { + if ($con && $con->getSocket() === $socket) { + return $i; + } + } + throw new Exception(__CLASS__ . " asked to read from unrecognized socket"); } /** @@ -210,27 +271,56 @@ class StompQueueManager extends QueueManager */ public function handleInput($socket) { - assert($socket === $this->con->getSocket()); + $idx = $this->connectionFromSocket($socket); + $con = $this->cons[$idx]; + $host = $con->getServer(); + $ok = true; - $frames = $this->con->readFrames(); + try { + $frames = $con->readFrames(); + } catch (StompException $e) { + common_log(LOG_ERR, "Lost connection to $host: " . $e->getMessage()); + $this->cons[$idx] = null; + $this->transaction[$idx] = null; + $this->disconnect[$idx] = time(); + return false; + } foreach ($frames as $frame) { $dest = $frame->headers['destination']; if ($dest == $this->control) { - if (!$this->handleControlSignal($frame)) { + if (!$this->handleControlSignal($idx, $frame)) { // We got a control event that requests a shutdown; // close out and stop handling anything else! break; } } else { - $ok = $ok && $this->handleItem($frame); + $ok = $ok && $this->handleItem($idx, $frame); } } return $ok; } /** + * Attempt to reconnect in background if we lost a connection. + */ + function idle() + { + $now = time(); + foreach ($this->cons as $idx => $con) { + if (empty($con)) { + $age = $now - $this->disconnect[$idx]; + if ($age >= 60) { + $this->_reconnect($idx); + } + } + } + return true; + } + + /** * Initialize our connection and subscribe to all the queues - * we're going to need to handle... + * we're going to need to handle... If multiple queue servers + * are configured for failover, we'll listen to all of them. * * Side effects: in multi-site mode, may reset site configuration. * @@ -240,9 +330,14 @@ class StompQueueManager extends QueueManager public function start($master) { parent::start($master); - $this->_connect(); + $this->_connectAll(); - $this->con->subscribe($this->control); + common_log(LOG_INFO, "Subscribing to $this->control"); + foreach ($this->cons as $con) { + if ($con) { + $con->subscribe($this->control); + } + } if ($this->sites) { foreach ($this->sites as $server) { StatusNet::init($server); @@ -251,10 +346,14 @@ class StompQueueManager extends QueueManager } else { $this->doSubscribe(); } - $this->begin(); + foreach ($this->cons as $i => $con) { + if ($con) { + $this->begin($i); + } + } return true; } - + /** * Subscribe to all the queues we're going to need to handle... * @@ -266,8 +365,12 @@ class StompQueueManager extends QueueManager { // If there are any outstanding delivered messages we haven't processed, // free them for another thread to take. - $this->rollback(); - $this->con->unsubscribe($this->control); + foreach ($this->cons as $i => $con) { + if ($con) { + $this->rollback($i); + $con->unsubscribe($this->control); + } + } if ($this->sites) { foreach ($this->sites as $server) { StatusNet::init($server); @@ -289,23 +392,106 @@ class StompQueueManager extends QueueManager } /** - * Lazy open connection to Stomp queue server. + * Lazy open a single connection to Stomp queue server. + * If multiple servers are configured, we let the Stomp client library + * worry about finding a working connection among them. */ protected function _connect() { - if (empty($this->con)) { - $this->_log(LOG_INFO, "Connecting to '$this->server' as '$this->username'..."); - $this->con = new LiberalStomp($this->server); - - if ($this->con->connect($this->username, $this->password)) { - $this->_log(LOG_INFO, "Connected."); + if (empty($this->cons)) { + $list = $this->servers; + if (count($list) > 1) { + shuffle($list); // Randomize to spread load + $url = 'failover://(' . implode(',', $list) . ')'; } else { - $this->_log(LOG_ERR, 'Failed to connect to queue server'); - throw new ServerException('Failed to connect to queue server'); + $url = $list[0]; + } + $con = $this->_doConnect($url); + $this->cons = array($con); + $this->transactionCount = array(0); + $this->transaction = array(null); + $this->disconnect = array(null); + } + } + + /** + * Lazy open connections to all Stomp servers, if in manual failover + * mode. This means the queue servers don't speak to each other, so + * we have to listen to all of them to make sure we get all events. + */ + protected function _connectAll() + { + if (!common_config('queue', 'stomp_manual_failover')) { + return $this->_connect(); + } + if (empty($this->cons)) { + $this->cons = array(); + $this->transactionCount = array(); + $this->transaction = array(); + foreach ($this->servers as $idx => $server) { + try { + $this->cons[] = $this->_doConnect($server); + $this->disconnect[] = null; + } catch (Exception $e) { + // s'okay, we'll live + $this->cons[] = null; + $this->disconnect[] = time(); + } + $this->transactionCount[] = 0; + $this->transaction[] = null; + } + if (empty($this->cons)) { + throw new ServerException("No queue servers reachable..."); + return false; } } } + protected function _reconnect($idx) + { + try { + $con = $this->_doConnect($this->servers[$idx]); + } catch (Exception $e) { + $this->_log(LOG_ERR, $e->getMessage()); + $con = null; + } + if ($con) { + $this->cons[$idx] = $con; + $this->disconnect[$idx] = null; + + // now we have to listen to everything... + // @fixme refactor this nicer. :P + $host = $con->getServer(); + $this->_log(LOG_INFO, "Resubscribing to $this->control on $host"); + $con->subscribe($this->control); + foreach ($this->subscriptions as $site => $queues) { + foreach ($queues as $queue) { + $this->_log(LOG_INFO, "Resubscribing to $queue on $host"); + $con->subscribe($queue); + } + } + $this->begin($idx); + } else { + // Try again later... + $this->disconnect[$idx] = time(); + } + } + + protected function _doConnect($server) + { + $this->_log(LOG_INFO, "Connecting to '$server' as '$this->username'..."); + $con = new LiberalStomp($server); + + if ($con->connect($this->username, $this->password)) { + $this->_log(LOG_INFO, "Connected."); + } else { + $this->_log(LOG_ERR, 'Failed to connect to queue server'); + throw new ServerException('Failed to connect to queue server'); + } + + return $con; + } + /** * Subscribe to all enabled notice queues for the current site. */ @@ -317,7 +503,11 @@ class StompQueueManager extends QueueManager $rawqueue = $this->queueName($queue); $this->subscriptions[$site][$queue] = $rawqueue; $this->_log(LOG_INFO, "Subscribing to $rawqueue"); - $this->con->subscribe($rawqueue); + foreach ($this->cons as $con) { + if ($con) { + $con->subscribe($rawqueue); + } + } } } @@ -331,7 +521,11 @@ class StompQueueManager extends QueueManager if (!empty($this->subscriptions[$site])) { foreach ($this->subscriptions[$site] as $queue => $rawqueue) { $this->_log(LOG_INFO, "Unsubscribing from $rawqueue"); - $this->con->unsubscribe($rawqueue); + foreach ($this->cons as $con) { + if ($con) { + $con->unsubscribe($rawqueue); + } + } unset($this->subscriptions[$site][$queue]); } } @@ -346,27 +540,31 @@ class StompQueueManager extends QueueManager * Side effects: in multi-site mode, may reset site configuration to * match the site that queued the event. * + * @param int $idx connection index * @param StompFrame $frame * @return bool */ - protected function handleItem($frame) + protected function handleItem($idx, $frame) { + $this->defaultIdx = $idx; + list($site, $queue) = $this->parseDestination($frame->headers['destination']); if ($site != $this->currentSite()) { $this->stats('switch'); StatusNet::init($site); } + $host = $this->cons[$idx]->getServer(); if (is_numeric($frame->body)) { $id = intval($frame->body); - $info = "notice $id posted at {$frame->headers['created']} in queue $queue"; + $info = "notice $id posted at {$frame->headers['created']} in queue $queue from $host"; $notice = Notice::staticGet('id', $id); if (empty($notice)) { $this->_log(LOG_WARNING, "Skipping missing $info"); - $this->ack($frame); - $this->commit(); - $this->begin(); + $this->ack($idx, $frame); + $this->commit($idx); + $this->begin($idx); $this->stats('badnotice', $queue); return false; } @@ -374,39 +572,47 @@ class StompQueueManager extends QueueManager $item = $notice; } else { // @fixme should we serialize, or json, or what here? - $info = "string posted at {$frame->headers['created']} in queue $queue"; + $info = "string posted at {$frame->headers['created']} in queue $queue from $host"; $item = $frame->body; } $handler = $this->getHandler($queue); if (!$handler) { $this->_log(LOG_ERR, "Missing handler class; skipping $info"); - $this->ack($frame); - $this->commit(); - $this->begin(); + $this->ack($idx, $frame); + $this->commit($idx); + $this->begin($idx); $this->stats('badhandler', $queue); return false; } - $ok = $handler->handle($item); + // If there's an exception when handling, + // log the error and let it get requeued. + + try { + $ok = $handler->handle($item); + } catch (Exception $e) { + $this->_log(LOG_ERR, "Exception on queue $queue: " . $e->getMessage()); + $ok = false; + } if (!$ok) { $this->_log(LOG_WARNING, "Failed handling $info"); // FIXME we probably shouldn't have to do // this kind of queue management ourselves; // if we don't ack, it should resend... - $this->ack($frame); + $this->ack($idx, $frame); $this->enqueue($item, $queue); - $this->commit(); - $this->begin(); + $this->commit($idx); + $this->begin($idx); $this->stats('requeued', $queue); return false; } $this->_log(LOG_INFO, "Successfully handled $info"); - $this->ack($frame); - $this->commit(); - $this->begin(); + $this->ack($idx, $frame); + $this->commit($idx); + $this->begin($idx); $this->stats('handled', $queue); return true; } @@ -414,10 +620,11 @@ class StompQueueManager extends QueueManager /** * Process a control signal broadcast. * + * @param int $idx connection index * @param array $frame Stomp frame * @return bool true to continue; false to stop further processing. */ - protected function handleControlSignal($frame) + protected function handleControlSignal($idx, $frame) { $message = trim($frame->body); if (strpos($message, ':') !== false) { @@ -441,12 +648,12 @@ class StompQueueManager extends QueueManager $this->_log(LOG_ERR, "Ignoring unrecognized control message: $message"); } - $this->ack($frame); - $this->commit(); - $this->begin(); + $this->ack($idx, $frame); + $this->commit($idx); + $this->begin($idx); return $shutdown; } - + /** * Set us up with queue subscriptions for a new site added at runtime, * triggered by a broadcast to the 'statusnet-control' topic. @@ -520,47 +727,49 @@ class StompQueueManager extends QueueManager common_log($level, 'StompQueueManager: '.$msg); } - protected function begin() + protected function begin($idx) { if ($this->useTransactions) { - if ($this->transaction) { + if (!empty($this->transaction[$idx])) { throw new Exception("Tried to start transaction in the middle of a transaction"); } - $this->transactionCount++; - $this->transaction = $this->master->id . '-' . $this->transactionCount . '-' . time(); - $this->con->begin($this->transaction); + $this->transactionCount[$idx]++; + $this->transaction[$idx] = $this->master->id . '-' . $this->transactionCount[$idx] . '-' . time(); + $this->cons[$idx]->begin($this->transaction[$idx]); } } - protected function ack($frame) + protected function ack($idx, $frame) { if ($this->useTransactions) { - if (!$this->transaction) { + if (empty($this->transaction[$idx])) { throw new Exception("Tried to ack but not in a transaction"); } + $this->cons[$idx]->ack($frame, $this->transaction[$idx]); + } else { + $this->cons[$idx]->ack($frame); } - $this->con->ack($frame, $this->transaction); } - protected function commit() + protected function commit($idx) { if ($this->useTransactions) { - if (!$this->transaction) { + if (empty($this->transaction[$idx])) { throw new Exception("Tried to commit but not in a transaction"); } - $this->con->commit($this->transaction); - $this->transaction = null; + $this->cons[$idx]->commit($this->transaction[$idx]); + $this->transaction[$idx] = null; } } - protected function rollback() + protected function rollback($idx) { if ($this->useTransactions) { - if (!$this->transaction) { + if (empty($this->transaction[$idx])) { throw new Exception("Tried to rollback but not in a transaction"); } - $this->con->commit($this->transaction); - $this->transaction = null; + $this->cons[$idx]->commit($this->transaction[$idx]); + $this->transaction[$idx] = null; } } } diff --git a/lib/util.php b/lib/util.php index 6c9f6316a..9e8ac26ad 100644 --- a/lib/util.php +++ b/lib/util.php @@ -178,7 +178,6 @@ function common_ensure_session() } if (isset($id)) { session_id($id); - setcookie(session_name(), $id); } @session_start(); if (!isset($_SESSION['started'])) { @@ -990,9 +989,14 @@ function common_enqueue_notice($notice) static $localTransports = array('omb', 'ping'); - static $allTransports = array('sms', 'plugin'); - - $transports = $allTransports; + $transports = array(); + if (common_config('sms', 'enabled')) { + $transports[] = 'sms'; + } + if (Event::hasHandler('HandleQueuedNotice')) { + $transports[] = 'plugin'; + } + $xmpp = common_config('xmpp', 'enabled'); @@ -1000,6 +1004,7 @@ function common_enqueue_notice($notice) $transports[] = 'jabber'; } + // @fixme move these checks into QueueManager and/or individual handlers if ($notice->is_local == Notice::LOCAL_PUBLIC || $notice->is_local == Notice::LOCAL_NONPUBLIC) { $transports = array_merge($transports, $localTransports); diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index a816dcef9..bfc6c0324 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:16+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:02+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "لا صفحة كهذه" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -154,7 +154,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -376,8 +376,8 @@ msgstr "" msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -389,8 +389,8 @@ msgstr "الصفحة الرئيسية ليست عنونًا صالحًا." msgid "Full name is too long (max 255 chars)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "" @@ -467,18 +467,23 @@ msgstr "مجموعات %s" msgid "groups on %s" msgstr "مجموعات %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "طلب سيء." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "حجم غير صالح." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -489,74 +494,82 @@ msgstr "طلب سيء." msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "اسم/كلمة سر غير صحيحة!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "خطأ قاعدة البيانات أثناء حذف المستخدم OAuth app" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "خطأ قاعدة البيانات أثناء إدخال المستخدم OAuth app" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "الحساب" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "الاسم المستعار" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "كلمة السر" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "ارفض" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "اسمح" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -725,8 +738,8 @@ msgstr "الأصلي" msgid "Preview" msgstr "عاين" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "احذف" @@ -773,8 +786,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "لا" @@ -782,9 +796,9 @@ msgstr "لا" msgid "Do not block this user" msgstr "لا تمنع هذا المستخدم" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "نعم" @@ -888,6 +902,49 @@ msgstr "محادثة" msgid "Notices" msgstr "الإشعارات" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "لم يوجد رمز التأكيد." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "أنت لست مالك هذا التطبيق." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "عدّل التطبيق" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "لا تحذف هذا الإشعار" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "احذف هذا الإشعار" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -920,7 +977,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1060,7 +1117,7 @@ msgstr "هذا الشعار ليس مفضلًا!" msgid "Add to favorites" msgstr "أضف إلى المفضلات" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "لا مستند كهذا." @@ -1074,20 +1131,11 @@ msgstr "عدّل التطبيق" msgid "You must be logged in to edit an application." msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "أنت لست مالك هذا التطبيق." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "لا تطبيق كهذا." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "استخدم هذا النموذج لتعدل تطبيقك." @@ -1096,43 +1144,47 @@ msgstr "استخدم هذا النموذج لتعدل تطبيقك." msgid "Name is required." msgstr "الاسم مطلوب." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "الاسم طويل جدا (الأقصى 255 حرفا)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "" + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "الوصف مطلوب." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "مسار المصدر ليس صحيحا." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "المنظمة مطلوبة." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "المنظمة طويلة جدا (الأقصى 255 حرفا)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "صفحة المنظمة الرئيسية مطلوبة." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "لم يمكن تحديث التطبيق." @@ -1987,11 +2039,11 @@ msgstr "يجب أن تكون مسجل الدخول لتسجل تطبيقا." msgid "Use this form to register a new application." msgstr "استخدم هذا النموذج لتسجل تطبيقا جديدا." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "لم يمكن إنشاء التطبيق." @@ -2118,28 +2170,28 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "لست مستخدما لهذا التطبيق." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2631,36 +2683,36 @@ msgstr "المسار الزمني العام، صفحة %d" msgid "Public timeline" msgstr "المسار الزمني العام" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "كن أول من يُرسل!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2673,7 +2725,7 @@ msgstr "" "الآن](%%action.register%%) لتشارك اشعاراتك مع أصدقائك وعائلتك وزملائك! " "([اقرأ المزيد](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3004,7 +3056,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "مكرر" @@ -3064,6 +3116,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "ستاتس نت" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3107,76 +3163,81 @@ msgstr "اذف إعدادت الموقع" msgid "You must be logged in to view an application." msgstr "يجب أن تكون مسجل الدخول لرؤية تطبيق." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "أيقونة" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "الاسم" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "المنظمة" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "إحصاءات" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "اسمح بالمسار" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3380,25 +3441,25 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3407,7 +3468,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3415,7 +3476,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "تكرار ل%s" @@ -4055,10 +4116,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -msgid "StatusNet" -msgstr "ستاتس نت" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4176,22 +4233,22 @@ msgstr "" msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" @@ -4468,11 +4525,11 @@ msgstr "ضبط المسارات" msgid "Sessions configuration" msgstr "ضبط التصميم" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4843,19 +4900,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." @@ -5416,23 +5473,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -5573,6 +5630,10 @@ msgstr "أأكرّر هذا الإشعار؟ّ" msgid "Repeat this notice" msgstr "كرّر هذا الإشعار" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5738,47 +5799,47 @@ msgstr "رسالة" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "قبل دقيقة تقريبًا" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "قبل ساعة تقريبًا" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "قبل سنة تقريبًا" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 75b04d3c3..6f859ec1f 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:19+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:07+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "لا صفحه كهذه" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -154,7 +154,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -376,8 +376,8 @@ msgstr "" msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -389,8 +389,8 @@ msgstr "الصفحه الرئيسيه ليست عنونًا صالحًا." msgid "Full name is too long (max 255 chars)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "" @@ -467,18 +467,23 @@ msgstr "مجموعات %s" msgid "groups on %s" msgstr "مجموعات %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "حجم غير صالح." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -489,74 +494,82 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "اسم/كلمه سر غير صحيحة!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "خطأ قاعده البيانات أثناء حذف المستخدم OAuth app" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "خطأ قاعده البيانات أثناء إدخال المستخدم OAuth app" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "الحساب" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "الاسم المستعار" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "كلمه السر" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "ارفض" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "اسمح" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -725,8 +738,8 @@ msgstr "الأصلي" msgid "Preview" msgstr "عاين" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "احذف" @@ -773,8 +786,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "لا" @@ -782,9 +796,9 @@ msgstr "لا" msgid "Do not block this user" msgstr "لا تمنع هذا المستخدم" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "نعم" @@ -888,6 +902,49 @@ msgstr "محادثة" msgid "Notices" msgstr "الإشعارات" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "لم يوجد رمز التأكيد." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "أنت لست مالك هذا التطبيق." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "لا تطبيق كهذا." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "لا تحذف هذا الإشعار" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "احذف هذا الإشعار" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -920,7 +977,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1060,7 +1117,7 @@ msgstr "هذا الشعار ليس مفضلًا!" msgid "Add to favorites" msgstr "أضف إلى المفضلات" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "لا مستند كهذا." @@ -1074,20 +1131,11 @@ msgstr "تطبيقات OAuth" msgid "You must be logged in to edit an application." msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "أنت لست مالك هذا التطبيق." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "لا تطبيق كهذا." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "استخدم النموذج ده علشان تعدل تطبيقك." @@ -1096,43 +1144,47 @@ msgstr "استخدم النموذج ده علشان تعدل تطبيقك." msgid "Name is required." msgstr "الاسم مطلوب." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "الاسم طويل جدا (الأقصى 255 حرفا)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "" + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "الوصف مطلوب." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "مسار المصدر ليس صحيحا." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "المنظمه طويله جدا (الأقصى 255 حرفا)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "لم يمكن تحديث التطبيق." @@ -1987,11 +2039,11 @@ msgstr "يجب أن تكون مسجل الدخول لتسجل تطبيقا." msgid "Use this form to register a new application." msgstr "استخدم هذا النموذج لتسجل تطبيقا جديدا." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "مش ممكن إنشاء التطبيق." @@ -2116,28 +2168,28 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "أنت لست مستخدما لهذا التطبيق." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2629,36 +2681,36 @@ msgstr "المسار الزمنى العام، صفحه %d" msgid "Public timeline" msgstr "المسار الزمنى العام" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "كن أول من يُرسل!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2671,7 +2723,7 @@ msgstr "" "الآن](%%action.register%%) لتشارك اشعاراتك مع أصدقائك وعائلتك وزملائك! " "([اقرأ المزيد](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3002,7 +3054,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصيه." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظه بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "مكرر" @@ -3062,6 +3114,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "ستاتس نت" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3105,76 +3161,81 @@ msgstr "اذف إعدادت الموقع" msgid "You must be logged in to view an application." msgstr "يجب أن تكون مسجل الدخول لرؤيه تطبيق." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "الاسم" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "المنظمة" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "إحصاءات" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "اسمح بالمسار" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3378,25 +3439,25 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3405,7 +3466,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3413,7 +3474,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "تكرارات %s" @@ -4053,10 +4114,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -msgid "StatusNet" -msgstr "ستاتس نت" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4174,22 +4231,22 @@ msgstr "" msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" @@ -4466,11 +4523,11 @@ msgstr "ضبط المسارات" msgid "Sessions configuration" msgstr "ضبط التصميم" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4841,19 +4898,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." @@ -5404,23 +5461,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -5561,6 +5618,10 @@ msgstr "كرر هذا الإشعار؟" msgid "Repeat this notice" msgstr "كرر هذا الإشعار" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5726,47 +5787,47 @@ msgstr "رسالة" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "قبل دقيقه تقريبًا" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "قبل ساعه تقريبًا" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "قبل سنه تقريبًا" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 513055266..0121a235c 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:22+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:10+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -96,7 +96,7 @@ msgstr "Няма такака страница." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -153,7 +153,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -385,8 +385,8 @@ msgstr "Опитайте друг псевдоним, този вече е за msgid "Not a valid nickname." msgstr "Неправилен псевдоним." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -398,8 +398,8 @@ msgstr "Адресът на личната страница не е правил msgid "Full name is too long (max 255 chars)." msgstr "Пълното име е твърде дълго (макс. 255 знака)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Описанието е твърде дълго (до %d символа)." @@ -476,18 +476,23 @@ msgstr "Групи на %s" msgid "groups on %s" msgstr "групи в %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Неправилен размер." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -498,76 +503,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Имаше проблем със сесията ви в сайта. Моля, опитайте отново!" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Неправилно име или парола." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Грешка в настройките на потребителя." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Грешка в базата от данни — отговор при вмъкването: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Неочаквано изпращане на форма." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Сметка" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Псевдоним" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Парола" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Всички" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -738,8 +751,8 @@ msgstr "Оригинал" msgid "Preview" msgstr "Преглед" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Изтриване" @@ -786,8 +799,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Не" @@ -795,9 +809,9 @@ msgstr "Не" msgid "Do not block this user" msgstr "Да не се блокира този потребител" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Да" @@ -904,6 +918,50 @@ msgstr "Разговор" msgid "Notices" msgstr "Бележки" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "За да редактирате група, трябва да сте влезли." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Бележката няма профил" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Не членувате в тази група." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Имаше проблем със сесията ви в сайта." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Няма такава бележка." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Да не се изтрива бележката" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Изтриване на бележката" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -936,7 +994,7 @@ msgstr "Наистина ли искате да изтриете тази бел msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -1081,7 +1139,7 @@ msgstr "Тази бележка не е отбелязана като любим msgid "Add to favorites" msgstr "Добавяне към любимите" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Няма такъв документ." @@ -1096,22 +1154,12 @@ msgstr "Други настройки" msgid "You must be logged in to edit an application." msgstr "За да редактирате група, трябва да сте влезли." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Не членувате в тази група." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Няма такава бележка." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Имаше проблем със сесията ви в сайта." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1122,47 +1170,52 @@ msgstr "Използвайте тази бланка за създаване н msgid "Name is required." msgstr "Същото като паролата по-горе. Задължително поле." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Пълното име е твърде дълго (макс. 255 знака)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Опитайте друг псевдоним, този вече е зает." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Описание" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Адресът на личната страница не е правилен URL." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Името на местоположението е твърде дълго (макс. 255 знака)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Грешка при обновяване на групата." @@ -2095,11 +2148,11 @@ msgstr "За да създавате група, трябва да сте вле msgid "Use this form to register a new application." msgstr "Използвайте тази бланка за създаване на нова група." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Грешка при отбелязване като любима." @@ -2231,29 +2284,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Не членувате в тази група." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2759,36 +2812,36 @@ msgstr "Общ поток, страница %d" msgid "Public timeline" msgstr "Общ поток" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Емисия на общия поток (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Емисия на общия поток (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Емисия на общия поток (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2797,7 +2850,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3155,7 +3208,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Повторено" @@ -3215,6 +3268,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Отговори до %1$s в %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Бележката е изтрита." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3261,80 +3319,85 @@ msgstr "Запазване настройките на сайта" msgid "You must be logged in to view an application." msgstr "За напуснете група, трябва да сте влезли." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Бележката няма профил" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Псевдоним" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Страниране" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Описание" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистики" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "Автор" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Наистина ли искате да изтриете тази бележка?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3534,25 +3597,25 @@ msgstr "Емисия с бележки на %s (Atom)" msgid "FOAF for %s" msgstr "FOAF за %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3561,7 +3624,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3569,7 +3632,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Отговори на %s" @@ -4245,11 +4308,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Бележката е изтрита." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4379,22 +4437,22 @@ msgstr "Забранено ви е да публикувате бележки в msgid "Problem saving notice." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Грешка в базата от данни — отговор при вмъкването: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" @@ -4681,11 +4739,11 @@ msgstr "Настройка на пътищата" msgid "Sessions configuration" msgstr "Настройка на оформлението" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5054,19 +5112,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Не е открит файл с настройки. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Влизане в сайта" @@ -5639,23 +5697,23 @@ msgstr "З" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Бележката е повторена." @@ -5801,6 +5859,10 @@ msgstr "Повтаряне на тази бележка" msgid "Repeat this notice" msgstr "Повтаряне на тази бележка" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -5974,47 +6036,47 @@ msgstr "Съобщение" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "преди няколко секунди" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "преди около минута" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "преди около %d минути" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "преди около час" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "преди около %d часа" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "преди около ден" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "преди около %d дни" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "преди около месец" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "преди около %d месеца" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "преди около година" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 2152e54c2..8be73131c 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:24+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:13+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "No existeix la pàgina." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -157,7 +157,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -395,8 +395,8 @@ msgstr "Aquest sobrenom ja existeix. Prova un altre. " msgid "Not a valid nickname." msgstr "Sobrenom no vàlid." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -408,8 +408,8 @@ msgstr "La pàgina personal no és un URL vàlid." msgid "Full name is too long (max 255 chars)." msgstr "El teu nom és massa llarg (màx. 255 caràcters)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La descripció és massa llarga (màx. %d caràcters)." @@ -486,18 +486,23 @@ msgstr "%s grups" msgid "groups on %s" msgstr "grups sobre %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Mida invàlida." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -510,77 +515,85 @@ msgstr "" "Sembla que hi ha hagut un problema amb la teva sessió. Prova-ho de nou, si " "us plau." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Nom d'usuari o contrasenya invàlids." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Error en configurar l'usuari." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Hashtag de l'error de la base de dades:%s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Enviament de formulari inesperat." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Compte" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Sobrenom" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Contrasenya" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "Disseny" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Tot" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -752,8 +765,8 @@ msgstr "Original" msgid "Preview" msgstr "Vista prèvia" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Suprimeix" @@ -802,8 +815,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -811,9 +825,9 @@ msgstr "No" msgid "Do not block this user" msgstr "No bloquis l'usuari" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sí" @@ -919,6 +933,50 @@ msgstr "Conversa" msgid "Notices" msgstr "Avisos" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Heu d'iniciar una sessió per editar un grup." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Avís sense perfil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "No sou un membre del grup." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Ha ocorregut algun problema amb la teva sessió." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "No existeix aquest avís." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "No es pot esborrar la notificació." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Eliminar aquesta nota" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -955,7 +1013,7 @@ msgstr "N'estàs segur que vols eliminar aquesta notificació?" msgid "Do not delete this notice" msgstr "No es pot esborrar la notificació." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Eliminar aquesta nota" @@ -1096,7 +1154,7 @@ msgstr "Aquesta notificació no és un favorit!" msgid "Add to favorites" msgstr "Afegeix als preferits" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "No existeix aquest document." @@ -1111,22 +1169,12 @@ msgstr "Altres opcions" msgid "You must be logged in to edit an application." msgstr "Heu d'iniciar una sessió per editar un grup." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "No sou un membre del grup." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "No existeix aquest avís." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Ha ocorregut algun problema amb la teva sessió." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1137,47 +1185,52 @@ msgstr "Utilitza aquest formulari per editar el grup." msgid "Name is required." msgstr "Igual a la contrasenya de dalt. Requerit." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "El teu nom és massa llarg (màx. 255 caràcters)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Aquest sobrenom ja existeix. Prova un altre. " + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Descripció" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "La pàgina personal no és un URL vàlid." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "La ubicació és massa llarga (màx. 255 caràcters)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "No s'ha pogut actualitzar el grup." @@ -2114,11 +2167,11 @@ msgstr "Has d'haver entrat per crear un grup." msgid "Use this form to register a new application." msgstr "Utilitza aquest formulari per crear un nou grup." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "No s'han pogut crear els àlies." @@ -2251,29 +2304,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "No ets membre d'aquest grup." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2786,19 +2839,19 @@ msgstr "Línia temporal pública, pàgina %d" msgid "Public timeline" msgstr "Línia temporal pública" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Flux de canal públic (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Flux de canal públic (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Flux de canal públic (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2807,11 +2860,11 @@ msgstr "" "Aquesta és la línia temporal pública de %%site.name%%, però ningú no hi ha " "enviat res encara." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Sigueu el primer en escriure-hi!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2819,7 +2872,7 @@ msgstr "" "Per què no [registreu un compte](%%action.register%%) i sou el primer en " "escriure-hi!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2828,7 +2881,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3197,7 +3250,7 @@ msgstr "No pots registrar-te si no estàs d'acord amb la llicència." msgid "You already repeated that notice." msgstr "Ja heu blocat l'usuari." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Repetit" @@ -3259,6 +3312,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respostes a %1$s el %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "S'ha suprimit l'estat." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3305,79 +3363,84 @@ msgstr "Desa els paràmetres del lloc" msgid "You must be logged in to view an application." msgstr "Has d'haver entrat per a poder marxar d'un grup." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Avís sense perfil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Nom" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Paginació" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Descripció" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estadístiques" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "Autoria" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "N'estàs segur que vols eliminar aquesta notificació?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3580,27 +3643,27 @@ msgstr "Feed d'avisos de %s" msgid "FOAF for %s" msgstr "Safata de sortida per %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "Aquesta és la línia temporal de %s i amics, però ningú hi ha enviat res " "encara." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3609,7 +3672,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3619,7 +3682,7 @@ msgstr "" "**%s** té un compte a %%%%site.name%%%%, un servei de [microblogging](http://" "ca.wikipedia.org/wiki/Microblogging) " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Repetició de %s" @@ -4298,11 +4361,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "S'ha suprimit l'estat." - #: actions/version.php:161 msgid "Contributors" msgstr "Col·laboració" @@ -4431,22 +4489,22 @@ msgstr "Ha estat bandejat de publicar notificacions en aquest lloc." msgid "Problem saving notice." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Error de BD en inserir resposta: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" @@ -4729,11 +4787,11 @@ msgstr "Configuració dels camins" msgid "Sessions configuration" msgstr "Configuració del disseny" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5102,19 +5160,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "No s'ha trobat cap fitxer de configuració. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Podeu voler executar l'instal·lador per a corregir-ho." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Vés a l'instal·lador." @@ -5687,23 +5745,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "en context" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Repetit per" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Notificació publicada" @@ -5849,6 +5907,10 @@ msgstr "Repeteix l'avís" msgid "Repeat this notice" msgstr "Repeteix l'avís" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6019,47 +6081,47 @@ msgstr "Missatge" msgid "Moderate" msgstr "Modera" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "fa pocs segons" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "fa un minut" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "fa %d minuts" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "fa una hora" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "fa %d hores" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "fa un dia" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "fa %d dies" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "fa un mes" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "fa %d mesos" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "fa un any" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 83985a640..73e7ca60a 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:27+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:16+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Žádné takové oznámení." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -157,7 +157,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -390,8 +390,8 @@ msgstr "Přezdívku již někdo používá. Zkuste jinou" msgid "Not a valid nickname." msgstr "Není platnou přezdívkou." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -403,8 +403,8 @@ msgstr "Stránka není platnou URL." msgid "Full name is too long (max 255 chars)." msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" @@ -484,18 +484,23 @@ msgstr "" msgid "groups on %s" msgstr "" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Neplatná velikost" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -506,77 +511,85 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Neplatné jméno nebo heslo" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Chyba nastavení uživatele" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Chyba v DB při vkládání odpovědi: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Nečekaná forma submission." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 #, fuzzy msgid "Account" msgstr "O nás" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Přezdívka" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Heslo" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "Vzhled" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -752,8 +765,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Odstranit" @@ -802,8 +815,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Ne" @@ -812,9 +826,9 @@ msgstr "Ne" msgid "Do not block this user" msgstr "Žádný takový uživatel." -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ano" @@ -923,6 +937,50 @@ msgstr "Umístění" msgid "Notices" msgstr "Sdělení" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Nelze aktualizovat uživatele" + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Sdělení nemá profil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Neodeslal jste nám profil" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Žádné takové oznámení." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Žádné takové oznámení." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Odstranit toto oznámení" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -956,7 +1014,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Žádné takové oznámení." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Odstranit toto oznámení" @@ -1104,7 +1162,7 @@ msgstr "" msgid "Add to favorites" msgstr "Přidat do oblíbených" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Žádný takový dokument." @@ -1118,22 +1176,12 @@ msgstr "Sdělení nemá profil" msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Neodeslal jste nám profil" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Žádné takové oznámení." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1142,47 +1190,52 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Přezdívku již někdo používá. Zkuste jinou" + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Odběry" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Stránka není platnou URL." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Nelze aktualizovat uživatele" @@ -2087,11 +2140,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Nelze uložin informace o obrázku" @@ -2220,29 +2273,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Neodeslal jste nám profil" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2761,39 +2814,39 @@ msgstr "Veřejné zprávy" msgid "Public timeline" msgstr "Veřejné zprávy" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Veřejný Stream Feed" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Veřejný Stream Feed" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Veřejný Stream Feed" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2802,7 +2855,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3147,7 +3200,7 @@ msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." msgid "You already repeated that notice." msgstr "Již jste přihlášen" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Vytvořit" @@ -3209,6 +3262,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Odpovědi na %s" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Obrázek nahrán" + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3254,80 +3312,84 @@ msgstr "Nastavení" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Sdělení nemá profil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Přezdívka" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Umístění" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 #, fuzzy msgid "Description" msgstr "Odběry" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiky" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3531,25 +3593,25 @@ msgstr "Feed sdělení pro %s" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3558,7 +3620,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3566,7 +3628,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Odpovědi na %s" @@ -4246,11 +4308,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Obrázek nahrán" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4374,22 +4431,22 @@ msgstr "" msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Chyba v DB při vkládání odpovědi: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4682,11 +4739,11 @@ msgstr "Potvrzení emailové adresy" msgid "Sessions configuration" msgstr "Potvrzení emailové adresy" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5062,20 +5119,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Žádný potvrzující kód." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5650,26 +5707,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "Žádný obsah!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Vytvořit" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 #, fuzzy msgid "Reply" msgstr "odpověď" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Sdělení" @@ -5816,6 +5873,10 @@ msgstr "Odstranit toto oznámení" msgid "Repeat this notice" msgstr "Odstranit toto oznámení" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5992,47 +6053,47 @@ msgstr "Zpráva" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "před pár sekundami" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "asi před minutou" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "asi před %d minutami" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "asi před hodinou" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "asi před %d hodinami" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "asi přede dnem" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "před %d dny" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "asi před měsícem" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "asi před %d mesíci" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "asi před rokem" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index d925f47e6..53e7646e5 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -12,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:30+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:19+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -29,9 +29,8 @@ msgid "Access" msgstr "Akzeptieren" #: actions/accessadminpanel.php:65 -#, fuzzy msgid "Site access settings" -msgstr "Site-Einstellungen speichern" +msgstr "Zugangseinstellungen speichern" #: actions/accessadminpanel.php:158 #, fuzzy @@ -103,7 +102,7 @@ msgstr "Seite nicht vorhanden" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -167,7 +166,7 @@ msgstr "" "posten](%%%%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit " "zu erregen." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -397,8 +396,8 @@ msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus." msgid "Not a valid nickname." msgstr "Ungültiger Nutzername." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -411,8 +410,8 @@ msgstr "" msgid "Full name is too long (max 255 chars)." msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." @@ -489,18 +488,23 @@ msgstr "%s Gruppen" msgid "groups on %s" msgstr "Gruppen von %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Ungültige Größe." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -511,76 +515,83 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." -#: actions/apioauthauthorize.php:146 -#, fuzzy +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Benutzername oder Passwort falsch." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Fehler bei den Nutzereinstellungen." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Datenbankfehler beim Einfügen des Hashtags: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Unerwartete Formulareingabe." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Nutzername" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Passwort" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Alle" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -753,8 +764,8 @@ msgstr "Original" msgid "Preview" msgstr "Vorschau" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Löschen" @@ -802,8 +813,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Nein" @@ -811,9 +823,9 @@ msgstr "Nein" msgid "Do not block this user" msgstr "Diesen Benutzer freigeben" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" @@ -918,6 +930,50 @@ msgstr "Unterhaltung" msgid "Notices" msgstr "Nachrichten" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Nachricht hat kein Profil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Du bist kein Mitglied dieser Gruppe." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Es gab ein Problem mit deinem Sessiontoken." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Unbekannte Nachricht." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Diese Nachricht nicht löschen" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Nachricht löschen" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -952,7 +1008,7 @@ msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -1094,7 +1150,7 @@ msgstr "Diese Nachricht ist kein Favorit!" msgid "Add to favorites" msgstr "Zu Favoriten hinzufügen" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Unbekanntes Dokument." @@ -1109,22 +1165,12 @@ msgstr "Sonstige Optionen" msgid "You must be logged in to edit an application." msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Du bist kein Mitglied dieser Gruppe." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Unbekannte Nachricht." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Es gab ein Problem mit deinem Sessiontoken." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1135,48 +1181,53 @@ msgstr "Benutze dieses Formular, um die Gruppe zu bearbeiten." msgid "Name is required." msgstr "Gleiches Passwort wie zuvor. Pflichteingabe." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Beschreibung" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "" "Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Der eingegebene Aufenthaltsort ist zu lang (maximal 255 Zeichen)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Konnte Gruppe nicht aktualisieren." @@ -2112,11 +2163,11 @@ msgstr "Du musst angemeldet sein, um eine Gruppe zu erstellen." msgid "Use this form to register a new application." msgstr "Benutzer dieses Formular, um eine neue Gruppe zu erstellen." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Konnte keinen Favoriten erstellen." @@ -2250,29 +2301,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Du bist kein Mitglied dieser Gruppe." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2787,36 +2838,36 @@ msgstr "Öffentliche Zeitleiste, Seite %d" msgid "Public timeline" msgstr "Öffentliche Zeitleiste" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Feed des öffentlichen Streams (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Feed des öffentlichen Streams (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Feed des öffentlichen Streams (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2825,7 +2876,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3193,7 +3244,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du hast diesen Benutzer bereits blockiert." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Erstellt" @@ -3260,6 +3311,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Antworten an %1$s auf %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Status gelöscht." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3306,80 +3362,85 @@ msgstr "Site-Einstellungen speichern" msgid "You must be logged in to view an application." msgstr "Du musst angemeldet sein, um aus einer Gruppe auszutreten." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Nachricht hat kein Profil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Nutzername" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Seitenerstellung" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Beschreibung" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiken" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "Autor" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3583,20 +3644,20 @@ msgstr "Feed der Nachrichten von %s (Atom)" msgid "FOAF for %s" msgstr "FOAF von %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "Dies ist die Zeitleiste für %s und Freunde aber bisher hat niemand etwas " "gepostet." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3606,7 +3667,7 @@ msgstr "" "posten](%%%%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit " "zu erregen." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3615,7 +3676,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3626,7 +3687,7 @@ msgstr "" "(http://de.wikipedia.org/wiki/Mikro-blogging) basierend auf der Freien " "Software [StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Antworten an %s" @@ -4317,11 +4378,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Status gelöscht." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4451,22 +4507,22 @@ msgstr "" msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Datenbankfehler beim Einfügen der Antwort: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" @@ -4753,11 +4809,11 @@ msgstr "SMS-Konfiguration" msgid "Sessions configuration" msgstr "SMS-Konfiguration" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5122,19 +5178,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Keine Konfigurationsdatei gefunden." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Ich habe an folgenden Stellen nach Konfigurationsdateien gesucht: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Auf der Seite anmelden" @@ -5768,24 +5824,24 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Erstellt" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Nachricht gelöscht." @@ -5933,6 +5989,10 @@ msgstr "Auf diese Nachricht antworten" msgid "Repeat this notice" msgstr "Auf diese Nachricht antworten" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6107,47 +6167,47 @@ msgstr "Nachricht" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "vor wenigen Sekunden" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "vor einer Minute" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "vor %d Minuten" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "vor einer Stunde" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "vor %d Stunden" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "vor einem Tag" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "vor %d Tagen" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "vor einem Monat" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "vor %d Monaten" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "vor einem Jahr" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 29420e44e..ae1aaed7d 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:33+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:22+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -96,7 +96,7 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -153,7 +153,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -384,8 +384,8 @@ msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμά msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -397,8 +397,8 @@ msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." msgid "Full name is too long (max 255 chars)." msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)." @@ -475,18 +475,23 @@ msgstr "" msgid "groups on %s" msgstr "ομάδες του χρήστη %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Μήνυμα" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -497,74 +502,82 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Λογαριασμός" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Ψευδώνυμο" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Κωδικός" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -735,8 +748,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Διαγραφή" @@ -785,8 +798,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Όχι" @@ -795,9 +809,9 @@ msgstr "Όχι" msgid "Do not block this user" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ναι" @@ -903,6 +917,50 @@ msgstr "Συζήτηση" msgid "Notices" msgstr "" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Αδύνατη η αποθήκευση του προφίλ." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Ομάδες με τα περισσότερα μέλη" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Δεν υπάρχει τέτοιο σελίδα." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Περιγράψτε την ομάδα ή το θέμα" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -937,7 +995,7 @@ msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυ msgid "Do not delete this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "" @@ -1081,7 +1139,7 @@ msgstr "" msgid "Add to favorites" msgstr "" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "" @@ -1095,22 +1153,12 @@ msgstr "Δεν υπάρχει τέτοιο σελίδα." msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Ομάδες με τα περισσότερα μέλη" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Δεν υπάρχει τέτοιο σελίδα." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1119,47 +1167,52 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Περιγραφή" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -2048,11 +2101,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -2178,29 +2231,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Δεν είστε μέλος καμίας ομάδας." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2713,37 +2766,37 @@ msgstr "" msgid "Public timeline" msgstr "" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Δημόσια ροή %s" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2752,7 +2805,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3107,7 +3160,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Δημιουργία" @@ -3169,6 +3222,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Η κατάσταση διαγράφεται." + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3212,78 +3270,83 @@ msgstr "Ρυθμίσεις OpenID" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Ψευδώνυμο" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Προσκλήσεις" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Περιγραφή" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυτό το μήνυμα;" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3485,25 +3548,25 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3512,7 +3575,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3520,7 +3583,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "" @@ -4176,11 +4239,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Η κατάσταση διαγράφεται." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4302,21 +4360,21 @@ msgstr "" msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Σφάλμα βάσης δεδομένων κατά την εισαγωγή απάντησης: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4596,11 +4654,11 @@ msgstr "Επιβεβαίωση διεύθυνσης email" msgid "Sessions configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4964,20 +5022,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5536,23 +5594,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Ρυθμίσεις OpenID" @@ -5697,6 +5755,10 @@ msgstr "Αδυναμία διαγραφής αυτού του μηνύματος msgid "Repeat this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5868,47 +5930,47 @@ msgstr "Μήνυμα" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index c3d5b7b7b..3c4095d0d 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:36+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:26+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -26,14 +26,12 @@ msgid "Access" msgstr "Access" #: actions/accessadminpanel.php:65 -#, fuzzy msgid "Site access settings" -msgstr "Save site settings" +msgstr "Site access settings" #: actions/accessadminpanel.php:158 -#, fuzzy msgid "Registration" -msgstr "Register" +msgstr "Registration" #: actions/accessadminpanel.php:161 msgid "Private" @@ -41,7 +39,7 @@ msgstr "Private" #: actions/accessadminpanel.php:163 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "Prohibit anonymous users (not logged in) from viewing site?" #: actions/accessadminpanel.php:167 msgid "Invite only" @@ -49,7 +47,7 @@ msgstr "Invite only" #: actions/accessadminpanel.php:169 msgid "Make registration invitation only." -msgstr "" +msgstr "Make registration invitation only." #: actions/accessadminpanel.php:173 msgid "Closed" @@ -57,7 +55,7 @@ msgstr "Closed" #: actions/accessadminpanel.php:175 msgid "Disable new registrations." -msgstr "" +msgstr "Disable new registrations." #: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 #: actions/emailsettings.php:195 actions/imsettings.php:163 @@ -72,9 +70,8 @@ msgid "Save" msgstr "Save" #: actions/accessadminpanel.php:189 -#, fuzzy msgid "Save access settings" -msgstr "Save site settings" +msgstr "Save access settings" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 #: actions/showfavorites.php:137 actions/tag.php:51 @@ -97,7 +94,7 @@ msgstr "No such page" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -159,7 +156,7 @@ msgstr "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -389,8 +386,8 @@ msgstr "Nickname already in use. Try another one." msgid "Not a valid nickname." msgstr "Not a valid nickname." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -402,8 +399,8 @@ msgstr "Homepage is not a valid URL." msgid "Full name is too long (max 255 chars)." msgstr "Full name is too long (max 255 chars)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Description is too long (max %d chars)" @@ -480,18 +477,22 @@ msgstr "%s groups" msgid "groups on %s" msgstr "groups on %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "No oauth_token parameter provided." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Invalid token." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -502,21 +503,19 @@ msgstr "Bad request." msgid "There was a problem with your session token. Try again, please." msgstr "There was a problem with your session token. Try again, please." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Invalid nickname / password!" -#: actions/apioauthauthorize.php:170 -#, fuzzy +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." -msgstr "DB error deleting OAuth app user." +msgstr "Database error deleting OAuth application user." -#: actions/apioauthauthorize.php:196 -#, fuzzy +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." -msgstr "DB error inserting OAuth app user." +msgstr "Database error inserting OAuth application user." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -525,53 +524,64 @@ msgstr "" "The request token %s has been authorised. Please exchange it for an access " "token." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." +msgstr "The request token %s has been denied and revoked." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Unexpected form submission." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" -msgstr "" +msgstr "An application would like to connect to your account" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" +msgstr "Allow or deny access" + +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." msgstr "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Account" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Nickname" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Password" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Deny" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Allow" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Allow or deny access to your account information." @@ -740,8 +750,8 @@ msgstr "Original" msgid "Preview" msgstr "Preview" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Delete" @@ -791,8 +801,9 @@ msgstr "" "unsubscribed from you, unable to subscribe to you in the future, and you " "will not be notified of any @-replies from them." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -800,9 +811,9 @@ msgstr "No" msgid "Do not block this user" msgstr "Do not block this user" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Yes" @@ -906,6 +917,47 @@ msgstr "Conversation" msgid "Notices" msgstr "Notices" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "You must be logged in to delete an application." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Application not found." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "You are not the owner of this application." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "There was a problem with your session token." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Delete application" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Do not delete this application" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Delete this application" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -940,7 +992,7 @@ msgstr "Are you sure you want to delete this notice?" msgid "Do not delete this notice" msgstr "Do not delete this notice" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Delete this notice" @@ -1045,14 +1097,12 @@ msgid "Change colours" msgstr "Change colours" #: actions/designadminpanel.php:510 lib/designsettings.php:191 -#, fuzzy msgid "Content" -msgstr "Connect" +msgstr "Content" #: actions/designadminpanel.php:523 lib/designsettings.php:204 -#, fuzzy msgid "Sidebar" -msgstr "Search" +msgstr "Sidebar" #: actions/designadminpanel.php:536 lib/designsettings.php:217 msgid "Text" @@ -1086,91 +1136,75 @@ msgstr "This notice is not a favourite!" msgid "Add to favorites" msgstr "Add to favourites" -#: actions/doc.php:155 -#, fuzzy, php-format +#: actions/doc.php:158 +#, php-format msgid "No such document \"%s\"" -msgstr "No such document." +msgstr "No such document \"%s\"" #: actions/editapplication.php:54 -#, fuzzy msgid "Edit Application" -msgstr "Other options" +msgstr "Edit Application" #: actions/editapplication.php:66 -#, fuzzy msgid "You must be logged in to edit an application." -msgstr "You must be logged in to create a group." +msgstr "You must be logged in to edit an application." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "You are not a member of this group." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 -#, fuzzy msgid "No such application." -msgstr "No such notice." - -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "There was a problem with your session token." +msgstr "No such application." #: actions/editapplication.php:161 -#, fuzzy msgid "Use this form to edit your application." -msgstr "Use this form to edit the group." +msgstr "Use this form to edit your application." #: actions/editapplication.php:177 actions/newapplication.php:159 -#, fuzzy msgid "Name is required." -msgstr "Same as password above. Required." +msgstr "Name is required." -#: actions/editapplication.php:180 actions/newapplication.php:162 -#, fuzzy +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." -msgstr "Full name is too long (max 255 chars)." +msgstr "Name is too long (max 255 chars)." -#: actions/editapplication.php:183 actions/newapplication.php:165 -#, fuzzy +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Name already in use. Try another one." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." -msgstr "Description" +msgstr "Description is required." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." -msgstr "" +msgstr "Source URL is too long." -#: actions/editapplication.php:197 actions/newapplication.php:182 -#, fuzzy +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." -msgstr "Homepage is not a valid URL." +msgstr "Source URL is not valid." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Organisation is required." -#: actions/editapplication.php:203 actions/newapplication.php:188 -#, fuzzy +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." -msgstr "Location is too long (max 255 chars)." +msgstr "Organisation is too long (max 255 chars)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "Organisation homepage is required." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." -msgstr "" +msgstr "Callback is too long." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." -msgstr "" +msgstr "Callback URL is not valid." -#: actions/editapplication.php:255 -#, fuzzy +#: actions/editapplication.php:258 msgid "Could not update application." -msgstr "Could not update group." +msgstr "Could not update application." #: actions/editgroup.php:56 #, php-format @@ -1183,9 +1217,8 @@ msgstr "You must be logged in to create a group." #: actions/editgroup.php:103 actions/editgroup.php:168 #: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 -#, fuzzy msgid "You must be an admin to edit the group." -msgstr "You must be an admin to edit the group" +msgstr "You must be an admin to edit the group." #: actions/editgroup.php:154 msgid "Use this form to edit the group." @@ -1453,29 +1486,25 @@ msgid "Featured users, page %d" msgstr "Featured users, page %d" #: actions/featured.php:99 -#, fuzzy, php-format +#, php-format msgid "A selection of some great users on %s" -msgstr "A selection of some of the great users on %s" +msgstr "A selection of some great users on %s" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "No notice." +msgstr "No notice ID." #: actions/file.php:38 -#, fuzzy msgid "No notice." msgstr "No notice." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "No such document." +msgstr "No attachments." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "No such document." +msgstr "No uploaded attachments." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -2110,11 +2139,11 @@ msgstr "You must be logged in to create a group." msgid "Use this form to register a new application." msgstr "Use this form to create a new group." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Could not create aliases" @@ -2248,29 +2277,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "You are not a member of that group." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "You have not authorised any applications to use your account." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2626,9 +2655,9 @@ msgid "Invalid notice content" msgstr "Invalid notice content" #: actions/postnotice.php:90 -#, fuzzy, php-format +#, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "Notice licence ‘%s’ is not compatible with site licence ‘%s’." +msgstr "Notice licence ‘1%$s’ is not compatible with site licence ‘%2$s’." #: actions/profilesettings.php:60 msgid "Profile settings" @@ -2782,39 +2811,39 @@ msgstr "Public timeline, page %d" msgid "Public timeline" msgstr "Public timeline" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Public Stream Feed" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Public Stream Feed" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Public Stream Feed" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2827,7 +2856,7 @@ msgstr "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2900,6 +2929,8 @@ msgid "" "If you have 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 have forgotten or lost your password, you can get a new one sent to " +"the e-mail address you have stored in your account." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " @@ -2911,7 +2942,7 @@ msgstr "" #: actions/recoverpassword.php:191 msgid "Nickname or email address" -msgstr "" +msgstr "Nickname or e-mail address" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3072,7 +3103,7 @@ msgstr "" "number." #: actions/register.php:538 -#, fuzzy, php-format +#, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " "want to...\n" @@ -3089,18 +3120,18 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may " +"Congratulations, %1$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" +"* Go to [your profile](%2$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" +"share your interests. \n" "* Update your [profile settings](%%%%action.profilesettings%%%%) to tell " -"others more about you. \n" +"others more about you. \n" "* Read over the [online docs](%%%%doc.help%%%%) for features you may have " -"missed. \n" +"missed. \n" "\n" "Thanks for signing up and we hope you enjoy using this service." @@ -3191,7 +3222,7 @@ msgstr "You can't repeat your own notice." msgid "You already repeated that notice." msgstr "You have already blocked this user." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Created" @@ -3256,6 +3287,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Replies to %1$s on %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Status deleted." + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "You cannot sandbox users on this site." @@ -3300,79 +3336,84 @@ msgstr "Save site settings" msgid "You must be logged in to view an application." msgstr "You must be logged in to leave a group." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Notice has no profile" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Nickname" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Pagination" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Description" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistics" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" -msgstr "" +msgstr "Authorise URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Are you sure you want to delete this notice?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3402,6 +3443,8 @@ msgid "" "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." msgstr "" +"You haven't chosen any favourite notices yet. Click the fave button on " +"notices you like to bookmark them for later or shed a spotlight on them." #: actions/showfavorites.php:207 #, php-format @@ -3409,6 +3452,8 @@ msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " "they would add to their favorites :)" msgstr "" +"%s hasn't added any notices to his favourites yet. Post something " +"interesting they would add to their favourites :)" #: actions/showfavorites.php:211 #, php-format @@ -3417,6 +3462,9 @@ msgid "" "account](%%%%action.register%%%%) and then post something interesting they " "would add to their favorites :)" msgstr "" +"%s hasn't added any notices to his favourites yet. Why not [register an " +"account](%%%%action.register%%%%) and then post something interesting they " +"would add to their favourites :)" #: actions/showfavorites.php:242 msgid "This is a way to share what you like." @@ -3501,6 +3549,11 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[StatusNet](http://status.net/) 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%%%%))" #: actions/showgroup.php:454 #, fuzzy, php-format @@ -3575,19 +3628,19 @@ msgstr "Notice feed for %s" msgid "FOAF for %s" msgstr "FOAF for %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "This is the timeline for %s and friends but no one has posted anything yet." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3596,7 +3649,7 @@ msgstr "" "You can try to [nudge %s](../%s) from his profile or [post something to his " "or her attention](%%%%action.newnotice%%%%?status_textarea=%s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3658,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3616,7 +3669,7 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Replies to %s" @@ -3663,7 +3716,7 @@ msgstr "" #: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." -msgstr "" +msgstr "Minimum text limit is 140 characters." #: actions/siteadminpanel.php:189 msgid "Dupe limit must 1 or more seconds." @@ -3698,9 +3751,8 @@ msgid "URL used for credits link in footer of each page" msgstr "" #: actions/siteadminpanel.php:257 -#, fuzzy msgid "Contact email address for your site" -msgstr "New e-mail address for posting to %s" +msgstr "Contact e-mail address for your site" #: actions/siteadminpanel.php:263 #, fuzzy @@ -4300,11 +4352,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Status deleted." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4316,6 +4363,10 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"StatusNet is free software: you can redistribute it and/or modify it under " +"the terms of the GNU Affero General Public Licence as published by the Free " +"Software Foundation, either version 3 of the Licence, or (at your option) " +"any later version. " #: actions/version.php:174 msgid "" @@ -4324,6 +4375,10 @@ msgid "" "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details. " msgstr "" +"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 Licence " +"for more details. " #: actions/version.php:180 #, php-format @@ -4331,6 +4386,8 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" +"You should have received a copy of the GNU Affero General Public Licence " +"along with this program. If not, see %s." #: actions/version.php:189 msgid "Plugins" @@ -4431,22 +4488,22 @@ msgstr "You are banned from posting notices on this site." msgid "Problem saving notice." msgstr "Problem saving notice." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problem saving notice." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "DB error inserting reply: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" @@ -4732,11 +4789,11 @@ msgstr "SMS confirmation" msgid "Sessions configuration" msgstr "Design configuration" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4771,12 +4828,11 @@ msgstr "URL of the homepage or blog of the group or topic" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" -msgstr "" +msgstr "Organisation responsible for this application" #: lib/applicationeditform.php:230 -#, fuzzy msgid "URL for the homepage of the organization" -msgstr "URL of the homepage or blog of the group or topic" +msgstr "URL for the homepage of the organisation" #: lib/applicationeditform.php:236 msgid "URL to redirect to after authentication" @@ -5105,19 +5161,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "No configuration file found" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Go to the installer." @@ -5697,24 +5753,24 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "in context" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Created" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Notice deleted." @@ -5860,6 +5916,10 @@ msgstr "Reply to this notice" msgid "Repeat this notice" msgstr "Reply to this notice" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Sandbox" @@ -6028,47 +6088,47 @@ msgstr "Message" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "a few seconds ago" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "about a minute ago" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "about %d minutes ago" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "about an hour ago" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "about %d hours ago" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "about a day ago" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "about %d days ago" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "about a month ago" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "about %d months ago" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "about a year ago" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 387c0868c..1826206ca 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -12,58 +12,52 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:39+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:29+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 -#, fuzzy msgid "Access" -msgstr "Aceptar" +msgstr "Acceder" #: actions/accessadminpanel.php:65 -#, fuzzy msgid "Site access settings" -msgstr "Configuración de Avatar" +msgstr "Configuración de acceso de la web" #: actions/accessadminpanel.php:158 -#, fuzzy msgid "Registration" -msgstr "Registrarse" +msgstr "Registro" #: actions/accessadminpanel.php:161 -#, fuzzy msgid "Private" -msgstr "Privacidad" +msgstr "Privado" #: actions/accessadminpanel.php:163 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "¿Prohibir a los usuarios anónimos (no conectados) ver el sitio ?" #: actions/accessadminpanel.php:167 -#, fuzzy msgid "Invite only" -msgstr "Invitar" +msgstr "Invitar sólo" #: actions/accessadminpanel.php:169 msgid "Make registration invitation only." -msgstr "" +msgstr "Haz que el registro sea sólo con invitaciones." #: actions/accessadminpanel.php:173 -#, fuzzy msgid "Closed" -msgstr "Bloqueado" +msgstr "Cerrado" #: actions/accessadminpanel.php:175 msgid "Disable new registrations." -msgstr "" +msgstr "Inhabilitar nuevos registros." #: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 #: actions/emailsettings.php:195 actions/imsettings.php:163 @@ -78,9 +72,8 @@ msgid "Save" msgstr "Guardar" #: actions/accessadminpanel.php:189 -#, fuzzy msgid "Save access settings" -msgstr "Configuración de Avatar" +msgstr "Guardar la configuración de acceso" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 #: actions/showfavorites.php:137 actions/tag.php:51 @@ -103,7 +96,7 @@ msgstr "No existe tal página" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -114,9 +107,9 @@ msgid "No such user." msgstr "No existe ese usuario." #: actions/all.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s y amigos, página %d" +msgstr "%1$s y amigos, página %2$d" #: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 @@ -160,7 +153,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -309,9 +302,9 @@ msgid "No message text!" msgstr "¡Sin texto de mensaje!" #: actions/apidirectmessagenew.php:135 actions/newmessage.php:150 -#, fuzzy, php-format +#, php-format msgid "That's too long. Max message size is %d chars." -msgstr "Demasiado largo. Máximo 140 caracteres. " +msgstr "Demasiado largo. Tamaño máx. de los mensajes es %d caracteres." #: actions/apidirectmessagenew.php:146 msgid "Recipient user not found." @@ -391,8 +384,8 @@ msgstr "El apodo ya existe. Prueba otro." msgid "Not a valid nickname." msgstr "Apodo no válido" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -404,8 +397,8 @@ msgstr "La página de inicio no es un URL válido." msgid "Full name is too long (max 255 chars)." msgstr "Tu nombre es demasiado largo (max. 255 carac.)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La descripción es demasiado larga (máx. %d caracteres)." @@ -442,9 +435,8 @@ msgstr "" #: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 #: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 #: actions/apigroupshow.php:82 actions/apitimelinegroup.php:91 -#, fuzzy msgid "Group not found!" -msgstr "¡No se encontró el método de la API!" +msgstr "¡No se ha encontrado el grupo!" #: actions/apigroupjoin.php:110 actions/joingroup.php:90 msgid "You are already a member of that group." @@ -452,7 +444,7 @@ msgstr "Ya eres miembro de ese grupo" #: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "Has sido bloqueado de ese grupo por el administrador." #: actions/apigroupjoin.php:138 actions/joingroup.php:124 #, fuzzy, php-format @@ -483,18 +475,23 @@ msgstr "Grupos %s" msgid "groups on %s" msgstr "Grupos en %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Tamaño inválido." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -506,78 +503,85 @@ 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/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Usuario o contraseña inválidos." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Error al configurar el usuario." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Error de la BD al insertar la etiqueta clave: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Envío de formulario inesperado." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" +msgstr "Permitir o denegar el acceso" + +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Cuenta" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Apodo" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Contraseña" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" -msgstr "" +msgstr "Denegar" -#: actions/apioauthauthorize.php:344 -#, fuzzy +#: actions/apioauthauthorize.php:334 msgid "Allow" -msgstr "Todo" +msgstr "Permitir" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "" +msgstr "Permitir o denegar el acceso a la información de tu cuenta." #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." @@ -593,14 +597,12 @@ msgid "No such notice." msgstr "No existe ese aviso." #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "No se puede activar notificación." +msgstr "No puedes repetir tus propias notificaciones." #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "Borrar este aviso" +msgstr "Esta notificación ya se ha repetido." #: actions/apistatusesshow.php:138 msgid "Status deleted." @@ -748,8 +750,8 @@ msgstr "Original" msgid "Preview" msgstr "Vista previa" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Borrar" @@ -798,8 +800,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -808,9 +811,9 @@ msgstr "No" msgid "Do not block this user" msgstr "Desbloquear este usuario" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sí" @@ -916,6 +919,50 @@ msgstr "Conversación" msgid "Notices" msgstr "Avisos" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Debes estar conectado para editar un grupo." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Aviso sin perfil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "No eres miembro de este grupo." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Hubo problemas con tu clave de sesión." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "No existe ese aviso." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "No se puede eliminar este aviso." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Borrar este aviso" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -952,7 +999,7 @@ msgstr "¿Estás seguro de que quieres eliminar este aviso?" msgid "Do not delete this notice" msgstr "No se puede eliminar este aviso." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Borrar este aviso" @@ -1099,7 +1146,7 @@ msgstr "¡Este aviso no es un favorito!" msgid "Add to favorites" msgstr "Agregar a favoritos" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "No existe ese documento." @@ -1114,22 +1161,12 @@ msgstr "Otras opciones" msgid "You must be logged in to edit an application." msgstr "Debes estar conectado para editar un grupo." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "No eres miembro de este grupo." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "No existe ese aviso." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Hubo problemas con tu clave de sesión." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1140,47 +1177,52 @@ msgstr "Usa este formulario para editar el grupo." msgid "Name is required." msgstr "Igual a la contraseña de arriba. Requerida" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Tu nombre es demasiado largo (max. 255 carac.)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "El apodo ya existe. Prueba otro." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Descripción" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "La página de inicio no es un URL válido." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "La ubicación es demasiado larga (máx. 255 caracteres)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "No se pudo actualizar el grupo." @@ -2126,11 +2168,11 @@ msgstr "Debes estar conectado para crear un grupo" msgid "Use this form to register a new application." msgstr "Usa este formulario para crear un grupo nuevo." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "No se pudo crear favorito." @@ -2265,29 +2307,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "No eres miembro de ese grupo" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2814,39 +2856,39 @@ msgstr "Línea de tiempo pública, página %d" msgid "Public timeline" msgstr "Línea temporal pública" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Feed del flujo público" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Feed del flujo público" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Feed del flujo público" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2855,7 +2897,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3228,7 +3270,7 @@ msgstr "No puedes registrarte si no estás de acuerdo con la licencia." msgid "You already repeated that notice." msgstr "Ya has bloqueado este usuario." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -3290,6 +3332,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respuestas a %1$s en %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Status borrado." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3336,79 +3383,84 @@ msgstr "Configuración de Avatar" msgid "You must be logged in to view an application." msgstr "Debes estar conectado para dejar un grupo." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Aviso sin perfil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Apodo" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Paginación" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Descripción" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estadísticas" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "¿Estás seguro de que quieres eliminar este aviso?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3615,25 +3667,25 @@ msgstr "Feed de avisos de %s" msgid "FOAF for %s" msgstr "Bandeja de salida para %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3642,7 +3694,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3652,7 +3704,7 @@ msgstr "" "**%s** tiene una cuenta en %%%%site.name%%%%, un servicio [micro-blogging]" "(http://en.wikipedia.org/wiki/Micro-blogging) " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Respuestas a %s" @@ -4346,11 +4398,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Status borrado." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4480,22 +4527,22 @@ msgstr "Tienes prohibido publicar avisos en este sitio." msgid "Problem saving notice." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Error de BD al insertar respuesta: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" @@ -4782,11 +4829,11 @@ msgstr "SMS confirmación" msgid "Sessions configuration" msgstr "SMS confirmación" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5156,19 +5203,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Ningún archivo de configuración encontrado. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir al instalador." @@ -5746,24 +5793,24 @@ msgstr "" msgid "at" msgstr "en" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Responder este aviso." -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Aviso borrado" @@ -5910,6 +5957,10 @@ msgstr "Responder este aviso." msgid "Repeat this notice" msgstr "Responder este aviso." +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6084,47 +6135,47 @@ msgstr "Mensaje" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "hace unos segundos" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "hace un minuto" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "hace %d minutos" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "hace una hora" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "hace %d horas" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "hace un día" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "hace %d días" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "hace un mes" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "hace %d meses" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "hace un año" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index a6810ee5b..c5856c88d 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:45+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:36+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 @@ -99,7 +99,7 @@ msgstr "چنین صفحهای وجود ندارد" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -160,7 +160,7 @@ msgstr "" "اولین کسی باشید که در [این موضوع](%%%%action.newnotice%%%%?status_textarea=%" "s) پیام میفرستد." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -388,8 +388,8 @@ msgstr "این لقب در حال حاضر ثبت شده است. لطفا یکی msgid "Not a valid nickname." msgstr "لقب نا معتبر." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -401,8 +401,8 @@ msgstr "برگهٔ آغازین یک نشانی معتبر نیست." msgid "Full name is too long (max 255 chars)." msgstr "نام کامل طولانی است (۲۵۵ حرف در حالت بیشینه(." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "توصیف بسیار زیاد است (حداکثر %d حرف)." @@ -479,18 +479,23 @@ msgstr "%s گروه" msgid "groups on %s" msgstr "گروهها در %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "اندازهی نادرست" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -501,75 +506,83 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "مشکلی در دریافت جلسهی شما وجود دارد. لطفا بعدا سعی کنید." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "نام کاربری یا کلمه ی عبور نا معتبر." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "ارسال غیر قابل انتظار فرم." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "حساب کاربری" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "نام کاربری" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "گذرواژه" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "طرح" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "همه" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -739,8 +752,8 @@ msgstr "اصلی" msgid "Preview" msgstr "پیشنمایش" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "حذف" @@ -791,8 +804,9 @@ msgstr "" "دنبال کند. همچنین دیگر شما از پیامهایی که در آن از شما یاد میکند با خبر " "نخواهید شد" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "خیر" @@ -800,9 +814,9 @@ msgstr "خیر" msgid "Do not block this user" msgstr "کاربر را مسدود نکن" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "بله" @@ -907,6 +921,53 @@ msgstr "مکالمه" msgid "Notices" msgstr "پیامها" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "برای ویرایش گروه باید وارد شوید." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "ابن خبر ذخیره ای ندارد ." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "شما یک عضو این گروه نیستید." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "چنین پیامی وجود ندارد." + +#: actions/deleteapplication.php:149 +#, fuzzy +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"آیا مطمئن هستید که میخواهید این کاربر را پاک کنید؟ با این کار تمام اطلاعات " +"پاک و بدون برگشت خواهند بود." + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "این پیام را پاک نکن" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "این پیام را پاک کن" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -941,7 +1002,7 @@ msgstr "آیا اطمینان دارید که میخواهید این پیا msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -1085,7 +1146,7 @@ msgstr "این آگهی یک آگهی برگزیده نیست!" msgid "Add to favorites" msgstr "افزودن به علاقهمندیها" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "چنین سندی وجود ندارد." @@ -1100,22 +1161,12 @@ msgstr "انتخابات دیگر" msgid "You must be logged in to edit an application." msgstr "برای ویرایش گروه باید وارد شوید." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "شما یک عضو این گروه نیستید." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "چنین پیامی وجود ندارد." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1125,46 +1176,51 @@ msgstr "از این روش برای ویرایش گروه استفاده کنی msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "نام کامل طولانی است (۲۵۵ حرف در حالت بیشینه(." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "این لقب در حال حاضر ثبت شده است. لطفا یکی دیگر انتخاب کنید." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "برگهٔ آغازین یک نشانی معتبر نیست." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "مکان طولانی است (حداکثر ۲۵۵ حرف)" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "نمیتوان گروه را بههنگامسازی کرد." @@ -2060,11 +2116,11 @@ msgstr "برای ساخت یک گروه، باید وارد شده باشید." msgid "Use this form to register a new application." msgstr "از این فرم برای ساختن یک گروه جدید استفاده کنید" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "نمیتوان نامهای مستعار را ساخت." @@ -2200,29 +2256,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "شما یک کاربر این گروه نیستید." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2726,36 +2782,36 @@ msgstr "خط زمانی عمومی، صفحهی %d" msgid "Public timeline" msgstr "خط زمانی عمومی" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "اولین کسی باشید که پیام میفرستد!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "چرا [ثبت نام](%%action.register%%) نمیکنید و اولین پیام را نمیفرستید؟" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2764,7 +2820,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3101,7 +3157,7 @@ msgstr "شما نمی توانید آگهی خودتان را تکرار کنی msgid "You already repeated that notice." msgstr "شما قبلا آن آگهی را تکرار کردید." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "" @@ -3163,6 +3219,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "وضعیت حذف شد." + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3207,80 +3268,85 @@ msgstr "" msgid "You must be logged in to view an application." msgstr "برای ترک یک گروه، شما باید وارد شده باشید." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "ابن خبر ذخیره ای ندارد ." -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "نام کاربری" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "صفحه بندى" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "آمار" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "مؤلف" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "آیا اطمینان دارید که میخواهید این پیام را پاک کنید؟" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3480,12 +3546,12 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "این خطزمانی %s و دوستانش است، اما هیچیک تاکنون چیزی پست نکردهاند." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3493,7 +3559,7 @@ msgstr "" "اخیرا چیز جالب توجه ای دیده اید؟ شما تا کنون آگهی ارسال نکرده اید، الان می " "تواند زمان خوبی برای شروع باشد :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3502,7 +3568,7 @@ msgstr "" "اولین کسی باشید که در [این موضوع](%%%%action.newnotice%%%%?status_textarea=%" "s) پیام میفرستد." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3511,7 +3577,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3519,7 +3585,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "" @@ -4166,11 +4232,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "وضعیت حذف شد." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4295,22 +4356,22 @@ msgstr "شما از فرستادن پست در این سایت مردود شدی msgid "Problem saving notice." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "خوش امدید به %1$s , @%2$s!" @@ -4583,11 +4644,11 @@ msgstr "" msgid "Sessions configuration" msgstr "پیکره بندی اصلی سایت" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4951,19 +5012,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "شما ممکن است بخواهید نصاب را اجرا کنید تا این را تعمیر کند." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "برو به نصاب." @@ -5526,23 +5587,23 @@ msgstr "" msgid "at" msgstr "در" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "به این آگهی جواب دهید" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "جواب دادن" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "آگهی تکرار شد" @@ -5684,6 +5745,10 @@ msgstr "به این آگهی جواب دهید" msgid "Repeat this notice" msgstr "" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5849,47 +5914,47 @@ msgstr "پیام" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "چند ثانیه پیش" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "حدود یک دقیقه پیش" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "حدود %d دقیقه پیش" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "حدود یک ساعت پیش" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "حدود %d ساعت پیش" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "حدود یک روز پیش" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "حدود %d روز پیش" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "حدود یک ماه پیش" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "حدود %d ماه پیش" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "حدود یک سال پیش" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 57cd6956e..c013107f4 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:42+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:32+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Sivua ei ole." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -164,7 +164,7 @@ msgstr "" "Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." "newnotice%%%%?status_textarea=%s)!" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -400,8 +400,8 @@ msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." msgid "Not a valid nickname." msgstr "Tuo ei ole kelvollinen tunnus." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -413,8 +413,8 @@ msgstr "Kotisivun verkko-osoite ei ole toimiva." msgid "Full name is too long (max 255 chars)." msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "kuvaus on liian pitkä (max 140 merkkiä)." @@ -491,18 +491,23 @@ msgstr "Käyttäjän %s ryhmät" msgid "groups on %s" msgstr "Ryhmän toiminnot" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Koko ei kelpaa." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -515,77 +520,85 @@ msgstr "" "Istuntosi avaimen kanssa oli ongelmia. Olisitko ystävällinen ja kokeilisit " "uudelleen." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Käyttäjätunnus tai salasana ei kelpaa." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Virhe tapahtui käyttäjän asettamisessa." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Odottamaton lomakkeen lähetys." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Käyttäjätili" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Tunnus" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Salasana" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "Ulkoasu" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Kaikki" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -757,8 +770,8 @@ msgstr "Alkuperäinen" msgid "Preview" msgstr "Esikatselu" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Poista" @@ -806,8 +819,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Ei" @@ -815,9 +829,9 @@ msgstr "Ei" msgid "Do not block this user" msgstr "Älä estä tätä käyttäjää" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Kyllä" @@ -923,6 +937,51 @@ msgstr "Keskustelu" msgid "Notices" msgstr "Päivitykset" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "" +"Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Päivitykselle ei ole profiilia" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Sinä et kuulu tähän ryhmään." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Istuntoavaimesi kanssa oli ongelma." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Päivitystä ei ole." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Älä poista tätä päivitystä" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Poista tämä päivitys" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -957,7 +1016,7 @@ msgstr "Oletko varma että haluat poistaa tämän päivityksen?" msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -1106,7 +1165,7 @@ msgstr "Tämä päivitys ei ole suosikki!" msgid "Add to favorites" msgstr "Lisää suosikkeihin" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Dokumenttia ei ole." @@ -1122,22 +1181,12 @@ msgid "You must be logged in to edit an application." msgstr "" "Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Sinä et kuulu tähän ryhmään." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Päivitystä ei ole." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Istuntoavaimesi kanssa oli ongelma." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1148,47 +1197,52 @@ msgstr "Käytä tätä lomaketta muokataksesi ryhmää." msgid "Name is required." msgstr "Sama kuin ylläoleva salasana. Pakollinen." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Kuvaus" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Kotisivun verkko-osoite ei ole toimiva." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Ei voitu päivittää ryhmää." @@ -2126,11 +2180,11 @@ msgstr "Sinun pitää olla kirjautunut sisään jotta voit luoda ryhmän." msgid "Use this form to register a new application." msgstr "Käytä tätä lomaketta luodaksesi ryhmän." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Ei voitu lisätä aliasta." @@ -2265,29 +2319,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2812,36 +2866,36 @@ msgstr "Julkinen aikajana, sivu %d" msgid "Public timeline" msgstr "Julkinen aikajana" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Julkinen syöte (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Julkisen Aikajanan Syöte (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Julkinen syöte (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Ole ensimmäinen joka lähettää päivityksen!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2850,7 +2904,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3223,7 +3277,7 @@ msgstr "Et voi rekisteröityä, jos et hyväksy lisenssiehtoja." msgid "You already repeated that notice." msgstr "Sinä olet jo estänyt tämän käyttäjän." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -3289,6 +3343,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Päivitys poistettu." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3336,79 +3395,84 @@ msgstr "Profiilikuva-asetukset" msgid "You must be logged in to view an application." msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Päivitykselle ei ole profiilia" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Tunnus" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Sivutus" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Kuvaus" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Tilastot" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Oletko varma että haluat poistaa tämän päivityksen?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3610,20 +3674,20 @@ msgstr "Päivityksien syöte käyttäjälle %s" msgid "FOAF for %s" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "Tämä on käyttäjän %s aikajana, mutta %s ei ole lähettänyt vielä yhtään " "päivitystä." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3632,7 +3696,7 @@ msgstr "" "Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." "newnotice%%%%?status_textarea=%s)!" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3641,7 +3705,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3651,7 +3715,7 @@ 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/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Vastaukset käyttäjälle %s" @@ -4338,11 +4402,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Päivitys poistettu." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4470,22 +4529,22 @@ msgstr "Päivityksesi tähän palveluun on estetty." msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Tietokantavirhe tallennettaessa vastausta: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" @@ -4775,11 +4834,11 @@ msgstr "SMS vahvistus" msgid "Sessions configuration" msgstr "SMS vahvistus" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5151,20 +5210,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Varmistuskoodia ei ole annettu." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Kirjaudu sisään palveluun" @@ -5749,25 +5808,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." @@ -5916,6 +5975,10 @@ msgstr "Vastaa tähän päivitykseen" msgid "Repeat this notice" msgstr "Vastaa tähän päivitykseen" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6093,47 +6156,47 @@ msgstr "Viesti" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "muutama sekunti sitten" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "noin minuutti sitten" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "noin %d minuuttia sitten" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "noin tunti sitten" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "noin %d tuntia sitten" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "noin päivä sitten" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "noin %d päivää sitten" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "noin kuukausi sitten" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "noin %d kuukautta sitten" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "noin vuosi sitten" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 95aea43db..7a25b9ef2 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:48+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:38+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -31,7 +31,7 @@ msgstr "Accès" #: actions/accessadminpanel.php:65 msgid "Site access settings" -msgstr "Paramètres d'accès au site" +msgstr "Paramètres d’accès au site" #: actions/accessadminpanel.php:158 msgid "Registration" @@ -51,7 +51,7 @@ msgstr "Sur invitation uniquement" #: actions/accessadminpanel.php:169 msgid "Make registration invitation only." -msgstr "Rendre l’inscription sur invitation seulement." +msgstr "Autoriser l’inscription sur invitation seulement." #: actions/accessadminpanel.php:173 msgid "Closed" @@ -75,7 +75,7 @@ msgstr "Enregistrer" #: actions/accessadminpanel.php:189 msgid "Save access settings" -msgstr "Sauvegarder les paramètres d'accès" +msgstr "Sauvegarder les paramètres d’accès" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 #: actions/showfavorites.php:137 actions/tag.php:51 @@ -98,7 +98,7 @@ msgstr "Page non trouvée" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -111,7 +111,7 @@ msgstr "Utilisateur non trouvé." #: actions/all.php:84 #, php-format msgid "%1$s and friends, page %2$d" -msgstr "!%1$s et amis, page %2$d" +msgstr "%1$s et ses amis, page %2$d" #: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 @@ -162,7 +162,7 @@ msgstr "" "profil ou [poster quelque chose à son intention](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -394,8 +394,8 @@ msgstr "Pseudo déjà utilisé. Essayez-en un autre." msgid "Not a valid nickname." msgstr "Pseudo invalide." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -407,8 +407,8 @@ msgstr "L’adresse du site personnel n’est pas un URL valide. " msgid "Full name is too long (max 255 chars)." msgstr "Nom complet trop long (maximum de 255 caractères)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La description est trop longue (%d caractères maximum)." @@ -463,7 +463,7 @@ msgstr "Impossible de joindre l’utilisateur %1$s au groupe %2$s." #: actions/apigroupleave.php:114 msgid "You are not a member of this group." -msgstr "Vous n'êtes pas membre de ce groupe." +msgstr "Vous n’êtes pas membre de ce groupe." #: actions/apigroupleave.php:124 actions/leavegroup.php:119 #, php-format @@ -485,18 +485,22 @@ msgstr "Groupes de %s" msgid "groups on %s" msgstr "groupes sur %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Requête invalide." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Paramètre oauth_token non fourni." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Jeton incorrect." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -509,80 +513,92 @@ msgstr "" "Un problème est survenu avec votre jeton de session. Veuillez essayer à " "nouveau." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" -msgstr "Identifiant ou mot de passe incorrect !" +msgstr "Pseudo ou mot de passe incorrect !" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "" -"Erreur de la base de données lors de la suppression de l'utilisateur de " -"l'application OAuth." +"Erreur de la base de données lors de la suppression de l’utilisateur de " +"l’application OAuth." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "" -"Erreur de base de donnée en insérant l'utilisateur de l'application OAuth" +"Erreur de base de donnée en insérant l’utilisateur de l’application OAuth" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -"Le jeton de connexion %s a été autorisé. Merci de l'échanger contre un jeton " -"d'accès." +"Le jeton de connexion %s a été autorisé. Merci de l’échanger contre un jeton " +"d’accès." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Le jeton de connexion %s a été refusé." +msgid "The request token %s has been denied and revoked." +msgstr "Le jeton de connexion %s a été refusé et révoqué." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Soumission de formulaire inattendue." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -"Une application vous demande l'autorisation de se connecter à votre compte" +"Une application vous demande l’autorisation de se connecter à votre compte" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" -msgstr "Autoriser ou refuser l'accès" +msgstr "Autoriser ou refuser l’accès" + +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"L’application <strong>%1$s</strong> de <strong>%2$s</strong> voudrait " +"pouvoir <strong>%3$s</strong> les données de votre compte %4$s. Vous ne " +"devriez donner l’accès à votre compte %4$s qu’aux tiers à qui vous faites " +"confiance." -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Compte" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Pseudo" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Mot de passe" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Refuser" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Autoriser" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "Autoriser ou refuser l'accès à votre compte." +msgstr "Autoriser ou refuser l’accès à votre compte." #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." @@ -753,8 +769,8 @@ msgstr "Image originale" msgid "Preview" msgstr "Aperçu" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Supprimer" @@ -800,12 +816,13 @@ msgid "" "unsubscribed from you, unable to subscribe to you in the future, and you " "will not be notified of any @-replies from them." msgstr "" -"Êtes-vous certain de vouloir bloquer cet utilisateur ? Après cela, il ne " -"sera plus abonné à votre compte, ne pourra plus s’y abonner de nouveau, et " -"vous ne serez pas informé des @-réponses de sa part." +"Voulez-vous vraiment bloquer cet utilisateur ? Après cela, il ne sera plus " +"abonné à votre compte, ne pourra plus s’y abonner de nouveau, et vous ne " +"serez pas informé des @-réponses de sa part." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Non" @@ -813,9 +830,9 @@ msgstr "Non" msgid "Do not block this user" msgstr "Ne pas bloquer cet utilisateur" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Oui" @@ -919,6 +936,47 @@ msgstr "Conversation" msgid "Notices" msgstr "Avis" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Vous devez être connecté pour supprimer une application." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Application non trouvée." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Vous n’êtes pas le propriétaire de cette application." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Un problème est survenu avec votre jeton de session." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Supprimer l’application" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Voulez-vous vraiment supprimer cette application ? Ceci effacera toutes les " +"données à son propos de la base de données, y compris toutes les connexions " +"utilisateur existantes." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Ne pas supprimer cette application" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Supprimer cette application" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -947,13 +1005,13 @@ msgstr "Supprimer cet avis" #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" -msgstr "Êtes-vous sûr(e) de vouloir supprimer cet avis ?" +msgstr "Voulez-vous vraiment supprimer cet avis ?" #: actions/deletenotice.php:145 msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -967,15 +1025,15 @@ msgstr "Vous pouvez seulement supprimer les utilisateurs locaux." #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" -msgstr "Supprimer l'utilsateur" +msgstr "Supprimer l’utilisateur" #: actions/deleteuser.php:135 msgid "" "Are you sure you want to delete this user? This will clear all data about " "the user from the database, without a backup." msgstr "" -"Êtes-vous certain de vouloir supprimer cet utilisateur ? Ceci effacera " -"toutes les données à son propos de la base de données, sans sauvegarde." +"Voulez-vous vraiment supprimer cet utilisateur ? Ceci effacera toutes les " +"données à son propos de la base de données, sans sauvegarde." #: actions/deleteuser.php:148 lib/deleteuserform.php:77 msgid "Delete this user" @@ -997,7 +1055,7 @@ msgstr "URL du logo invalide." #: actions/designadminpanel.php:279 #, php-format msgid "Theme not available: %s" -msgstr "Le thème n'est pas disponible : %s" +msgstr "Le thème n’est pas disponible : %s" #: actions/designadminpanel.php:375 msgid "Change logo" @@ -1034,7 +1092,7 @@ msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." msgstr "" -"Vous pouvez importer une image d'arrière plan pour ce site. La taille " +"Vous pouvez importer une image d’arrière plan pour ce site. La taille " "maximale du fichier est de %1$s." #: actions/designadminpanel.php:457 lib/designsettings.php:139 @@ -1097,32 +1155,23 @@ msgstr "Cet avis n’est pas un favori !" msgid "Add to favorites" msgstr "Ajouter aux favoris" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Document « %s » non trouvé." #: actions/editapplication.php:54 msgid "Edit Application" -msgstr "Modifier l'application" +msgstr "Modifier l’application" #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Vous devez être connecté pour modifier une application." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Vous n'êtes pas le propriétaire de cette application." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." -msgstr "Pas d'application." - -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Un problème est survenu avec votre jeton de session." +msgstr "Application non trouvée." #: actions/editapplication.php:161 msgid "Use this form to edit your application." @@ -1132,45 +1181,49 @@ msgstr "Utilisez ce formulaire pour modifier votre application." msgid "Name is required." msgstr "Le nom est requis." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Le nom est trop long (maximum de 255 caractères)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Ce nom est déjà utilisé. Essayez-en un autre." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." -msgstr "Description requise." +msgstr "La description est requise." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." -msgstr "L'URL source est trop longue." +msgstr "L’URL source est trop longue." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." -msgstr "URL source invalide." +msgstr "L’URL source est invalide." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." -msgstr "Organisation requise." +msgstr "L’organisation est requise." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." -msgstr "Organisation trop longue (maximum de 255 caractères)." +msgstr "L’organisation est trop longue (maximum de 255 caractères)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." -msgstr "La page d'accueil de l'organisation est requise." +msgstr "La page d’accueil de l’organisation est requise." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." -msgstr "Le Callback est trop long." +msgstr "Le rappel (Callback) est trop long." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." -msgstr "URL de rappel invalide." +msgstr "L’URL de rappel (Callback) est invalide." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." -msgstr "Impossible de mettre à jour l'application." +msgstr "Impossible de mettre à jour l’application." #: actions/editgroup.php:56 #, php-format @@ -1493,7 +1546,7 @@ msgstr "Cet utilisateur vous a empêché de vous inscrire." #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." -msgstr "Vous n'êtes pas autorisé." +msgstr "Vous n’êtes pas autorisé." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." @@ -2017,7 +2070,7 @@ msgstr "Vous devez ouvrir une session pour quitter un groupe." #: actions/leavegroup.php:90 lib/command.php:265 msgid "You are not a member of that group." -msgstr "Vous n'êtes pas membre de ce groupe." +msgstr "Vous n’êtes pas membre de ce groupe." #: actions/leavegroup.php:127 #, php-format @@ -2117,13 +2170,13 @@ msgstr "Vous devez être connecté pour enregistrer une application." msgid "Use this form to register a new application." msgstr "Utilisez ce formulaire pour inscrire une nouvelle application." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." -msgstr "URL source requise." +msgstr "L’URL source est requise." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." -msgstr "Impossible de créer l'application." +msgstr "Impossible de créer l’application." #: actions/newgroup.php:53 msgid "New group" @@ -2254,32 +2307,35 @@ msgstr "Applications que vous avez enregistré" #: actions/oauthappssettings.php:135 #, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "Vous n’avez encore enregistré aucune application." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Applications connectées." -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" +"Vous avez autorisé les applications suivantes à accéder à votre compte." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." -msgstr "Vous n'êtes pas un utilisateur de cette application." +msgstr "Vous n’êtes pas un utilisateur de cette application." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " -msgstr "" +msgstr "Impossible d’annuler l’accès de l’application : " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." -msgstr "Vous n'avez autorisé aucune application à utiliser votre compte." +msgstr "Vous n’avez autorisé aucune application à utiliser votre compte." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" +"Les programmeurs peuvent modifier les paramètres d’enregistrement pour leurs " +"applications " #: actions/oembed.php:79 actions/shownotice.php:100 msgid "Notice has no profile" @@ -2345,28 +2401,28 @@ msgstr "Le service de réduction d’URL est trop long (50 caractères maximum). #: actions/otp.php:69 msgid "No user ID specified." -msgstr "Aucun identifiant d'utilisateur n’a été spécifié." +msgstr "Aucun identifiant d’utilisateur n’a été spécifié." #: actions/otp.php:83 msgid "No login token specified." -msgstr "Aucun jeton d'identification n’a été spécifié." +msgstr "Aucun jeton d’identification n’a été spécifié." #: actions/otp.php:90 msgid "No login token requested." -msgstr "Aucune jeton d'identification requis." +msgstr "Aucun jeton d’identification n’a été demandé." #: actions/otp.php:95 msgid "Invalid login token specified." -msgstr "Jeton d'identification invalide." +msgstr "Jeton d’identification invalide." #: actions/otp.php:104 msgid "Login token expired." -msgstr "Jeton d'identification périmé." +msgstr "Jeton d’identification périmé." #: actions/outbox.php:58 -#, fuzzy, php-format +#, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "Boîte d’envoi de %s" +msgstr "Boîte d’envoi de %1$s - page %2$d" #: actions/outbox.php:61 #, php-format @@ -2506,7 +2562,7 @@ msgstr "Jolies URL" #: actions/pathsadminpanel.php:252 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "Utiliser des jolies URL (plus lisibles et mémorable) ?" +msgstr "Utiliser des jolies URL (plus lisibles et faciles à mémoriser) ?" #: actions/pathsadminpanel.php:259 msgid "Theme" @@ -2781,19 +2837,19 @@ msgstr "Flux public - page %d" msgid "Public timeline" msgstr "Flux public" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Fil du flux public (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Fil du flux public (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Fil du flux public (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2802,11 +2858,11 @@ msgstr "" "Ceci est la chronologie publique de %%site.name%% mais personne n’a encore " "rien posté." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Soyez le premier à poster !" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2814,7 +2870,7 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%action.register%%) et être le premier à " "poster !" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2828,7 +2884,7 @@ msgstr "" "vous avec vos amis, famille et collègues ! ([Plus d’informations](%%doc.help%" "%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3199,7 +3255,7 @@ msgstr "Vous ne pouvez pas reprendre votre propre avis." msgid "You already repeated that notice." msgstr "Vous avez déjà repris cet avis." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Repris" @@ -3214,9 +3270,9 @@ msgid "Replies to %s" msgstr "Réponses à %s" #: actions/replies.php:127 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Réponses à %1$s sur %2$s !" +msgstr "Réponses à %1$s, page %2$d" #: actions/replies.php:144 #, php-format @@ -3267,6 +3323,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Réponses à %1$s sur %2$s !" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3282,9 +3342,8 @@ msgid "Sessions" msgstr "Sessions" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Paramètres de conception pour ce site StatusNet." +msgstr "Paramètres de session pour ce site StatusNet." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3311,80 +3370,87 @@ msgstr "Sauvegarder les paramètres du site" msgid "You must be logged in to view an application." msgstr "Vous devez être connecté pour voir une application." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" -msgstr "Profil de l'application" +msgstr "Profil de l’application" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Icône" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Nom" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Organisation" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Description" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiques" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Créé par %1$s - accès %2$s par défaut - %3$d utilisateurs" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" -msgstr "" +msgstr "Actions de l’application" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" -msgstr "" +msgstr "Réinitialiser la clé et le secret" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" -msgstr "Informations sur l'application" +msgstr "Informations sur l’application" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" -msgstr "" +msgstr "Clé de l’utilisateur" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "" +msgstr "Secret de l’utilisateur" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL du jeton de requête" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" -msgstr "URL du jeton d'accès" +msgstr "URL du jeton d’accès" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" -msgstr "Autoriser l'URL" +msgstr "Autoriser l’URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +"Note : Nous utilisons les signatures HMAC-SHA1. Nous n’utilisons pas la " +"méthode de signature en texte clair." + +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Voulez-vous vraiment supprimer cet avis ?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "Avis favoris de %s" +msgstr "Avis favoris de %1$s, page %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." @@ -3444,9 +3510,9 @@ msgid "%s group" msgstr "Groupe %s" #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "Membres du groupe %1$s - page %2$d" +msgstr "Groupe %1$s, page %2$d" #: actions/showgroup.php:218 msgid "Group profile" @@ -3571,9 +3637,9 @@ msgid " tagged %s" msgstr " marqué %s" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s profils bloqués, page %2$d" +msgstr "%1$s, page %2$d" #: actions/showstream.php:122 #, php-format @@ -3600,13 +3666,13 @@ msgstr "Flux des avis de %s (Atom)" msgid "FOAF for %s" msgstr "ami d’un ami pour %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "Ceci est la chronologie de %1$s mais %2$s n’a rien publié pour le moment." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3614,7 +3680,7 @@ msgstr "" "Avez-vous vu quelque chose d’intéressant récemment ? Vous n’avez pas publié " "d’avis pour le moment, vous pourriez commencer maintenant :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3623,7 +3689,7 @@ msgstr "" "Vous pouvez essayer de faire un clin d’œil à %1$s ou de [poster quelque " "chose à son intention](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3637,7 +3703,7 @@ msgstr "" "register%%%%) pour suivre les avis de **%s** et bien plus ! ([En lire plus](%" "%%%doc.help%%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3648,7 +3714,7 @@ msgstr "" "wikipedia.org/wiki/Microblog) basé sur le logiciel libre [StatusNet](http://" "status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Reprises de %s" @@ -3909,7 +3975,7 @@ msgstr "Aucun code entré" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." -msgstr "Vous n'êtes pas abonné(e) à ce profil." +msgstr "Vous n’êtes pas abonné(e) à ce profil." #: actions/subedit.php:83 msgid "Could not save subscription." @@ -4013,9 +4079,9 @@ msgid "SMS" msgstr "SMS" #: actions/tag.php:68 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Utilisateurs marqués par eux-mêmes avec %1$s - page %2$d" +msgstr "Avis marqués avec %1$s, page %2$d" #: actions/tag.php:86 #, php-format @@ -4302,9 +4368,9 @@ msgid "Enjoy your hotdog!" msgstr "Bon appétit !" #: actions/usergroups.php:64 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "Membres du groupe %1$s - page %2$d" +msgstr "Groupes %1$s, page %2$d" #: actions/usergroups.php:130 msgid "Search for more groups" @@ -4336,10 +4402,6 @@ msgstr "" "Ce site est propulsé par %1$s, version %2$s, Copyright 2008-2010 StatusNet, " "Inc. et ses contributeurs." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Contributeurs" @@ -4410,11 +4472,11 @@ msgstr "Un fichier aussi gros dépasserai votre quota mensuel de %d octets." #: classes/Group_member.php:41 msgid "Group join failed." -msgstr "L'inscription au groupe a échoué." +msgstr "L’inscription au groupe a échoué." #: classes/Group_member.php:53 msgid "Not part of group." -msgstr "N'appartient pas au groupe." +msgstr "N’appartient pas au groupe." #: classes/Group_member.php:60 msgid "Group leave failed." @@ -4423,7 +4485,7 @@ msgstr "La désinscription du groupe a échoué." #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" -msgstr "Impossible de créer le jeton d'ouverture de session pour %s" +msgstr "Impossible de créer le jeton d’identification pour %s" #: classes/Message.php:45 msgid "You are banned from sending direct messages." @@ -4473,22 +4535,21 @@ msgstr "Il vous est interdit de poster des avis sur ce site." msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: classes/Notice.php:790 -#, fuzzy +#: classes/Notice.php:788 msgid "Problem saving group inbox." -msgstr "Problème lors de l’enregistrement de l’avis." +msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Erreur de base de donnée en insérant la réponse :%s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" @@ -4499,7 +4560,7 @@ msgstr "Impossible de créer le groupe." #: classes/User_group.php:409 msgid "Could not set group membership." -msgstr "Impossible d'établir l’inscription au groupe." +msgstr "Impossible d’établir l’inscription au groupe." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4687,16 +4748,20 @@ msgstr "Licence du contenu du site" #: lib/action.php:806 #, php-format msgid "Content and data of %1$s are private and confidential." -msgstr "" +msgstr "Le contenu et les données de %1$s sont privés et confidentiels." #: lib/action.php:811 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" +"Le contenu et les données sont sous le droit d’auteur de %1$s. Tous droits " +"réservés." #: lib/action.php:814 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" +"Le contenu et les données sont sous le droit d’auteur du contributeur. Tous " +"droits réservés." #: lib/action.php:826 msgid "All " @@ -4752,25 +4817,28 @@ msgstr "Configuration utilisateur" #: lib/adminpanelaction.php:327 msgid "Access configuration" -msgstr "Configuration d'accès" +msgstr "Configuration d’accès" #: lib/adminpanelaction.php:332 msgid "Paths configuration" msgstr "Configuration des chemins" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Configuration de la conception" +msgstr "Configuration des sessions" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" +"La ressource de l’API a besoin de l’accès en lecture et en écriture, mais " +"vous n’y avez accès qu’en lecture." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" +"L’essai d’authentification de l’API a échoué ; pseudo = %1$s, proxy = %2$s, " +"ip = %3$s" #: lib/applicationeditform.php:136 msgid "Edit application" @@ -4787,7 +4855,7 @@ msgstr "Décrivez votre application en %d caractères" #: lib/applicationeditform.php:207 msgid "Describe your application" -msgstr "Décrivez votre applications" +msgstr "Décrivez votre application" #: lib/applicationeditform.php:216 msgid "Source URL" @@ -4795,7 +4863,7 @@ msgstr "URL source" #: lib/applicationeditform.php:218 msgid "URL of the homepage of this application" -msgstr "URL de la page d'accueil de cette application" +msgstr "URL de la page d’accueil de cette application" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" @@ -4803,11 +4871,11 @@ msgstr "Organisation responsable de cette application" #: lib/applicationeditform.php:230 msgid "URL for the homepage of the organization" -msgstr "URL de la page d'accueil de l'organisation" +msgstr "URL de la page d’accueil de l’organisation" #: lib/applicationeditform.php:236 msgid "URL to redirect to after authentication" -msgstr "URL vers laquelle rediriger après l'authentification" +msgstr "URL vers laquelle rediriger après l’authentification" #: lib/applicationeditform.php:258 msgid "Browser" @@ -4819,7 +4887,7 @@ msgstr "Bureau" #: lib/applicationeditform.php:275 msgid "Type of application, browser or desktop" -msgstr "Type d'application, navigateur ou bureau" +msgstr "Type d’application, navigateur ou bureau" #: lib/applicationeditform.php:297 msgid "Read-only" @@ -4895,7 +4963,7 @@ msgstr "Ça n’a pas de sens de se faire un clin d’œil à soi-même !" #: lib/command.php:99 #, php-format msgid "Nudge sent to %s" -msgstr "Coup de code envoyé à %s" +msgstr "Clin d’œil envoyé à %s" #: lib/command.php:126 #, php-format @@ -4933,7 +5001,7 @@ msgstr "Impossible d’inscrire l’utilisateur %s au groupe %s" #: lib/command.php:236 #, php-format msgid "%s joined group %s" -msgstr "%1$s a rejoint le groupe %2$s" +msgstr "%s a rejoint le groupe %s" #: lib/command.php:275 #, php-format @@ -4943,7 +5011,7 @@ msgstr "Impossible de retirer l’utilisateur %s du groupe %s" #: lib/command.php:280 #, php-format msgid "%s left group %s" -msgstr "%1$s a quitté le groupe %2$s" +msgstr "%s a quitté le groupe %s" #: lib/command.php:309 #, php-format @@ -5054,7 +5122,7 @@ msgstr "Impossible d’activer les avertissements." #: lib/command.php:641 msgid "Login command is disabled" -msgstr "La commande d'ouverture de session est désactivée" +msgstr "La commande d’ouverture de session est désactivée" #: lib/command.php:652 #, php-format @@ -5065,7 +5133,7 @@ msgstr "" #: lib/command.php:668 msgid "You are not subscribed to anyone." -msgstr "Vous n'êtes pas abonné(e) à personne." +msgstr "Vous n’êtes abonné(e) à personne." #: lib/command.php:670 msgid "You are subscribed to this person:" @@ -5172,20 +5240,20 @@ msgstr "" "tracks - pas encore implémenté.\n" "tracking - pas encore implémenté.\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Aucun fichier de configuration n’a été trouvé. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" "J’ai cherché des fichiers de configuration dans les emplacements suivants : " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Vous pouvez essayer de lancer l’installeur pour régler ce problème." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Aller au programme d’installation" @@ -5349,7 +5417,7 @@ msgstr "Groupes avec le plus de membres" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "Groupes avec le plus d'éléments publiés" +msgstr "Groupes avec le plus d’éléments publiés" #: lib/grouptagcloudsection.php:56 #, php-format @@ -5737,7 +5805,7 @@ msgstr "Un dossier temporaire est manquant." #: lib/mediafile.php:162 msgid "Failed to write file to disk." -msgstr "Impossible d'écrire sur le disque." +msgstr "Impossible d’écrire sur le disque." #: lib/mediafile.php:165 msgid "File upload stopped by extension." @@ -5807,7 +5875,7 @@ msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" -"Désolé, l'obtention de votre localisation prend plus de temps que prévu. " +"Désolé, l’obtention de votre localisation prend plus de temps que prévu. " "Veuillez réessayer plus tard." #: lib/noticelist.php:428 @@ -5835,23 +5903,23 @@ msgstr "O" msgid "at" msgstr "chez" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Avis repris" @@ -5992,6 +6060,10 @@ msgstr "Reprendre cet avis ?" msgid "Repeat this notice" msgstr "Reprendre cet avis" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "Aucun utilisateur unique défini pour le mode mono-utilisateur." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Bac à sable" @@ -6157,47 +6229,47 @@ msgstr "Message" msgid "Moderate" msgstr "Modérer" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "il y a quelques secondes" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "il y a 1 minute" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "il y a %d minutes" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "il y a 1 heure" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "il y a %d heures" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "il y a 1 jour" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "il y a %d jours" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "il y a 1 mois" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "il y a %d mois" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "il y a environ 1 an" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index adcf8316b..5be4d756e 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:51+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:41+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Non existe a etiqueta." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -397,8 +397,8 @@ msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." msgid "Not a valid nickname." msgstr "Non é un alcume válido." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -410,8 +410,8 @@ msgstr "A páxina persoal semella que non é unha URL válida." msgid "Full name is too long (max 255 chars)." msgstr "O nome completo é demasiado longo (max 255 car)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "O teu Bio é demasiado longo (max 140 car.)." @@ -489,18 +489,23 @@ msgstr "" msgid "groups on %s" msgstr "Outras opcions" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Tamaño inválido." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -511,77 +516,85 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Usuario ou contrasinal inválidos." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Acounteceu un erro configurando o usuario." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Erro ó inserir o hashtag na BD: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Envio de formulario non esperada." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 #, fuzzy msgid "Account" msgstr "Sobre" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Alcume" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Contrasinal" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Todos" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -757,8 +770,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 #, fuzzy msgid "Delete" msgstr "eliminar" @@ -811,8 +824,9 @@ msgstr "" "do teur perfil, non será capaz de suscribirse a ti nun futuro, e non vas a " "ser notificado de ningunha resposta-@ del." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -821,9 +835,9 @@ msgstr "No" msgid "Do not block this user" msgstr "Bloquear usuario" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Si" @@ -934,6 +948,51 @@ msgstr "Código de confirmación." msgid "Notices" msgstr "Chíos" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "O chío non ten perfil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Non estás suscrito a ese perfil" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +#, fuzzy +msgid "There was a problem with your session token." +msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Ningún chío." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Non se pode eliminar este chíos." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Eliminar chío" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -970,7 +1029,7 @@ msgstr "Estas seguro que queres eliminar este chío?" msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -1124,7 +1183,7 @@ msgstr "Este chío non é un favorito!" msgid "Add to favorites" msgstr "Engadir a favoritos" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Ningún documento." @@ -1139,23 +1198,12 @@ msgstr "Outras opcions" msgid "You must be logged in to edit an application." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Non estás suscrito a ese perfil" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Ningún chío." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -#, fuzzy -msgid "There was a problem with your session token." -msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1168,47 +1216,52 @@ msgstr "" msgid "Name is required." msgstr "A mesma contrasinal que arriba. Requerido." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "O nome completo é demasiado longo (max 255 car)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Subscricións" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "A páxina persoal semella que non é unha URL válida." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "A localización é demasiado longa (max 255 car.)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Non se puido actualizar o usuario." @@ -2158,11 +2211,11 @@ msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Non se puido crear o favorito." @@ -2297,29 +2350,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Non estás suscrito a ese perfil" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2845,39 +2898,39 @@ msgstr "Liña de tempo pública" msgid "Public timeline" msgstr "Liña de tempo pública" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Sindicación do Fio Público" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Sindicación do Fio Público" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Sindicación do Fio Público" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2890,7 +2943,7 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3264,7 +3317,7 @@ msgstr "Non podes rexistrarte se non estas de acordo coa licenza." msgid "You already repeated that notice." msgstr "Xa bloqueaches a este usuario." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -3326,6 +3379,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Mensaxe de %1$s en %2$s" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Avatar actualizado." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3372,80 +3430,85 @@ msgstr "Configuracións de Twitter" msgid "You must be logged in to view an application." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "O chío non ten perfil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Alcume" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Invitación(s) enviada(s)." -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 #, fuzzy msgid "Description" msgstr "Subscricións" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Estas seguro que queres eliminar este chío?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3660,25 +3723,25 @@ msgstr "Fonte de chíos para %s" msgid "FOAF for %s" msgstr "Band. Saída para %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3691,7 +3754,7 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3703,7 +3766,7 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Replies to %s" @@ -4395,11 +4458,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Avatar actualizado." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4528,22 +4586,22 @@ msgstr "Tes restrinxido o envio de chíos neste sitio." msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Erro ó inserir a contestación na BD: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" @@ -4846,11 +4904,11 @@ msgstr "Confirmación de SMS" msgid "Sessions configuration" msgstr "Confirmación de SMS" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5262,20 +5320,20 @@ msgstr "" "tracks - non implementado por agora.\n" "tracking - non implementado por agora.\n" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Sen código de confirmación." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5913,27 +5971,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 #, fuzzy msgid "Reply" msgstr "contestar" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" @@ -6088,6 +6146,10 @@ msgstr "Non se pode eliminar este chíos." msgid "Repeat this notice" msgstr "Non se pode eliminar este chíos." +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6271,47 +6333,47 @@ msgstr "Nova mensaxe" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "fai uns segundos" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "fai un minuto" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "fai %d minutos" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "fai unha hora" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "fai %d horas" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "fai un día" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "fai %d días" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "fai un mes" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "fai %d meses" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "fai un ano" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 3cfed46c5..cbf4a8f0c 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:54+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:45+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "אין הודעה כזו." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -155,7 +155,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -388,8 +388,8 @@ msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." msgid "Not a valid nickname." msgstr "שם משתמש לא חוקי." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -401,8 +401,8 @@ msgstr "לאתר הבית יש כתובת לא חוקית." msgid "Full name is too long (max 255 chars)." msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" @@ -482,18 +482,23 @@ msgstr "" msgid "groups on %s" msgstr "" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "גודל לא חוקי." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -504,76 +509,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "שם המשתמש או הסיסמה לא חוקיים" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "שגיאה ביצירת שם המשתמש." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "שגיאת מסד נתונים בהכנסת התגובה: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "הגשת טופס לא צפויה." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 #, fuzzy msgid "Account" msgstr "אודות" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "כינוי" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "סיסמה" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -749,8 +762,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 #, fuzzy msgid "Delete" msgstr "מחק" @@ -801,8 +814,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "לא" @@ -811,9 +825,9 @@ msgstr "לא" msgid "Do not block this user" msgstr "אין משתמש כזה." -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "כן" @@ -923,6 +937,50 @@ msgstr "מיקום" msgid "Notices" msgstr "הודעות" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "עידכון המשתמש נכשל." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "להודעה אין פרופיל" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "לא שלחנו אלינו את הפרופיל הזה" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "אין הודעה כזו." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "אין הודעה כזו." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -956,7 +1014,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "אין הודעה כזו." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "" @@ -1110,7 +1168,7 @@ msgstr "" msgid "Add to favorites" msgstr "מועדפים" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "אין מסמך כזה." @@ -1124,22 +1182,12 @@ msgstr "להודעה אין פרופיל" msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "אין הודעה כזו." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1148,47 +1196,52 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "הרשמות" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "לאתר הבית יש כתובת לא חוקית." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "עידכון המשתמש נכשל." @@ -2094,11 +2147,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "שמירת מידע התמונה נכשל" @@ -2228,29 +2281,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2769,39 +2822,39 @@ msgstr "קו זמן ציבורי" msgid "Public timeline" msgstr "קו זמן ציבורי" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "הזנת זרם הציבורי" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "הזנת זרם הציבורי" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "הזנת זרם הציבורי" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2810,7 +2863,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3150,7 +3203,7 @@ msgstr "לא ניתן להירשם ללא הסכמה לרשיון" msgid "You already repeated that notice." msgstr "כבר נכנסת למערכת!" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "צור" @@ -3212,6 +3265,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "תגובת עבור %s" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "התמונה עודכנה." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3257,80 +3315,84 @@ msgstr "הגדרות" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "להודעה אין פרופיל" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "כינוי" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "מיקום" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 #, fuzzy msgid "Description" msgstr "הרשמות" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "סטטיסטיקה" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3535,25 +3597,25 @@ msgstr "הזנת הודעות של %s" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3562,7 +3624,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3570,7 +3632,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "תגובת עבור %s" @@ -4246,11 +4308,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "התמונה עודכנה." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4374,22 +4431,22 @@ msgstr "" msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "שגיאת מסד נתונים בהכנסת התגובה: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4682,11 +4739,11 @@ msgstr "הרשמות" msgid "Sessions configuration" msgstr "הרשמות" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5060,20 +5117,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "אין קוד אישור." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5649,26 +5706,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "אין תוכן!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "צור" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 #, fuzzy msgid "Reply" msgstr "הגב" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "הודעות" @@ -5817,6 +5874,10 @@ msgstr "אין הודעה כזו." msgid "Repeat this notice" msgstr "אין הודעה כזו." +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5996,47 +6057,47 @@ msgstr "הודעה חדשה" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "לפני מספר שניות" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "לפני כדקה" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "לפני כ-%d דקות" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "לפני כשעה" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "לפני כ-%d שעות" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "לפני כיום" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "לפני כ-%d ימים" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "לפני כחודש" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "לפני כ-%d חודשים" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "לפני כשנה" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index d0c81c5bc..7fead90d8 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:41:57+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:48+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Strona njeeksistuje" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -154,7 +154,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -376,8 +376,8 @@ msgstr "Přimjeno so hižo wužiwa. Spytaj druhe." msgid "Not a valid nickname." msgstr "Žane płaćiwe přimjeno." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -389,8 +389,8 @@ msgstr "Startowa strona njeje płaćiwy URL." msgid "Full name is too long (max 255 chars)." msgstr "Dospołne mjeno je předołho (maks. 255 znamješkow)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Wopisanje je předołho (maks. %d znamješkow)." @@ -467,18 +467,23 @@ msgstr "" msgid "groups on %s" msgstr "skupiny na %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Njepłaćiwa wulkosć." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -489,74 +494,82 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Njepłaćiwe přimjeno abo hesło!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Zmylk datoweje banki při zasunjenju wužiwarja OAuth-aplikacije." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Zmylk datoweje banki při zasunjenju wužiwarja OAuth-aplikacije." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Přimjeno" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Hesło" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Wotpokazać" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Dowolić" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -726,8 +739,8 @@ msgstr "Original" msgid "Preview" msgstr "Přehlad" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Zničić" @@ -774,8 +787,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Ně" @@ -783,9 +797,9 @@ msgstr "Ně" msgid "Do not block this user" msgstr "Tutoho wužiwarja njeblokować" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Haj" @@ -889,6 +903,49 @@ msgstr "Konwersacija" msgid "Notices" msgstr "Zdźělenki" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Dyrbiš přizjewjeny być, zo by skupinu wobdźěłał." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Aplikaciski profil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Njejsy wobsedźer tuteje aplikacije." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Aplikacija njeeksistuje." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Tutu zdźělenku njewušmórnyć" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Tutu zdźělenku wušmórnyć" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -921,7 +978,7 @@ msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -1062,7 +1119,7 @@ msgstr "Tuta zdźělenka faworit njeje!" msgid "Add to favorites" msgstr "K faworitam přidać" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Dokument njeeksistuje." @@ -1076,20 +1133,11 @@ msgstr "Aplikacije OAuth" msgid "You must be logged in to edit an application." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wobdźěłał." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Njejsy wobsedźer tuteje aplikacije." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Aplikacija njeeksistuje." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Wužij tutón formular, zo by aplikaciju wobdźěłał." @@ -1098,43 +1146,48 @@ msgstr "Wužij tutón formular, zo by aplikaciju wobdźěłał." msgid "Name is required." msgstr "Mjeno je trěbne." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Mjeno je předołho (maks. 255 znamješkow)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Přimjeno so hižo wužiwa. Spytaj druhe." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Wopisanje je trěbne." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "URL žórła płaćiwy njeje." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "Mjeno organizacije je předołho (maks. 255 znamješkow)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Aplikacija njeda so aktualizować." @@ -1993,11 +2046,11 @@ msgstr "Dyrbiš přizjewjeny być, zo by aplikaciju registrował." msgid "Use this form to register a new application." msgstr "Wužij tutón formular, zo by nowu aplikaciju registrował." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Aplikacija njeda so wutworić." @@ -2122,28 +2175,28 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Njejsy wužiwar tuteje aplikacije." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2635,36 +2688,36 @@ msgstr "" msgid "Public timeline" msgstr "" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2673,7 +2726,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3003,7 +3056,7 @@ msgstr "Njemóžeš swójsku zdźělenku wospjetować." msgid "You already repeated that notice." msgstr "Sy tutu zdźělenku hižo wospjetował." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Wospjetowany" @@ -3063,6 +3116,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3106,76 +3163,81 @@ msgstr "Sydłowe nastajenja składować" msgid "You must be logged in to view an application." msgstr "Dyrbiš přizjewjeny być, zo by sej aplikaciju wobhladał." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Aplikaciski profil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Mjeno" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Organizacija" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Wopisanje" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistika" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "URL awtorizować" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3375,25 +3437,25 @@ msgstr "" msgid "FOAF for %s" msgstr "FOAF za %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3402,7 +3464,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3410,7 +3472,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "" @@ -4050,10 +4112,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4171,21 +4229,21 @@ msgstr "" msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4457,11 +4515,11 @@ msgstr "" msgid "Sessions configuration" msgstr "SMS-wobkrućenje" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4823,19 +4881,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Žana konfiguraciska dataja namakana. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5386,23 +5444,23 @@ msgstr "Z" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" @@ -5543,6 +5601,10 @@ msgstr "Tutu zdźělenku wospjetować?" msgid "Repeat this notice" msgstr "Tutu zdźělenku wospjetować" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5708,47 +5770,47 @@ msgstr "Powěsć" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "před něšto sekundami" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "před něhdźe jednej mjeńšinu" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "před %d mjeńšinami" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "před něhdźe jednej hodźinu" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "před něhdźe %d hodźinami" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "před něhdźe jednym dnjom" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "před něhdźe %d dnjemi" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "před něhdźe jednym měsacom" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "před něhdźe %d měsacami" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "před něhdźe jednym lětom" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index de42418c3..e1227bbba 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:01+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:51+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "Pagina non existe" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgstr "" "Tu pote tentar [dar un pulsata a %s](../%s) in su profilo o [publicar un " "message a su attention](%%%%action.newnotice%%%%?status_textarea=%s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -389,8 +389,8 @@ msgstr "Pseudonymo ja in uso. Proba un altere." msgid "Not a valid nickname." msgstr "Non un pseudonymo valide." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -402,8 +402,8 @@ msgstr "Le pagina personal non es un URL valide." msgid "Full name is too long (max 255 chars)." msgstr "Le nomine complete es troppo longe (max. 255 characteres)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Description es troppo longe (max %d charachteres)." @@ -480,18 +480,23 @@ msgstr "Gruppos de %s" msgid "groups on %s" msgstr "gruppos in %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Dimension invalide." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -502,76 +507,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Nomine de usator o contrasigno invalide." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Error durante le configuration del usator." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Error durante le configuration del usator." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Submission de formulario inexpectate." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Pseudonymo" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Contrasigno" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "Apparentia" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -744,8 +757,8 @@ msgstr "Original" msgid "Preview" msgstr "Previsualisation" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Deler" @@ -795,8 +808,9 @@ msgstr "" "cancellate, ille non potera resubscriber se a te in le futuro, e tu non " "recipera notification de su @-responsas." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -804,9 +818,9 @@ msgstr "No" msgid "Do not block this user" msgstr "Non blocar iste usator" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Si" @@ -911,6 +925,53 @@ msgstr "Conversation" msgid "Notices" msgstr "Notas" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Tu debe aperir un session pro modificar un gruppo." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Le nota ha nulle profilo" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Tu non es membro de iste gruppo." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Nota non trovate." + +#: actions/deleteapplication.php:149 +#, fuzzy +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Es tu secur de voler deler iste usator? Isto radera tote le datos super le " +"usator del base de datos, sin copia de reserva." + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Non deler iste nota" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Deler iste nota" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -945,7 +1006,7 @@ msgstr "Es tu secur de voler deler iste nota?" msgid "Do not delete this notice" msgstr "Non deler iste nota" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Deler iste nota" @@ -1089,7 +1150,7 @@ msgstr "Iste nota non es favorite!" msgid "Add to favorites" msgstr "Adder al favorites" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Documento non existe." @@ -1104,22 +1165,12 @@ msgstr "Le nota ha nulle profilo" msgid "You must be logged in to edit an application." msgstr "Tu debe aperir un session pro modificar un gruppo." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Tu non es membro de iste gruppo." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Nota non trovate." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1130,46 +1181,51 @@ msgstr "Usa iste formulario pro modificar le gruppo." msgid "Name is required." msgstr "Identic al contrasigno hic supra. Requisite." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Le nomine complete es troppo longe (max. 255 characteres)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Pseudonymo ja in uso. Proba un altere." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Le pagina personal non es un URL valide." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Loco es troppo longe (max. 255 characteres)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Non poteva actualisar gruppo." @@ -2113,11 +2169,11 @@ msgstr "Tu debe aperir un session pro crear un gruppo." msgid "Use this form to register a new application." msgstr "Usa iste formulario pro crear un nove gruppo." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Non poteva crear aliases." @@ -2255,29 +2311,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Tu non es membro de iste gruppo." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2784,19 +2840,19 @@ msgstr "Chronologia public, pagina %d" msgid "Public timeline" msgstr "Chronologia public" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Syndication del fluxo public (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Syndication del fluxo public (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Syndication del fluxo public (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2805,11 +2861,11 @@ msgstr "" "Isto es le chronologia public pro %%site.name%%, ma nulle persona ha ancora " "scribite alique." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Sia le prime a publicar!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2817,7 +2873,7 @@ msgstr "" "Proque non [registrar un conto](%%action.register%%) e devenir le prime a " "publicar?" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2830,7 +2886,7 @@ msgstr "" "[Inscribe te ora](%%action.register%%) pro condivider notas super te con " "amicos, familia e collegas! ([Leger plus](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3196,7 +3252,7 @@ msgstr "Tu non pote repeter tu proprie nota." msgid "You already repeated that notice." msgstr "Tu ha ja repetite iste nota." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Repetite" @@ -3262,6 +3318,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Responsas a %1$s in %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Stato delite." + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Tu non pote mitter usatores in le cassa de sablo in iste sito." @@ -3306,78 +3367,83 @@ msgstr "Salveguardar configurationes del sito" msgid "You must be logged in to view an application." msgstr "Tu debe aperir un session pro quitar un gruppo." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Le nota ha nulle profilo" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Pseudonymo" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statisticas" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Es tu secur de voler deler iste nota?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3594,12 +3660,12 @@ msgstr "Syndication de notas pro %s (Atom)" msgid "FOAF for %s" msgstr "Amico de un amico pro %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Isto es le chronologia pro %s, ma %s non ha ancora publicate alique." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3607,7 +3673,7 @@ msgstr "" "Videva tu qualcosa de interessante recentemente? Tu non ha ancora publicate " "alcun nota, dunque iste es un bon momento pro comenciar :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3616,7 +3682,7 @@ msgstr "" "Tu pote tentar pulsar %s o [publicar un nota a su attention](%%%%action." "newnotice%%%%?status_textarea=%s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3630,7 +3696,7 @@ msgstr "" "pro sequer le notas de **%s** e multe alteres! ([Lege plus](%%%%doc.help%%%" "%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3641,7 +3707,7 @@ msgstr "" "(http://en.wikipedia.org/wiki/Microblog) a base del software libere " "[StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Repetition de %s" @@ -4296,11 +4362,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Stato delite." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4422,21 +4483,21 @@ msgstr "" msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4708,11 +4769,11 @@ msgstr "" msgid "Sessions configuration" msgstr "Nulle codice de confirmation." -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5074,19 +5135,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5641,23 +5702,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Nota delite." @@ -5801,6 +5862,10 @@ msgstr "Repeter iste nota" msgid "Repeat this notice" msgstr "Repeter iste nota" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5966,47 +6031,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 67d7825d9..3b4d89fc0 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:04+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:54+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Ekkert þannig merki." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -390,8 +390,8 @@ msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." msgid "Not a valid nickname." msgstr "Ekki tækt stuttnefni." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -403,8 +403,8 @@ msgstr "Heimasíða er ekki gild vefslóð." msgid "Full name is too long (max 255 chars)." msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." @@ -484,18 +484,23 @@ msgstr "Hópar %s" msgid "groups on %s" msgstr "Hópsaðgerðir" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Ótæk stærð." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -506,76 +511,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Það kom upp vandamál með setutókann þinn. Vinsamlegast reyndu aftur." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Ótækt notendanafn eða lykilorð." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Villa kom upp í stillingu notanda." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Bjóst ekki við innsendingu eyðublaðs." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Aðgangur" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Stuttnefni" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Lykilorð" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Allt" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -747,8 +760,8 @@ msgstr "Upphafleg mynd" msgid "Preview" msgstr "Forsýn" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Eyða" @@ -797,8 +810,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Nei" @@ -807,9 +821,9 @@ msgstr "Nei" msgid "Do not block this user" msgstr "Opna á þennan notanda" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Já" @@ -916,6 +930,50 @@ msgstr "" msgid "Notices" msgstr "Babl" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Babl hefur enga persónulega síðu" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Þú ert ekki meðlimur í þessum hópi." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Það komu upp vandamál varðandi setutókann þinn." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Ekkert svoleiðis babl." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Gat ekki uppfært hóp." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Eyða þessu babli" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -948,7 +1006,7 @@ msgstr "Ertu viss um að þú viljir eyða þessu babli?" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -1098,7 +1156,7 @@ msgstr "Þetta babl er ekki í uppáhaldi!" msgid "Add to favorites" msgstr "Bæta við sem uppáhaldsbabli" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Ekkert svoleiðis skjal." @@ -1113,22 +1171,12 @@ msgstr "Aðrir valkostir" msgid "You must be logged in to edit an application." msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Þú ert ekki meðlimur í þessum hópi." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Ekkert svoleiðis babl." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Það komu upp vandamál varðandi setutókann þinn." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1139,47 +1187,52 @@ msgstr "Notaðu þetta eyðublað til að breyta hópnum." msgid "Name is required." msgstr "Sama og lykilorðið hér fyrir ofan. Nauðsynlegt." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Lýsing" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Heimasíða er ekki gild vefslóð." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Gat ekki uppfært hóp." @@ -2111,11 +2164,11 @@ msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." msgid "Use this form to register a new application." msgstr "Notaðu þetta eyðublað til að búa til nýjan hóp." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Gat ekki búið til uppáhald." @@ -2249,29 +2302,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2794,36 +2847,36 @@ msgstr "Almenningsrás, síða %d" msgid "Public timeline" msgstr "Almenningsrás" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2832,7 +2885,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3196,7 +3249,7 @@ msgstr "Þú getur ekki nýskráð þig nema þú samþykkir leyfið." msgid "You already repeated that notice." msgstr "Þú hefur nú þegar lokað á þennan notanda." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -3257,6 +3310,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Skilaboð til %1$s á %2$s" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Tölfræði" + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3302,79 +3360,84 @@ msgstr "Stillingar fyrir mynd" msgid "You must be logged in to view an application." msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Babl hefur enga persónulega síðu" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Stuttnefni" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Uppröðun" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Lýsing" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Tölfræði" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Ertu viss um að þú viljir eyða þessu babli?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3575,25 +3638,25 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3602,7 +3665,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3610,7 +3673,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Svör við %s" @@ -4292,11 +4355,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Tölfræði" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4421,22 +4479,22 @@ msgstr "Það hefur verið lagt bann við babli frá þér á þessari síðu." msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Gagnagrunnsvilla við innsetningu svars: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4725,11 +4783,11 @@ msgstr "SMS staðfesting" msgid "Sessions configuration" msgstr "SMS staðfesting" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5100,20 +5158,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Enginn staðfestingarlykill." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Skrá þig inn á síðuna" @@ -5685,24 +5743,24 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" @@ -5850,6 +5908,10 @@ msgstr "Svara þessu babli" msgid "Repeat this notice" msgstr "Svara þessu babli" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6023,47 +6085,47 @@ msgstr "Skilaboð" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "fyrir nokkrum sekúndum" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "fyrir um einni mínútu síðan" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "fyrir um %d mínútum síðan" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "fyrir um einum klukkutíma síðan" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "fyrir um %d klukkutímum síðan" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "fyrir um einum degi síðan" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "fyrir um %d dögum síðan" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "fyrir um einum mánuði síðan" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "fyrir um %d mánuðum síðan" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "fyrir um einu ári síðan" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 4a002d115..c9cf7347c 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:07+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:32:58+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "Pagina inesistente." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -159,7 +159,7 @@ msgstr "" "qualche cosa alla sua attenzione](%%%%action.newnotice%%%%?status_textarea=%3" "$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -389,8 +389,8 @@ msgstr "Soprannome già in uso. Prova con un altro." msgid "Not a valid nickname." msgstr "Non è un soprannome valido." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -402,8 +402,8 @@ msgstr "L'indirizzo della pagina web non è valido." msgid "Full name is too long (max 255 chars)." msgstr "Nome troppo lungo (max 255 caratteri)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La descrizione è troppo lunga (max %d caratteri)." @@ -480,18 +480,23 @@ msgstr "Gruppi di %s" msgid "groups on %s" msgstr "Gruppi su %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Richiesta non corretta." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Dimensione non valida." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -503,19 +508,19 @@ msgid "There was a problem with your session token. Try again, please." msgstr "" "Si è verificato un problema con il tuo token di sessione. Prova di nuovo." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Nome utente o password non valido." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "Errore nel database nell'eliminare l'applicazione utente OAuth." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "Errore nel database nell'inserire l'applicazione utente OAuth." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -524,55 +529,63 @@ msgstr "" "Il token di richiesta %s è stato autorizzato. Scambiarlo con un token di " "accesso." -#: actions/apioauthauthorize.php:241 -#, php-format -msgid "The request token %s has been denied." +#: actions/apioauthauthorize.php:227 +#, fuzzy, php-format +msgid "The request token %s has been denied and revoked." msgstr "Il token di richiesta %s è stato rifiutato." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Invio del modulo inaspettato." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Un'applicazione vorrebbe collegarsi al tuo account" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Consenti o nega l'accesso" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Account" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Soprannome" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Password" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "Nega" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Consenti" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Consenti o nega l'accesso alle informazioni del tuo account." @@ -743,8 +756,8 @@ msgstr "Originale" msgid "Preview" msgstr "Anteprima" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Elimina" @@ -794,8 +807,9 @@ msgstr "" "tuoi messaggi, non potrà più abbonarsi e non riceverai notifica delle @-" "risposte che ti invierà." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -803,9 +817,9 @@ msgstr "No" msgid "Do not block this user" msgstr "Non bloccare questo utente" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sì" @@ -910,6 +924,53 @@ msgstr "Conversazione" msgid "Notices" msgstr "Messaggi" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Devi eseguire l'accesso per modificare un gruppo." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Il messaggio non ha un profilo" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Non fai parte di questo gruppo." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Si è verificato un problema con il tuo token di sessione." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Nessun messaggio." + +#: actions/deleteapplication.php:149 +#, fuzzy +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Vuoi eliminare questo utente? Questa azione eliminerà tutti i dati " +"dell'utente dal database, senza una copia di sicurezza." + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Non eliminare il messaggio" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Elimina questo messaggio" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -944,7 +1005,7 @@ msgstr "Vuoi eliminare questo messaggio?" msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -1088,7 +1149,7 @@ msgstr "Questo messaggio non è un preferito!" msgid "Add to favorites" msgstr "Aggiungi ai preferiti" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Nessun documento." @@ -1103,22 +1164,12 @@ msgstr "Altre opzioni" msgid "You must be logged in to edit an application." msgstr "Devi eseguire l'accesso per modificare un gruppo." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Non fai parte di questo gruppo." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Nessun messaggio." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Si è verificato un problema con il tuo token di sessione." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1129,48 +1180,53 @@ msgstr "Usa questo modulo per modificare il gruppo." msgid "Name is required." msgstr "Stessa password di sopra; richiesta" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Nome troppo lungo (max 255 caratteri)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Soprannome già in uso. Prova con un altro." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Descrizione" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "L'URL \"%s\" dell'immagine non è valido." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Ubicazione troppo lunga (max 255 caratteri)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 #, fuzzy msgid "Callback URL is not valid." msgstr "L'URL \"%s\" dell'immagine non è valido." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Impossibile aggiornare il gruppo." @@ -2109,11 +2165,11 @@ msgstr "Devi eseguire l'accesso per creare un gruppo." msgid "Use this form to register a new application." msgstr "Usa questo modulo per creare un nuovo gruppo." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Impossibile creare gli alias." @@ -2249,29 +2305,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Non fai parte di quel gruppo." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2781,19 +2837,19 @@ msgstr "Attività pubblica, pagina %d" msgid "Public timeline" msgstr "Attività pubblica" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Feed dell'attività pubblica (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Feed dell'attività pubblica (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Feed dell'attività pubblica (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2802,18 +2858,18 @@ msgstr "" "Questa è l'attività pubblica di %%site.name%%, ma nessuno ha ancora scritto " "qualche cosa." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Fallo tu!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" "Perché non [crei un account](%%action.register%%) e scrivi qualche cosa!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2826,7 +2882,7 @@ msgstr "" "net/). [Registrati](%%action.register%%) per condividere messaggi con i tuoi " "amici, i tuoi familiari e colleghi! ([Maggiori informazioni](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3192,7 +3248,7 @@ msgstr "Non puoi ripetere i tuoi stessi messaggi." msgid "You already repeated that notice." msgstr "Hai già ripetuto quel messaggio." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Ripetuti" @@ -3258,6 +3314,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Risposte a %1$s su %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Non puoi mettere in \"sandbox\" gli utenti su questo sito." @@ -3302,79 +3362,84 @@ msgstr "Salva impostazioni" msgid "You must be logged in to view an application." msgstr "Devi eseguire l'accesso per lasciare un gruppo." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Il messaggio non ha un profilo" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Nome" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Paginazione" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Descrizione" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiche" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "Autore" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Vuoi eliminare questo messaggio?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3434,7 +3499,7 @@ msgstr "Questo è un modo per condividere ciò che ti piace." #: actions/showgroup.php:82 lib/groupnav.php:86 #, php-format msgid "%s group" -msgstr "Gruppi di %s" +msgstr "Gruppo %s" #: actions/showgroup.php:84 #, fuzzy, php-format @@ -3590,12 +3655,12 @@ msgstr "Feed dei messaggi per %s (Atom)" msgid "FOAF for %s" msgstr "FOAF per %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Questa è l'attività di %1$s, ma %2$s non ha ancora scritto nulla." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3603,7 +3668,7 @@ msgstr "" "Visto niente di interessante? Non hai scritto ancora alcun messaggio, questo " "potrebbe essere un buon momento per iniziare! :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3612,7 +3677,7 @@ msgstr "" "Puoi provare a richiamare %1$s o [scrivere qualche cosa che attiri la sua " "attenzione](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3626,7 +3691,7 @@ msgstr "" "i messaggi di **%s** e di molti altri! ([Maggiori informazioni](%%%%doc.help%" "%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3637,7 +3702,7 @@ msgstr "" "it.wikipedia.org/wiki/Microblogging) basato sul software libero [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Ripetizione di %s" @@ -4316,10 +4381,6 @@ msgstr "" "Questo sito esegue il software %1$s versione %2$s, Copyright 2008-2010 " "StatusNet, Inc. e collaboratori." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Collaboratori" @@ -4458,22 +4519,22 @@ msgstr "Ti è proibito inviare messaggi su questo sito." msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema nel salvare il messaggio." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Errore del DB nell'inserire la risposta: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" @@ -4750,11 +4811,11 @@ msgstr "Configurazione percorsi" msgid "Sessions configuration" msgstr "Configurazione aspetto" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5159,21 +5220,21 @@ msgstr "" "tracks - non ancora implementato\n" "tracking - non ancora implementato\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Non è stato trovato alcun file di configurazione. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "I file di configurazione sono stati cercati in questi posti: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" "Potrebbe essere necessario lanciare il programma d'installazione per " "correggere il problema." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Vai al programma d'installazione." @@ -5819,23 +5880,23 @@ msgstr "O" msgid "at" msgstr "presso" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" -msgstr "nel contesto" +msgstr "in una discussione" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Messaggio ripetuto" @@ -5976,6 +6037,10 @@ msgstr "Ripetere questo messaggio?" msgid "Repeat this notice" msgstr "Ripeti questo messaggio" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Sandbox" @@ -6141,47 +6206,47 @@ msgstr "Messaggio" msgid "Moderate" msgstr "Modera" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "pochi secondi fa" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "circa un minuto fa" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "circa %d minuti fa" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "circa un'ora fa" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "circa %d ore fa" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "circa un giorno fa" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "circa %d giorni fa" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "circa un mese fa" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "circa %d mesi fa" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "circa un anno fa" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index dc5ae1c66..e64d47a6f 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:10+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:01+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "そのようなページはありません。" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -103,7 +103,7 @@ msgstr "そのようなページはありません。" #: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 #: lib/subs.php:34 lib/subs.php:125 msgid "No such user." -msgstr "そのような利用者はいません。" +msgstr "そのようなユーザはいません。" #: actions/all.php:84 #, php-format @@ -156,7 +156,7 @@ msgstr "" "プロフィールから [%1$s さんに合図](../%2$s) したり、[知らせたいことについて投" "稿](%%%%action.newnotice%%%%?status_textarea=%3$s) したりできます。" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -223,7 +223,7 @@ msgstr "" #: actions/apiaccountupdatedeliverydevice.php:132 msgid "Could not update user." -msgstr "利用者を更新できませんでした。" +msgstr "ユーザを更新できませんでした。" #: actions/apiaccountupdateprofile.php:112 #: actions/apiaccountupdateprofilebackgroundimage.php:194 @@ -232,7 +232,7 @@ msgstr "利用者を更新できませんでした。" #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/replies.php:80 #: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 msgid "User has no profile." -msgstr "利用者はプロフィールをもっていません。" +msgstr "ユーザはプロフィールをもっていません。" #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." @@ -273,11 +273,11 @@ msgstr "自分自身をブロックすることはできません!" #: actions/apiblockcreate.php:126 msgid "Block user failed." -msgstr "利用者のブロックに失敗しました。" +msgstr "ユーザのブロックに失敗しました。" #: actions/apiblockdestroy.php:114 msgid "Unblock user failed." -msgstr "利用者のブロック解除に失敗しました。" +msgstr "ユーザのブロック解除に失敗しました。" #: actions/apidirectmessage.php:89 #, php-format @@ -310,11 +310,11 @@ msgstr "長すぎます。メッセージは最大 %d 字までです。" #: actions/apidirectmessagenew.php:146 msgid "Recipient user not found." -msgstr "受け取り手の利用者が見つかりません。" +msgstr "受け取り手のユーザが見つかりません。" #: actions/apidirectmessagenew.php:150 msgid "Can't send direct messages to users who aren't your friend." -msgstr "友人でない利用者にダイレクトメッセージを送ることはできません。" +msgstr "友人でないユーザにダイレクトメッセージを送ることはできません。" #: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:109 #: actions/apistatusesdestroy.php:113 @@ -339,17 +339,17 @@ msgstr "お気に入りを取り消すことができません。" #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: User not found." -msgstr "利用者をフォローできませんでした: 利用者が見つかりません。" +msgstr "ユーザをフォローできませんでした: ユーザが見つかりません。" #: actions/apifriendshipscreate.php:118 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "" -"利用者をフォローできませんでした: %s は既にあなたのリストに入っています。" +"ユーザをフォローできませんでした: %s は既にあなたのリストに入っています。" #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." -msgstr "利用者のフォローを停止できませんでした: 利用者が見つかりません。" +msgstr "ユーザのフォローを停止できませんでした: ユーザが見つかりません。" #: actions/apifriendshipsdestroy.php:120 msgid "You cannot unfollow yourself." @@ -387,8 +387,8 @@ msgstr "そのニックネームは既に使用されています。他のもの msgid "Not a valid nickname." msgstr "有効なニックネームではありません。" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -400,8 +400,8 @@ msgstr "ホームページのURLが不適切です。" msgid "Full name is too long (max 255 chars)." msgstr "フルネームが長すぎます。(255字まで)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "記述が長すぎます。(最長140字)" @@ -452,7 +452,7 @@ msgstr "管理者によってこのグループからブロックされていま #: actions/apigroupjoin.php:138 actions/joingroup.php:124 #, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "利用者 %1$s はグループ %2$s に参加できません。" +msgstr "ユーザ %1$s はグループ %2$s に参加できません。" #: actions/apigroupleave.php:114 msgid "You are not a member of this group." @@ -461,7 +461,7 @@ msgstr "このグループのメンバーではありません。" #: actions/apigroupleave.php:124 actions/leavegroup.php:119 #, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "利用者 %1$s をグループ %2$s から削除できません。" +msgstr "ユーザ %1$s をグループ %2$s から削除できません。" #: actions/apigrouplist.php:95 #, php-format @@ -478,18 +478,22 @@ msgstr "%s グループ" msgid "groups on %s" msgstr "%s 上のグループ" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "悪い要求。" +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "oauth_token パラメータは提供されませんでした。" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "不正なトークン。" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -500,21 +504,19 @@ msgstr "悪い要求。" msgid "There was a problem with your session token. Try again, please." msgstr "あなたのセッショントークンに問題がありました。再度お試しください。" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "不正なユーザ名またはパスワード。" -#: actions/apioauthauthorize.php:170 -#, fuzzy +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." -msgstr "OAuth アプリユーザの削除時DBエラー。" +msgstr "OAuth アプリケーションユーザの削除時DBエラー。" -#: actions/apioauthauthorize.php:196 -#, fuzzy +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." -msgstr "OAuth アプリユーザの追加時DBエラー。" +msgstr "OAuth アプリケーションユーザの追加時DBエラー。" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -523,53 +525,61 @@ msgstr "" "リクエストトークン %s は承認されました。 アクセストークンとそれを交換してくだ" "さい。" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "リクエストトークン%sは否定されました。" +msgid "The request token %s has been denied and revoked." +msgstr "リクエストトークン%sは、拒否されて、取り消されました。" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "予期せぬフォーム送信です。" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "アプリケーションはあなたのアカウントに接続したいです" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "アクセスを許可または拒絶" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "アカウント" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "ニックネーム" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "パスワード" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "拒絶" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "許可" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "アカウント情報へのアクセスを許可するか、または拒絶してください。" @@ -579,7 +589,7 @@ msgstr "このメソッドには POST か DELETE が必要です。" #: actions/apistatusesdestroy.php:130 msgid "You may not delete another user's status." -msgstr "他の利用者のステータスを消すことはできません。" +msgstr "他のユーザのステータスを消すことはできません。" #: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 @@ -721,7 +731,7 @@ msgstr "自分のアバターをアップロードできます。最大サイズ #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 #: actions/userrss.php:103 msgid "User without matching profile" -msgstr "合っているプロフィールのない利用者" +msgstr "合っているプロフィールのないユーザ" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 #: actions/grouplogo.php:251 @@ -738,8 +748,8 @@ msgstr "オリジナル" msgid "Preview" msgstr "プレビュー" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "削除" @@ -773,11 +783,11 @@ msgstr "アバターが削除されました。" #: actions/block.php:69 msgid "You already blocked that user." -msgstr "その利用者はすでにブロック済みです。" +msgstr "そのユーザはすでにブロック済みです。" #: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160 msgid "Block user" -msgstr "ブロック利用者" +msgstr "ユーザをブロック" #: actions/block.php:130 #, fuzzy @@ -790,8 +800,9 @@ msgstr "" "たからフォローを外されるでしょう、将来、あなたにフォローできないで、あなたは" "どんな @-返信 についてもそれらから通知されないでしょう。" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "No" @@ -799,9 +810,9 @@ msgstr "No" msgid "Do not block this user" msgstr "このユーザをアンブロックする" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Yes" @@ -835,11 +846,11 @@ msgstr "%1$s ブロックされたプロファイル、ページ %2$d" #: actions/blockedfromgroup.php:108 msgid "A list of the users blocked from joining this group." -msgstr "このグループへの参加をブロックされた利用者のリスト。" +msgstr "このグループへの参加をブロックされたユーザのリスト。" #: actions/blockedfromgroup.php:281 msgid "Unblock user from group" -msgstr "グループからのアンブロック利用者" +msgstr "グループからのアンブロックユーザ" #: actions/blockedfromgroup.php:313 lib/unblockform.php:69 msgid "Unblock" @@ -905,6 +916,47 @@ msgstr "会話" msgid "Notices" msgstr "つぶやき" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "アプリケーションを削除するにはログインしていなければなりません。" + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "アプリケーションが見つかりません。" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "このアプリケーションのオーナーではありません。" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "あなたのセッショントークンに関する問題がありました。" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "アプリケーション削除" + +#: actions/deleteapplication.php:149 +#, fuzzy +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"あなたは本当にこのユーザを削除したいですか? これはバックアップなしでデータ" +"ベースからユーザに関するすべてのデータをクリアします。" + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "このアプリケーションを削除しないでください" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "このアプリケーションを削除" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -939,33 +991,33 @@ msgstr "本当にこのつぶやきを削除しますか?" msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "このつぶやきを削除" #: actions/deleteuser.php:67 msgid "You cannot delete users." -msgstr "利用者を削除できません" +msgstr "ユーザを削除できません" #: actions/deleteuser.php:74 msgid "You can only delete local users." -msgstr "ローカル利用者のみ削除できます。" +msgstr "ローカルユーザのみ削除できます。" #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" -msgstr "利用者削除" +msgstr "ユーザ削除" #: actions/deleteuser.php:135 msgid "" "Are you sure you want to delete this user? This will clear all data about " "the user from the database, without a backup." msgstr "" -"あなたは本当にこの利用者を削除したいですか? これはバックアップなしでデータ" -"ベースから利用者に関するすべてのデータをクリアします。" +"あなたは本当にこのユーザを削除したいですか? これはバックアップなしでデータ" +"ベースからユーザに関するすべてのデータをクリアします。" #: actions/deleteuser.php:148 lib/deleteuserform.php:77 msgid "Delete this user" -msgstr "このユーザーを削除" +msgstr "このユーザを削除" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/adminpanelaction.php:316 lib/groupnav.php:119 @@ -1083,7 +1135,7 @@ msgstr "このつぶやきはお気に入りではありません!" msgid "Add to favorites" msgstr "お気に入りに加える" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "そのようなドキュメントはありません。\"%s\"" @@ -1096,20 +1148,11 @@ msgstr "アプリケーション編集" msgid "You must be logged in to edit an application." msgstr "アプリケーションを編集するにはログインしていなければなりません。" -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "このアプリケーションのオーナーではありません。" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "そのようなアプリケーションはありません。" -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "あなたのセッショントークンに関する問題がありました。" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "このフォームを使ってアプリケーションを編集します。" @@ -1118,43 +1161,47 @@ msgstr "このフォームを使ってアプリケーションを編集します msgid "Name is required." msgstr "名前は必須です。" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "名前が長すぎます。(最大255字まで)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。" + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "概要が必要です。" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "ソースURLが長すぎます。" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "ソースURLが不正です。" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "組織が必要です。" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "組織が長すぎます。(最大255字)" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "組織のホームページが必要です。" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "コールバックが長すぎます。" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "コールバックURLが不正です。" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "アプリケーションを更新できません。" @@ -1366,7 +1413,7 @@ msgstr "入ってくるメールアドレスではありません。" #: actions/emailsettings.php:456 actions/emailsettings.php:478 #: actions/smssettings.php:528 actions/smssettings.php:552 msgid "Couldn't update user record." -msgstr "利用者レコードを更新できません。" +msgstr "ユーザレコードを更新できません。" #: actions/emailsettings.php:459 actions/smssettings.php:531 msgid "Incoming email address removed." @@ -1435,17 +1482,17 @@ msgstr "%1$s による %2$s 上のお気に入りを更新!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "フィーチャーされた利用者" +msgstr "フィーチャーされたユーザ" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "フィーチャーされた利用者、ページ %d" +msgstr "フィーチャーされたユーザ、ページ %d" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "%s 上の優れた利用者の集まり" +msgstr "%s 上の優れたユーザの集まり" #: actions/file.php:34 msgid "No notice ID." @@ -1477,7 +1524,7 @@ msgstr "ローカルサブスクリプションを使用可能です!" #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." -msgstr "この利用者はフォローをブロックされています。" +msgstr "このユーザはフォローをブロックされています。" #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." @@ -1527,15 +1574,15 @@ msgstr "管理者だけがグループメンバーをブロックできます。 #: actions/groupblock.php:95 msgid "User is already blocked from group." -msgstr "利用者はすでにグループからブロックされています。" +msgstr "ユーザはすでにグループからブロックされています。" #: actions/groupblock.php:100 msgid "User is not a member of group." -msgstr "利用者はグループのメンバーではありません。" +msgstr "ユーザはグループのメンバーではありません。" #: actions/groupblock.php:136 actions/groupmembers.php:314 msgid "Block user from group" -msgstr "グループからブロックされた利用者" +msgstr "グループからユーザをブロック" #: actions/groupblock.php:162 #, php-format @@ -1544,12 +1591,12 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" -"本当に利用者 %1$s をグループ %2$s からブロックしますか? 彼らはグループから削" +"本当にユーザ %1$s をグループ %2$s からブロックしますか? 彼らはグループから削" "除される、投稿できない、グループをフォローできなくなります。" #: actions/groupblock.php:178 msgid "Do not block this user from this group" -msgstr "このグループからこの利用者をブロックしない" +msgstr "このグループからこのユーザをブロックしない" #: actions/groupblock.php:179 msgid "Block this user from this group" @@ -1557,7 +1604,7 @@ msgstr "このグループからこのユーザをブロック" #: actions/groupblock.php:196 msgid "Database error blocking user from group." -msgstr "グループから利用者ブロックのデータベースエラー" +msgstr "グループからのブロックユーザのデータベースエラー" #: actions/groupbyid.php:74 actions/userbyid.php:70 msgid "No ID." @@ -1602,7 +1649,7 @@ msgstr "" #: actions/grouplogo.php:178 msgid "User without matching profile." -msgstr "合っているプロフィールのない利用者" +msgstr "合っているプロフィールのないユーザ" #: actions/grouplogo.php:362 msgid "Pick a square area of the image to be the logo." @@ -1628,7 +1675,7 @@ msgstr "%1$s グループメンバー、ページ %2$d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "このグループの利用者のリスト。" +msgstr "このグループのユーザのリスト。" #: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 msgid "Admin" @@ -1640,7 +1687,7 @@ msgstr "ブロック" #: actions/groupmembers.php:441 msgid "Make user an admin of the group" -msgstr "利用者をグループの管理者にする" +msgstr "ユーザをグループの管理者にする" #: actions/groupmembers.php:473 msgid "Make Admin" @@ -1648,7 +1695,7 @@ msgstr "管理者にする" #: actions/groupmembers.php:473 msgid "Make this user an admin" -msgstr "この利用者を管理者にする" +msgstr "このユーザを管理者にする" #: actions/grouprss.php:133 #, php-format @@ -1726,7 +1773,7 @@ msgstr "管理者だけがグループメンバーをアンブロックできま #: actions/groupunblock.php:95 msgid "User is not blocked from group." -msgstr "利用者はグループからブロックされていません。" +msgstr "ユーザはグループからブロックされていません。" #: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." @@ -1861,11 +1908,11 @@ msgstr "招待を送りました。" #: actions/invite.php:112 msgid "Invite new users" -msgstr "新しい利用者を招待" +msgstr "新しいユーザを招待" #: actions/invite.php:128 msgid "You are already subscribed to these users:" -msgstr "すでにこれらの利用者をフォローしています:" +msgstr "すでにこれらのユーザをフォローしています:" #: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 #, php-format @@ -2086,11 +2133,11 @@ msgstr "アプリケーションを登録するにはログインしていなけ msgid "Use this form to register a new application." msgstr "このフォームを使って新しいアプリケーションを登録します。" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "ソースURLが必要です。" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "アプリケーションを作成できません。" @@ -2108,7 +2155,7 @@ msgstr "新しいメッセージ" #: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 msgid "You can't send a message to this user." -msgstr "この利用者にメッセージを送ることはできません。" +msgstr "このユーザにメッセージを送ることはできません。" #: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 #: lib/command.php:475 @@ -2195,7 +2242,7 @@ msgstr "\"%2$s\" 上の検索語 \"$1$s\" に一致するすべての更新" msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" -"この利用者は、合図を許可していないか、確認されていた状態でないか、メール設定" +"このユーザは、合図を許可していないか、確認されていた状態でないか、メール設定" "をしていません。" #: actions/nudge.php:94 @@ -2223,30 +2270,30 @@ msgstr "あなたが登録したアプリケーション" msgid "You have not registered any applications yet." msgstr "あなたはまだなんのアプリケーションも登録していません。" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "接続されたアプリケーション" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "あなたのアカウントにアクセスする以下のアプリケーションを許可しました。" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." -msgstr "あなたはそのアプリケーションの利用者ではありません。" +msgstr "あなたはそのアプリケーションのユーザではありません。" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "アプリケーションのための取消しアクセスができません: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" "あなたは、どんなアプリケーションもあなたのアカウントを使用するのを認可してい" "ません。" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "開発者は彼らのアプリケーションのために登録設定を編集できます " @@ -2314,7 +2361,7 @@ msgstr "URL 短縮サービスが長すぎます。(最大50字)" #: actions/otp.php:69 msgid "No user ID specified." -msgstr "利用者IDの記述がありません。" +msgstr "ユーザIDの記述がありません。" #: actions/otp.php:83 msgid "No login token specified." @@ -2711,7 +2758,7 @@ msgstr "不正なタグ: \"%s\"" #: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." -msgstr "自動フォローのための利用者を更新できませんでした。" +msgstr "自動フォローのためのユーザを更新できませんでした。" #: actions/profilesettings.php:359 msgid "Couldn't save location prefs." @@ -2747,19 +2794,19 @@ msgstr "パブリックタイムライン、ページ %d" msgid "Public timeline" msgstr "パブリックタイムライン" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "パブリックストリームフィード (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "パブリックストリームフィード (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "パブリックストリームフィード (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2768,11 +2815,11 @@ msgstr "" "これは %%site.name%% のパブリックタイムラインです、しかしまだ誰も投稿していま" "せん。" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "投稿する1番目になってください!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2780,7 +2827,7 @@ msgstr "" "なぜ [アカウント登録](%%action.register%%) しないのですか、そして最初の投稿を" "してください!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2794,7 +2841,7 @@ msgstr "" "族そして同僚などについてのつぶやきを共有しましょう! ([もっと読む](%%doc.help%" "%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2863,7 +2910,7 @@ msgstr "確認コードが古すぎます。もう一度やり直してくださ #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "確認されたメールアドレスで利用者を更新できません。" +msgstr "確認されたメールアドレスでユーザを更新できません。" #: actions/recoverpassword.php:152 msgid "" @@ -2923,11 +2970,11 @@ msgstr "ニックネームかメールアドレスを入力してください。 #: actions/recoverpassword.php:272 msgid "No user with that email address or username." -msgstr "そのメールアドレスかユーザ名をもっている利用者がありません。" +msgstr "そのメールアドレスかユーザ名をもっているユーザがありません。" #: actions/recoverpassword.php:287 msgid "No registered email address for that user." -msgstr "その利用者にはメールアドレスの登録がありません。" +msgstr "そのユーザにはメールアドレスの登録がありません。" #: actions/recoverpassword.php:301 msgid "Error saving address confirmation." @@ -3041,7 +3088,7 @@ msgid "" msgstr "個人情報を除く: パスワード、メールアドレス、IMアドレス、電話番号" #: actions/register.php:538 -#, fuzzy, php-format +#, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " "want to...\n" @@ -3058,15 +3105,15 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"%1$s さん、おめでとうございます!%%%%site.name%%%% へようこそ。以下のようにし" -"て始めることができます。\n" +"%1$s さん、おめでとうございます!%%%%site.name%%%% へようこそ。次のようにして" +"始めることができます。\n" "\n" "* [あなたのプロファイル](%2$s) を参照して最初のメッセージを投稿する\n" "* [Jabber や GTalk のアドレス](%%%%action.imsettings%%%%) を追加して、インス" "タントメッセージを通してつぶやきを送れるようにする\n" "* あなたが知っている人やあなたと同じ興味をもっている人を[検索](%%%%action." "peoplesearch%%%%) する\n" -"* [プロファイル設定](%%%%action.profilesettings%%%%) を更新して他の利用者にあ" +"* [プロファイル設定](%%%%action.profilesettings%%%%) を更新して他のユーザにあ" "なたのことをより詳しく知らせる\n" "* 探している機能について[オンライン文書](%%%%doc.help%%%%) を読む\n" "\n" @@ -3103,7 +3150,7 @@ msgstr "リモートユーザーをフォロー" #: actions/remotesubscribe.php:129 msgid "User nickname" -msgstr "利用者のニックネーム" +msgstr "ユーザのニックネーム" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" @@ -3157,7 +3204,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "繰り返された" @@ -3207,7 +3254,7 @@ msgid "" "[join groups](%%action.groups%%)." msgstr "" "あなたは、他のユーザを会話をするか、多くの人々をフォローするか、または [グ" -"ループに加わる] (%%action.groups%%)ことができます。" +"ループに加わる](%%action.groups%%)ことができます。" #: actions/replies.php:205 #, php-format @@ -3223,13 +3270,17 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%2$s 上の %1$s への返信!" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "あなたはこのサイトのサンドボックスユーザができません。" #: actions/sandbox.php:72 msgid "User is already sandboxed." -msgstr "利用者はすでにサンドボックスです。" +msgstr "ユーザはすでにサンドボックスです。" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 #: lib/adminpanelaction.php:336 @@ -3237,9 +3288,8 @@ msgid "Sessions" msgstr "セッション" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "この StatusNet サイトのデザイン設定。" +msgstr "この StatusNet サイトのセッション設定。" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3266,71 +3316,71 @@ msgstr "サイト設定の保存" msgid "You must be logged in to view an application." msgstr "!!アプリケーションを見るためにはログインしていなければなりません。" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "アプリケーションプロファイル" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "アイコン" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "名前" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "組織" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "概要" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "統計データ" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "アプリケーションアクション" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "key と secret のリセット" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "アプリケーション情報" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "リクエストトークンURL" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "アクセストークンURL" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "承認URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3338,6 +3388,11 @@ msgstr "" "注意: 私たちはHMAC-SHA1署名をサポートします。 私たちは平文署名メソッドをサ" "ポートしません。" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "本当にこのつぶやきを削除しますか?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3554,12 +3609,12 @@ msgstr "%sのつぶやきフィード (Atom)" msgid "FOAF for %s" msgstr "%s の FOAF" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "これは %1$s のタイムラインですが、%2$s はまだなにも投稿していません。" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3567,7 +3622,7 @@ msgstr "" "最近おもしろいものは何でしょう? あなたは少しのつぶやきも投稿していませんが、" "いまは始める良い時でしょう:)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3576,7 +3631,7 @@ msgstr "" "あなたは、%1$s に合図するか、[またはその人宛に何かを投稿](%%%%action." "newnotice%%%%?status_textarea=%2$s) することができます。" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3584,13 +3639,13 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"**%s** は %%site.name%% 上のアカウントです。フリーソフトウェアツール" +"**%s** は %%%%site.name%%%% 上のアカウントです。フリーソフトウェアツール" "[StatusNet](http://status.net/)を基にした[マイクロブロギング](http://en." "wikipedia.org/wiki/Micro-blogging) サービス。[今すぐ参加](%%%%action.register" "%%%%)して、**%s** のつぶやきなどをフォローしましょう! ([もっと読む](%%%%doc." "help%%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3601,7 +3656,7 @@ msgstr "" "[StatusNet](http://status.net/)を基にした[マイクロブロギング](http://en." "wikipedia.org/wiki/Micro-blogging) サービス。" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "%s の繰り返し" @@ -3612,7 +3667,7 @@ msgstr "あなたはこのサイトでユーザを黙らせることができま #: actions/silence.php:72 msgid "User is already silenced." -msgstr "利用者は既に黙っています。" +msgstr "ユーザは既に黙っています。" #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site." @@ -3820,7 +3875,7 @@ msgstr "これはすでにあなたの電話番号です。" #: actions/smssettings.php:321 msgid "That phone number already belongs to another user." -msgstr "この電話番号はすでに他の利用者に使われています。" +msgstr "この電話番号はすでに他のユーザに使われています。" #: actions/smssettings.php:347 msgid "" @@ -3947,7 +4002,7 @@ msgid "" msgstr "" "今、だれのつぶやきも聞いていないなら、あなたが知っている人々をフォローしてみ" "てください。[ピープル検索](%%action.peoplesearch%%)を試してください。そして、" -"あなたが興味を持っているグループと私たちの[フィーチャーされた利用者](%%" +"あなたが興味を持っているグループと私たちの[フィーチャーされたユーザ](%%" "action.featured%%)のメンバーを探してください。もし[Twitterユーザ](%%action." "twittersettings%%)であれば、あなたは自動的に既にフォローしている人々をフォ" "ローできます。" @@ -3996,7 +4051,7 @@ msgstr "タグ %s" #: actions/tagother.php:77 lib/userprofile.php:75 msgid "User profile" -msgstr "利用者プロファイル" +msgstr "ユーザプロファイル" #: actions/tagother.php:81 lib/userprofile.php:102 msgid "Photo" @@ -4004,14 +4059,14 @@ msgstr "写真" #: actions/tagother.php:141 msgid "Tag user" -msgstr "タグ利用者" +msgstr "タグユーザ" #: actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" -"この利用者のタグ (アルファベット、数字、-、.、_)、カンマかスペース区切り" +"このユーザのタグ (アルファベット、数字、-、.、_)、カンマかスペース区切り" #: actions/tagother.php:193 msgid "" @@ -4042,11 +4097,11 @@ msgstr "あなたはそのユーザをブロックしていません。" #: actions/unsandbox.php:72 msgid "User is not sandboxed." -msgstr "利用者はサンドボックスではありません。" +msgstr "ユーザはサンドボックスではありません。" #: actions/unsilence.php:72 msgid "User is not silenced." -msgstr "利用者はサイレンスではありません。" +msgstr "ユーザはサイレンスではありません。" #: actions/unsubscribe.php:77 msgid "No profile id in request." @@ -4067,11 +4122,11 @@ msgstr "" #: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 #: lib/personalgroupnav.php:115 msgid "User" -msgstr "利用者" +msgstr "ユーザ" #: actions/useradminpanel.php:69 msgid "User settings for this StatusNet site." -msgstr "この StatusNet サイトの利用者設定。" +msgstr "この StatusNet サイトのユーザ設定。" #: actions/useradminpanel.php:148 msgid "Invalid bio limit. Must be numeric." @@ -4084,7 +4139,7 @@ msgstr "不正なウェルカムテキスト。最大長は255字です。" #: actions/useradminpanel.php:164 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "不正なデフォルトフォローです: '%1$s' は利用者ではありません。" +msgstr "不正なデフォルトフォローです: '%1$s' はユーザではありません。" #: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 @@ -4101,15 +4156,15 @@ msgstr "プロファイル自己紹介の最大文字長。" #: actions/useradminpanel.php:230 msgid "New users" -msgstr "新しい利用者" +msgstr "新しいユーザ" #: actions/useradminpanel.php:234 msgid "New user welcome" -msgstr "新しい利用者を歓迎" +msgstr "新しいユーザを歓迎" #: actions/useradminpanel.php:235 msgid "Welcome text for new users (Max 255 chars)." -msgstr "新しい利用者へのウェルカムテキスト (最大255字)。" +msgstr "新しいユーザへのウェルカムテキスト (最大255字)。" #: actions/useradminpanel.php:240 msgid "Default subscription" @@ -4117,7 +4172,7 @@ msgstr "デフォルトフォロー" #: actions/useradminpanel.php:241 msgid "Automatically subscribe new users to this user." -msgstr "自動的にこの利用者に新しい利用者をフォローしてください。" +msgstr "自動的にこのユーザに新しいユーザをフォローしてください。" #: actions/useradminpanel.php:250 msgid "Invitations" @@ -4129,7 +4184,7 @@ msgstr "招待が可能" #: actions/useradminpanel.php:257 msgid "Whether to allow users to invite new users." -msgstr "利用者が新しい利用者を招待するのを許容するかどうか。" +msgstr "ユーザが新しいユーザを招待するのを許容するかどうか。" #: actions/userauthorization.php:105 msgid "Authorize subscription" @@ -4282,10 +4337,6 @@ msgstr "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "コントリビュータ" @@ -4387,7 +4438,7 @@ msgstr "つぶやきを保存する際に問題が発生しました。長すぎ #: classes/Notice.php:218 msgid "Problem saving notice. Unknown user." -msgstr "つぶやきを保存する際に問題が発生しました。不明な利用者です。" +msgstr "つぶやきを保存する際に問題が発生しました。不明なユーザです。" #: classes/Notice.php:223 msgid "" @@ -4411,21 +4462,21 @@ msgstr "あなたはこのサイトでつぶやきを投稿するのが禁止さ msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "返信を追加する際にデータベースエラー : %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" @@ -4685,7 +4736,7 @@ msgstr "デザイン設定" #: lib/adminpanelaction.php:322 msgid "User configuration" -msgstr "利用者設定" +msgstr "ユーザ設定" #: lib/adminpanelaction.php:327 msgid "Access configuration" @@ -4696,15 +4747,16 @@ msgid "Paths configuration" msgstr "パス設定" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "デザイン設定" +msgstr "セッション設定" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" +"APIリソースは読み書きアクセスが必要です、しかしあなたは読みアクセスしか持って" +"いません。" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4852,7 +4904,7 @@ msgstr "その ID によるつぶやきは存在していません" #: lib/command.php:168 lib/command.php:406 lib/command.php:467 #: lib/command.php:523 msgid "User has no last notice" -msgstr "利用者はまだつぶやいていません" +msgstr "ユーザはまだつぶやいていません" #: lib/command.php:190 msgid "Notice marked as fave." @@ -4865,7 +4917,7 @@ msgstr "あなたは既にそのグループに参加しています。" #: lib/command.php:231 #, php-format msgid "Could not join user %s to group %s" -msgstr "利用者 %s はグループ %s に参加できません" +msgstr "ユーザ %s はグループ %s に参加できません" #: lib/command.php:236 #, php-format @@ -4875,7 +4927,7 @@ msgstr "%s はグループ %s に参加しました" #: lib/command.php:275 #, php-format msgid "Could not remove user %s to group %s" -msgstr "利用者 %s をグループ %s から削除することができません" +msgstr "ユーザ %s をグループ %s から削除することができません" #: lib/command.php:280 #, php-format @@ -4949,7 +5001,7 @@ msgstr "つぶやき保存エラー。" #: lib/command.php:547 msgid "Specify the name of the user to subscribe to" -msgstr "フォローする利用者の名前を指定してください" +msgstr "フォローするユーザの名前を指定してください" #: lib/command.php:554 #, php-format @@ -5062,21 +5114,21 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "コンフィギュレーションファイルがありません。 " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "私は以下の場所でコンフィギュレーションファイルを探しました: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" "あなたは、これを修理するためにインストーラを動かしたがっているかもしれませ" "ん。" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "インストーラへ。" @@ -5209,7 +5261,7 @@ msgstr "ブロック" #: lib/groupnav.php:102 #, php-format msgid "%s blocked users" -msgstr "%s ブロック利用者" +msgstr "%s ブロックユーザ" #: lib/groupnav.php:108 #, php-format @@ -5558,14 +5610,14 @@ msgstr "" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "利用者だけがそれら自身のメールボックスを読むことができます。" +msgstr "ユーザだけがかれら自身のメールボックスを読むことができます。" #: lib/mailbox.php:139 msgid "" "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." msgstr "" -"あなたには、プライベートメッセージが全くありません。あなたは他の利用者を会話" +"あなたには、プライベートメッセージが全くありません。あなたは他のユーザを会話" "に引き込むプライベートメッセージを送ることができます。人々はあなただけへの" "メッセージを送ることができます。" @@ -5726,23 +5778,23 @@ msgstr "西" msgid "at" msgstr "at" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "つぶやきを繰り返しました" @@ -5837,7 +5889,7 @@ msgstr "すべてのフォローされている" #: lib/profileaction.php:178 msgid "User ID" -msgstr "利用者ID" +msgstr "ユーザID" #: lib/profileaction.php:183 msgid "Member since" @@ -5883,6 +5935,10 @@ msgstr "このつぶやきを繰り返しますか?" msgid "Repeat this notice" msgstr "このつぶやきを繰り返す" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "single-user モードのためのシングルユーザが定義されていません。" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "サンドボックス" @@ -5956,7 +6012,7 @@ msgstr "すでにフォローしています!" #: lib/subs.php:56 msgid "User has blocked you." -msgstr "利用者はあなたをブロックしました。" +msgstr "ユーザはあなたをブロックしました。" #: lib/subs.php:63 msgid "Could not subscribe." @@ -6047,49 +6103,49 @@ msgstr "メッセージ" #: lib/userprofile.php:311 #, fuzzy msgid "Moderate" -msgstr "司会" +msgstr "管理" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "数秒前" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "約 1 分前" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "約 %d 分前" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "約 1 時間前" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "約 %d 時間前" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "約 1 日前" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "約 %d 日前" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "約 1 ヵ月前" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "約 %d ヵ月前" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "約 1 年前" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 9b939636a..3735e6f55 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:13+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:04+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +99,7 @@ msgstr "그러한 태그가 없습니다." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -156,7 +156,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -393,8 +393,8 @@ msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십 msgid "Not a valid nickname." msgstr "유효한 별명이 아닙니다" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -406,8 +406,8 @@ msgstr "홈페이지 주소형식이 올바르지 않습니다." msgid "Full name is too long (max 255 chars)." msgstr "실명이 너무 깁니다. (최대 255글자)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "설명이 너무 길어요. (최대 140글자)" @@ -487,18 +487,23 @@ msgstr "%s 그룹" msgid "groups on %s" msgstr "그룹 행동" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "옳지 않은 크기" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -509,76 +514,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "세션토큰에 문제가 있습니다. 다시 시도해주세요." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "사용자 이름이나 비밀 번호가 틀렸습니다." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "사용자 세팅 오류" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "해쉬테그를 추가 할 때에 데이타베이스 에러 : %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "잘못된 폼 제출" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "계정" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "별명" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "비밀 번호" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "모든 것" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -752,8 +765,8 @@ msgstr "원래 설정" msgid "Preview" msgstr "미리보기" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "삭제" @@ -802,8 +815,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "아니오" @@ -812,9 +826,9 @@ msgstr "아니오" msgid "Do not block this user" msgstr "이 사용자를 차단해제합니다." -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "네, 맞습니다." @@ -923,6 +937,50 @@ msgstr "인증 코드" msgid "Notices" msgstr "통지" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "그룹을 만들기 위해서는 로그인해야 합니다." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "통지에 프로필이 없습니다." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "당신은 해당 그룹의 멤버가 아닙니다." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "당신의 세션토큰관련 문제가 있습니다." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "그러한 통지는 없습니다." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "이 통지를 지울 수 없습니다." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "이 게시글 삭제하기" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -958,7 +1016,7 @@ msgstr "정말로 통지를 삭제하시겠습니까?" msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "이 게시글 삭제하기" @@ -1112,7 +1170,7 @@ msgstr "이 메시지는 favorite이 아닙니다." msgid "Add to favorites" msgstr "좋아하는 게시글로 추가하기" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "그러한 문서는 없습니다." @@ -1127,22 +1185,12 @@ msgstr "다른 옵션들" msgid "You must be logged in to edit an application." msgstr "그룹을 만들기 위해서는 로그인해야 합니다." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "당신은 해당 그룹의 멤버가 아닙니다." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "그러한 통지는 없습니다." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "당신의 세션토큰관련 문제가 있습니다." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1153,47 +1201,52 @@ msgstr "다음 양식을 이용해 그룹을 편집하십시오." msgid "Name is required." msgstr "위와 같은 비밀 번호. 필수 사항." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "실명이 너무 깁니다. (최대 255글자)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "설명" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "홈페이지 주소형식이 올바르지 않습니다." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "위치가 너무 깁니다. (최대 255글자)" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "그룹을 업데이트 할 수 없습니다." @@ -2129,11 +2182,11 @@ msgstr "그룹을 만들기 위해서는 로그인해야 합니다." msgid "Use this form to register a new application." msgstr "새 그룹을 만들기 위해 이 양식을 사용하세요." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "좋아하는 게시글을 생성할 수 없습니다." @@ -2266,29 +2319,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2806,39 +2859,39 @@ msgstr "공개 타임라인, %d 페이지" msgid "Public timeline" msgstr "퍼블릭 타임라인" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "퍼블릭 스트림 피드" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "퍼블릭 스트림 피드" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "퍼블릭 스트림 피드" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2847,7 +2900,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3210,7 +3263,7 @@ msgstr "라이선스에 동의하지 않는다면 등록할 수 없습니다." msgid "You already repeated that notice." msgstr "당신은 이미 이 사용자를 차단하고 있습니다." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "생성" @@ -3272,6 +3325,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%2$s에서 %1$s까지 메시지" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "아바타가 업데이트 되었습니다." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3318,79 +3376,84 @@ msgstr "아바타 설정" msgid "You must be logged in to view an application." msgstr "그룹을 떠나기 위해서는 로그인해야 합니다." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "통지에 프로필이 없습니다." -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "별명" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "페이지수" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "설명" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "통계" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "정말로 통지를 삭제하시겠습니까?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3595,25 +3658,25 @@ msgstr "%s의 통지 피드" msgid "FOAF for %s" msgstr "%s의 보낸쪽지함" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3622,7 +3685,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3632,7 +3695,7 @@ msgstr "" "**%s**는 %%%%site.name%%%% [마이크로블로깅](http://en.wikipedia.org/wiki/" "Micro-blogging) 서비스에 계정을 갖고 있습니다." -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "%s에 답신" @@ -4313,11 +4376,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "아바타가 업데이트 되었습니다." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4446,22 +4504,22 @@ msgstr "이 사이트에 게시글 포스팅으로부터 당신은 금지되었 msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "답신을 추가 할 때에 데이타베이스 에러 : %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%2$s에서 %1$s까지 메시지" @@ -4751,11 +4809,11 @@ msgstr "SMS 인증" msgid "Sessions configuration" msgstr "SMS 인증" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5124,20 +5182,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "확인 코드가 없습니다." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "이 사이트 로그인" @@ -5708,25 +5766,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "내용이 없습니다!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "생성" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." @@ -5875,6 +5933,10 @@ msgstr "이 게시글에 대해 답장하기" msgid "Repeat this notice" msgstr "이 게시글에 대해 답장하기" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6052,47 +6114,47 @@ msgstr "메시지" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "몇 초 전" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "1분 전" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "%d분 전" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "1시간 전" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "%d시간 전" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "하루 전" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "%d일 전" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "1달 전" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "%d달 전" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "1년 전" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index acd8005c5..00ac4a797 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:17+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:08+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "Нема таква страница" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgstr "" "на корисникот или да [објавите нешто што сакате тој да го прочита](%%%%" "action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -390,8 +390,8 @@ msgstr "Тој прекар е во употреба. Одберете друг. msgid "Not a valid nickname." msgstr "Неправилен прекар." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -403,8 +403,8 @@ msgstr "Главната страница не е важечка URL-адрес msgid "Full name is too long (max 255 chars)." msgstr "Целото име е предолго (максимум 255 знаци)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Описот е предолг (дозволено е највеќе %d знаци)." @@ -481,18 +481,22 @@ msgstr "%s групи" msgid "groups on %s" msgstr "групи на %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Лошо барање." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Нема наведено oauth_token параметар." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Погрешен жетон." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -503,74 +507,85 @@ msgstr "Лошо барање." msgid "There was a problem with your session token. Try again, please." msgstr "Се поајви проблем со Вашиот сесиски жетон. Обидете се повторно." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Погрешен прекар / лозинка!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "Грешка при бришењето на корисникот на OAuth-програмот." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "" "Грешка во базата на податоци при вметнувањето на корисникот на OAuth-" "програмот." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "Жетонот на барањето %s е одобрен. Заменете го со жетон за пристап." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Жетонот на барањето %s е одбиен." +msgid "The request token %s has been denied and revoked." +msgstr "Жетонот на барањето %s е одбиен и поништен." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Неочекувано поднесување на образец." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Има програм кој сака да се поврзе со Вашата сметка" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Дозволи или одбиј пристап" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"Програмот <strong>%1$s</strong> од <strong>%2$s</strong> би сакал да може да " +"<strong>%3$s</strong> податоците за Вашата %4$s сметка. Треба да дозволувате " +"пристап до Вашата %4$s сметка само на трети страни на кои им верувате." + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Сметка" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Прекар" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Лозинка" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Одбиј" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Дозволи" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Дозволете или одбијте пристап до податоците за Вашата сметка." @@ -743,8 +758,8 @@ msgstr "Оригинал" msgid "Preview" msgstr "Преглед" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Бриши" @@ -795,8 +810,9 @@ msgstr "" "претплати на Вас во иднина, и нема да бидете известени ако имате @-одговори " "од корисникот." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Не" @@ -804,9 +820,9 @@ msgstr "Не" msgid "Do not block this user" msgstr "Не го блокирај корисников" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Да" @@ -910,6 +926,47 @@ msgstr "Разговор" msgid "Notices" msgstr "Забелешки" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Мора да сте најавени за да можете да избришете програм." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Програмот не е пронајден." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Не сте сопственик на овој програм." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Се појави проблем со Вашиот сесиски жетон." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Избриши програм" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Дали се сигурни дека сакате да го избришете овој програм? Ова воедно ќе ги " +"избрише сите податоци за програмот од базата, вклучувајќи ги сите постоечки " +"поврзувања." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Не го бриши овој програм" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Избриши го програмов" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -944,7 +1001,7 @@ msgstr "Дали сте сигурни дека сакате да ја избр msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1088,7 +1145,7 @@ msgstr "Оваа забелешка не Ви е омилена!" msgid "Add to favorites" msgstr "Додај во омилени" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Нема документ со наслов „%s“" @@ -1101,20 +1158,11 @@ msgstr "Уреди програм" msgid "You must be logged in to edit an application." msgstr "Мора да сте најавени за да можете да уредувате програми." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Не сте сопственик на овој програм." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Нема таков програм." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Се појави проблем со Вашиот сесиски жетон." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Образецов служи за уредување на програмот." @@ -1123,43 +1171,47 @@ msgstr "Образецов служи за уредување на програ msgid "Name is required." msgstr "Треба име." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Името е предолго (максимум 255 знаци)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Тоа име е во употреба. Одберете друго." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Треба опис." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "Изворната URL-адреса е предолга." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "Изворната URL-адреса е неважечка." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Треба организација." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "Организацијата е предолга (максимумот е 255 знаци)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "Треба домашна страница на организацијата." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "Повикувањето е предолго." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "URL-адресата за повикување е неважечка." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Не можев да го подновам програмот." @@ -2097,11 +2149,11 @@ msgstr "Мора да сте најавени за да можете да рег msgid "Use this form to register a new application." msgstr "Овој образец служи за регистрирање на нов програм." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "Треба изворна URL-адреса." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Не можеше да се создаде програмот." @@ -2237,28 +2289,28 @@ msgstr "Програми што ги имате регистрирано" msgid "You have not registered any applications yet." msgstr "Сè уште немате регистрирано ниеден програм," -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Поврзани програми" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "Им имате дозволено пристап до Вашата сметка на следните програми." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Не сте корисник на тој програм." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "Не можам да му го одземам пристапот на програмот: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "Му немате дозволено пристап до Вашата сметка на ниеден програм." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" "Развивачите можат да ги нагодат регистрациските поставки за нивните програми " @@ -2764,19 +2816,19 @@ msgstr "Јавна историја, стр. %d" msgid "Public timeline" msgstr "Јавна историја" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Канал на јавниот поток (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Канал на јавниот поток (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Канал на јавниот поток (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2784,11 +2836,11 @@ msgid "" msgstr "" "Ова е јавната историја за %%site.name%%, но досега никој ништо нема објавено." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Создајте ја првата забелешка!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2796,7 +2848,7 @@ msgstr "" "Зошто не [регистрирате сметка](%%action.register%%) и станете првиот " "објавувач!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2810,7 +2862,7 @@ msgstr "" "споделувате забелешки за себе со приајтелите, семејството и колегите! " "([Прочитајте повеќе](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3179,7 +3231,7 @@ msgstr "Не можете да повторувате сопствена заб msgid "You already repeated that notice." msgstr "Веќе ја имате повторено таа забелешка." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Повторено" @@ -3245,6 +3297,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Одговори на %1$s на %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Не можете да ставате корисници во песочен режим на оваа веб-страница." @@ -3259,9 +3315,8 @@ msgid "Sessions" msgstr "Сесии" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Нагодувања на изгледот на оваа StatusNet веб-страница." +msgstr "Нагодувања на сесиите за оваа StatusNet веб-страница." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3288,71 +3343,71 @@ msgstr "Зачувај нагодувања на веб-страницата" msgid "You must be logged in to view an application." msgstr "Мора да сте најавени за да можете да го видите програмот." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Профил на програмот" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Икона" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Име" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Организација" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Опис" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистики" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "создал: %1$s - основен пристап: %2$s - %3$d корисници" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Создадено од %1$s - основен пристап: %2$s - %3$d корисници" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Дејства на програмот" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Клуч за промена и тајна" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Инфо за програмот" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Потрошувачки клуч" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Потрошувачка тајна" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL на жетонот на барањето" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "URL на пристапниот жетон" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "Одобри URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3360,6 +3415,11 @@ msgstr "" "Напомена: Поддржуваме HMAC-SHA1 потписи. Не поддржуваме потпишување со прост " "текст." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Дали сте сигурни дека сакате да ја избришете оваа заблешка?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3577,12 +3637,12 @@ msgstr "Канал со забелешки за %s (Atom)" msgid "FOAF for %s" msgstr "FOAF за %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Ова е историјата за %1$s, но %2$s сè уште нема објавено ништо." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3590,7 +3650,7 @@ msgstr "" "Имате видено нешто интересно во последно време? Сè уште немате објавено " "ниедна забелешка, но сега е добро време за да почнете :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3599,7 +3659,7 @@ msgstr "" "Можете да го подбуцнете корисникот %1$s или [да објавите нешто што сакате да " "го прочита](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3613,7 +3673,7 @@ msgstr "" "register%%%%) за да можете да ги следите забелешките на **%s** и многу " "повеќе! ([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3624,7 +3684,7 @@ msgstr "" "(http://mk.wikipedia.org/wiki/Микроблогирање) базирана на слободната " "програмска алатка [StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Повторувања на %s" @@ -4307,10 +4367,6 @@ msgstr "" "Оваа веб-страница работи на %1$s верзија %2$s, Авторски права 2008-2010 " "StatusNet, Inc. и учесници." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Учесници" @@ -4445,21 +4501,21 @@ msgstr "Забрането Ви е да објавувате забелешки msgid "Problem saving notice." msgstr "Проблем во зачувувањето на белешката." -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Одговор од внесот во базата: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" @@ -4734,17 +4790,16 @@ msgid "Paths configuration" msgstr "Конфигурација на патеки" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Конфигурација на изгледот" +msgstr "Конфигурација на сесиите" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-ресурсот бара да може и да чита и да запишува, а вие можете само да " "читате." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "Неуспешен обид за API-заверка, прекар = %1$s, прокси = %2$s, IP = %3$s" @@ -5144,19 +5199,19 @@ msgstr "" "tracks - сè уште не е имплементирано.\n" "tracking - сè уште не е имплементирано.\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Нема пронајдено конфигурациска податотека. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Побарав конфигурациони податотеки на следниве места: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Препорачуваме да го пуштите инсталатерот за да го поправите ова." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Оди на инсталаторот." @@ -5807,23 +5862,23 @@ msgstr "З" msgid "at" msgstr "во" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "во контекст" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Одговори на забелешкава" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Забелешката е повторена" @@ -5964,6 +6019,10 @@ msgstr "Да ја повторам белешкава?" msgid "Repeat this notice" msgstr "Повтори ја забелешкава" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "Не е зададен корисник за еднокорисничкиот режим." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Песок" @@ -6130,47 +6189,47 @@ msgstr "Порака" msgid "Moderate" msgstr "Модерирај" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "пред неколку секунди" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "пред една минута" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "пред %d минути" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "пред еден час" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "пред %d часа" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "пред еден ден" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "пред %d денови" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "пред еден месец" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "пред %d месеца" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "пред една година" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index ef35a39b1..4252e6a83 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -8,55 +8,52 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:20+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:11+0000\n" "Language-Team: Norwegian (bokmål)\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 -#, fuzzy msgid "Access" -msgstr "Godta" +msgstr "Tilgang" #: actions/accessadminpanel.php:65 -#, fuzzy msgid "Site access settings" -msgstr "Innstillinger for IM" +msgstr "Innstillinger for nettstedstilgang" #: actions/accessadminpanel.php:158 -#, fuzzy msgid "Registration" -msgstr "Alle abonnementer" +msgstr "Registrering" #: actions/accessadminpanel.php:161 msgid "Private" -msgstr "" +msgstr "Privat" #: actions/accessadminpanel.php:163 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "Forhindre anonyme brukere (ikke innlogget) å se nettsted?" #: actions/accessadminpanel.php:167 msgid "Invite only" -msgstr "" +msgstr "Kun invitasjon" #: actions/accessadminpanel.php:169 msgid "Make registration invitation only." -msgstr "" +msgstr "Gjør at registrering kun kan skje gjennom invitasjon." #: actions/accessadminpanel.php:173 msgid "Closed" -msgstr "" +msgstr "Lukket" #: actions/accessadminpanel.php:175 msgid "Disable new registrations." -msgstr "" +msgstr "Deaktiver nye registreringer." #: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 #: actions/emailsettings.php:195 actions/imsettings.php:163 @@ -71,9 +68,8 @@ msgid "Save" msgstr "Lagre" #: actions/accessadminpanel.php:189 -#, fuzzy msgid "Save access settings" -msgstr "Innstillinger for IM" +msgstr "Lagre tilgangsinnstillinger" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 #: actions/showfavorites.php:137 actions/tag.php:51 @@ -96,7 +92,7 @@ msgstr "Ingen slik side" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -107,9 +103,9 @@ msgid "No such user." msgstr "Ingen slik bruker" #: actions/all.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s og venner" +msgstr "%1$s og venner, side %2$d" #: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 @@ -149,16 +145,16 @@ msgstr "" "eller post noe selv." #: actions/all.php:134 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kan prøve å [knuffe %s](../%s) fra dennes profil eller [post noe for å få " -"hans eller hennes oppmerksomhet](%%%%action.newnotice%%%%?status_textarea=%" -"s)." +"Du kan prøve å [knuffe %1$s](../%2$s) fra dennes profil eller [poste noe for " +"å få hans eller hennes oppmerksomhet](%%%%action.newnotice%%%%?" +"status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -326,18 +322,16 @@ msgid "No status found with that ID." msgstr "Fant ingen status med den ID-en." #: actions/apifavoritecreate.php:119 -#, fuzzy msgid "This status is already a favorite." -msgstr "Denne statusen er allerede en favoritt!" +msgstr "Denne statusen er allerede en favoritt." #: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 msgid "Could not create favorite." msgstr "Kunne ikke opprette favoritt." #: actions/apifavoritedestroy.php:122 -#, fuzzy msgid "That status is not a favorite." -msgstr "Den statusen er ikke en favoritt!" +msgstr "Den statusen er ikke en favoritt." #: actions/apifavoritedestroy.php:134 actions/disfavor.php:87 msgid "Could not delete favorite." @@ -357,23 +351,20 @@ msgid "Could not unfollow user: User not found." msgstr "Kunne ikke slutte å følge brukeren: Fant ikke brukeren." #: actions/apifriendshipsdestroy.php:120 -#, fuzzy msgid "You cannot unfollow yourself." -msgstr "Du kan ikke slutte å følge deg selv!" +msgstr "Du kan ikke slutte å følge deg selv." #: actions/apifriendshipsexists.php:94 msgid "Two user ids or screen_names must be supplied." msgstr "To bruker ID-er eller kallenavn må oppgis." #: actions/apifriendshipsshow.php:134 -#, fuzzy msgid "Could not determine source user." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke bestemme kildebruker." #: actions/apifriendshipsshow.php:142 -#, fuzzy msgid "Could not find target user." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke finne målbruker." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 #: actions/newgroup.php:126 actions/profilesettings.php:215 @@ -393,8 +384,8 @@ msgstr "Det nicket er allerede i bruk. Prøv et annet." msgid "Not a valid nickname." msgstr "Ugyldig nick." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -406,8 +397,8 @@ msgstr "Hjemmesiden er ikke en gyldig URL." msgid "Full name is too long (max 255 chars)." msgstr "Beklager, navnet er for langt (max 250 tegn)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Beskrivelsen er for lang (maks %d tegn)." @@ -422,31 +413,30 @@ msgstr "" #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." -msgstr "" +msgstr "For mange alias! Maksimum %d." #: actions/apigroupcreate.php:264 actions/editgroup.php:224 #: actions/newgroup.php:168 -#, fuzzy, php-format +#, php-format msgid "Invalid alias: \"%s\"" -msgstr "Ugyldig hjemmeside '%s'" +msgstr "Ugyldig alias: «%s»" #: actions/apigroupcreate.php:273 actions/editgroup.php:228 #: actions/newgroup.php:172 -#, fuzzy, php-format +#, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "Det nicket er allerede i bruk. Prøv et annet." +msgstr "Aliaset «%s» er allerede i bruk. Prøv et annet." #: actions/apigroupcreate.php:286 actions/editgroup.php:234 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "Alias kan ikke være det samme som kallenavn." #: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 #: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 #: actions/apigroupshow.php:82 actions/apitimelinegroup.php:91 -#, fuzzy msgid "Group not found!" -msgstr "API-metode ikke funnet!" +msgstr "Gruppe ikke funnet!" #: actions/apigroupjoin.php:110 actions/joingroup.php:90 msgid "You are already a member of that group." @@ -454,22 +444,21 @@ msgstr "Du er allerede medlem av den gruppen." #: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "Du har blitt blokkert fra den gruppen av administratoren." #: actions/apigroupjoin.php:138 actions/joingroup.php:124 -#, fuzzy, php-format +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke legge bruker %1$s til gruppe %2$s." #: actions/apigroupleave.php:114 -#, fuzzy msgid "You are not a member of this group." -msgstr "Du er allerede logget inn!" +msgstr "Du er ikke et medlem av denne gruppen." #: actions/apigroupleave.php:124 actions/leavegroup.php:119 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke fjerne bruker %1$s fra gruppe %2$s." #: actions/apigrouplist.php:95 #, php-format @@ -479,25 +468,30 @@ msgstr "%s sine grupper" #: actions/apigrouplistall.php:90 actions/usergroups.php:62 #, php-format msgid "%s groups" -msgstr "" +msgstr "%s grupper" #: actions/apigrouplistall.php:94 #, php-format msgid "groups on %s" -msgstr "" +msgstr "grupper på %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "" +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Ingen verdi for oauth_token er oppgitt." + +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Ugyldig størrelse" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -508,76 +502,82 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 -#, fuzzy +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" -msgstr "Ugyldig brukernavn eller passord" +msgstr "Ugyldig kallenavn / passord!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" +msgstr "Tillat eller nekt tilgang" + +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 -#, fuzzy +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" -msgstr "Om" +msgstr "Konto" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Nick" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Passord" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" -msgstr "" +msgstr "Nekt" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" -msgstr "" +msgstr "Tillat" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "" +msgstr "Tillat eller nekt tilgang til din kontoinformasjon." #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." @@ -585,30 +585,28 @@ msgstr "" #: actions/apistatusesdestroy.php:130 msgid "You may not delete another user's status." -msgstr "" +msgstr "Du kan ikke slette statusen til en annen bruker." #: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 msgid "No such notice." -msgstr "" +msgstr "Ingen slik notis." #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "Kan ikke slette notisen." +msgstr "Kan ikke gjenta din egen notis." #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "Kan ikke slette notisen." +msgstr "Allerede gjentatt den notisen." #: actions/apistatusesshow.php:138 msgid "Status deleted." -msgstr "" +msgstr "Status slettet." #: actions/apistatusesshow.php:144 msgid "No status with that ID found." -msgstr "" +msgstr "Ingen status med den ID-en funnet." #: actions/apistatusesupdate.php:161 actions/newnotice.php:155 #: lib/mailhandler.php:60 @@ -618,7 +616,7 @@ msgstr "" #: actions/apistatusesupdate.php:202 msgid "Not found" -msgstr "" +msgstr "Ikke funnet" #: actions/apistatusesupdate.php:225 actions/newnotice.php:178 #, php-format @@ -630,14 +628,14 @@ msgid "Unsupported format." msgstr "" #: actions/apitimelinefavorites.php:108 -#, fuzzy, php-format +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1$s / Oppdateringer som svarer til %2$s" +msgstr "%1$s / Favoritter fra %2$s" #: actions/apitimelinefavorites.php:120 -#, fuzzy, php-format +#, php-format msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s oppdateringer som svarer på oppdateringer fra %2$s / %3$s." +msgstr "%1$s oppdateringer markert som favoritt av %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 #: actions/grouprss.php:131 actions/userrss.php:90 @@ -649,12 +647,12 @@ msgstr "%s tidslinje" #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Oppdateringar fra %1$s på %2$s!" #: actions/apitimelinementions.php:117 -#, fuzzy, php-format +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Oppdateringer som svarer til %2$s" +msgstr "%1$s / Oppdateringer som nevner %2$s" #: actions/apitimelinementions.php:127 #, php-format @@ -672,9 +670,9 @@ msgid "%s updates from everyone!" msgstr "%s oppdateringer fra alle sammen!" #: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#, php-format msgid "Repeated to %s" -msgstr "Svar til %s" +msgstr "Gjentatt til %s" #: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format @@ -684,21 +682,20 @@ msgstr "Svar til %s" #: actions/apitimelinetag.php:102 actions/tag.php:66 #, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "Notiser merket med %s" #: actions/apitimelinetag.php:108 actions/tagrss.php:64 -#, fuzzy, php-format +#, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "Mikroblogg av %s" +msgstr "Oppdateringer merket med %1$s på %2$s!" #: actions/apiusershow.php:96 -#, fuzzy msgid "Not found." -msgstr "Ingen id." +msgstr "Ikke funnet." #: actions/attachment.php:73 msgid "No such attachment." -msgstr "" +msgstr "Ingen slike vedlegg." #: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 #: actions/editgroup.php:84 actions/groupdesignsettings.php:84 @@ -706,11 +703,11 @@ msgstr "" #: actions/grouprss.php:91 actions/joingroup.php:76 actions/leavegroup.php:76 #: actions/showgroup.php:121 msgid "No nickname." -msgstr "" +msgstr "Ingen kallenavn." #: actions/avatarbynickname.php:64 msgid "No size." -msgstr "" +msgstr "Ingen størrelse." #: actions/avatarbynickname.php:69 msgid "Invalid size." @@ -741,18 +738,17 @@ msgstr "Innstillinger for IM" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:199 actions/grouplogo.php:259 msgid "Original" -msgstr "" +msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 #: actions/grouplogo.php:210 actions/grouplogo.php:271 msgid "Preview" -msgstr "" +msgstr "Forhåndsvis" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 -#, fuzzy +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" -msgstr "slett" +msgstr "Slett" #: actions/avatarsettings.php:166 actions/grouplogo.php:233 msgid "Upload" @@ -760,7 +756,7 @@ msgstr "Last opp" #: actions/avatarsettings.php:231 actions/grouplogo.php:286 msgid "Crop" -msgstr "" +msgstr "Beskjær" #: actions/avatarsettings.php:328 msgid "Pick a square area of the image to be your avatar" @@ -784,13 +780,12 @@ msgid "Avatar deleted." msgstr "Brukerbildet har blitt oppdatert." #: actions/block.php:69 -#, fuzzy msgid "You already blocked that user." -msgstr "Du er allerede logget inn!" +msgstr "Du har allerede blokkert den brukeren." #: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160 msgid "Block user" -msgstr "" +msgstr "Blokker brukeren" #: actions/block.php:130 msgid "" @@ -799,25 +794,25 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" -msgstr "" +msgstr "Nei" #: actions/block.php:143 actions/deleteuser.php:147 -#, fuzzy msgid "Do not block this user" -msgstr "Kan ikke slette notisen." +msgstr "Ikke blokker denne brukeren" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" #: actions/block.php:144 actions/groupmembers.php:346 lib/blockform.php:80 msgid "Block this user" -msgstr "" +msgstr "Blokker denne brukeren" #: actions/block.php:167 msgid "Failed to save block information." @@ -830,19 +825,18 @@ msgstr "" #: actions/grouprss.php:98 actions/groupunblock.php:86 #: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 #: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 -#, fuzzy msgid "No such group." -msgstr "Klarte ikke å lagre profil." +msgstr "Ingen slik gruppe." #: actions/blockedfromgroup.php:90 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles" -msgstr "Klarte ikke å lagre profil." +msgstr "%s blokkerte profiler" #: actions/blockedfromgroup.php:93 -#, fuzzy, php-format +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%s og venner" +msgstr "%1$s blokkerte profiler, side %2$d" #: actions/blockedfromgroup.php:108 msgid "A list of the users blocked from joining this group." @@ -899,7 +893,6 @@ msgid "Couldn't delete email confirmation." msgstr "" #: actions/confirmaddress.php:144 -#, fuzzy msgid "Confirm address" msgstr "Bekreft adresse" @@ -909,15 +902,58 @@ msgid "The address \"%s\" has been confirmed for your account." msgstr "" #: actions/conversation.php:99 -#, fuzzy msgid "Conversation" -msgstr "Bekreftelseskode" +msgstr "Samtale" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:216 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Gjør brukeren til en administrator for gruppen" + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Fant ikke bekreftelseskode." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Du er allerede logget inn!" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Ingen slik side" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Kan ikke slette notisen." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Beskriv degselv og dine interesser med 140 tegn" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -940,35 +976,31 @@ msgstr "" #: actions/deletenotice.php:109 actions/deletenotice.php:141 msgid "Delete notice" -msgstr "" +msgstr "Slett notis" #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" msgstr "Er du sikker på at du vil slette denne notisen?" #: actions/deletenotice.php:145 -#, fuzzy msgid "Do not delete this notice" -msgstr "Kan ikke slette notisen." +msgstr "Ikke slett denne notisen" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" -msgstr "" +msgstr "Slett denne notisen" #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Du kan ikke slette brukere." #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "Ugyldig OpenID" +msgstr "Du kan bare slette lokale brukere." #: actions/deleteuser.php:110 actions/deleteuser.php:133 -#, fuzzy msgid "Delete user" -msgstr "slett" +msgstr "Slett bruker" #: actions/deleteuser.php:135 msgid "" @@ -977,9 +1009,8 @@ msgid "" msgstr "" #: actions/deleteuser.php:148 lib/deleteuserform.php:77 -#, fuzzy msgid "Delete this user" -msgstr "Kan ikke slette notisen." +msgstr "Slett denne brukeren" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/adminpanelaction.php:316 lib/groupnav.php:119 @@ -1001,13 +1032,12 @@ msgid "Theme not available: %s" msgstr "" #: actions/designadminpanel.php:375 -#, fuzzy msgid "Change logo" -msgstr "Endre passordet ditt" +msgstr "Endre logo" #: actions/designadminpanel.php:380 msgid "Site logo" -msgstr "" +msgstr "Nettstedslogo" #: actions/designadminpanel.php:387 #, fuzzy @@ -1025,12 +1055,12 @@ msgstr "" #: actions/designadminpanel.php:417 lib/designsettings.php:101 msgid "Change background image" -msgstr "" +msgstr "Endre bakgrunnsbilde" #: actions/designadminpanel.php:422 actions/designadminpanel.php:497 #: lib/designsettings.php:178 msgid "Background" -msgstr "" +msgstr "Bakgrunn" #: actions/designadminpanel.php:427 #, php-format @@ -1060,9 +1090,8 @@ msgid "Change colours" msgstr "Endre farger" #: actions/designadminpanel.php:510 lib/designsettings.php:191 -#, fuzzy msgid "Content" -msgstr "Koble til" +msgstr "Innhold" #: actions/designadminpanel.php:523 lib/designsettings.php:204 #, fuzzy @@ -1079,7 +1108,7 @@ msgstr "Lenker" #: actions/designadminpanel.php:577 lib/designsettings.php:247 msgid "Use defaults" -msgstr "" +msgstr "Bruk standard" #: actions/designadminpanel.php:578 lib/designsettings.php:248 msgid "Restore default designs" @@ -1099,9 +1128,9 @@ msgstr "" #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Legg til i favoritter" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "" @@ -1116,71 +1145,61 @@ msgstr "Ingen slik side" msgid "You must be logged in to edit an application." msgstr "Gjør brukeren til en administrator for gruppen" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Du er allerede logget inn!" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Ingen slik side" -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" #: actions/editapplication.php:177 actions/newapplication.php:159 msgid "Name is required." -msgstr "" +msgstr "Navn kreves." -#: actions/editapplication.php:180 actions/newapplication.php:162 -#, fuzzy +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." -msgstr "Beklager, navnet er for langt (max 250 tegn)." +msgstr "Navn er for langt (maks 250 tegn)." -#: actions/editapplication.php:183 actions/newapplication.php:165 -#, fuzzy +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Navn allerede i bruk. Prøv et annet." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." -msgstr "Alle abonnementer" +msgstr "Beskrivelse kreves." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." -msgstr "" +msgstr "Kilde-URL er for lang." -#: actions/editapplication.php:197 actions/newapplication.php:182 -#, fuzzy +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." -msgstr "Hjemmesiden er ikke en gyldig URL." +msgstr "Kilde-URL er ikke gyldig." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." -msgstr "" +msgstr "Organisasjon kreves." -#: actions/editapplication.php:203 actions/newapplication.php:188 -#, fuzzy +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." -msgstr "Beskrivelsen er for lang (maks %d tegn)." +msgstr "Organisasjon er for lang (maks 255 tegn)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Klarte ikke å oppdatere bruker." @@ -1192,7 +1211,7 @@ msgstr "" #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Du må være innlogget for å opprette en gruppe." #: actions/editgroup.php:103 actions/editgroup.php:168 #: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 @@ -1205,19 +1224,17 @@ msgid "Use this form to edit the group." msgstr "" #: actions/editgroup.php:201 actions/newgroup.php:145 -#, fuzzy, php-format +#, php-format msgid "description is too long (max %d chars)." -msgstr "Bioen er for lang (max 140 tegn)" +msgstr "beskrivelse er for lang (maks %d tegn)" #: actions/editgroup.php:253 -#, fuzzy msgid "Could not update group." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke oppdatere gruppe." #: actions/editgroup.php:259 classes/User_group.php:390 -#, fuzzy msgid "Could not create aliases." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke opprette alias." #: actions/editgroup.php:269 msgid "Options saved." @@ -1263,13 +1280,12 @@ msgid "Cancel" msgstr "Avbryt" #: actions/emailsettings.php:121 -#, fuzzy msgid "Email address" msgstr "E-postadresse" #: actions/emailsettings.php:123 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "E-postadresse («brukernavn@eksempel.org»)" #: actions/emailsettings.php:126 actions/imsettings.php:133 #: actions/smssettings.php:145 @@ -1521,14 +1537,12 @@ msgid "Error updating remote profile" msgstr "" #: actions/getfile.php:79 -#, fuzzy msgid "No such file." -msgstr "Klarte ikke å lagre profil." +msgstr "Ingen slik fil." #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "Klarte ikke å lagre profil." +msgstr "Kan ikke lese fil." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1585,9 +1599,8 @@ msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Ingen id." +msgstr "Ingen ID." #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." @@ -1615,7 +1628,7 @@ msgstr "" #: actions/grouplogo.php:139 actions/grouplogo.php:192 msgid "Group logo" -msgstr "" +msgstr "Gruppelogo" #: actions/grouplogo.php:150 #, php-format @@ -1633,9 +1646,8 @@ msgid "Pick a square area of the image to be the logo." msgstr "" #: actions/grouplogo.php:396 -#, fuzzy msgid "Logo updated." -msgstr "Avataren har blitt oppdatert." +msgstr "Logo oppdatert." #: actions/grouplogo.php:398 msgid "Failed updating logo." @@ -1644,7 +1656,7 @@ msgstr "" #: actions/groupmembers.php:93 lib/groupnav.php:92 #, php-format msgid "%s group members" -msgstr "" +msgstr "%s gruppemedlemmer" #: actions/groupmembers.php:96 #, php-format @@ -1701,9 +1713,8 @@ msgid "" msgstr "" #: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122 -#, fuzzy msgid "Create a new group" -msgstr "Opprett en ny konto" +msgstr "Opprett en ny gruppe" #: actions/groupsearch.php:52 #, php-format @@ -1713,14 +1724,13 @@ msgid "" msgstr "" #: actions/groupsearch.php:58 -#, fuzzy msgid "Group search" -msgstr "Tekst-søk" +msgstr "Gruppesøk" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 msgid "No results." -msgstr "" +msgstr "Ingen resultat." #: actions/groupsearch.php:82 #, php-format @@ -1841,12 +1851,12 @@ msgstr "Det er ikke din Jabber ID." #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "" +msgstr "Innboks for %1$s - side %2$d" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Innboks for %s" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." @@ -1854,7 +1864,7 @@ msgstr "" #: actions/invite.php:39 msgid "Invites have been disabled." -msgstr "" +msgstr "Invitasjoner har blitt deaktivert." #: actions/invite.php:41 #, php-format @@ -1864,15 +1874,15 @@ msgstr "" #: actions/invite.php:72 #, php-format msgid "Invalid email address: %s" -msgstr "" +msgstr "Ugyldig e-postadresse: %s" #: actions/invite.php:110 msgid "Invitation(s) sent" -msgstr "" +msgstr "Invitasjon(er) sendt" #: actions/invite.php:112 msgid "Invite new users" -msgstr "" +msgstr "Inviter nye brukere" #: actions/invite.php:128 msgid "You are already subscribed to these users:" @@ -1881,7 +1891,7 @@ msgstr "" #: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 #, php-format msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" #: actions/invite.php:136 msgid "" @@ -1905,7 +1915,7 @@ msgstr "" #: actions/invite.php:187 msgid "Email addresses" -msgstr "" +msgstr "E-postadresser" #: actions/invite.php:189 msgid "Addresses of friends to invite (one per line)" @@ -1913,7 +1923,7 @@ msgstr "Adresser til venner som skal inviteres (én per linje)" #: actions/invite.php:192 msgid "Personal message" -msgstr "" +msgstr "Personlig melding" #: actions/invite.php:194 msgid "Optionally add a personal message to the invitation." @@ -1982,7 +1992,7 @@ msgstr "" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Du må være innlogget for å bli med i en gruppe." #: actions/joingroup.php:131 #, php-format @@ -1998,9 +2008,9 @@ msgid "You are not a member of that group." msgstr "" #: actions/leavegroup.php:127 -#, fuzzy, php-format +#, php-format msgid "%1$s left group %2$s" -msgstr "%1$s sin status på %2$s" +msgstr "%1$s forlot gruppe %2$s" #: actions/login.php:80 actions/otp.php:62 actions/register.php:137 msgid "Already logged in." @@ -2071,7 +2081,7 @@ msgstr "Gjør brukeren til en administrator for gruppen" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "Ingen nåværende status" #: actions/newapplication.php:52 #, fuzzy @@ -2086,11 +2096,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Klarte ikke å lagre avatar-informasjonen" @@ -2193,11 +2203,11 @@ msgstr "" #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Knuff sendt" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Knuff sendt!" #: actions/oauthappssettings.php:59 msgid "You must be logged in to list your applications." @@ -2216,29 +2226,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Du er allerede logget inn!" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2253,11 +2263,11 @@ msgstr "%1$s sin status på %2$s" #: actions/oembed.php:157 msgid "content type " -msgstr "" +msgstr "innholdstype " #: actions/oembed.php:160 msgid "Only " -msgstr "" +msgstr "Bare " #: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1039 #: lib/api.php:1067 lib/api.php:1177 @@ -2273,9 +2283,8 @@ msgid "Notice Search" msgstr "" #: actions/othersettings.php:60 -#, fuzzy msgid "Other settings" -msgstr "Innstillinger for IM" +msgstr "Andre innstillinger" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -2332,30 +2341,28 @@ msgstr "" #: actions/outbox.php:58 #, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "" +msgstr "Utboks for %1$s - side %2$d" #: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Utboks for %s" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "Dette er utboksen din som viser alle private meldinger du har sendt." #: actions/passwordsettings.php:58 msgid "Change password" msgstr "Endre passord" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Endre passord" +msgstr "Endre passordet ditt." #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy msgid "Password change" -msgstr "Passordet ble lagret" +msgstr "Endre passord" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2376,7 +2383,7 @@ msgstr "Bekreft" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" -msgstr "" +msgstr "Samme som passord ovenfor" #: actions/passwordsettings.php:117 msgid "Change" @@ -2384,11 +2391,11 @@ msgstr "Endre" #: actions/passwordsettings.php:154 actions/register.php:230 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Passord må være minst 6 tegn." #: actions/passwordsettings.php:157 actions/register.php:233 msgid "Passwords don't match." -msgstr "" +msgstr "Passordene var ikke like." #: actions/passwordsettings.php:165 msgid "Incorrect old password" @@ -2444,9 +2451,8 @@ msgid "Site" msgstr "" #: actions/pathsadminpanel.php:238 -#, fuzzy msgid "Server" -msgstr "Gjenopprett" +msgstr "Tjener" #: actions/pathsadminpanel.php:238 msgid "Site's server hostname." @@ -2530,24 +2536,23 @@ msgstr "" #: actions/pathsadminpanel.php:320 msgid "SSL" -msgstr "" +msgstr "SSL" #: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 -#, fuzzy msgid "Never" -msgstr "Gjenopprett" +msgstr "Aldri" #: actions/pathsadminpanel.php:324 msgid "Sometimes" -msgstr "" +msgstr "Noen ganger" #: actions/pathsadminpanel.php:325 msgid "Always" -msgstr "" +msgstr "Alltid" #: actions/pathsadminpanel.php:329 msgid "Use SSL" -msgstr "" +msgstr "Bruk SSL" #: actions/pathsadminpanel.php:330 msgid "When to use SSL" @@ -2674,7 +2679,7 @@ msgstr "Språk" #: actions/profilesettings.php:152 msgid "Preferred language" -msgstr "" +msgstr "Foretrukket språk" #: actions/profilesettings.php:161 msgid "Timezone" @@ -2682,7 +2687,7 @@ msgstr "Tidssone" #: actions/profilesettings.php:162 msgid "What timezone are you normally in?" -msgstr "" +msgstr "Hvilken tidssone er du vanligvis i?" #: actions/profilesettings.php:167 msgid "" @@ -2691,17 +2696,17 @@ msgstr "" "Abonner automatisk på de som abonnerer på meg (best for ikke-mennesker)" #: actions/profilesettings.php:228 actions/register.php:223 -#, fuzzy, php-format +#, php-format msgid "Bio is too long (max %d chars)." -msgstr "«Om meg» er for lang (maks 140 tegn)." +msgstr "«Om meg» er for lang (maks %d tegn)." #: actions/profilesettings.php:235 actions/siteadminpanel.php:150 msgid "Timezone not selected." -msgstr "" +msgstr "Tidssone ikke valgt." #: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." -msgstr "" +msgstr "Språk er for langt (maks 50 tegn)." #: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format @@ -2748,37 +2753,37 @@ msgstr "" msgid "Public timeline" msgstr "" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "%s offentlig strøm" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2787,7 +2792,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2973,7 +2978,7 @@ msgstr "" #: actions/register.php:212 msgid "Email address already exists." -msgstr "" +msgstr "E-postadressen finnes allerede." #: actions/register.php:243 actions/register.php:265 msgid "Invalid username or password." @@ -2996,7 +3001,7 @@ msgstr "6 eller flere tegn. Påkrevd." #: actions/register.php:434 msgid "Same as password above. Required." -msgstr "" +msgstr "Samme som passord over. Kreves." #: actions/register.php:438 actions/register.php:442 #: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 @@ -3013,23 +3018,22 @@ msgstr "Lengre navn, helst ditt \"ekte\" navn" #: actions/register.php:494 msgid "My text and files are available under " -msgstr "" +msgstr "Teksten og filene mine er tilgjengelig under " #: actions/register.php:496 msgid "Creative Commons Attribution 3.0" -msgstr "" +msgstr "Creative Commons Navngivelse 3.0" #: actions/register.php:497 -#, fuzzy msgid "" " except this private data: password, email address, IM address, and phone " "number." msgstr "" -"utenom disse private dataene: passord, epost, adresse, lynmeldingsadresse og " -"telefonnummer." +" utenom disse private dataene: passord, e-postadresse, lynmeldingsadresse " +"og telefonnummer." #: actions/register.php:538 -#, fuzzy, php-format +#, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " "want to...\n" @@ -3046,20 +3050,20 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Gratulerer, %s! Og velkommen til %%%%site.name%%%%. Herfra vil du " +"Gratulerer, %1$s! Og velkommen til %%%%site.name%%%%. Herfra vil du " "kanskje...\n" "\n" -"* Gå til [din profil](%s) og sende din første notis.\n" -"* Legge til en [Jabber/GTalk addresse](%%%%action.imsettings%%%%) så du kan " -"sende notiser fra lynmeldinger.\n" -"* [Søke etter brukere](%%%%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" +"* Gå til [din profil](%2$s) og sende din første melding.\n" +"* Legge til en [Jabber/GTalk-addresse](%%%%action.imsettings%%%%) så du kan " +"sende notiser gjennom lynmeldinger.\n" +"* [Søke etter brukere](%%%%action.peoplesearch%%%%) som du kanskje kjenner " +"eller deler dine interesser.\n" +"* Oppdater dine [profilinnstillinger](%%%%action.profilesettings%%%%) for å " +"fortelle mer om deg til andre.\n" +"* Les over [hjelpetekstene](%%%%doc.help%%%%) for funksjoner du kan ha gått " +"glipp av.\n" "\n" -"Thanks for signing up and we hope you enjoy using this service." +"Takk for at du registrerte deg og vi håper du kommer til å like tjenesten." #: actions/register.php:562 msgid "" @@ -3140,15 +3144,13 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du er allerede logget inn!" -#: actions/repeat.php:114 lib/noticelist.php:626 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" -msgstr "Opprett" +msgstr "Gjentatt" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "Opprett" +msgstr "Gjentatt!" #: actions/replies.php:125 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3157,24 +3159,24 @@ msgid "Replies to %s" msgstr "Svar til %s" #: actions/replies.php:127 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Svar til %s" +msgstr "Svar til %1$s, side %2$d" #: actions/replies.php:144 #, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "" +msgstr "Svarstrøm for %s (RSS 1.0)" #: actions/replies.php:151 #, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "" +msgstr "Svarstrøm for %s (RSS 2.0)" #: actions/replies.php:158 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Svar til %s" +msgstr "Svarstrøm for %s (Atom)" #: actions/replies.php:198 #, fuzzy, php-format @@ -3201,9 +3203,13 @@ msgstr "" "s)." #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "Svar til %s" +msgstr "Svar til %1$s på %2$s!" + +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy @@ -3250,79 +3256,81 @@ msgstr "Innstillinger for IM" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" -msgstr "" +msgstr "Ikon" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 -#, fuzzy msgid "Name" -msgstr "Nick" +msgstr "Navn" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 -#, fuzzy +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" -msgstr "Bekreftelseskode" +msgstr "Organisasjon" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 -#, fuzzy msgid "Description" -msgstr "Alle abonnementer" +msgstr "Beskrivelse" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistikk" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Opprettet av %1$s - %2$s standardtilgang - %3$d brukere" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Er du sikker på at du vil slette denne notisen?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3525,18 +3533,18 @@ msgstr "" msgid "FOAF for %s" msgstr "Feed for taggen %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Dette er tidslinjen for %s og venner, men ingen har postet noe enda." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3546,7 +3554,7 @@ msgstr "" "hans eller hennes oppmerksomhet](%%%%action.newnotice%%%%?status_textarea=%" "s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3555,7 +3563,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3563,7 +3571,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Svar til %s" @@ -4224,11 +4232,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Statistikk" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4350,21 +4353,21 @@ msgstr "" msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4641,11 +4644,11 @@ msgstr "" msgid "Sessions configuration" msgstr "" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5015,20 +5018,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Fant ikke bekreftelseskode." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5602,25 +5605,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Opprett" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 #, fuzzy msgid "Reply" msgstr "svar" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Nytt nick" @@ -5767,6 +5770,10 @@ msgstr "Kan ikke slette notisen." msgid "Repeat this notice" msgstr "Kan ikke slette notisen." +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5942,47 +5949,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "noen få sekunder siden" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "omtrent ett minutt siden" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "omtrent %d minutter siden" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "omtrent én time siden" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "omtrent %d timer siden" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "omtrent én dag siden" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "omtrent %d dager siden" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "omtrent én måned siden" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "omtrent %d måneder siden" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "omtrent ett år siden" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 9de175f9a..489ab7f95 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:26+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:17+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -94,7 +94,7 @@ msgstr "Deze pagina bestaat niet" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgstr "" "bericht voor die gebruiker plaatsen](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -394,8 +394,8 @@ msgstr "" msgid "Not a valid nickname." msgstr "Ongeldige gebruikersnaam!" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -407,8 +407,8 @@ msgstr "De thuispagina is geen geldige URL." msgid "Full name is too long (max 255 chars)." msgstr "De volledige naam is te lang (maximaal 255 tekens)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "De beschrijving is te lang (maximaal %d tekens)." @@ -485,18 +485,22 @@ msgstr "%s groepen" msgid "groups on %s" msgstr "groepen op %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Ongeldig verzoek." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Er is geen oauth_token parameter opgegeven." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Ongeldig token." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -509,23 +513,23 @@ msgstr "" "Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " "alstublieft." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Ongeldige gebruikersnaam of wachtwoord." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "" "Er is een databasefout opgetreden tijdens het verwijderen van de OAuth " "applicatiegebruiker." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "" "Er is een databasefout opgetreden tijdens het toevoegen van de OAuth " "applicatiegebruiker." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -534,53 +538,64 @@ msgstr "" "Het verzoektoken %s is geautoriseerd. Wissel het alstublieft uit voor een " "toegangstoken." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Het verzoektoken %s is geweigerd." +msgid "The request token %s has been denied and revoked." +msgstr "Het verzoektoken %s is geweigerd en ingetrokken." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Het formulier is onverwacht ingezonden." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Een applicatie vraagt toegang tot uw gebruikersgegevens" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Toegang toestaan of ontzeggen" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"De <strong>applicatie %1$s</strong> van <strong>%2$s</strong> vraagt toegang " +"van het type \"<strong>%3$s</strong> tot uw gebruikersgegevens. Geef alleen " +"toegang tot uw gebruiker bij %4$s aan derde partijen die u vertrouwt." + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Gebruiker" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Gebruikersnaam" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Wachtwoord" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Ontzeggen" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Toestaan" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Toegang tot uw gebruikersgegevens toestaan of ontzeggen." @@ -752,8 +767,8 @@ msgstr "Origineel" msgid "Preview" msgstr "Voorvertoning" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Verwijderen" @@ -804,8 +819,9 @@ msgstr "" "niet meer volgen en u wordt niet op de hoogte gebracht van \"@\"-antwoorden " "van deze gebruiker." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Nee" @@ -813,9 +829,9 @@ msgstr "Nee" msgid "Do not block this user" msgstr "Gebruiker niet blokkeren" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" @@ -919,6 +935,47 @@ msgstr "Dialoog" msgid "Notices" msgstr "Mededelingen" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "U moet aangemeld zijn om een applicatie te kunnen verwijderen." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "De applicatie is niet gevonden." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "U bent niet de eigenaar van deze applicatie." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Er is een probleem met uw sessietoken." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Applicatie verwijderen" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Weet u zeker dat u deze applicatie wilt verwijderen? Door deze handeling " +"worden alle gegevens van deze applicatie uit de database verwijderd, " +"inclusief alle bestaande gebruikersverbindingen." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Deze applicatie niet verwijderen" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Deze applicatie verwijderen" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -953,7 +1010,7 @@ msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -1098,7 +1155,7 @@ msgstr "Deze mededeling staats niet op uw favorietenlijst." msgid "Add to favorites" msgstr "Aan favorieten toevoegen" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Onbekend document \"%s\"" @@ -1111,20 +1168,11 @@ msgstr "Applicatie bewerken" msgid "You must be logged in to edit an application." msgstr "U moet aangemeld zijn om een applicatie te kunnen bewerken." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "U bent niet de eigenaar van deze applicatie." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "De applicatie bestaat niet." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Er is een probleem met uw sessietoken." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Gebruik dit formulier om uw applicatiegegevens te bewerken." @@ -1133,43 +1181,47 @@ msgstr "Gebruik dit formulier om uw applicatiegegevens te bewerken." msgid "Name is required." msgstr "Een naam is verplicht." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "De naam is te lang (maximaal 255 tekens)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Deze naam wordt al gebruikt. Kies een andere." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Een beschrijving is verplicht" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "De bron-URL is te lang." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "De bron-URL is niet geldig." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Organisatie is verplicht." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "De organisatienaam is te lang (maximaal 255 tekens)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "De homepage voor een organisatie is verplicht." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "De callback is te lang." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "De callback-URL is niet geldig." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Het was niet mogelijk de applicatie bij te werken." @@ -2114,11 +2166,11 @@ msgstr "U moet aangemeld zijn om een applicatie te kunnen registreren." msgid "Use this form to register a new application." msgstr "Gebruik dit formulier om een nieuwe applicatie te registreren." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "Een bron-URL is verplicht." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Het was niet mogelijk de applicatie aan te maken." @@ -2253,32 +2305,32 @@ msgstr "Door u geregistreerde applicaties" msgid "You have not registered any applications yet." msgstr "U hebt nog geen applicaties geregistreerd." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Verbonden applicaties" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" "U hebt de volgende applicaties toegang gegeven tot uw gebruikersgegevens." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "U bent geen gebruiker van die applicatie." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" "Het was niet mogelijk de toegang te ontzeggen voor de volgende applicatie: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" "U hebt geen enkele applicatie geautoriseerd voor toegang tot uw " "gebruikersgegevens." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" "Ontwikkelaars kunnen de registratiegegevens voor hun applicaties bewerken " @@ -2784,19 +2836,19 @@ msgstr "Openbare tijdlijn, pagina %d" msgid "Public timeline" msgstr "Openbare tijdlijn" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Publieke streamfeed (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Publieke streamfeed (RSS 1.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Publieke streamfeed (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2805,11 +2857,11 @@ msgstr "" "Dit is de publieke tijdlijn voor %%site.name%%, maar niemand heeft nog " "berichten geplaatst." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "U kunt de eerste zijn die een bericht plaatst!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2817,7 +2869,7 @@ msgstr "" "Waarom [registreert u geen gebruiker](%%action.register%%) en plaatst u als " "eerste een bericht?" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2830,7 +2882,7 @@ msgstr "" "net/). [Registreer nu](%%action.register%%) om mededelingen over uzelf te " "delen met vrienden, familie en collega's! [Meer lezen...](%%doc.help%%)" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3201,7 +3253,7 @@ msgstr "U kunt uw eigen mededeling niet herhalen." msgid "You already repeated that notice." msgstr "U hent die mededeling al herhaald." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Herhaald" @@ -3267,6 +3319,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Antwoorden aan %1$s op %2$s." +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Op deze website kunt u gebruikers niet in de zandbak plaatsen." @@ -3281,9 +3337,8 @@ msgid "Sessions" msgstr "Sessies" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Instellingen voor de vormgeving van deze StatusNet-website." +msgstr "Sessieinstellingen voor deze StatusNet-website." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3310,71 +3365,71 @@ msgstr "Websiteinstellingen opslaan" msgid "You must be logged in to view an application." msgstr "U moet aangemeld zijn om een applicatie te kunnen bekijken." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Applicatieprofiel" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Icoon" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Naam" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Organisatie" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Beschrijving" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistieken" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "aangemaakt door %1$s - standaardtoegang \"%2$s\" - %3$d gebruikers" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Aangemaakt door %1$s - standaardtoegang \"%2$s\" - %3$d gebruikers" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Applicatiehandelingen" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Sleutel en wachtwoord op nieuw instellen" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Applicatieinformatie" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Gebruikerssleutel" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Gebruikerswachtwoord" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL voor verzoektoken" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "URL voor toegangstoken" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "Autorisatie-URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3382,6 +3437,11 @@ msgstr "" "Opmerking: HMAC-SHA1 ondertekening wordt ondersteund. Ondertekening in " "platte tekst is niet mogelijk." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3600,13 +3660,13 @@ msgstr "Mededelingenfeed voor %s (Atom)" msgid "FOAF for %s" msgstr "Vriend van een vriend (FOAF) voor %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "Dit is de tijdlijn voor %1$s, maar %2$s heeft nog geen berichten verzonden." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3614,7 +3674,7 @@ msgstr "" "Hebt u recentelijk iets interessants gezien? U hebt nog geen mededelingen " "verstuurd, dus dit is een ideaal moment om daarmee te beginnen!" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3623,7 +3683,7 @@ msgstr "" "U kunt proberen %1$s te porren of [een bericht voor die gebruiker plaatsen](%" "%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3637,7 +3697,7 @@ msgstr "" "abonneren op de mededelingen van **%s** en nog veel meer! [Meer lezen...](%%%" "%doc.help%%%%)" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3648,7 +3708,7 @@ msgstr "" "(http://en.wikipedia.org/wiki/Micro-blogging) gebaseerd op de Vrije Software " "[StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Herhaald van %s" @@ -4336,10 +4396,6 @@ msgstr "" "Deze website wordt aangedreven door %1$2 versie %2$s. Auteursrechten " "voorbehouden 2008-2010 Statusnet, Inc. en medewerkers." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Medewerkers" @@ -4480,24 +4536,24 @@ msgstr "" msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " "groep." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" "Er is een databasefout opgetreden bij het invoegen van het antwoord: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" @@ -4772,17 +4828,16 @@ msgid "Paths configuration" msgstr "Padinstellingen" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Instellingen vormgeving" +msgstr "Sessieinstellingen" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Het API-programma heeft lezen-en-schrijventoegang nodig, maar u hebt alleen " "maar leestoegang." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5189,20 +5244,20 @@ msgstr "" "tracks - nog niet beschikbaar\n" "tracking - nog niet beschikbaar\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Er is geen instellingenbestand aangetroffen. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Er is gezocht naar instellingenbestanden op de volgende plaatsen: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" "U kunt proberen de installer uit te voeren om dit probleem op te lossen." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Naar het installatieprogramma gaan." @@ -5852,23 +5907,23 @@ msgstr "W" msgid "at" msgstr "op" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "in context" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Mededeling herhaald" @@ -6010,6 +6065,10 @@ msgstr "Deze mededeling herhalen?" msgid "Repeat this notice" msgstr "Deze mededeling herhalen" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "Er is geen gebruiker gedefinieerd voor single-usermodus." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Zandbak" @@ -6175,47 +6234,47 @@ msgstr "Bericht" msgid "Moderate" msgstr "Modereren" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "een paar seconden geleden" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "ongeveer een minuut geleden" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "ongeveer %d minuten geleden" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "ongeveer een uur geleden" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "ongeveer %d uur geleden" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "ongeveer een dag geleden" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "ongeveer %d dagen geleden" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "ongeveer een maand geleden" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "ongeveer %d maanden geleden" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "ongeveer een jaar geleden" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 934c0e32d..aa512e84a 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:23+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:14+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +99,7 @@ msgstr "Dette emneord finst ikkje." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -156,7 +156,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -391,8 +391,8 @@ msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." msgid "Not a valid nickname." msgstr "Ikkje eit gyldig brukarnamn." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -404,8 +404,8 @@ msgstr "Heimesida er ikkje ei gyldig internettadresse." msgid "Full name is too long (max 255 chars)." msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "skildringa er for lang (maks 140 teikn)." @@ -485,18 +485,23 @@ msgstr "%s grupper" msgid "groups on %s" msgstr "Gruppe handlingar" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Ugyldig storleik." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -507,76 +512,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Der var eit problem med sesjonen din. Vennlegst prøv på nytt." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Ugyldig brukarnamn eller passord." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Feil ved å setja brukar." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Uventa skjemasending." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Kallenamn" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Passord" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Alle" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -750,8 +763,8 @@ msgstr "Original" msgid "Preview" msgstr "Forhandsvis" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Slett" @@ -800,8 +813,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Nei" @@ -810,9 +824,9 @@ msgstr "Nei" msgid "Do not block this user" msgstr "Lås opp brukaren" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Jau" @@ -921,6 +935,50 @@ msgstr "Stadfestingskode" msgid "Notices" msgstr "Notisar" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Du må være logga inn for å lage ei gruppe." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Notisen har ingen profil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Du er ikkje medlem av den gruppa." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Det var eit problem med sesjons billetten din." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Denne notisen finst ikkje." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Kan ikkje sletta notisen." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Slett denne notisen" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -957,7 +1015,7 @@ msgstr "Sikker på at du vil sletta notisen?" msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1111,7 +1169,7 @@ msgstr "Denne notisen er ikkje ein favoritt!" msgid "Add to favorites" msgstr "Legg til i favorittar" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Slikt dokument finst ikkje." @@ -1126,22 +1184,12 @@ msgstr "Andre val" msgid "You must be logged in to edit an application." msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Du er ikkje medlem av den gruppa." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Denne notisen finst ikkje." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Det var eit problem med sesjons billetten din." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1152,47 +1200,52 @@ msgstr "Bruk dette skjemaet for å redigere gruppa" msgid "Name is required." msgstr "Samme som passord over. Påkrevd." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Beskriving" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Heimesida er ikkje ei gyldig internettadresse." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Plassering er for lang (maksimalt 255 teikn)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Kann ikkje oppdatera gruppa." @@ -2132,11 +2185,11 @@ msgstr "Du må være logga inn for å lage ei gruppe." msgid "Use this form to register a new application." msgstr "Bruk dette skjemaet for å lage ein ny gruppe." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Kunne ikkje lagre favoritt." @@ -2271,29 +2324,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Du er ikkje medlem av den gruppa." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2815,39 +2868,39 @@ msgstr "Offentleg tidsline, side %d" msgid "Public timeline" msgstr "Offentleg tidsline" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Offentleg straum" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Offentleg straum" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Offentleg straum" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2856,7 +2909,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3223,7 +3276,7 @@ msgstr "Du kan ikkje registrera deg om du ikkje godtek vilkåra i lisensen." msgid "You already repeated that notice." msgstr "Du har allereie blokkert denne brukaren." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Lag" @@ -3285,6 +3338,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Melding til %1$s på %2$s" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Lasta opp brukarbilete." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3331,79 +3389,84 @@ msgstr "Avatar-innstillingar" msgid "You must be logged in to view an application." msgstr "Du må være innlogga for å melde deg ut av ei gruppe." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Notisen har ingen profil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Kallenamn" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Paginering" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Beskriving" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistikk" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Sikker på at du vil sletta notisen?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3608,25 +3671,25 @@ msgstr "Notisstraum for %s" msgid "FOAF for %s" msgstr "Utboks for %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3635,7 +3698,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3645,7 +3708,7 @@ msgstr "" "**%s** har ein konto på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Svar til %s" @@ -4332,11 +4395,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Lasta opp brukarbilete." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4463,22 +4521,22 @@ msgstr "Du kan ikkje lengre legge inn notisar på denne sida." msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Databasefeil, kan ikkje lagra svar: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" @@ -4768,11 +4826,11 @@ msgstr "SMS bekreftelse" msgid "Sessions configuration" msgstr "SMS bekreftelse" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5144,20 +5202,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Ingen stadfestingskode." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Logg inn or sida" @@ -5735,25 +5793,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" @@ -5902,6 +5960,10 @@ msgstr "Svar på denne notisen" msgid "Repeat this notice" msgstr "Svar på denne notisen" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6079,47 +6141,47 @@ msgstr "Melding" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "eit par sekund sidan" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "omtrent eitt minutt sidan" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "~%d minutt sidan" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "omtrent ein time sidan" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "~%d timar sidan" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "omtrent ein dag sidan" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "~%d dagar sidan" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "omtrent ein månad sidan" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "~%d månadar sidan" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "omtrent eitt år sidan" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 02a3face1..cf3c247f8 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:30+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:20+0000\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Language-Team: Polish <pl@li.org>\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -30,7 +30,7 @@ msgstr "Dostęp" #: actions/accessadminpanel.php:65 msgid "Site access settings" -msgstr "Ustawienia dostępu strony" +msgstr "Ustawienia dostępu witryny" #: actions/accessadminpanel.php:158 msgid "Registration" @@ -42,7 +42,7 @@ msgstr "Prywatna" #: actions/accessadminpanel.php:163 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "Zabronić anonimowym użytkownikom (niezalogowanym) przeglądać stronę?" +msgstr "Zabronić anonimowym użytkownikom (niezalogowanym) przeglądać witrynę?" #: actions/accessadminpanel.php:167 msgid "Invite only" @@ -97,7 +97,7 @@ msgstr "Nie ma takiej strony" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -161,7 +161,7 @@ msgstr "" "[wysłać coś wymagającego jego uwagi](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -391,8 +391,8 @@ msgstr "Pseudonim jest już używany. Spróbuj innego." msgid "Not a valid nickname." msgstr "To nie jest prawidłowy pseudonim." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -404,8 +404,8 @@ msgstr "Strona domowa nie jest prawidłowym adresem URL." msgid "Full name is too long (max 255 chars)." msgstr "Imię i nazwisko jest za długie (maksymalnie 255 znaków)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Opis jest za długi (maksymalnie %d znaków)." @@ -482,18 +482,22 @@ msgstr "Grupy %s" msgid "groups on %s" msgstr "grupy na %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Błędne żądanie." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Nie podano parametru oauth_token." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Nieprawidłowy token." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -504,19 +508,19 @@ msgstr "Błędne żądanie." msgid "There was a problem with your session token. Try again, please." msgstr "Wystąpił problem z tokenem sesji. Spróbuj ponownie." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Nieprawidłowy pseudonim/hasło." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "Błąd bazy danych podczas usuwania użytkownika aplikacji OAuth." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "Błąd bazy danych podczas wprowadzania użytkownika aplikacji OAuth." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -524,53 +528,64 @@ msgid "" msgstr "" "Token żądania %s został upoważniony. Proszę wymienić go na token dostępu." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Token żądania %s został odrzucony." +msgid "The request token %s has been denied and revoked." +msgstr "Token żądania %s został odrzucony lub unieważniony." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Nieoczekiwane wysłanie formularza." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Aplikacja chce połączyć się z kontem użytkownika" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Zezwolić czy odmówić dostęp" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"Aplikacja <strong>%1$s</strong> autorstwa <strong>%2$s</strong> chciałaby " +"uzyskać możliwość <strong>%3$s</strong> danych konta %4$s. Dostęp do konta %4" +"$s powinien być udostępniany tylko zaufanym osobom trzecim." + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Pseudonim" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Hasło" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Odrzuć" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Zezwól" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Zezwól lub odmów dostęp do informacji konta." @@ -739,8 +754,8 @@ msgstr "Oryginał" msgid "Preview" msgstr "Podgląd" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Usuń" @@ -790,8 +805,9 @@ msgstr "" "do ciebie zostanie usunięta, nie będzie mógł cię subskrybować w przyszłości " "i nie będziesz powiadamiany o żadnych odpowiedziach @ od niego." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Nie" @@ -799,9 +815,9 @@ msgstr "Nie" msgid "Do not block this user" msgstr "Nie blokuj tego użytkownika" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Tak" @@ -905,6 +921,46 @@ msgstr "Rozmowa" msgid "Notices" msgstr "Wpisy" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Musisz być zalogowany, aby usunąć aplikację." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Nie odnaleziono aplikacji." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Nie jesteś właścicielem tej aplikacji." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Wystąpił problem z tokenem sesji." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Usuń aplikację" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Na pewno usunąć tę aplikację? Wyczyści to wszystkie dane o aplikacji z bazy " +"danych, w tym wszystkie istniejące połączenia użytkowników." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Nie usuwaj tej aplikacji" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Usuń tę aplikację" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -939,7 +995,7 @@ msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -974,7 +1030,7 @@ msgstr "Wygląd" #: actions/designadminpanel.php:73 msgid "Design settings for this StatusNet site." -msgstr "Ustawienia wyglądu tej strony StatusNet." +msgstr "Ustawienia wyglądu tej witryny StatusNet." #: actions/designadminpanel.php:275 msgid "Invalid logo URL." @@ -991,7 +1047,7 @@ msgstr "Zmień logo" #: actions/designadminpanel.php:380 msgid "Site logo" -msgstr "Logo strony" +msgstr "Logo witryny" #: actions/designadminpanel.php:387 msgid "Change theme" @@ -999,11 +1055,11 @@ msgstr "Zmień motyw" #: actions/designadminpanel.php:404 msgid "Site theme" -msgstr "Motyw strony" +msgstr "Motyw witryny" #: actions/designadminpanel.php:405 msgid "Theme for the site." -msgstr "Motyw strony." +msgstr "Motyw witryny." #: actions/designadminpanel.php:417 lib/designsettings.php:101 msgid "Change background image" @@ -1019,7 +1075,7 @@ msgstr "Tło" msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "Można wysłać obraz tła dla strony. Maksymalny rozmiar pliku to %1$s." +msgstr "Można wysłać obraz tła dla witryny. Maksymalny rozmiar pliku to %1$s." #: actions/designadminpanel.php:457 lib/designsettings.php:139 msgid "On" @@ -1081,7 +1137,7 @@ msgstr "Ten wpis nie jest ulubiony." msgid "Add to favorites" msgstr "Dodaj do ulubionych" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Nie ma takiego dokumentu \\\"%s\\\"" @@ -1094,20 +1150,11 @@ msgstr "Zmodyfikuj aplikację" msgid "You must be logged in to edit an application." msgstr "Musisz być zalogowany, aby zmodyfikować aplikację." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Nie jesteś właścicielem tej aplikacji." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Nie ma takiej aplikacji." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Wystąpił problem z tokenem sesji." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Użyj tego formularza, aby zmodyfikować aplikację." @@ -1116,43 +1163,47 @@ msgstr "Użyj tego formularza, aby zmodyfikować aplikację." msgid "Name is required." msgstr "Nazwa jest wymagana." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Nazwa jest za długa (maksymalnie 255 znaków)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Nazwa jest już używana. Spróbuj innej." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Opis jest wymagany." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "Źródłowy adres URL jest za długi." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "Źródłowy adres URL jest nieprawidłowy." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Organizacja jest wymagana." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "Organizacja jest za długa (maksymalnie 255 znaków)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "Strona domowa organizacji jest wymagana." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "Adres zwrotny jest za długi." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "Adres zwrotny URL jest nieprawidłowy." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Nie można zaktualizować aplikacji." @@ -1392,7 +1443,7 @@ msgstr "Popularne wpisy, strona %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "Najpopularniejsze wpisy na stronie w te chwili." +msgstr "Najpopularniejsze wpisy na witrynie w te chwili." #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." @@ -1881,7 +1932,7 @@ msgid "" "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." +"się na witrynie. Dziękujemy za pomoc w zwiększaniu społeczności." #: actions/invite.php:162 msgid "" @@ -2013,7 +2064,7 @@ msgstr "Zaloguj się" #: actions/login.php:227 msgid "Login to site" -msgstr "Zaloguj się na stronie" +msgstr "Zaloguj się na witrynie" #: actions/login.php:236 actions/register.php:478 msgid "Remember me" @@ -2081,11 +2132,11 @@ msgstr "Musisz być zalogowany, aby zarejestrować aplikację." msgid "Use this form to register a new application." msgstr "Użyj tego formularza, aby zarejestrować aplikację." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "Źródłowy adres URL jest wymagany." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Nie można utworzyć aplikacji." @@ -2219,28 +2270,28 @@ msgstr "Zarejestrowane aplikacje" msgid "You have not registered any applications yet." msgstr "Nie zarejestrowano jeszcze żadnych aplikacji." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Połączone aplikacje" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "Zezwolono następującym aplikacjom na dostęp do konta." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Nie jesteś użytkownikiem tej aplikacji." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "Nie można unieważnić dostępu dla aplikacji: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "Nie upoważniono żadnych aplikacji do używania konta." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "Programiści mogą zmodyfikować ustawienia rejestracji swoich aplikacji " @@ -2407,7 +2458,7 @@ msgstr "Ścieżki" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." -msgstr "Ustawienia ścieżki i serwera dla tej strony StatusNet." +msgstr "Ustawienia ścieżki i serwera dla tej witryny StatusNet." #: actions/pathsadminpanel.php:157 #, php-format @@ -2436,7 +2487,7 @@ msgstr "Nieprawidłowy serwer SSL. Maksymalna długość to 255 znaków." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 #: lib/adminpanelaction.php:311 msgid "Site" -msgstr "Strona" +msgstr "Witryny" #: actions/pathsadminpanel.php:238 msgid "Server" @@ -2452,7 +2503,7 @@ msgstr "Ścieżka" #: actions/pathsadminpanel.php:242 msgid "Site path" -msgstr "Ścieżka do strony" +msgstr "Ścieżka do witryny" #: actions/pathsadminpanel.php:246 msgid "Path to locales" @@ -2587,7 +2638,7 @@ msgstr "Nieprawidłowa zawartość wpisu" #: actions/postnotice.php:90 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "Licencja wpisu \"%1$s\" nie jest zgodna z licencją strony \"%2$s\"." +msgstr "Licencja wpisu \"%1$s\" nie jest zgodna z licencją witryny \"%2$s\"." #: actions/profilesettings.php:60 msgid "Profile settings" @@ -2621,7 +2672,7 @@ msgstr "Strona domowa" #: actions/profilesettings.php:117 actions/register.php:455 msgid "URL of your homepage, blog, or profile on another site" -msgstr "Adres URL strony domowej, bloga lub profilu na innej stronie" +msgstr "Adres URL strony domowej, bloga lub profilu na innej witrynie" #: actions/profilesettings.php:122 actions/register.php:461 #, php-format @@ -2742,19 +2793,19 @@ msgstr "Publiczna oś czasu, strona %d" msgid "Public timeline" msgstr "Publiczna oś czasu" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Kanał publicznego strumienia (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Kanał publicznego strumienia (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Kanał publicznego strumienia (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2763,11 +2814,11 @@ msgstr "" "To jest publiczna oś czasu dla %%site.name%%, ale nikt jeszcze nic nie " "wysłał." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Zostań pierwszym, który coś wyśle." -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2775,7 +2826,7 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%action.register%%) i zostaniesz " "pierwszym, który coś wyśle." -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2788,7 +2839,7 @@ msgstr "" "[Dołącz teraz](%%action.register%%), aby dzielić się wpisami o sobie z " "przyjaciółmi, rodziną i kolegami. ([Przeczytaj więcej](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3088,7 +3139,7 @@ msgid "" msgstr "" "Aby subskrybować, 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 " +"witrynie mikroblogowania](%%doc.openmublog%%), podaj poniżej adres URL " "profilu." #: actions/remotesubscribe.php:112 @@ -3154,7 +3205,7 @@ msgstr "Nie można powtórzyć własnego wpisu." msgid "You already repeated that notice." msgstr "Już powtórzono ten wpis." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Powtórzono" @@ -3220,9 +3271,13 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "odpowiedzi dla użytkownika %1$s na %2$s." +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." -msgstr "Nie można ograniczać użytkowników na tej stronie." +msgstr "Nie można ograniczać użytkowników na tej witrynie." #: actions/sandbox.php:72 msgid "User is already sandboxed." @@ -3234,9 +3289,8 @@ msgid "Sessions" msgstr "Sesje" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Ustawienia wyglądu tej strony StatusNet." +msgstr "Ustawienia sesji tej witryny StatusNet." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3257,77 +3311,77 @@ msgstr "Włącza wyjście debugowania dla sesji." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 #: actions/useradminpanel.php:293 msgid "Save site settings" -msgstr "Zapisz ustawienia strony" +msgstr "Zapisz ustawienia witryny" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." msgstr "Musisz być zalogowany, aby wyświetlić aplikację." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Profil aplikacji" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Ikona" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Nazwa" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Organizacja" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Opis" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statystyki" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "utworzona przez %1$s - domyślny dostęp: %2$s - %3$d użytkowników" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Utworzona przez %1$s - domyślny dostęp: %2$s - %3$d użytkowników" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Czynności aplikacji" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Przywrócenie klucza i sekretu" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Informacje o aplikacji" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Klucz klienta" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Sekret klienta" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "Adres URL tokenu żądania" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "Adres URL tokenu żądania" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "Adres URL upoważnienia" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3335,6 +3389,11 @@ msgstr "" "Uwaga: obsługiwane są podpisy HMAC-SHA1. Metoda podpisu w zwykłym tekście " "nie jest obsługiwana." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3552,13 +3611,13 @@ msgstr "Kanał wpisów dla %s (Atom)" msgid "FOAF for %s" msgstr "FOAF dla %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "To jest oś czasu dla użytkownika %1$s, ale %2$s nie nic jeszcze nie wysłał." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3566,7 +3625,7 @@ msgstr "" "Widziałeś ostatnio coś interesującego? Nie wysłałeś jeszcze żadnych wpisów, " "teraz jest dobry czas, aby zacząć. :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3575,7 +3634,7 @@ msgstr "" "Można spróbować szturchnąć użytkownika %1$s lub [wysłać coś, co wymaga jego " "uwagi](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3589,7 +3648,7 @@ msgstr "" "obserwować wpisy użytkownika **%s** i wiele więcej. ([Przeczytaj więcej](%%%%" "doc.help%%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3600,14 +3659,14 @@ msgstr "" "pl.wikipedia.org/wiki/Mikroblog) opartej na wolnym narzędziu [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Powtórzenia %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "Nie można wyciszać użytkowników na tej stronie." +msgstr "Nie można wyciszać użytkowników na tej witrynie." #: actions/silence.php:72 msgid "User is already silenced." @@ -3615,11 +3674,11 @@ msgstr "Użytkownik jest już wyciszony." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site." -msgstr "Podstawowe ustawienia tej strony StatusNet." +msgstr "Podstawowe ustawienia tej witryny StatusNet." #: actions/siteadminpanel.php:132 msgid "Site name must have non-zero length." -msgstr "Nazwa strony nie może mieć zerową długość." +msgstr "Nazwa witryny nie może mieć zerową długość." #: actions/siteadminpanel.php:140 msgid "You must have a valid contact email address." @@ -3656,7 +3715,7 @@ msgstr "Ogólne" #: actions/siteadminpanel.php:242 msgid "Site name" -msgstr "Nazwa strony" +msgstr "Nazwa witryny" #: actions/siteadminpanel.php:243 msgid "The name of your site, like \"Yourcompany Microblog\"" @@ -3680,7 +3739,7 @@ msgstr "Adres URL używany do odnośnika do zasług w stopce każdej strony" #: actions/siteadminpanel.php:257 msgid "Contact email address for your site" -msgstr "Kontaktowy adres e-mail strony" +msgstr "Kontaktowy adres e-mail witryny" #: actions/siteadminpanel.php:263 msgid "Local" @@ -3692,11 +3751,11 @@ msgstr "Domyślna strefa czasowa" #: actions/siteadminpanel.php:275 msgid "Default timezone for the site; usually UTC." -msgstr "Domyśla strefa czasowa strony, zwykle UTC." +msgstr "Domyśla strefa czasowa witryny, zwykle UTC." #: actions/siteadminpanel.php:281 msgid "Default site language" -msgstr "Domyślny język strony" +msgstr "Domyślny język witryny" #: actions/siteadminpanel.php:289 msgid "Snapshots" @@ -4059,7 +4118,7 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" "Licencja nasłuchiwanego strumienia \"%1$s\" nie jest zgodna z licencją " -"strony \"%2$s\"." +"witryny \"%2$s\"." #: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 #: lib/personalgroupnav.php:115 @@ -4068,7 +4127,7 @@ msgstr "Użytkownik" #: actions/useradminpanel.php:69 msgid "User settings for this StatusNet site." -msgstr "Ustawienia użytkownika dla tej strony StatusNet." +msgstr "Ustawienia użytkownika dla tej witryny StatusNet." #: actions/useradminpanel.php:148 msgid "Invalid bio limit. Must be numeric." @@ -4178,7 +4237,7 @@ msgid "" "subscription. Your subscription token is:" msgstr "" "Subskrypcja została upoważniona, ale nie przekazano zwrotnego adresu URL. " -"Sprawdź w instrukcjach strony, jak upoważnić subskrypcję. Token subskrypcji:" +"Sprawdź w instrukcjach witryny, jak upoważnić subskrypcję. Token subskrypcji:" #: actions/userauthorization.php:259 msgid "Subscription rejected" @@ -4191,7 +4250,7 @@ msgid "" "subscription." msgstr "" "Subskrypcja została odrzucona, ale nie przekazano zwrotnego adresu URL. " -"Sprawdź w instrukcjach strony, jak w pełni odrzucić subskrypcję." +"Sprawdź w instrukcjach witryny, jak w pełni odrzucić subskrypcję." #: actions/userauthorization.php:296 #, php-format @@ -4273,13 +4332,9 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" -"Ta strona korzysta z oprogramowania %1$s w wersji %2$s, Copyright 2008-2010 " +"Ta witryna korzysta z oprogramowania %1$s w wersji %2$s, Copyright 2008-2010 " "StatusNet, Inc. i współtwórcy." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Współtwórcy" @@ -4412,27 +4467,27 @@ msgstr "" #: classes/Notice.php:235 msgid "You are banned from posting notices on this site." -msgstr "Zabroniono ci wysyłania wpisów na tej stronie." +msgstr "Zabroniono ci wysyłania wpisów na tej witrynie." #: classes/Notice.php:294 classes/Notice.php:319 msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Błąd bazy danych podczas wprowadzania odpowiedzi: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." @@ -4484,7 +4539,7 @@ msgstr "Strona bez nazwy" #: lib/action.php:433 msgid "Primary site navigation" -msgstr "Główna nawigacja strony" +msgstr "Główna nawigacja witryny" #: lib/action.php:439 msgid "Home" @@ -4508,7 +4563,7 @@ msgstr "Połącz z serwisami" #: lib/action.php:448 msgid "Change site configuration" -msgstr "Zmień konfigurację strony" +msgstr "Zmień konfigurację witryny" #: lib/action.php:452 lib/subgroupnav.php:105 msgid "Invite" @@ -4525,7 +4580,7 @@ msgstr "Wyloguj się" #: lib/action.php:458 msgid "Logout from the site" -msgstr "Wyloguj się ze strony" +msgstr "Wyloguj się z witryny" #: lib/action.php:463 msgid "Create an account" @@ -4533,7 +4588,7 @@ msgstr "Utwórz konto" #: lib/action.php:466 msgid "Login to the site" -msgstr "Zaloguj się na stronę" +msgstr "Zaloguj się na witrynie" #: lib/action.php:469 lib/action.php:732 msgid "Help" @@ -4553,7 +4608,7 @@ msgstr "Wyszukaj osoby lub tekst" #: lib/action.php:493 msgid "Site notice" -msgstr "Wpis strony" +msgstr "Wpis witryny" #: lib/action.php:559 msgid "Local views" @@ -4565,7 +4620,7 @@ msgstr "Wpis strony" #: lib/action.php:727 msgid "Secondary site navigation" -msgstr "Druga nawigacja strony" +msgstr "Druga nawigacja witryny" #: lib/action.php:734 msgid "About" @@ -4626,7 +4681,7 @@ msgstr "" #: lib/action.php:801 msgid "Site content license" -msgstr "Licencja zawartości strony" +msgstr "Licencja zawartości witryny" #: lib/action.php:806 #, php-format @@ -4668,7 +4723,7 @@ msgstr "Wcześniej" #: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." -msgstr "Nie można wprowadzić zmian strony." +msgstr "Nie można wprowadzić zmian witryny." #: lib/adminpanelaction.php:107 msgid "Changes to that panel are not allowed." @@ -4688,7 +4743,7 @@ msgstr "Nie można usunąć ustawienia wyglądu." #: lib/adminpanelaction.php:312 msgid "Basic site configuration" -msgstr "Podstawowa konfiguracja strony" +msgstr "Podstawowa konfiguracja witryny" #: lib/adminpanelaction.php:317 msgid "Design configuration" @@ -4707,17 +4762,16 @@ msgid "Paths configuration" msgstr "Konfiguracja ścieżek" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Konfiguracja wyglądu" +msgstr "Konfiguracja sesji" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Zasób API wymaga dostępu do zapisu i do odczytu, ale powiadasz dostęp tylko " "do odczytu." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5123,19 +5177,19 @@ msgstr "" "tracks - jeszcze nie zaimplementowano\n" "tracking - jeszcze nie zaimplementowano\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Nie odnaleziono pliku konfiguracji." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Szukano plików konfiguracji w następujących miejscach: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Należy uruchomić instalator, aby to naprawić." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Przejdź do instalatora." @@ -5780,23 +5834,23 @@ msgstr "Zachód" msgid "at" msgstr "w" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Powtórzono wpis" @@ -5937,6 +5991,11 @@ msgstr "Powtórzyć ten wpis?" msgid "Repeat this notice" msgstr "Powtórz ten wpis" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" +"Nie określono pojedynczego użytkownika dla trybu pojedynczego użytkownika." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Ogranicz" @@ -5947,7 +6006,7 @@ msgstr "Ogranicz tego użytkownika" #: lib/searchaction.php:120 msgid "Search site" -msgstr "Przeszukaj stronę" +msgstr "Przeszukaj witrynę" #: lib/searchaction.php:126 msgid "Keyword(s)" @@ -5963,7 +6022,7 @@ msgstr "Osoby" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "Znajdź osoby na tej stronie" +msgstr "Znajdź osoby na tej witrynie" #: lib/searchgroupnav.php:83 msgid "Find content of notices" @@ -5971,7 +6030,7 @@ msgstr "Przeszukaj zawartość wpisów" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "Znajdź grupy na tej stronie" +msgstr "Znajdź grupy na tej witrynie" #: lib/section.php:89 msgid "Untitled section" @@ -6102,47 +6161,47 @@ msgstr "Wiadomość" msgid "Moderate" msgstr "Moderuj" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "kilka sekund temu" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "około minutę temu" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "około %d minut temu" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "około godzinę temu" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "około %d godzin temu" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "blisko dzień temu" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "około %d dni temu" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "około miesiąc temu" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "około %d miesięcy temu" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "około rok temu" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 178f0c581..239414026 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:34+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:23+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -96,7 +96,7 @@ msgstr "Página não encontrada." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgstr "" "Pode tentar [dar um toque em %1$s](../%2$s) a partir do perfil ou [publicar " "qualquer coisa à sua atenção](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -387,8 +387,8 @@ msgstr "Utilizador já é usado. Tente outro." msgid "Not a valid nickname." msgstr "Utilizador não é válido." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -400,8 +400,8 @@ msgstr "Página de ínicio não é uma URL válida." msgid "Full name is too long (max 255 chars)." msgstr "Nome completo demasiado longo (máx. 255 caracteres)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Descrição demasiado longa (máx. 140 caracteres)." @@ -478,18 +478,23 @@ msgstr "Grupos de %s" msgid "groups on %s" msgstr "Grupos em %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Tamanho inválido." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -500,77 +505,85 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Ocorreu um problema com a sua sessão. Por favor, tente novamente." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Nome de utilizador ou senha inválidos." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Erro ao configurar utilizador." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Erro na base de dados ao inserir a marca: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Envio inesperado de formulário." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Conta" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Utilizador" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Senha" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 #, fuzzy msgid "Deny" msgstr "Estilo" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "Todas" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -739,8 +752,8 @@ msgstr "Original" msgid "Preview" msgstr "Antevisão" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Apagar" @@ -790,8 +803,9 @@ msgstr "" "subscrição por este utilizador será cancelada, ele não poderá subscrevê-lo " "de futuro e você não receberá notificações das @-respostas dele." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Não" @@ -799,9 +813,9 @@ msgstr "Não" msgid "Do not block this user" msgstr "Não bloquear este utilizador" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sim" @@ -906,6 +920,53 @@ msgstr "Conversação" msgid "Notices" msgstr "Notas" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Precisa de iniciar sessão para editar um grupo." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Nota não tem perfil" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Não é membro deste grupo." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Ocorreu um problema com a sua sessão." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Nota não encontrada." + +#: actions/deleteapplication.php:149 +#, fuzzy +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Tem a certeza de que quer apagar este utilizador? Todos os dados do " +"utilizador serão eliminados da base de dados, sem haver cópias." + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Não apagar esta nota" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Apagar esta nota" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -940,7 +1001,7 @@ msgstr "Tem a certeza de que quer apagar esta nota?" msgid "Do not delete this notice" msgstr "Não apagar esta nota" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -1084,7 +1145,7 @@ msgstr "Esta nota não é uma favorita!" msgid "Add to favorites" msgstr "Adicionar às favoritas" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Documento não encontrado." @@ -1099,22 +1160,12 @@ msgstr "Outras opções" msgid "You must be logged in to edit an application." msgstr "Precisa de iniciar sessão para editar um grupo." -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Não é membro deste grupo." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Nota não encontrada." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Ocorreu um problema com a sua sessão." - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1125,48 +1176,53 @@ msgstr "Use este formulário para editar o grupo." msgid "Name is required." msgstr "Repita a senha acima. Obrigatório." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Nome completo demasiado longo (máx. 255 caracteres)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Utilizador já é usado. Tente outro." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Descrição" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "A URL ‘%s’ do avatar é inválida." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Localidade demasiado longa (máx. 255 caracteres)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 #, fuzzy msgid "Callback URL is not valid." msgstr "A URL ‘%s’ do avatar é inválida." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Não foi possível actualizar o grupo." @@ -2106,11 +2162,11 @@ msgstr "Tem de iniciar uma sessão para criar o grupo." msgid "Use this form to register a new application." msgstr "Use este formulário para criar um grupo novo." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Não foi possível criar sinónimos." @@ -2246,29 +2302,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Não é um membro desse grupo." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2775,19 +2831,19 @@ msgstr "Notas públicas, página %d" msgid "Public timeline" msgstr "Notas públicas" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Fonte de Notas Públicas (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Fonte de Notas Públicas (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Fonte de Notas Públicas (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2796,11 +2852,11 @@ msgstr "" "Estas são as notas públicas do site %%site.name%% mas ninguém publicou nada " "ainda." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Seja a primeira pessoa a publicar!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2808,7 +2864,7 @@ msgstr "" "Podia [registar uma conta](%%action.register%%) e ser a primeira pessoa a " "publicar!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2821,7 +2877,7 @@ msgstr "" "[StatusNet](http://status.net/). [Registe-se agora](%%action.register%%) " "para partilhar notas sobre si, família e amigos! ([Saber mais](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3190,7 +3246,7 @@ msgstr "Não pode repetir a sua própria nota." msgid "You already repeated that notice." msgstr "Já repetiu essa nota." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Repetida" @@ -3256,6 +3312,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respostas a %1$s em %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Não pode impedir notas públicas neste site." @@ -3300,79 +3360,84 @@ msgstr "Gravar configurações do site" msgid "You must be logged in to view an application." msgstr "Precisa de iniciar uma sessão para deixar um grupo." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Nota não tem perfil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Nome" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Paginação" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "Autor" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Tem a certeza de que quer apagar esta nota?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3590,12 +3655,12 @@ msgstr "Fonte de notas para %s (Atom)" msgid "FOAF for %s" msgstr "FOAF para %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Estas são as notas de %1$s, mas %2$s ainda não publicou nenhuma." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3603,7 +3668,7 @@ msgstr "" "Viu algo de interessante ultimamente? Como ainda não publicou nenhuma nota, " "esta seria uma óptima altura para começar :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3612,7 +3677,7 @@ msgstr "" "Pode tentar dar um toque em %1$s ou [publicar algo à sua atenção](%%%%action." "newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3626,7 +3691,7 @@ msgstr "" "register%%) para seguir as notas de **%s** e de muitos mais! ([Saber mais](%%" "doc.help%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3637,7 +3702,7 @@ msgstr "" "(http://en.wikipedia.org/wiki/Micro-blogging) baseado no programa de " "Software Livre [StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Repetência de %s" @@ -4316,10 +4381,6 @@ msgstr "" "Este site utiliza o %1$s versão %2$s, (c) 2008-2010 StatusNet, Inc. e " "colaboradores." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Colaboradores" @@ -4456,22 +4517,22 @@ msgstr "Está proibido de publicar notas neste site." msgid "Problem saving notice." msgstr "Problema na gravação da nota." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema na gravação da nota." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Ocorreu um erro na base de dados ao inserir a resposta: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" @@ -4748,11 +4809,11 @@ msgstr "Configuração das localizações" msgid "Sessions configuration" msgstr "Configuração do estilo" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5155,19 +5216,19 @@ msgstr "" "tracks - ainda não implementado.\n" "tracking - ainda não implementado.\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Ficheiro de configuração não encontrado. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Procurei ficheiros de configuração nos seguintes sítios: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Talvez queira correr o instalador para resolver esta questão." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir para o instalador." @@ -5813,23 +5874,23 @@ msgstr "O" msgid "at" msgstr "coords." -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Nota repetida" @@ -5970,6 +6031,10 @@ msgstr "Repetir esta nota?" msgid "Repeat this notice" msgstr "Repetir esta nota" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Bloquear notas públicas" @@ -6135,47 +6200,47 @@ msgstr "Mensagem" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "há alguns segundos" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "há cerca de um minuto" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "há cerca de %d minutos" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "há cerca de uma hora" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "há cerca de %d horas" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "há cerca de um dia" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "há cerca de %d dias" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "há cerca de um mês" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "há cerca de %d meses" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "há cerca de um ano" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 6d8a577e7..88b46d663 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:37+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:27+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Esta página não existe." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -161,7 +161,7 @@ msgstr "" "[publicar alguma coisa que desperte seu interesse](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -393,8 +393,8 @@ msgstr "Esta identificação já está em uso. Tente outro." msgid "Not a valid nickname." msgstr "Não é uma identificação válida." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -406,8 +406,8 @@ msgstr "A URL informada não é válida." msgid "Full name is too long (max 255 chars)." msgstr "Nome completo muito extenso (máx. 255 caracteres)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Descrição muito extensa (máximo %d caracteres)." @@ -484,18 +484,23 @@ msgstr "Grupos de %s" msgid "groups on %s" msgstr "grupos no %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Requisição errada." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Tamanho inválido." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -507,23 +512,23 @@ msgid "There was a problem with your session token. Try again, please." msgstr "" "Ocorreu um problema com o seu token de sessão. Tente novamente, por favor." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Nome de usuário e/ou senha inválido(s)!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "" "Erro no banco de dados durante a exclusão do aplicativo OAuth do usuário." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "" "Erro no banco de dados durante a inserção do aplicativo OAuth do usuário." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -532,53 +537,61 @@ msgstr "" "O token de requisição %s foi autorizado. Por favor, troque-o por um token de " "acesso." -#: actions/apioauthauthorize.php:241 -#, php-format -msgid "The request token %s has been denied." +#: actions/apioauthauthorize.php:227 +#, fuzzy, php-format +msgid "The request token %s has been denied and revoked." msgstr "O token de requisição %s foi negado." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Submissão inesperada de formulário." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Uma aplicação gostaria de se conectar à sua conta" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Permitir ou negar o acesso" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Conta" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Usuário" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Senha" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Negar" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Permitir" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Permitir ou negar o acesso às informações da sua conta." @@ -748,8 +761,8 @@ msgstr "Original" msgid "Preview" msgstr "Visualização" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Excluir" @@ -800,8 +813,9 @@ msgstr "" "nenhuma notificação acerca de qualquer citação (@usuário) que ele fizer de " "você." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Não" @@ -809,9 +823,9 @@ msgstr "Não" msgid "Do not block this user" msgstr "Não bloquear este usuário" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sim" @@ -915,6 +929,52 @@ msgstr "Conversa" msgid "Notices" msgstr "Mensagens" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Você precisa estar autenticado para editar uma aplicação." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Informação da aplicação" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Você não é o dono desta aplicação." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Ocorreu um problema com o seu token de sessão." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Editar a aplicação" + +#: actions/deleteapplication.php:149 +#, fuzzy +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Tem certeza que deseja excluir este usuário? Isso irá eliminar todos os " +"dados deste usuário do banco de dados, sem cópia de segurança." + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Não excluir esta mensagem." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Ícone para esta aplicação" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -949,7 +1009,7 @@ msgstr "Tem certeza que deseja excluir esta mensagem?" msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -1093,7 +1153,7 @@ msgstr "Esta mensagem não é uma favorita!" msgid "Add to favorites" msgstr "Adicionar às favoritas" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Esse documento não existe." @@ -1107,20 +1167,11 @@ msgstr "Editar a aplicação" msgid "You must be logged in to edit an application." msgstr "Você precisa estar autenticado para editar uma aplicação." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Você não é o dono desta aplicação." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Essa aplicação não existe." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Ocorreu um problema com o seu token de sessão." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Use este formulário para editar a sua aplicação." @@ -1129,43 +1180,48 @@ msgstr "Use este formulário para editar a sua aplicação." msgid "Name is required." msgstr "O nome é obrigatório." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "O nome é muito extenso (máx. 255 caracteres)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Esta identificação já está em uso. Tente outro." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "A descrição é obrigatória." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "A URL da fonte é muito extensa." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "A URL da fonte não é válida." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "A organização é obrigatória." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "A organização é muito extensa (máx. 255 caracteres)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "O site da organização é obrigatório." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "O retorno é muito extenso." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "A URL de retorno não é válida." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Não foi possível atualizar a aplicação." @@ -2109,11 +2165,11 @@ msgstr "Você deve estar autenticado para registrar uma aplicação." msgid "Use this form to register a new application." msgstr "Utilize este formulário para registrar uma nova aplicação." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "A URL da fonte é obrigatória." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Não foi possível criar a aplicação." @@ -2249,28 +2305,28 @@ msgstr "Aplicações que você registrou" msgid "You have not registered any applications yet." msgstr "Você ainda não registrou nenhuma aplicação." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Aplicações conectadas" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "Você permitiu que as seguintes aplicações acessem a sua conta." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Você não é um usuário dessa aplicação." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "Não foi possível revogar o acesso para a aplicação: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "Você não autorizou nenhuma aplicação a usar a sua conta." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" "Os desenvolvedores podem editar as configurações de registro para suas " @@ -2775,19 +2831,19 @@ msgstr "Mensagens públicas, pág. %d" msgid "Public timeline" msgstr "Mensagens públicas" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Fonte de mensagens públicas (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Fonte de mensagens públicas (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Fonte de mensagens públicas (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2796,11 +2852,11 @@ msgstr "" "Esse é o fluxo de mensagens públicas de %%site.name%%, mas ninguém publicou " "nada ainda." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Seja o primeiro a publicar!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2808,7 +2864,7 @@ msgstr "" "Por que você não [registra uma conta](%%action.register%%) pra ser o " "primeiro a publicar?" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2821,7 +2877,7 @@ msgstr "" "[Cadastre-se agora](%%action.register%%) para compartilhar notícias sobre " "você com seus amigos, família e colegas! ([Saiba mais](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3190,7 +3246,7 @@ msgstr "Você não pode repetir sua própria mensagem." msgid "You already repeated that notice." msgstr "Você já repetiu essa mensagem." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Repetida" @@ -3257,6 +3313,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respostas para %1$s no %2$s" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Você não pode colocar usuários deste site em isolamento." @@ -3300,71 +3360,71 @@ msgstr "Salvar as configurações do site" msgid "You must be logged in to view an application." msgstr "Você deve estar autenticado para visualizar uma aplicação." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Perfil da aplicação" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Ícone" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Nome" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Organização" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" -#: actions/showapplication.php:204 -#, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +#: actions/showapplication.php:203 +#, fuzzy, php-format +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "criado por %1$s - %2$s acessa por padrão - %3$d usuários" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Ações da aplicação" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Restaurar a chave e o segredo" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Informação da aplicação" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Chave do consumidor" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Segredo do consumidor" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL do token de requisição" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "URL do token de acesso" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "Autorizar a URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3372,6 +3432,11 @@ msgstr "" "Nota: Nós suportamos assinaturas HMAC-SHA1. Nós não suportamos o método de " "assinatura em texto plano." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Tem certeza que deseja excluir esta mensagem?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3589,14 +3654,14 @@ msgstr "Fonte de mensagens de %s (Atom)" msgid "FOAF for %s" msgstr "FOAF de %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" "Este é o fluxo público de mensagens de %1$s, mas %2$s não publicou nada " "ainda." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3604,7 +3669,7 @@ msgstr "" "Viu alguma coisa interessante recentemente? Você ainda não publicou nenhuma " "mensagem. Que tal começar agora? :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3613,7 +3678,7 @@ msgstr "" "Você pode tentar chamar a atenção de %1$s ou [publicar alguma coisa que " "desperte seu interesse](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3627,7 +3692,7 @@ msgstr "" "acompanhar as mensagens de **%s** e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3638,7 +3703,7 @@ msgstr "" "pt.wikipedia.org/wiki/Micro-blogging) baseado no software livre [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Repetição de %s" @@ -4318,10 +4383,6 @@ msgstr "" "Este site funciona sobre %1$s versão %2$s, Copyright 2008-2010 StatusNet, " "Inc. e colaboradores." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Colaboradores" @@ -4455,22 +4516,22 @@ msgstr "Você está proibido de publicar mensagens neste site." msgid "Problem saving notice." msgstr "Problema no salvamento da mensagem." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema no salvamento da mensagem." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Erro no banco de dados na inserção da reposta: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" @@ -4749,11 +4810,11 @@ msgstr "Configuração dos caminhos" msgid "Sessions configuration" msgstr "Configuração da aparência" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5155,19 +5216,19 @@ msgstr "" "tracks - não implementado ainda\n" "tracking - não implementado ainda\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Não foi encontrado nenhum arquivo de configuração. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Eu procurei pelos arquivos de configuração nos seguintes lugares: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Você pode querer executar o instalador para corrigir isto." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir para o instalador." @@ -5815,23 +5876,23 @@ msgstr "O" msgid "at" msgstr "em" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Mensagem repetida" @@ -5972,6 +6033,10 @@ msgstr "Repetir esta mensagem?" msgid "Repeat this notice" msgstr "Repetir esta mensagem" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Isolamento" @@ -6137,47 +6202,47 @@ msgstr "Mensagem" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "alguns segundos atrás" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "cerca de 1 minuto atrás" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "cerca de %d minutos atrás" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "cerca de 1 hora atrás" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "cerca de %d horas atrás" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "cerca de 1 dia atrás" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "cerca de %d dias atrás" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "cerca de 1 mês atrás" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "cerca de %d meses atrás" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "cerca de 1 ano atrás" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 8e501c51c..48e7d28aa 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -1,6 +1,7 @@ # Translation of StatusNet to Russian # # Author@translatewiki.net: Brion +# Author@translatewiki.net: Kirill # Author@translatewiki.net: Lockal # Author@translatewiki.net: Rubin # Author@translatewiki.net: Александр Сигачёв @@ -11,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:40+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:30+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +98,7 @@ msgstr "Нет такой страницы" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -159,7 +160,7 @@ msgstr "" "что-нибудь для привлечения его или её внимания](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -392,8 +393,8 @@ msgstr "Такое имя уже используется. Попробуйте msgid "Not a valid nickname." msgstr "Неверное имя." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -405,8 +406,8 @@ msgstr "URL Главной страницы неверен." msgid "Full name is too long (max 255 chars)." msgstr "Полное имя слишком длинное (не больше 255 знаков)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Слишком длинное описание (максимум %d символов)" @@ -483,18 +484,22 @@ msgstr "Группы %s" msgid "groups on %s" msgstr "группы на %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Неверный запрос." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Не задан параметр oauth_token." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Неправильный токен" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -505,19 +510,19 @@ msgstr "Неверный запрос." msgid "There was a problem with your session token. Try again, please." msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Неверное имя или пароль." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "Ошибка базы данных при удалении пользователя приложения OAuth." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "Ошибка базы данных при добавлении пользователя приложения OAuth." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -525,53 +530,65 @@ msgid "" msgstr "" "Ключ запроса %s авторизован. Пожалуйста, обменяйте его на ключ доступа." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Ключ запроса %s отклонён." +msgid "The request token %s has been denied and revoked." +msgstr "Запрос токена %s был запрещен и аннулирован." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Нетиповое подтверждение формы." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Приложение хочет соединиться с вашей учётной записью" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Разрешить или запретить доступ" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"Приложение <strong>%1$s</strong> от <strong>%2$s</strong> просит разрешение " +"на<strong>%3$s</strong> данных вашей учётной записи%4$s . Вы должны " +"предоставлять разрешение на доступ к вашей учётной записи %4$s только тем " +"сторонним приложениям, которым вы доверяете." + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Настройки" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Имя" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Пароль" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Запретить" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Разрешить" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Разрешить или запретить доступ к информации вашей учётной записи." @@ -741,8 +758,8 @@ msgstr "Оригинал" msgid "Preview" msgstr "Просмотр" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Удалить" @@ -792,8 +809,9 @@ msgstr "" "будет отписан от вас без возможности подписаться в будущем, а вам не будут " "приходить уведомления об @-ответах от него." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Нет" @@ -801,9 +819,9 @@ msgstr "Нет" msgid "Do not block this user" msgstr "Не блокировать этого пользователя" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Да" @@ -907,6 +925,47 @@ msgstr "Дискуссия" msgid "Notices" msgstr "Записи" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Вы должны войти в систему, чтобы удалить приложение." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Приложение не найдено." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Вы не являетесь владельцем этого приложения." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Удалить приложение" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Вы уверены, что хотите удалить это приложение? Это очистит все данные о " +"применении из базы данных, включая все существующие подключения " +"пользователей." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Не удаляйте это приложение" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Удалить это приложение" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -941,7 +1000,7 @@ msgstr "Вы уверены, что хотите удалить эту запи msgid "Do not delete this notice" msgstr "Не удалять эту запись" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -1085,7 +1144,7 @@ msgstr "Эта запись не входит в число ваших люби msgid "Add to favorites" msgstr "Добавить в любимые" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Нет такого документа «%s»" @@ -1098,20 +1157,11 @@ msgstr "Изменить приложение" msgid "You must be logged in to edit an application." msgstr "Вы должны авторизоваться, чтобы изменить приложение." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Вы не являетесь владельцем этого приложения." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Нет такого приложения." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Воспользуйтесь этой формой, чтобы изменить приложение." @@ -1120,43 +1170,47 @@ msgstr "Воспользуйтесь этой формой, чтобы изме msgid "Name is required." msgstr "Имя обязательно." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Имя слишком длинное (не больше 255 знаков)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Такое имя уже используется. Попробуйте какое-нибудь другое." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Описание обязательно." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "URL источника слишком длинный." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "URL источника недействителен." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Организация обязательна." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "Слишком длинное название организации (максимум 255 знаков)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "Домашняя страница организации обязательна." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "Обратный вызов слишком длинный." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "URL-адрес обратного вызова недействителен." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Не удаётся обновить приложение." @@ -2099,11 +2153,11 @@ msgstr "Вы должны авторизоваться, чтобы зареги msgid "Use this form to register a new application." msgstr "Используйте эту форму для создания нового приложения." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "URL источника обязателен." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Не удаётся создать приложение." @@ -2236,28 +2290,28 @@ msgstr "Приложения, которые вы зарегистрировал msgid "You have not registered any applications yet." msgstr "Вы пока не зарегистрировали ни одного приложения." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Подключённые приложения" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "Вы разрешили доступ к учётной записи следующим приложениям." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Вы не являетесь пользователем этого приложения." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "Не удаётся отозвать права для приложения: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "Вы не разрешили приложениям использовать вашу учётную запись." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "Разработчики могут изменять настройки регистрации своих приложений " @@ -2757,30 +2811,30 @@ msgstr "Общая лента, страница %d" msgid "Public timeline" msgstr "Общая лента" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Лента публичного потока (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Лента публичного потока (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Лента публичного потока (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "Это общая лента %%site.name%%, однако пока никто ничего не отправил." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Создайте первую запись!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2788,7 +2842,7 @@ msgstr "" "Почему бы не [зарегистрироваться](%%action.register%%), чтобы стать первым " "отправителем?" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2802,7 +2856,7 @@ msgstr "" "register%%), чтобы держать в курсе своих событий поклонников, друзей, " "родственников и коллег! ([Читать далее](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3168,7 +3222,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Повторено" @@ -3234,6 +3288,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Ответы на записи %1$s на %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3249,9 +3307,8 @@ msgid "Sessions" msgstr "Сессии" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Настройки оформления для этого сайта StatusNet." +msgstr "Настройки сессии для этого сайта StatusNet." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3278,71 +3335,71 @@ msgstr "Сохранить настройки сайта" msgid "You must be logged in to view an application." msgstr "Вы должны авторизоваться, чтобы просматривать приложения." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Профиль приложения" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Иконка" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Имя" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Организация" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Описание" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистика" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "создано %1$s — %2$s доступ по умолчанию — %3$d польз." +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Создано %1$s — доступ по умолчанию: %2$s — %3$d польз." -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Действия приложения" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Сбросить ключ и секретную фразу" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Информация о приложении" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Потребительский ключ" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Секретная фраза потребителя" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL ключа запроса" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "URL ключа доступа" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "URL авторизации" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3350,6 +3407,11 @@ msgstr "" "Примечание: Мы поддерживаем подписи HMAC-SHA1. Мы не поддерживаем метод " "подписи открытым текстом." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Вы уверены, что хотите удалить эту запись?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3566,12 +3628,12 @@ msgstr "Лента записей для %s (Atom)" msgid "FOAF for %s" msgstr "FOAF для %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Это лента %1$s, однако %2$s пока ничего не отправил." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3579,7 +3641,7 @@ msgstr "" "Видели недавно что-нибудь интересное? Вы ещё не отправили ни одной записи, " "сейчас хорошее время для начала :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3589,7 +3651,7 @@ msgstr "" "привлечения его или её внимания](%%%%action.newnotice%%%%?status_textarea=%2" "$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3604,7 +3666,7 @@ msgstr "" "сообщения участника **%s** и иметь доступ ко множеству других возможностей! " "([Читать далее](%%%%doc.help%%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3616,7 +3678,7 @@ msgstr "" "использованием свободного программного обеспечения [StatusNet](http://status." "net/)." -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Повтор за %s" @@ -4297,10 +4359,6 @@ msgstr "" "Этот сайт создан на основе %1$s версии %2$s, Copyright 2008-2010 StatusNet, " "Inc. и участники." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Разработчики" @@ -4434,21 +4492,21 @@ msgstr "Вам запрещено поститься на этом сайте ( msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Ошибка баз данных при вставке ответа для %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" @@ -4636,8 +4694,8 @@ msgid "" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"Этот сервис работает при помощи [StatusNet](http://status.net/) - " -"программного обеспечения для микроблогинга, версии %s, доступного под " +"Этот сервис работает при помощи [StatusNet](http://status.net/) — " +"программного обеспечения для микроблоггинга, версии %s, доступного под " "лицензией [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." @@ -4723,17 +4781,16 @@ msgid "Paths configuration" msgstr "Конфигурация путей" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Конфигурация оформления" +msgstr "Конфигурация сессий" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API ресурса требует доступ для чтения и записи, но у вас есть только доступ " "для чтения." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5135,19 +5192,19 @@ msgstr "" "tracks — пока не реализовано.\n" "tracking — пока не реализовано.\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Конфигурационный файл не найден. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Конфигурационные файлы искались в следующих местах: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Возможно, вы решите запустить установщик для исправления этого." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Перейти к установщику" @@ -5793,23 +5850,23 @@ msgstr "з. д." msgid "at" msgstr "на" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "в контексте" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Запись повторена" @@ -5950,6 +6007,10 @@ msgstr "Повторить эту запись?" msgid "Repeat this notice" msgstr "Повторить эту запись" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "Ни задан пользователь для однопользовательского режима." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Песочница" @@ -6115,47 +6176,47 @@ msgstr "Сообщение" msgid "Moderate" msgstr "Модерировать" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "пару секунд назад" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "около минуты назад" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "около %d минут(ы) назад" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "около часа назад" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "около %d часа(ов) назад" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "около дня назад" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "около %d дня(ей) назад" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "около месяца назад" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "около %d месяца(ев) назад" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "около года назад" diff --git a/locale/statusnet.po b/locale/statusnet.po index 6f6f1e58b..6275acc2c 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+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" @@ -90,7 +90,7 @@ msgstr "" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -147,7 +147,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -369,8 +369,8 @@ msgstr "" msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -382,8 +382,8 @@ msgstr "" msgid "Full name is too long (max 255 chars)." msgstr "" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "" @@ -460,18 +460,22 @@ msgstr "" msgid "groups on %s" msgstr "" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -482,72 +486,80 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -716,8 +728,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "" @@ -764,8 +776,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "" @@ -773,9 +786,9 @@ msgstr "" msgid "Do not block this user" msgstr "" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "" @@ -879,6 +892,44 @@ msgstr "" msgid "Notices" msgstr "" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "" + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -911,7 +962,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "" @@ -1051,7 +1102,7 @@ msgstr "" msgid "Add to favorites" msgstr "" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "" @@ -1064,20 +1115,11 @@ msgstr "" msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "" -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1086,43 +1128,47 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "" + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "" @@ -1976,11 +2022,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "" @@ -2105,28 +2151,28 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2618,36 +2664,36 @@ msgstr "" msgid "Public timeline" msgstr "" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2656,7 +2702,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2985,7 +3031,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "" @@ -3045,6 +3091,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "" @@ -3087,76 +3137,80 @@ msgstr "" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3356,25 +3410,25 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3383,7 +3437,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3391,7 +3445,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "" @@ -4031,10 +4085,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -msgid "StatusNet" -msgstr "" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4152,21 +4202,21 @@ msgstr "" msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4435,11 +4485,11 @@ msgstr "" msgid "Sessions configuration" msgstr "" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4795,19 +4845,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5358,23 +5408,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "" @@ -5515,6 +5565,10 @@ msgstr "" msgid "Repeat this notice" msgstr "" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5680,47 +5734,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index de78d46d8..aaf7206cc 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:45+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:34+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -94,7 +94,7 @@ msgstr "Ingen sådan sida" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -107,7 +107,7 @@ msgstr "Ingen sådan användare." #: actions/all.php:84 #, php-format msgid "%1$s and friends, page %2$d" -msgstr "%1$s blockerade profiler, sida %2$d" +msgstr "%1$s och vänner, sida %2$d" #: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 @@ -156,7 +156,7 @@ msgstr "" "någonting för hans eller hennes uppmärksamhet](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -280,7 +280,7 @@ msgstr "Hävning av blockering av användare misslyckades." #: actions/apidirectmessage.php:89 #, php-format msgid "Direct messages from %s" -msgstr "Direktmeddelande från %s" +msgstr "Direktmeddelanden från %s" #: actions/apidirectmessage.php:93 #, php-format @@ -383,8 +383,8 @@ msgstr "Smeknamnet används redan. Försök med ett annat." msgid "Not a valid nickname." msgstr "Inte ett giltigt smeknamn." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -396,8 +396,8 @@ msgstr "Hemsida är inte en giltig URL." msgid "Full name is too long (max 255 chars)." msgstr "Fullständigt namn är för långt (max 255 tecken)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Beskrivning är för lång (max 140 tecken)." @@ -474,18 +474,22 @@ msgstr "%s grupper" msgid "groups on %s" msgstr "grupper på %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Dålig förfrågan." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Ingen oauth_token-parameter angiven." + +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Ogiltig token." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -496,72 +500,83 @@ msgstr "Dålig förfrågan." msgid "There was a problem with your session token. Try again, please." msgstr "Det var ett problem med din sessions-token. Var vänlig försök igen." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Ogiltigt smeknamn / lösenord!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "Databasfel vid borttagning av OAuth-applikationsanvändare." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "Databasfel vid infogning av OAuth-applikationsanvändare." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "Begäran-token %s har godkänts. Byt ut den mot en åtkomst-token." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Begäran-token %s har nekats." +msgid "The request token %s has been denied and revoked." +msgstr "Begäran-token %s har nekats och återkallats." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Oväntat inskick av formulär." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "En applikation skulle vilja ansluta till ditt konto" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Tillåt eller neka åtkomst" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"Applikationen <strong>%1$s</strong> av <strong>%2$s</strong> vill att " +"möjligheten att <strong>%3$s</strong> din %4$s kontoinformation. Du bör bara " +"ge tillgång till ditt %4$s-konto till tredje-parter du litar på." + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Smeknamn" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Lösenord" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Neka" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Tillåt" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Tillåt eller neka åtkomst till din kontoinformation." @@ -731,8 +746,8 @@ msgstr "Orginal" msgid "Preview" msgstr "Förhandsgranska" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Ta bort" @@ -782,8 +797,9 @@ msgstr "" "prenumeration på dig tas bort, de kommer inte kunna prenumerera på dig i " "framtiden och du kommer inte bli underrättad om några @-svar från dem." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Nej" @@ -791,9 +807,9 @@ msgstr "Nej" msgid "Do not block this user" msgstr "Blockera inte denna användare" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" @@ -898,6 +914,47 @@ msgstr "Konversationer" msgid "Notices" msgstr "Notiser" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Du måste vara inloggad för att ta bort en applikation." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Applikation hittades inte." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Du är inte ägaren av denna applikation." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Det var ett problem med din sessions-token." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Ta bort applikation" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Är du säker på att du vill ta bort denna applikation? Detta kommer rensa " +"bort all data om applikationen från databasen, inklusive alla befintliga " +"användaranslutningar." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Ta inte bort denna applikation" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Ta bort denna applikation" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -932,7 +989,7 @@ msgstr "Är du säker på att du vill ta bort denna notis?" msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -1076,7 +1133,7 @@ msgstr "Denna notis är inte en favorit!" msgid "Add to favorites" msgstr "Lägg till i favoriter" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Inget sådant dokument \"%s\"" @@ -1089,20 +1146,11 @@ msgstr "Redigera applikation" msgid "You must be logged in to edit an application." msgstr "Du måste vara inloggad för att redigera en applikation." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Du är inte ägaren av denna applikation." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Ingen sådan applikation." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Det var ett problem med din sessions-token." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Använd detta formulär för att redigera din applikation." @@ -1111,43 +1159,47 @@ msgstr "Använd detta formulär för att redigera din applikation." msgid "Name is required." msgstr "Namn krävs." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Namnet är för långt (max 255 tecken)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Namnet används redan. Prova ett annat." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Beskrivning krävs." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "URL till källa är för lång." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "URL till källa är inte giltig." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Organisation krävs." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "Organisation är för lång (max 255 tecken)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "Hemsida för organisation krävs." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "Anrop är för lång." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "URL för anrop är inte giltig." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Kunde inte uppdatera applikation." @@ -2078,11 +2130,11 @@ msgstr "Du måste vara inloggad för att registrera en applikation." msgid "Use this form to register a new application." msgstr "Använd detta formulär för att registrera en ny applikation." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "URL till källa krävs." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Kunde inte skapa applikation." @@ -2217,28 +2269,28 @@ msgstr "Applikationer du har registrerat" msgid "You have not registered any applications yet." msgstr "Du har inte registrerat några applikationer än." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Anslutna applikationer" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "Du har tillåtit följande applikationer att komma åt ditt konto." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Du är inte en användare av den applikationen." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "Kunde inte återkalla åtkomst för applikation: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "Du har inte tillåtit några applikationer att använda ditt konto." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" "Utvecklare kan redigera registreringsinställningarna för sina applikationer " @@ -2740,19 +2792,19 @@ msgstr "Publik tidslinje, sida %d" msgid "Public timeline" msgstr "Publik tidslinje" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Publikt flöde av ström (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Publikt flöde av ström (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Publikt flöde av ström (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2761,11 +2813,11 @@ msgstr "" "Detta är den publika tidslinjen för %%site.name%% men ingen har postat något " "än." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Bli först att posta!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2773,7 +2825,7 @@ msgstr "" "Varför inte [registrera ett konto](%%action.register%%) och bli först att " "posta!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2786,7 +2838,7 @@ msgstr "" "net/). [Gå med nu](%%action.register%%) för att dela notiser om dig själv " "med vänner, familj och kollegor! ([Läs mer](%%doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3155,7 +3207,7 @@ msgstr "Du kan inte upprepa din egna notis." msgid "You already repeated that notice." msgstr "Du har redan upprepat denna notis." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Upprepad" @@ -3221,6 +3273,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Svar till %1$s på %2$s" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Du kan inte flytta användare till sandlådan på denna webbplats." @@ -3235,9 +3291,8 @@ msgid "Sessions" msgstr "Sessioner" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Utseendeinställningar för denna StatusNet-webbplats." +msgstr "Sessionsinställningar för denna StatusNet-webbplats." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3264,71 +3319,71 @@ msgstr "Spara webbplatsinställningar" msgid "You must be logged in to view an application." msgstr "Du måste vara inloggad för att se en applikation." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Applikationsprofil" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Ikon" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Namn" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Organisation" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Beskrivning" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistik" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "skapad av %1$s - %2$s standardåtkomst - %3$d användare" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Skapad av %1$s - %2$s standardåtkomst - %3$d användare" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Åtgärder för applikation" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Återställ nyckel & hemlighet" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Information om applikation" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Nyckel för konsument" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Hemlighet för konsument" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL för begäran-token" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "URL för åtkomst-token" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "Tillåt URL" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3336,6 +3391,11 @@ msgstr "" "Notera: Vi stöjder HMAC-SHA1-signaturer. Vi stödjer inte metoden med " "klartextsignatur." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Är du säker på att du vill ta bort denna notis?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3552,12 +3612,12 @@ msgstr "Flöde av notiser för %s (Atom)" msgid "FOAF for %s" msgstr "FOAF för %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Detta är tidslinjen för %1$s men %2$s har inte postat något än." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3565,7 +3625,7 @@ msgstr "" "Sett något intressant nyligen? Du har inte postat några notiser än. Varför " "inte börja nu?" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3574,7 +3634,7 @@ msgstr "" "Du kan prova att knuffa %1$s eller [posta något för hans eller hennes " "uppmärksamhet](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3587,7 +3647,7 @@ msgstr "" "[StatusNet](http://status.net/). [Gå med nu](%%%%action.register%%%%) för " "att följa **%s**s notiser och många fler! ([Läs mer](%%%%doc.help%%%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3598,7 +3658,7 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging)tjänst baserad på den fria programvaran " "[StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Upprepning av %s" @@ -4278,10 +4338,6 @@ msgstr "" "Denna webbplats drivs med %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. och medarbetare." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Medarbetare" @@ -4415,21 +4471,21 @@ msgstr "Du är utestängd från att posta notiser på denna webbplats." msgid "Problem saving notice." msgstr "Problem med att spara notis." -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Databasfel vid infogning av svar: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" @@ -4701,16 +4757,15 @@ msgid "Paths configuration" msgstr "Konfiguration av sökvägar" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Konfiguration av utseende" +msgstr "Konfiguration av sessioner" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-resursen kräver läs- och skrivrättigheter, men du har bara läsrättighet." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5110,19 +5165,19 @@ msgstr "" "tracks - inte implementerat än.\n" "tracking - inte implementerat än.\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Ingen konfigurationsfil hittades. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Jag letade efter konfigurationsfiler på följande platser: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Du kanske vill köra installeraren för att åtgärda detta." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Gå till installeraren." @@ -5766,23 +5821,23 @@ msgstr "V" msgid "at" msgstr "på" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Svara på denna notis" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Notis upprepad" @@ -5923,6 +5978,10 @@ msgstr "Upprepa denna notis?" msgid "Repeat this notice" msgstr "Upprepa denna notis" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "Ingen enskild användare definierad för enanvändarläge." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Flytta till sandlådan" @@ -6088,47 +6147,47 @@ msgstr "Meddelande" msgid "Moderate" msgstr "Moderera" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "ett par sekunder sedan" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "för nån minut sedan" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "för %d minuter sedan" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "för en timma sedan" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "för %d timmar sedan" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "för en dag sedan" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "för %d dagar sedan" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "för en månad sedan" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "för %d månader sedan" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "för ett år sedan" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 59757cc82..40cf0b5d6 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:48+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:37+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "అటువంటి పేజీ లేదు" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -152,7 +152,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -381,8 +381,8 @@ msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్ msgid "Not a valid nickname." msgstr "సరైన పేరు కాదు." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -394,8 +394,8 @@ msgstr "హోమ్ పేజీ URL సరైనది కాదు." msgid "Full name is too long (max 255 chars)." msgstr "పూర్తి పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." @@ -472,18 +472,23 @@ msgstr "%s గుంపులు" msgid "groups on %s" msgstr "%s పై గుంపులు" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "తప్పుడు అభ్యర్థన." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "తప్పుడు పరిమాణం." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -494,74 +499,82 @@ msgstr "తప్పుడు అభ్యర్థన." msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "తప్పుడు పేరు / సంకేతపదం!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "ఖాతా" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "పేరు" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "సంకేతపదం" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "తిరస్కరించు" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "అనుమతించు" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -579,14 +592,12 @@ msgid "No such notice." msgstr "అటువంటి సందేశమేమీ లేదు." #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "ఈ లైసెన్సుకి అంగీకరించకపోతే మీరు నమోదుచేసుకోలేరు." +msgstr "మీ నోటీసుని మీరే పునరావృతించలేరు." #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "ఈ నోటీసుని తొలగించు" +msgstr "ఇప్పటికే ఆ నోటీసుని పునరావృతించారు." #: actions/apistatusesshow.php:138 msgid "Status deleted." @@ -733,8 +744,8 @@ msgstr "అసలు" msgid "Preview" msgstr "మునుజూపు" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "తొలగించు" @@ -781,8 +792,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "కాదు" @@ -790,9 +802,9 @@ msgstr "కాదు" msgid "Do not block this user" msgstr "ఈ వాడుకరిని నిరోధించకు" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "అవును" @@ -898,6 +910,46 @@ msgstr "సంభాషణ" msgid "Notices" msgstr "సందేశాలు" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "ఉపకరణాలని తొలగించడానికి మీరు ప్రవేశించి ఉండాలి." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "ఉపకరణం కనబడలేదు." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని కాదు." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "ఉపకరణ తొలగింపు" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"మీరు నిజంగానే ఈ ఉపకరణాన్ని తొలగించాలనుకుంటున్నారా? ఇది ఆ ఉపకరణం గురించి భోగట్టాని, ప్రస్తుత " +"వాడుకరుల అనుసంధానాలతో సహా, డాటాబేసు నుండి తొలగిస్తుంది." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "ఈ ఉపకరణాన్ని తొలగించకు" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "ఈ ఉపకరణాన్ని తొలగించు" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -930,7 +982,7 @@ msgstr "మీరు నిజంగానే ఈ నోటీసుని త msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -1072,7 +1124,7 @@ msgstr "ఈ నోటీసు ఇష్టాంశం కాదు!" msgid "Add to favorites" msgstr "ఇష్టాంశాలకు చేర్చు" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "అటువంటి పత్రమేమీ లేదు." @@ -1086,20 +1138,11 @@ msgstr "ఉపకరణాన్ని మార్చు" msgid "You must be logged in to edit an application." msgstr "ఉపకరణాలని మార్చడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని కాదు." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "అటువంటి ఉపకరణం లేదు." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "మీ ఉపకరణాన్ని మార్చడానికి ఈ ఫారాన్ని ఉపయోగించండి." @@ -1108,44 +1151,49 @@ msgstr "మీ ఉపకరణాన్ని మార్చడానికి msgid "Name is required." msgstr "పేరు తప్పనిసరి." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "వివరణ తప్పనిసరి." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "హోమ్ పేజీ URL సరైనది కాదు." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "సంస్థ తప్పనిసరి." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "సంస్థ పేరు మరీ పెద్దగా ఉంది (255 అక్షరాలు గరిష్ఠం)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "గుంపుని తాజాకరించలేకున్నాం." @@ -1651,6 +1699,10 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"ఒకే రకమైన ఆసక్తులు ఉన్న వ్యక్తులు కలుసుకోడానికి మరియు మాట్లాడుకోడానికి %%%%site.name%%%% " +"గుంపులు వీలుకల్పిస్తాయి. ఒక గుంపులో చేరిన తర్వాత మీరు \"!groupname\" అన్న సంకేతం ద్వారా ఆ " +"గుంపు లోని సభ్యులందరికీ సందేశాలని పంపించవచ్చు. మీకు నచ్చిన గుంపు కనబడలేదా? [దాని కోసం వెతకండి](%%" +"%%action.groupsearch%%%%) లేదా [మీరే కొత్తది సృష్టించండి!](%%%%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122 msgid "Create a new group" @@ -2014,11 +2066,11 @@ msgstr "ఉపకరణాలని నమోదుచేసుకోడాన msgid "Use this form to register a new application." msgstr "కొత్త ఉపకరణాన్ని నమోదుచేసుకోడానికి ఈ ఫారాన్ని ఉపయోగించండి." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "మారుపేర్లని సృష్టించలేకపోయాం." @@ -2150,28 +2202,28 @@ msgstr "మీరు నమోదు చేసివున్న ఉపకరణ msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "సంధానిత ఉపకరణాలు" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "మీరు ఆ ఉపకరణం యొక్క వాడుకరి కాదు." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2679,39 +2731,39 @@ msgstr "ప్రజా కాలరేఖ, పేజీ %d" msgid "Public timeline" msgstr "ప్రజా కాలరేఖ" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "ప్రజా వాహిని ఫీడు" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "ప్రజా వాహిని ఫీడు" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "ప్రజా వాహిని ఫీడు" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2720,7 +2772,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3069,7 +3121,7 @@ msgstr "ఈ లైసెన్సుకి అంగీకరించకపో msgid "You already repeated that notice." msgstr "మీరు ఇప్పటికే ఆ వాడుకరిని నిరోధించారు." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" @@ -3133,6 +3185,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%sకి స్పందనలు" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "స్టేటస్నెట్" + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3179,77 +3235,82 @@ msgstr "సైటు అమరికలను భద్రపరచు" msgid "You must be logged in to view an application." msgstr "గుంపుని వదిలివెళ్ళడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "ప్రతీకం" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "పేరు" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "సంస్ధ" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "వివరణ" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "గణాంకాలు" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "ఉపకరణ చర్యలు" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "ఉపకరణ సమాచారం" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 #, fuzzy msgid "Authorize URL" msgstr "రచయిత" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "మీరు నిజంగానే ఈ నోటీసుని తొలగించాలనుకుంటున్నారా?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3449,26 +3510,26 @@ msgstr "%s యొక్క సందేశముల ఫీడు" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "ఇది %s మరియు మిత్రుల కాలరేఖ కానీ ఇంకా ఎవరూ ఏమీ రాయలేదు." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" "ఈమధ్యే ఏదైనా ఆసక్తికరమైనది చూసారా? మీరు ఇంకా నోటీసులేమీ వ్రాయలేదు, మొదలుపెట్టడానికి ఇదే మంచి సమయం :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3477,7 +3538,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3485,7 +3546,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "%s యొక్క పునరావృతం" @@ -3765,12 +3826,12 @@ msgstr "%1$s చందాదార్లు, పేజీ %2$d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "" +msgstr "వీళ్ళు మీ నోటీసులని వినే ప్రజలు." #: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "" +msgstr "వీళ్ళు %s యొక్క నోటీసులని వినే ప్రజలు." #: actions/subscribers.php:108 msgid "" @@ -4001,7 +4062,7 @@ msgstr "వాడుకరులను కొత్త వారిని ఆహ #: actions/userauthorization.php:105 msgid "Authorize subscription" -msgstr "" +msgstr "చందాని అధీకరించండి" #: actions/userauthorization.php:110 msgid "" @@ -4137,10 +4198,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -msgid "StatusNet" -msgstr "స్టేటస్నెట్" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4260,22 +4317,22 @@ msgstr "ఈ సైటులో నోటీసులు రాయడం ను msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" @@ -4556,11 +4613,11 @@ msgstr "SMS నిర్ధారణ" msgid "Sessions configuration" msgstr "రూపకల్పన స్వరూపణం" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4929,20 +4986,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "నిర్ధారణ సంకేతం లేదు." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5523,24 +5580,24 @@ msgstr "ప" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "సృష్టితం" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "నోటీసుని తొలగించాం." @@ -5687,6 +5744,10 @@ msgstr "ఈ నోటీసుపై స్పందించండి" msgid "Repeat this notice" msgstr "ఈ నోటీసుపై స్పందించండి" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5860,47 +5921,47 @@ msgstr "సందేశం" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "కొన్ని క్షణాల క్రితం" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "ఓ నిమిషం క్రితం" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "%d నిమిషాల క్రితం" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "ఒక గంట క్రితం" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "%d గంటల క్రితం" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "ఓ రోజు క్రితం" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "%d రోజుల క్రితం" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "ఓ నెల క్రితం" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "%d నెలల క్రితం" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "ఒక సంవత్సరం క్రితం" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 57d10e80f..9506731a4 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:51+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:40+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Böyle bir durum mesajı yok." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -157,7 +157,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -393,8 +393,8 @@ msgstr "Takma ad kullanımda. Başka bir tane deneyin." msgid "Not a valid nickname." msgstr "Geçersiz bir takma ad." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -406,8 +406,8 @@ msgstr "Başlangıç sayfası adresi geçerli bir URL değil." msgid "Full name is too long (max 255 chars)." msgstr "Tam isim çok uzun (azm: 255 karakter)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." @@ -487,18 +487,23 @@ msgstr "" msgid "groups on %s" msgstr "" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Geçersiz büyüklük." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -509,76 +514,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Geçersiz kullanıcı adı veya parola." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Kullanıcı ayarlamada hata oluştu." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Cevap eklenirken veritabanı hatası: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Beklenmeğen form girdisi." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 #, fuzzy msgid "Account" msgstr "Hakkında" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Takma ad" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Parola" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -755,8 +768,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "" @@ -806,8 +819,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "" @@ -816,9 +830,9 @@ msgstr "" msgid "Do not block this user" msgstr "Böyle bir kullanıcı yok." -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "" @@ -928,6 +942,50 @@ msgstr "Yer" msgid "Notices" msgstr "Durum mesajları" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Kullanıcı güncellenemedi." + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Bize o profili yollamadınız" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Böyle bir durum mesajı yok." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Böyle bir durum mesajı yok." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -961,7 +1019,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Böyle bir durum mesajı yok." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "" @@ -1114,7 +1172,7 @@ msgstr "" msgid "Add to favorites" msgstr "" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Böyle bir belge yok." @@ -1128,22 +1186,12 @@ msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Bize o profili yollamadınız" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Böyle bir durum mesajı yok." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1152,47 +1200,52 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Tam isim çok uzun (azm: 255 karakter)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Takma ad kullanımda. Başka bir tane deneyin." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Abonelikler" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Başlangıç sayfası adresi geçerli bir URL değil." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Yer bilgisi çok uzun (azm: 255 karakter)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Kullanıcı güncellenemedi." @@ -2101,11 +2154,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Avatar bilgisi kaydedilemedi" @@ -2234,29 +2287,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Bize o profili yollamadınız" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2779,39 +2832,39 @@ msgstr "Genel zaman çizgisi" msgid "Public timeline" msgstr "Genel zaman çizgisi" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2820,7 +2873,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3162,7 +3215,7 @@ msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." msgid "You already repeated that notice." msgstr "Zaten giriş yapmış durumdasıznız!" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Yarat" @@ -3224,6 +3277,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%s için cevaplar" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Avatar güncellendi." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3269,80 +3327,84 @@ msgstr "Ayarlar" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Takma ad" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Yer" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 #, fuzzy msgid "Description" msgstr "Abonelikler" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "İstatistikler" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3547,25 +3609,25 @@ msgstr "%s için durum RSS beslemesi" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3574,7 +3636,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3582,7 +3644,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "%s için cevaplar" @@ -4254,11 +4316,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Avatar güncellendi." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4382,22 +4439,22 @@ msgstr "" msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Cevap eklenirken veritabanı hatası: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4691,11 +4748,11 @@ msgstr "Eposta adresi onayı" msgid "Sessions configuration" msgstr "Eposta adresi onayı" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5067,20 +5124,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Onay kodu yok." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5659,26 +5716,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 #, fuzzy msgid "Reply" msgstr "cevapla" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" @@ -5826,6 +5883,10 @@ msgstr "Böyle bir durum mesajı yok." msgid "Repeat this notice" msgstr "Böyle bir durum mesajı yok." +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -6003,47 +6064,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "birkaç saniye önce" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "yaklaşık bir dakika önce" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "yaklaşık %d dakika önce" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "yaklaşık bir saat önce" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "yaklaşık %d saat önce" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "yaklaşık bir gün önce" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "yaklaşık %d gün önce" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "yaklaşık bir ay önce" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "yaklaşık %d ay önce" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "yaklaşık bir yıl önce" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index de786c829..1689b7d72 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:53+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:43+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Немає такої сторінки" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgstr "" "Ви можете [«розштовхати» %1$s](../%2$s) зі сторінки його профілю або [щось " "йому написати](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -388,8 +388,8 @@ msgstr "Це ім’я вже використовується. Спробуйт msgid "Not a valid nickname." msgstr "Це недійсне ім’я користувача." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -401,8 +401,8 @@ msgstr "Веб-сторінка має недійсну URL-адресу." msgid "Full name is too long (max 255 chars)." msgstr "Повне ім’я задовге (255 знаків максимум)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Опис надто довгий (%d знаків максимум)." @@ -479,18 +479,22 @@ msgstr "%s групи" msgid "groups on %s" msgstr "групи на %s" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." -msgstr "Невірний запит." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Жодного параметру oauth_token не забезпечено." -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Невірний токен." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -502,19 +506,19 @@ msgid "There was a problem with your session token. Try again, please." msgstr "" "Виникли певні проблеми з токеном поточної сесії. Спробуйте знов, будь ласка." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" msgstr "Недійсне ім’я / пароль!" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." msgstr "Помилка бази даних при видаленні користувача OAuth-додатку." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." msgstr "Помилка бази даних при додаванні користувача OAuth-додатку." -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " @@ -523,53 +527,65 @@ msgstr "" "Токен запиту %s було авторизовано. Будь ласка, обміняйте його на токен " "доступу." -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." -msgstr "Токен запиту %s було відхилено." +msgid "The request token %s has been denied and revoked." +msgstr "Токен запиту %s було скасовано і відхилено." -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Несподіване представлення форми." -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "Запит на дозвіл під’єднатися до Вашого облікового запису" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "Дозволити або заборонити доступ" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" +"Додаток <strong>%1$s</strong> від <strong>%2$s</strong> запитує дозвіл на " +"<strong>%3$s</strong> дані Вашого акаунту %4$s. Ви повинні надавати дозвіл " +"на доступ до Вашого акаунту %4$s лише тим стороннім додаткам, яким Ви " +"довіряєте." + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "Акаунт" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Ім’я користувача" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Пароль" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "Відхилити" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "Дозволити" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "Дозволити або заборонити доступ до Вашого облікового запису." @@ -740,8 +756,8 @@ msgstr "Оригінал" msgid "Preview" msgstr "Перегляд" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "Видалити" @@ -791,8 +807,9 @@ msgstr "" "відписано від Вас, він не зможе підписитасть до Вас у майбутньому і Ви " "більше не отримуватимете жодних дописів від нього." -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Ні" @@ -800,9 +817,9 @@ msgstr "Ні" msgid "Do not block this user" msgstr "Не блокувати цього користувача" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Так" @@ -906,6 +923,47 @@ msgstr "Розмова" msgid "Notices" msgstr "Дописи" +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Ви маєте спочатку увійти, аби мати змогу видалити додаток." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Додаток не виявлено." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Ви не є власником цього додатку." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "Виникли певні проблеми з токеном поточної сесії." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Видалити додаток" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"Впевнені, що бажаєте видалити цей додаток? У базі даних буде знищено всю " +"інформацію стосовно нього, включно із даними про під’єднаних до цього " +"додатку користувачів." + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Не видаляти додаток" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Видалити додаток" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -938,7 +996,7 @@ msgstr "Ви впевненні, що бажаєте видалити цей д msgid "Do not delete this notice" msgstr "Не видаляти цей допис" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "Видалити допис" @@ -1082,7 +1140,7 @@ msgstr "Цей допис не є обраним!" msgid "Add to favorites" msgstr "Додати до обраних" -#: actions/doc.php:155 +#: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" msgstr "Немає такого документа «%s»" @@ -1095,20 +1153,11 @@ msgstr "Керувати додатками" msgid "You must be logged in to edit an application." msgstr "Ви маєте спочатку увійти, аби мати змогу керувати додатком." -#: actions/editapplication.php:77 actions/showapplication.php:94 -msgid "You are not the owner of this application." -msgstr "Ви не є власником цього додатку." - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 msgid "No such application." msgstr "Такого додатку немає." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "Виникли певні проблеми з токеном поточної сесії." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "Скористайтесь цією формою, щоб відредагувати додаток." @@ -1117,43 +1166,47 @@ msgstr "Скористайтесь цією формою, щоб відреда msgid "Name is required." msgstr "Потрібне ім’я." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 msgid "Name is too long (max 255 chars)." msgstr "Ім’я задовге (255 знаків максимум)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Це ім’я вже використовується. Спробуйте інше." + +#: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." msgstr "Потрібен опис." -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "URL-адреса надто довга." -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 msgid "Source URL is not valid." msgstr "URL-адреса не є дійсною." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "Потрібна організація." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 msgid "Organization is too long (max 255 chars)." msgstr "Назва організації надто довга (255 знаків максимум)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "Потрібна домашня сторінка організації." -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "Форма зворотнього дзвінка надто довга." -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "URL-адреса для зворотнього дзвінка не є дійсною." -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 msgid "Could not update application." msgstr "Не вдалося оновити додаток." @@ -2087,11 +2140,11 @@ msgstr "Ви маєте спочатку увійти, аби мати змог msgid "Use this form to register a new application." msgstr "Скористайтесь цією формою, щоб зареєструвати новий додаток." -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "Потрібна URL-адреса." -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 msgid "Could not create application." msgstr "Не вдалося створити додаток." @@ -2225,29 +2278,29 @@ msgstr "Додатки, які Ви зареєстрували" msgid "You have not registered any applications yet." msgstr "Поки що Ви не зареєстрували жодних додатків." -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "Під’єднані додатки" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" "Ви маєте дозволити наступним додаткам доступ до Вашого облікового запису." -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." msgstr "Ви не є користувачем даного додатку." -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "Не вдалося скасувати доступ для додатку: " -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "Ви не дозволили жодним додаткам використовувати Ваш акаунт." -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "Розробники можуть змінити налаштування реєстрації для їхніх додатків " @@ -2749,19 +2802,19 @@ msgstr "Загальний стрічка, сторінка %d" msgid "Public timeline" msgstr "Загальна стрічка" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "Стрічка публічних дописів (RSS 1.0)" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "Стрічка публічних дописів (RSS 2.0)" -#: actions/public.php:159 +#: actions/public.php:167 msgid "Public Stream Feed (Atom)" msgstr "Стрічка публічних дописів (Atom)" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2769,11 +2822,11 @@ msgid "" msgstr "" "Це публічна стрічка дописів сайту %%site.name%%, але вона поки що порожня." -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "Станьте першим! Напишіть щось!" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2781,7 +2834,7 @@ msgstr "" "Чому б не [зареєструватись](%%action.register%%) і не зробити свій перший " "допис!" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2795,7 +2848,7 @@ msgstr "" "розділити своє життя з друзями, родиною і колегами! ([Дізнатися більше](%%" "doc.help%%))" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3161,7 +3214,7 @@ msgstr "Ви не можете вторувати своїм власним до msgid "You already repeated that notice." msgstr "Ви вже вторували цьому допису." -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 msgid "Repeated" msgstr "Вторування" @@ -3227,6 +3280,10 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Відповіді до %1$s на %2$s!" +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." msgstr "Ви не можете нікого ізолювати на цьому сайті." @@ -3241,9 +3298,8 @@ msgid "Sessions" msgstr "Сесії" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Налаштування дизайну для цього сайту StatusNet." +msgstr "Налаштування сесії для цього сайту StatusNet." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3270,71 +3326,71 @@ msgstr "Зберегти налаштування сайту" msgid "You must be logged in to view an application." msgstr "Ви повинні спочатку увійти, аби переглянути додаток." -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "Профіль додатку" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "Іконка" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 msgid "Name" msgstr "Ім’я" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 msgid "Organization" msgstr "Організація" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Опис" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистика" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" -msgstr "створено %1$s — %2$s доступ за замовч. — %3$d користувачів" +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "Створено %1$s — %2$s доступ за замовч. — %3$d користувачів" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "Можливості додатку" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "Призначити новий ключ і таємне слово" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "Інфо додатку" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "Ключ споживача" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "Таємно слово споживача" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "URL-адреса токена запиту" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "URL-адреса токена дозволу" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "Авторизувати URL-адресу" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." @@ -3342,6 +3398,11 @@ msgstr "" "До уваги: Всі підписи шифруються за методом HMAC-SHA1. Ми не підтримуємо " "шифрування підписів відкритим текстом." +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Ви впевненні, що бажаєте видалити цей допис?" + #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3558,12 +3619,12 @@ msgstr "Стрічка дописів для %s (Atom)" msgid "FOAF for %s" msgstr "FOAF для %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "Це стрічка дописів %1$s, але %2$s ще нічого не написав." -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3571,7 +3632,7 @@ msgstr "" "Побачили щось цікаве нещодавно? Ви ще нічого не написали і це слушна нагода " "аби розпочати! :)" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" @@ -3580,7 +3641,7 @@ msgstr "" "Ви можете «розштовхати» %1$s або [щось йому написати](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3594,7 +3655,7 @@ msgstr "" "register%%) зараз і слідкуйте за дописами **%s**, також на Вас чекає багато " "іншого! ([Дізнатися більше](%%doc.help%%))" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3666,7 @@ msgstr "" "(http://uk.wikipedia.org/wiki/Мікроблоґ), який працює на вільному " "програмному забезпеченні [StatusNet](http://status.net/). " -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "Вторування %s" @@ -4285,10 +4346,6 @@ msgstr "" "Цей сайт працює на %1$s, версія %2$s. Авторські права 2008-2010 StatusNet, " "Inc. і розробники." -#: actions/version.php:157 -msgid "StatusNet" -msgstr "StatusNet" - #: actions/version.php:161 msgid "Contributors" msgstr "Розробники" @@ -4422,21 +4479,21 @@ msgstr "Вам заборонено надсилати дописи до цьо msgid "Problem saving notice." msgstr "Проблема при збереженні допису." -#: classes/Notice.php:790 +#: classes/Notice.php:788 msgid "Problem saving group inbox." msgstr "Проблема при збереженні вхідних дописів для групи." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Помилка бази даних при додаванні відповіді: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" @@ -4708,17 +4765,16 @@ msgid "Paths configuration" msgstr "Конфігурація шляху" #: lib/adminpanelaction.php:337 -#, fuzzy msgid "Sessions configuration" -msgstr "Конфігурація дизайну" +msgstr "Конфігурація сесій" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-ресурс вимагає дозвіл типу «читання-запис», але у вас є лише доступ для " "читання." -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5118,19 +5174,19 @@ msgstr "" "tracks — наразі не виконується\n" "tracking — наразі не виконується\n" -#: lib/common.php:131 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Файлу конфігурації не знайдено. " -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Шукав файли конфігурації в цих місцях: " -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Запустіть файл інсталяції, аби полагодити це." -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Іти до файлу інсталяції." @@ -5775,23 +5831,23 @@ msgstr "Зах." msgid "at" msgstr "в" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 msgid "in context" msgstr "в контексті" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 msgid "Repeated by" msgstr "Вторуванні" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 msgid "Notice repeated" msgstr "Допис вторували" @@ -5932,6 +5988,10 @@ msgstr "Повторити цей допис?" msgid "Repeat this notice" msgstr "Вторувати цьому допису" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "Користувача для однокористувацького режиму не визначено." + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "Пісочниця" @@ -6097,47 +6157,47 @@ msgstr "Повідомлення" msgid "Moderate" msgstr "Модерувати" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "мить тому" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "хвилину тому" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "близько %d хвилин тому" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "годину тому" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "близько %d годин тому" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "день тому" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "близько %d днів тому" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "місяць тому" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "близько %d місяців тому" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "рік тому" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 81461c3a0..80d7d0c8d 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:56+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:46+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +99,7 @@ msgstr "Không có tin nhắn nào." #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -156,7 +156,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -395,8 +395,8 @@ msgstr "Biệt hiệu này đã dùng rồi. Hãy nhập biệt hiệu khác." msgid "Not a valid nickname." msgstr "Biệt hiệu không hợp lệ." -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -408,8 +408,8 @@ msgstr "Trang chủ không phải là URL" msgid "Full name is too long (max 255 chars)." msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Lý lịch quá dài (không quá 140 ký tự)" @@ -489,18 +489,23 @@ msgstr "%s và nhóm" msgid "groups on %s" msgstr "Mã nhóm" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "Kích thước không hợp lệ." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -511,76 +516,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "Tên đăng nhập hoặc mật khẩu không hợp lệ." -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "Lỗi xảy ra khi tạo thành viên." -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "Bất ngờ gửi mẫu thông tin. " -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 #, fuzzy msgid "Account" msgstr "Giới thiệu" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "Biệt danh" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "Mật khẩu" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -758,8 +771,8 @@ msgstr "" msgid "Preview" msgstr "Xem trước" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 #, fuzzy msgid "Delete" msgstr "Xóa tin nhắn" @@ -811,8 +824,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "Không" @@ -821,9 +835,9 @@ msgstr "Không" msgid "Do not block this user" msgstr "Bỏ chặn người dùng này" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Có" @@ -932,6 +946,51 @@ msgstr "Không có mã số xác nhận." msgid "Notices" msgstr "Tin nhắn" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "Tin nhắn không có hồ sơ cá nhân" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "Bạn chưa cập nhật thông tin riêng" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +#, fuzzy +msgid "There was a problem with your session token." +msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "Không có tin nhắn nào." + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "Không thể xóa tin nhắn này." + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "Xóa tin nhắn" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -966,7 +1025,7 @@ msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -1128,7 +1187,7 @@ msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của b msgid "Add to favorites" msgstr "Tìm kiếm các tin nhắn ưa thích của %s" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "Không có tài liệu nào." @@ -1143,23 +1202,12 @@ msgstr "Tin nhắn không có hồ sơ cá nhân" msgid "You must be logged in to edit an application." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Bạn chưa cập nhật thông tin riêng" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Không có tin nhắn nào." -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -#, fuzzy -msgid "There was a problem with your session token." -msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1169,47 +1217,52 @@ msgstr "" msgid "Name is required." msgstr "Cùng mật khẩu ở trên. Bắt buộc." -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)." -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "Biệt hiệu này đã dùng rồi. Hãy nhập biệt hiệu khác." + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "Mô tả" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "Trang chủ không phải là URL" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "Tên khu vực quá dài (không quá 255 ký tự)." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "Không thể cập nhật thành viên." @@ -2182,11 +2235,11 @@ msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "Không thể tạo favorite." @@ -2323,29 +2376,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2878,39 +2931,39 @@ msgstr "Dòng tin công cộng" msgid "Public timeline" msgstr "Dòng tin công cộng" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Dòng tin công cộng" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Dòng tin công cộng" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Dòng tin công cộng" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2919,7 +2972,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3281,7 +3334,7 @@ msgstr "Bạn không thể đăng ký nếu không đồng ý các điều kho msgid "You already repeated that notice." msgstr "Bạn đã theo những người này:" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "Tạo" @@ -3343,6 +3396,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%s chào mừng bạn " +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "Hình đại diện đã được cập nhật." + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3389,79 +3447,84 @@ msgstr "Thay đổi hình đại diện" msgid "You must be logged in to view an application." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "Tin nhắn không có hồ sơ cá nhân" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "Biệt danh" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "Thư mời đã gửi" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Mô tả" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Số liệu thống kê" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3668,25 +3731,25 @@ msgstr "Dòng tin nhắn cho %s" msgid "FOAF for %s" msgstr "Hộp thư đi của %s" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3695,7 +3758,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3703,7 +3766,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Trả lời cho %s" @@ -4402,11 +4465,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "Hình đại diện đã được cập nhật." - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4533,22 +4591,22 @@ msgstr "" msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%s (%s)" -#: classes/User.php:382 +#: classes/User.php:385 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " @@ -4850,11 +4908,11 @@ msgstr "Xác nhận SMS" msgid "Sessions configuration" msgstr "Xác nhận SMS" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5231,20 +5289,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Không có mã số xác nhận." -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5884,26 +5942,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 #, fuzzy msgid "Reply to this notice" msgstr "Trả lời tin nhắn này" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "Tin đã gửi" @@ -6058,6 +6116,10 @@ msgstr "Trả lời tin nhắn này" msgid "Repeat this notice" msgstr "Trả lời tin nhắn này" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6244,47 +6306,47 @@ msgstr "Tin mới nhất" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "vài giây trước" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "1 phút trước" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "%d phút trước" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "1 giờ trước" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "%d giờ trước" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "1 ngày trước" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "%d ngày trước" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "1 tháng trước" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "%d tháng trước" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "1 năm trước" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 702393633..ef95bd01a 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:42:59+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:49+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "没有该页面" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -158,7 +158,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -393,8 +393,8 @@ msgstr "昵称已被使用,换一个吧。" msgid "Not a valid nickname." msgstr "不是有效的昵称。" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -406,8 +406,8 @@ msgstr "主页的URL不正确。" msgid "Full name is too long (max 255 chars)." msgstr "全名过长(不能超过 255 个字符)。" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "描述过长(不能超过140字符)。" @@ -487,18 +487,23 @@ msgstr "%s 群组" msgid "groups on %s" msgstr "组动作" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "大小不正确。" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -509,76 +514,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "会话标识有问题,请重试。" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "用户名或密码不正确。" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "保存用户设置时出错。" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "添加标签时数据库出错:%s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "未预料的表单提交。" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 msgid "Account" msgstr "帐号" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "昵称" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "密码" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 #, fuzzy msgid "Allow" msgstr "全部" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -753,8 +766,8 @@ msgstr "原来的" msgid "Preview" msgstr "预览" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 #, fuzzy msgid "Delete" msgstr "删除" @@ -805,8 +818,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "否" @@ -815,9 +829,9 @@ msgstr "否" msgid "Do not block this user" msgstr "取消阻止次用户" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "是" @@ -928,6 +942,51 @@ msgstr "确认码" msgid "Notices" msgstr "通告" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "您必须登录才能创建小组。" + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "通告没有关联个人信息" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "您未告知此个人信息" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +#, fuzzy +msgid "There was a problem with your session token." +msgstr "会话标识有问题,请重试。" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "没有这份通告。" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "无法删除通告。" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "删除通告" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -962,7 +1021,7 @@ msgstr "确定要删除这条消息吗?" msgid "Do not delete this notice" msgstr "无法删除通告。" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 #, fuzzy msgid "Delete this notice" msgstr "删除通告" @@ -1117,7 +1176,7 @@ msgstr "此通告未被收藏!" msgid "Add to favorites" msgstr "加入收藏" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "没有这份文档。" @@ -1132,23 +1191,12 @@ msgstr "其他选项" msgid "You must be logged in to edit an application." msgstr "您必须登录才能创建小组。" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "您未告知此个人信息" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "没有这份通告。" -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -#, fuzzy -msgid "There was a problem with your session token." -msgstr "会话标识有问题,请重试。" - #: actions/editapplication.php:161 #, fuzzy msgid "Use this form to edit your application." @@ -1159,47 +1207,52 @@ msgstr "使用这个表单来编辑组" msgid "Name is required." msgstr "相同的密码。此项必填。" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "全名过长(不能超过 255 个字符)。" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "昵称已被使用,换一个吧。" + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "描述" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "主页的URL不正确。" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "位置过长(不能超过255个字符)。" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "无法更新组" @@ -2138,11 +2191,11 @@ msgstr "您必须登录才能创建小组。" msgid "Use this form to register a new application." msgstr "使用此表格创建组。" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "无法创建收藏。" @@ -2273,29 +2326,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "您未告知此个人信息" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2817,39 +2870,39 @@ msgstr "公开的时间表" msgid "Public timeline" msgstr "公开的时间表" -#: actions/public.php:151 +#: actions/public.php:159 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "公开的聚合" -#: actions/public.php:155 +#: actions/public.php:163 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "公开的聚合" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "公开的聚合" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2858,7 +2911,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3215,7 +3268,7 @@ msgstr "您必须同意此授权方可注册。" msgid "You already repeated that notice." msgstr "您已成功阻止该用户:" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "创建" @@ -3277,6 +3330,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "发送给 %1$s 的 %2$s 消息" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "头像已更新。" + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3323,80 +3381,85 @@ msgstr "头像设置" msgid "You must be logged in to view an application." msgstr "您必须登录才能邀请其他人使用 %s" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 #, fuzzy msgid "Application profile" msgstr "通告没有关联个人信息" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "昵称" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "分页" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 #, fuzzy msgid "Description" msgstr "描述" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "统计" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +#, fuzzy +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "确定要删除这条消息吗?" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3604,25 +3667,25 @@ msgstr "%s 的通告聚合" msgid "FOAF for %s" msgstr "%s 的发件箱" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, fuzzy, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3631,7 +3694,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3641,7 +3704,7 @@ msgstr "" "**%s** 有一个帐号在 %%%%site.name%%%%, 一个微博客服务 [micro-blogging]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, fuzzy, php-format msgid "Repeat of %s" msgstr "%s 的回复" @@ -4329,11 +4392,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "头像已更新。" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4459,22 +4517,22 @@ msgstr "在这个网站你被禁止发布消息。" msgid "Problem saving notice." msgstr "保存通告时出错。" -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "保存通告时出错。" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "添加回复时数据库出错:%s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/User.php:382 +#: classes/User.php:385 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "发送给 %1$s 的 %2$s 消息" @@ -4773,11 +4831,11 @@ msgstr "SMS短信确认" msgid "Sessions configuration" msgstr "SMS短信确认" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5146,20 +5204,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "没有验证码" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "登入本站" @@ -5751,27 +5809,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "没有内容!" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "创建" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 #, fuzzy msgid "Reply to this notice" msgstr "无法删除通告。" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 #, fuzzy msgid "Reply" msgstr "回复" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "消息已发布。" @@ -5924,6 +5982,10 @@ msgstr "无法删除通告。" msgid "Repeat this notice" msgstr "无法删除通告。" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 #, fuzzy msgid "Sandbox" @@ -6109,47 +6171,47 @@ msgstr "新消息" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "几秒前" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "一分钟前" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "%d 分钟前" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "一小时前" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "%d 小时前" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "一天前" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "%d 天前" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "一个月前" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "%d 个月前" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "一年前" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index ac78960c6..69eb63b8b 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-30 23:41+0000\n" -"PO-Revision-Date: 2010-01-30 23:43:02+0000\n" +"POT-Creation-Date: 2010-02-04 10:31+0000\n" +"PO-Revision-Date: 2010-02-04 10:33:52+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r61734); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.16alpha (r61969); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "無此通知" #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 #: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 #: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 #: actions/showfavorites.php:105 actions/userbyid.php:74 #: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 #: lib/command.php:163 lib/command.php:302 lib/command.php:355 @@ -154,7 +154,7 @@ msgid "" "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 +#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -386,8 +386,8 @@ msgstr "此暱稱已有人使用。再試試看別的吧。" msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:196 actions/editapplication.php:212 -#: actions/editgroup.php:195 actions/newapplication.php:200 +#: actions/apigroupcreate.php:196 actions/editapplication.php:215 +#: actions/editgroup.php:195 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." @@ -399,8 +399,8 @@ msgstr "個人首頁位址錯誤" msgid "Full name is too long (max 255 chars)." msgstr "全名過長(最多255字元)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:187 -#: actions/newapplication.php:169 +#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "自我介紹過長(共140個字元)" @@ -479,18 +479,23 @@ msgstr "" msgid "groups on %s" msgstr "" -#: actions/apioauthauthorize.php:108 actions/apioauthauthorize.php:114 -msgid "Bad request." +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:134 actions/avatarsettings.php:268 +#: actions/apioauthauthorize.php:106 +#, fuzzy +msgid "Invalid token." +msgstr "尺寸錯誤" + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:139 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 #: actions/othersettings.php:145 actions/passwordsettings.php:138 #: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 @@ -501,76 +506,84 @@ msgstr "" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:146 +#: actions/apioauthauthorize.php:135 #, fuzzy msgid "Invalid nickname / password!" msgstr "使用者名稱或密碼無效" -#: actions/apioauthauthorize.php:170 +#: actions/apioauthauthorize.php:159 #, fuzzy msgid "Database error deleting OAuth application user." msgstr "使用者設定發生錯誤" -#: actions/apioauthauthorize.php:196 +#: actions/apioauthauthorize.php:185 #, fuzzy msgid "Database error inserting OAuth application user." msgstr "增加回覆時,資料庫發生錯誤: %s" -#: actions/apioauthauthorize.php:231 +#: actions/apioauthauthorize.php:214 #, php-format msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" -#: actions/apioauthauthorize.php:241 +#: actions/apioauthauthorize.php:227 #, php-format -msgid "The request token %s has been denied." +msgid "The request token %s has been denied and revoked." msgstr "" -#: actions/apioauthauthorize.php:246 actions/avatarsettings.php:281 +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 #: actions/emailsettings.php:256 actions/grouplogo.php:319 #: actions/imsettings.php:220 actions/newapplication.php:121 -#: actions/oauthconnectionssettings.php:151 actions/recoverpassword.php:44 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:273 +#: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:290 +#: actions/apioauthauthorize.php:276 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:320 lib/action.php:441 +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:441 #, fuzzy msgid "Account" msgstr "關於" -#: actions/apioauthauthorize.php:323 actions/login.php:230 +#: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 #: actions/showgroup.php:236 actions/tagother.php:94 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" msgstr "暱稱" -#: actions/apioauthauthorize.php:326 actions/login.php:233 +#: actions/apioauthauthorize.php:316 actions/login.php:233 #: actions/register.php:429 lib/accountsettingsaction.php:116 msgid "Password" msgstr "" -#: actions/apioauthauthorize.php:338 +#: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" -#: actions/apioauthauthorize.php:344 +#: actions/apioauthauthorize.php:334 msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:361 +#: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." msgstr "" @@ -745,8 +758,8 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:608 +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:624 msgid "Delete" msgstr "" @@ -796,8 +809,9 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#: actions/block.php:143 actions/deletenotice.php:145 -#: actions/deleteuser.php:147 actions/groupblock.php:178 +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/groupblock.php:178 msgid "No" msgstr "" @@ -806,9 +820,9 @@ msgstr "" msgid "Do not block this user" msgstr "無此使用者" -#: actions/block.php:144 actions/deletenotice.php:146 -#: actions/deleteuser.php:148 actions/groupblock.php:179 -#: lib/repeatform.php:132 +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "" @@ -918,6 +932,50 @@ msgstr "地點" msgid "Notices" msgstr "" +#: actions/deleteapplication.php:63 +#, fuzzy +msgid "You must be logged in to delete an application." +msgstr "無法更新使用者" + +#: actions/deleteapplication.php:71 +#, fuzzy +msgid "Application not found." +msgstr "確認碼遺失" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +#, fuzzy +msgid "You are not the owner of this application." +msgstr "無法連結到伺服器:%s" + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1195 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#, fuzzy +msgid "Delete application" +msgstr "無此通知" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +#, fuzzy +msgid "Do not delete this application" +msgstr "無此通知" + +#: actions/deleteapplication.php:160 +#, fuzzy +msgid "Delete this application" +msgstr "請在140個字以內描述你自己與你的興趣" + #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 @@ -951,7 +1009,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "無此通知" -#: actions/deletenotice.php:146 lib/noticelist.php:608 +#: actions/deletenotice.php:146 lib/noticelist.php:624 msgid "Delete this notice" msgstr "" @@ -1102,7 +1160,7 @@ msgstr "" msgid "Add to favorites" msgstr "" -#: actions/doc.php:155 +#: actions/doc.php:158 #, fuzzy, php-format msgid "No such document \"%s\"" msgstr "無此文件" @@ -1116,22 +1174,12 @@ msgstr "無此通知" msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:77 actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "無法連結到伺服器:%s" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:163 +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "無此通知" -#: actions/editapplication.php:127 actions/newapplication.php:110 -#: actions/showapplication.php:118 lib/action.php:1195 -msgid "There was a problem with your session token." -msgstr "" - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1140,47 +1188,52 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:162 +#: actions/editapplication.php:180 actions/newapplication.php:165 #, fuzzy msgid "Name is too long (max 255 chars)." msgstr "全名過長(最多255字元)" -#: actions/editapplication.php:183 actions/newapplication.php:165 +#: actions/editapplication.php:183 actions/newapplication.php:162 +#, fuzzy +msgid "Name already in use. Try another one." +msgstr "此暱稱已有人使用。再試試看別的吧。" + +#: actions/editapplication.php:186 actions/newapplication.php:168 #, fuzzy msgid "Description is required." msgstr "所有訂閱" -#: actions/editapplication.php:191 +#: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:197 actions/newapplication.php:182 +#: actions/editapplication.php:200 actions/newapplication.php:185 #, fuzzy msgid "Source URL is not valid." msgstr "個人首頁位址錯誤" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#: actions/editapplication.php:206 actions/newapplication.php:191 #, fuzzy msgid "Organization is too long (max 255 chars)." msgstr "地點過長(共255個字)" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:215 actions/newapplication.php:203 +#: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:222 actions/newapplication.php:212 +#: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:255 +#: actions/editapplication.php:258 #, fuzzy msgid "Could not update application." msgstr "無法更新使用者" @@ -2063,11 +2116,11 @@ msgstr "" msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:173 +#: actions/newapplication.php:176 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:255 actions/newapplication.php:264 +#: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy msgid "Could not create application." msgstr "無法存取個人圖像資料" @@ -2193,29 +2246,29 @@ msgstr "" msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:71 +#: actions/oauthconnectionssettings.php:72 msgid "Connected applications" msgstr "" -#: actions/oauthconnectionssettings.php:87 +#: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:170 +#: actions/oauthconnectionssettings.php:175 #, fuzzy msgid "You are not a user of that application." msgstr "無法連結到伺服器:%s" -#: actions/oauthconnectionssettings.php:180 +#: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " msgstr "" -#: actions/oauthconnectionssettings.php:192 +#: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:205 +#: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" @@ -2725,37 +2778,37 @@ msgstr "" msgid "Public timeline" msgstr "" -#: actions/public.php:151 +#: actions/public.php:159 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:155 +#: actions/public.php:163 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:159 +#: actions/public.php:167 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "%s的公開內容" -#: actions/public.php:179 +#: actions/public.php:187 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -#: actions/public.php:182 +#: actions/public.php:190 msgid "Be the first to post!" msgstr "" -#: actions/public.php:186 +#: actions/public.php:194 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:233 +#: actions/public.php:241 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2764,7 +2817,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:238 +#: actions/public.php:246 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3098,7 +3151,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "無此使用者" -#: actions/repeat.php:114 lib/noticelist.php:626 +#: actions/repeat.php:114 lib/noticelist.php:642 #, fuzzy msgid "Repeated" msgstr "新增" @@ -3160,6 +3213,11 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "&s的微型部落格" +#: actions/rsd.php:146 actions/version.php:157 +#, fuzzy +msgid "StatusNet" +msgstr "更新個人圖像" + #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy msgid "You cannot sandbox users on this site." @@ -3204,79 +3262,83 @@ msgstr "線上即時通設定" msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:158 +#: actions/showapplication.php:157 msgid "Application profile" msgstr "" -#: actions/showapplication.php:160 lib/applicationeditform.php:180 +#: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" msgstr "" -#: actions/showapplication.php:170 actions/version.php:195 +#: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 #, fuzzy msgid "Name" msgstr "暱稱" -#: actions/showapplication.php:179 lib/applicationeditform.php:222 +#: actions/showapplication.php:178 lib/applicationeditform.php:222 #, fuzzy msgid "Organization" msgstr "地點" -#: actions/showapplication.php:188 actions/version.php:198 +#: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 #, fuzzy msgid "Description" msgstr "所有訂閱" -#: actions/showapplication.php:193 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:429 #: lib/profileaction.php:174 msgid "Statistics" msgstr "" -#: actions/showapplication.php:204 +#: actions/showapplication.php:203 #, php-format -msgid "created by %1$s - %2$s access by default - %3$d users" +msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" -#: actions/showapplication.php:214 +#: actions/showapplication.php:213 msgid "Application actions" msgstr "" -#: actions/showapplication.php:233 +#: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" -#: actions/showapplication.php:241 +#: actions/showapplication.php:261 msgid "Application info" msgstr "" -#: actions/showapplication.php:243 +#: actions/showapplication.php:263 msgid "Consumer key" msgstr "" -#: actions/showapplication.php:248 +#: actions/showapplication.php:268 msgid "Consumer secret" msgstr "" -#: actions/showapplication.php:253 +#: actions/showapplication.php:273 msgid "Request token URL" msgstr "" -#: actions/showapplication.php:258 +#: actions/showapplication.php:278 msgid "Access token URL" msgstr "" -#: actions/showapplication.php:263 +#: actions/showapplication.php:283 msgid "Authorize URL" msgstr "" -#: actions/showapplication.php:268 +#: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" + #: actions/showfavorites.php:79 #, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" @@ -3480,25 +3542,25 @@ msgstr "" msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:191 +#: actions/showstream.php:200 #, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:196 +#: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:198 +#: actions/showstream.php:207 #, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:234 +#: actions/showstream.php:243 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3507,7 +3569,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:239 +#: actions/showstream.php:248 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3515,7 +3577,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:296 +#: actions/showstream.php:305 #, php-format msgid "Repeat of %s" msgstr "" @@ -4176,11 +4238,6 @@ msgid "" "Inc. and contributors." msgstr "" -#: actions/version.php:157 -#, fuzzy -msgid "StatusNet" -msgstr "更新個人圖像" - #: actions/version.php:161 msgid "Contributors" msgstr "" @@ -4304,22 +4361,22 @@ msgstr "" msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:790 +#: classes/Notice.php:788 #, fuzzy msgid "Problem saving group inbox." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:850 +#: classes/Notice.php:848 #, php-format msgid "DB error inserting reply: %s" msgstr "增加回覆時,資料庫發生錯誤: %s" -#: classes/Notice.php:1233 +#: classes/Notice.php:1231 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/User.php:382 +#: classes/User.php:385 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4607,11 +4664,11 @@ msgstr "確認信箱" msgid "Sessions configuration" msgstr "確認信箱" -#: lib/apiauth.php:99 +#: lib/apiauth.php:95 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:279 +#: lib/apiauth.php:273 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4973,20 +5030,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:131 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "無確認碼" -#: lib/common.php:132 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:134 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:135 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5559,25 +5616,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:531 +#: lib/noticelist.php:547 #, fuzzy msgid "in context" msgstr "無內容" -#: lib/noticelist.php:556 +#: lib/noticelist.php:572 #, fuzzy msgid "Repeated by" msgstr "新增" -#: lib/noticelist.php:582 +#: lib/noticelist.php:598 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:599 msgid "Reply" msgstr "" -#: lib/noticelist.php:625 +#: lib/noticelist.php:641 #, fuzzy msgid "Notice repeated" msgstr "更新個人圖像" @@ -5724,6 +5781,10 @@ msgstr "無此通知" msgid "Repeat this notice" msgstr "無此通知" +#: lib/router.php:665 +msgid "No single user defined for single-user mode." +msgstr "" + #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" @@ -5898,47 +5959,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:868 +#: lib/util.php:867 msgid "a few seconds ago" msgstr "" -#: lib/util.php:870 +#: lib/util.php:869 msgid "about a minute ago" msgstr "" -#: lib/util.php:872 +#: lib/util.php:871 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:874 +#: lib/util.php:873 msgid "about an hour ago" msgstr "" -#: lib/util.php:876 +#: lib/util.php:875 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:878 +#: lib/util.php:877 msgid "about a day ago" msgstr "" -#: lib/util.php:880 +#: lib/util.php:879 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:882 +#: lib/util.php:881 msgid "about a month ago" msgstr "" -#: lib/util.php:884 +#: lib/util.php:883 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:886 +#: lib/util.php:885 msgid "about a year ago" msgstr "" diff --git a/plugins/Adsense/AdsensePlugin.php b/plugins/Adsense/AdsensePlugin.php new file mode 100644 index 000000000..ab2b9a6fb --- /dev/null +++ b/plugins/Adsense/AdsensePlugin.php @@ -0,0 +1,160 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin for Google Adsense + * + * 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 Ads + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin to add Google Adsense to StatusNet sites + * + * This plugin lets you add Adsense ad units to your StatusNet site. + * + * We support the 4 ad sizes for the Universal Ad Platform (UAP): + * + * Medium Rectangle + * (Small) Rectangle + * Leaderboard + * Wide Skyscraper + * + * They fit in different places on the default theme. Some themes + * might interact quite poorly with this plugin. + * + * To enable advertising, you must sign up with Google Adsense and + * get a client ID. + * + * https://www.google.com/adsense/ + * + * You'll also need to create an Adsense for Content unit in one + * of the four sizes described above. At the end of the process, + * note the "google_ad_client" and "google_ad_slot" values in the + * resultant Javascript. + * + * Add the plugin to config.php like so: + * + * addPlugin('Adsense', array('client' => 'Your client ID', + * 'rectangle' => 'slot')); + * + * Here, your client ID is the value of google_ad_client and the + * slot is the value of google_ad_slot. Note that if you create + * a different size, you'll need to provide different arguments: + * 'mediumRectangle', 'leaderboard', or 'wideSkyscraper'. + * + * If for some reason your ad server is different from the default, + * use the 'adScript' parameter to set the full path to the ad script. + * + * @category Plugin + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @seeAlso UAPPlugin + */ + +class AdsensePlugin extends UAPPlugin +{ + public $adScript = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; + public $client = null; + + /** + * Show a medium rectangle 'ad' + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showMediumRectangle($action) + { + $this->showAdsenseCode($action, 300, 250, $this->mediumRectangle); + } + + /** + * Show a rectangle 'ad' + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showRectangle($action) + { + $this->showAdsenseCode($action, 180, 150, $this->rectangle); + } + + /** + * Show a wide skyscraper ad + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showWideSkyscraper($action) + { + $this->showAdsenseCode($action, 160, 600, $this->wideSkyscraper); + } + + /** + * Show a leaderboard ad + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showLeaderboard($action) + { + $this->showAdsenseCode($action, 728, 90, $this->leaderboard); + } + + /** + * Output the bits of JavaScript code to show Adsense + * + * @param Action $action Action being shown + * @param integer $width Width of the block + * @param integer $height Height of the block + * @param string $slot Slot identifier + * + * @return void + */ + + protected function showAdsenseCode($action, $width, $height, $slot) + { + $code = 'google_ad_client = "'.$this->client.'"; '; + $code .= 'google_ad_slot = "'.$slot.'"; '; + $code .= 'google_ad_width = '.$width.'; '; + $code .= 'google_ad_height = '.$height.'; '; + + $action->inlineScript($code); + + $action->script($this->adScript); + } +}
\ No newline at end of file diff --git a/plugins/GeonamesPlugin.php b/plugins/GeonamesPlugin.php index 52cc9c97f..589462ed9 100644 --- a/plugins/GeonamesPlugin.php +++ b/plugins/GeonamesPlugin.php @@ -71,7 +71,7 @@ class GeonamesPlugin extends Plugin $loc = $this->getCache(array('name' => $name, 'language' => $language)); - if (!empty($loc)) { + if ($loc !== false) { $location = $loc; return false; } @@ -87,12 +87,20 @@ class GeonamesPlugin extends Plugin return true; } + if (count($geonames) == 0) { + // no results + $this->setCache(array('name' => $name, + 'language' => $language), + null); + return true; + } + $n = $geonames[0]; $location = new Location(); - $location->lat = (string)$n->lat; - $location->lon = (string)$n->lng; + $location->lat = $this->canonical($n->lat); + $location->lon = $this->canonical($n->lng); $location->names[$language] = (string)$n->name; $location->location_id = (string)$n->geonameId; $location->location_ns = self::LOCATION_NS; @@ -125,7 +133,7 @@ class GeonamesPlugin extends Plugin $loc = $this->getCache(array('id' => $id)); - if (!empty($loc)) { + if ($loc !== false) { $location = $loc; return false; } @@ -157,8 +165,9 @@ class GeonamesPlugin extends Plugin $location->location_id = (string)$last->geonameId; $location->location_ns = self::LOCATION_NS; - $location->lat = (string)$last->lat; - $location->lon = (string)$last->lng; + $location->lat = $this->canonical($last->lat); + $location->lon = $this->canonical($last->lng); + $location->names[$language] = implode(', ', array_reverse($parts)); $this->setCache(array('id' => (string)$last->geonameId), @@ -186,13 +195,15 @@ class GeonamesPlugin extends Plugin function onLocationFromLatLon($lat, $lon, $language, &$location) { - $lat = rtrim($lat, "0"); - $lon = rtrim($lon, "0"); + // Make sure they're canonical + + $lat = $this->canonical($lat); + $lon = $this->canonical($lon); $loc = $this->getCache(array('lat' => $lat, 'lon' => $lon)); - if (!empty($loc)) { + if ($loc !== false) { $location = $loc; return false; } @@ -207,6 +218,14 @@ class GeonamesPlugin extends Plugin return true; } + if (count($geonames) == 0) { + // no results + $this->setCache(array('lat' => $lat, + 'lon' => $lon), + null); + return true; + } + $n = $geonames[0]; $parts = array(); @@ -225,8 +244,8 @@ class GeonamesPlugin extends Plugin $location->location_id = (string)$n->geonameId; $location->location_ns = self::LOCATION_NS; - $location->lat = (string)$lat; - $location->lon = (string)$lon; + $location->lat = $this->canonical($n->lat); + $location->lon = $this->canonical($n->lng); $location->names[$language] = implode(', ', $parts); @@ -264,7 +283,7 @@ class GeonamesPlugin extends Plugin $n = $this->getCache(array('id' => $id, 'language' => $language)); - if (!empty($n)) { + if ($n !== false) { $name = $n; return false; } @@ -278,6 +297,13 @@ class GeonamesPlugin extends Plugin return false; } + if (count($geonames) == 0) { + $this->setCache(array('id' => $id, + 'language' => $language), + null); + return false; + } + $parts = array(); foreach ($geonames as $level) { @@ -412,17 +438,29 @@ class GeonamesPlugin extends Plugin throw new Exception("HTTP error code " . $result->code); } - $document = new SimpleXMLElement($result->getBody()); + $body = $result->getBody(); + + if (empty($body)) { + throw new Exception("Empty HTTP body in response"); + } + + // This will throw an exception if the XML is mal-formed + + $document = new SimpleXMLElement($body); - if (empty($document)) { - throw new Exception("No results in response"); + // No children, usually no results + + $children = $document->children(); + + if (count($children) == 0) { + return array(); } if (isset($document->status)) { throw new Exception("Error #".$document->status['value']." ('".$document->status['message']."')"); } - // Array of elements + // Array of elements, >0 elements return $document->geoname; } @@ -438,4 +476,12 @@ class GeonamesPlugin extends Plugin 'names for locations based on user-provided lat/long pairs.')); return true; } + + function canonical($coord) + { + $coord = rtrim($coord, "0"); + $coord = rtrim($coord, "."); + + return $coord; + } } diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php index 8c8b8da6d..2bc4b892b 100644 --- a/plugins/MemcachePlugin.php +++ b/plugins/MemcachePlugin.php @@ -59,6 +59,8 @@ class MemcachePlugin extends Plugin public $persistent = null; + public $defaultExpiry = 86400; // 24h + /** * Initialize the plugin * @@ -110,6 +112,9 @@ class MemcachePlugin extends Plugin function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) { $this->_ensureConn(); + if ($expiry === null) { + $expiry = $this->defaultExpiry; + } $success = $this->_conn->set($key, $value, $flag, $expiry); Event::handle('EndCacheSet', array($key, $value, $flag, $expiry)); diff --git a/plugins/OpenX/OpenXPlugin.php b/plugins/OpenX/OpenXPlugin.php new file mode 100644 index 000000000..59485f25d --- /dev/null +++ b/plugins/OpenX/OpenXPlugin.php @@ -0,0 +1,165 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin for OpenX ad server + * + * 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 Ads + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin for OpenX Ad Server + * + * This plugin supports the OpenX ad server, http://www.openx.org/ + * + * We support the 4 ad sizes for the Universal Ad Platform (UAP): + * + * Medium Rectangle + * (Small) Rectangle + * Leaderboard + * Wide Skyscraper + * + * They fit in different places on the default theme. Some themes + * might interact quite poorly with this plugin. + * + * To enable advertising, you will need an OpenX server. You'll need + * to set up a "zone" for your StatusNet site that identifies a + * kind of ad you want to place (of the above 4 sizes). + * + * Add the plugin to config.php like so: + * + * addPlugin('OpenX', array('adScript' => 'full path to script', + * 'rectangle' => 1)); + * + * Here, the 'adScript' parameter is the full path to the OpenX + * ad script, like 'http://example.com/www/delivery/ajs.php'. Note + * that we don't do any magic to swap between HTTP and HTTPS, so + * if you want HTTPS, say so. + * + * The 'rectangle' parameter is the zone ID for that ad space on + * your site. If you've configured another size, try 'mediumRectangle', + * 'leaderboard', or 'wideSkyscraper'. + * + * If for some reason your ad server is different from the default, + * use the 'adScript' parameter to set the full path to the ad script. + * + * @category Ads + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @seeAlso UAPPlugin + */ + +class OpenXPlugin extends UAPPlugin +{ + public $adScript = null; + + /** + * Show a medium rectangle 'ad' + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showMediumRectangle($action) + { + $this->showAd($action, $this->mediumRectangle); + } + + /** + * Show a rectangle 'ad' + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showRectangle($action) + { + $this->showAd($action, $this->rectangle); + } + + /** + * Show a wide skyscraper ad + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showWideSkyscraper($action) + { + $this->showAd($action, $this->wideSkyscraper); + } + + /** + * Show a leaderboard ad + * + * @param Action $action Action being shown + * + * @return void + */ + + protected function showLeaderboard($action) + { + $this->showAd($action, $this->leaderboard); + } + + /** + * Show an ad using OpenX + * + * @param Action $action Action being shown + * @param integer $zone Zone to show + * + * @return void + */ + + protected function showAd($action, $zone) + { +$scr = <<<ENDOFSCRIPT +var m3_u = '%s'; +var m3_r = Math.floor(Math.random()*99999999999); +if (!document.MAX_used) document.MAX_used = ','; +document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u); +document.write ("?zoneid=%d"); +document.write ('&cb=' + m3_r); +if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used); +document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : '')); +document.write ("&loc=" + escape(window.location)); +if (document.referrer) document.write ("&referer=" + escape(document.referrer)); +if (document.context) document.write ("&context=" + escape(document.context)); +if (document.mmm_fo) document.write ("&mmm_fo=1"); +document.write ("'><\/scr"+"ipt>"); +ENDOFSCRIPT; + + $action->inlineScript(sprintf($scr, $this->adScript, $zone)); + return true; + } +}
\ No newline at end of file diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index 16e28e94d..6c212453e 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -87,7 +87,7 @@ class RealtimePlugin extends Plugin $scripts = $this->_getScripts(); foreach ($scripts as $script) { - $action->script(common_path($script)); + $action->script($script); } $user = common_current_user(); @@ -307,7 +307,7 @@ class RealtimePlugin extends Plugin function _getScripts() { - return array('plugins/Realtime/realtimeupdate.js'); + return array(common_path('plugins/Realtime/realtimeupdate.js')); } function _updateInitialize($timeline, $user_id) diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index fb9dcdbfb..ab548958a 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -95,9 +95,7 @@ RealtimeUpdate = { $("#notices_primary .notice:first").css({display:"none"}); $("#notices_primary .notice:first").fadeIn(1000); - SN.U.FormXHR($('#'+noticeItemID+' .form_favor')); SN.U.NoticeReplyTo($('#'+noticeItemID)); - SN.U.FormXHR($('#'+noticeItemID+' .form_repeat')); SN.U.NoticeWithAttachment($('#'+noticeItemID)); }, @@ -180,7 +178,7 @@ console.log(data); ni = ni+"</div>"; - "</li>"; + ni = ni+"</li>"; return ni; }, diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 36732ce46..bff657eb6 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -2,7 +2,7 @@ <?php /** * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, Inc. + * Copyright (C) 2008-2010, StatusNet, 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 @@ -262,7 +262,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon $notice->is_local = Notice::GATEWAY; if (Event::handle('StartNoticeSave', array(&$notice))) { - $id = $notice->insert(); + $notice->insert(); Event::handle('EndNoticeSave', array($notice)); } @@ -270,17 +270,41 @@ class TwitterStatusFetcher extends ParallelizingDaemon Inbox::insertNotice($flink->user_id, $notice->id); - $notice->blowCaches(); + $notice->blowOnInsert(); return $notice; } + /** + * Look up a Profile by profileurl field. Profile::staticGet() was + * not working consistently. + * + * @param string $url the profile url + * + * @return mixed the first profile with that url, or null + */ + + function getProfileByUrl($nickname, $profileurl) + { + $profile = new Profile(); + $profile->nickname = $nickname; + $profile->profileurl = $profileurl; + $profile->limit(1); + + if ($profile->find()) { + $profile->fetch(); + return $profile; + } + + return null; + } + function ensureProfile($user) { // check to see if there's already a profile for this user $profileurl = 'http://twitter.com/' . $user->screen_name; - $profile = Profile::staticGet('profileurl', $profileurl); + $profile = $this->getProfileByUrl($user->screen_name, $profileurl); if (!empty($profile)) { common_debug($this->name() . @@ -292,6 +316,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon return $profile->id; } else { + common_debug($this->name() . ' - Adding profile and remote profile ' . "for Twitter user: $profileurl."); @@ -306,7 +331,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon $profile->profileurl = $profileurl; $profile->created = common_sql_now(); - $id = $profile->insert(); + try { + $id = $profile->insert(); + } catch(Exception $e) { + common_log(LOG_WARNING, $this->name . ' Couldn\'t insert profile - ' . $e->getMessage()); + } if (empty($id)) { common_log_db_error($profile, 'INSERT', __FILE__); @@ -326,7 +355,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon $remote_pro->uri = $profileurl; $remote_pro->created = common_sql_now(); - $rid = $remote_pro->insert(); + try { + $rid = $remote_pro->insert(); + } catch (Exception $e) { + common_log(LOG_WARNING, $this->name() . ' Couldn\'t save remote profile - ' . $e->getMessage()); + } if (empty($rid)) { common_log_db_error($profile, 'INSERT', __FILE__); @@ -446,7 +479,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon if ($this->fetchAvatar($url, $filename)) { $this->newAvatar($id, $size, $mediatype, $filename); } else { - common_log(LOG_WARNING, $this->id() . + common_log(LOG_WARNING, $id() . " - Problem fetching Avatar: $url"); } } @@ -507,7 +540,11 @@ class TwitterStatusFetcher extends ParallelizingDaemon $avatar->created = common_sql_now(); - $id = $avatar->insert(); + try { + $id = $avatar->insert(); + } catch (Exception $e) { + common_log(LOG_WARNING, $this->name() . ' Couldn\'t insert avatar - ' . $e->getMessage()); + } if (empty($id)) { common_log_db_error($avatar, 'INSERT', __FILE__); diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 33dfb788b..6944a1ace 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -1,7 +1,7 @@ <?php /* * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, Inc. + * Copyright (C) 2008-2010 StatusNet, 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 @@ -295,8 +295,17 @@ function format_status($notice) $statustxt = preg_replace('/^@/', ' @', $notice->content); // Convert !groups to #hashes + + // XXX: Make this an optional setting? + $statustxt = preg_replace('/(^|\s)!([A-Za-z0-9]{1,64})/', "\\1#\\2", $statustxt); + if (mb_strlen($statustxt) > 140) { + $noticeUrl = common_shorten_url($notice->uri); + $urlLen = mb_strlen($noticeUrl); + $statustxt = mb_substr($statustxt, 0, 140 - ($urlLen + 3)) . ' … ' . $noticeUrl; + } + return $statustxt; } diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index a33869c19..ae3dfe036 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -183,21 +183,6 @@ class UserFlagPlugin extends Plugin } /** - * Add our plugin's CSS to page output - * - * @param Action $action action being shown - * - * @return boolean hook result - */ - - function onEndShowStatusNetStyles($action) - { - $action->cssLink(common_path('plugins/UserFlag/userflag.css'), - null, 'screen, projection, tv'); - return true; - } - - /** * Initialize any flagging buttons on the page * * @param Action $action action being shown @@ -208,8 +193,8 @@ class UserFlagPlugin extends Plugin function onEndShowScripts($action) { $action->inlineScript('if ($(".form_entity_flag").length > 0) { '. - 'SN.U.FormXHR($(".form_entity_flag")); '. - '}'); + '$(".form_entity_flag").bind("click", function() {'. + 'SN.U.FormXHR($(this)); return false; }); }'); return true; } diff --git a/plugins/UserFlag/clearflagform.php b/plugins/UserFlag/clearflagform.php index 5ad6055d3..eefd15c36 100644 --- a/plugins/UserFlag/clearflagform.php +++ b/plugins/UserFlag/clearflagform.php @@ -54,7 +54,7 @@ class ClearFlagForm extends ProfileActionForm function formClass() { - return 'form_entity_clearflag'; + return 'form_user_clearflag'; } /** diff --git a/plugins/UserFlag/userflag.css b/plugins/UserFlag/userflag.css deleted file mode 100644 index 98da24cc9..000000000 --- a/plugins/UserFlag/userflag.css +++ /dev/null @@ -1,4 +0,0 @@ -.entity_flag input.submit, -.entity_flag p { -background:url(icon_flag.gif) 5px 5px no-repeat; -} diff --git a/plugins/UserLimitPlugin.php b/plugins/UserLimitPlugin.php new file mode 100644 index 000000000..ab3187299 --- /dev/null +++ b/plugins/UserLimitPlugin.php @@ -0,0 +1,92 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin to limit number of users that can register (best for cloud providers) + * + * 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 Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2009 StatusNet Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin to limit number of users that can register (best for cloud providers) + * + * For cloud providers whose freemium model is based on how many + * users can register. We use it on the StatusNet Cloud. + * + * @category Plugin + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @seeAlso Location + */ + +class UserLimitPlugin extends Plugin +{ + public $maxUsers = null; + + function onStartUserRegister(&$user, &$profile) + { + $this->_checkMaxUsers(); + return true; + } + + function onStartRegistrationTry($action) + { + $this->_checkMaxUsers(); + return true; + } + + function _checkMaxUsers() + { + if (!is_null($this->maxUsers)) { + + $cls = new User(); + + $cnt = $cls->count(); + + if ($cnt >= $this->maxUsers) { + $msg = sprintf(_('Cannot register; maximum number of users (%d) reached.'), + $this->maxUsers); + + throw new ClientException($msg); + } + } + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'UserLimit', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:UserLimit', + 'description' => + _m('Limit the number of users who can register.')); + return true; + } +} diff --git a/scripts/clearcache.php b/scripts/clearcache.php new file mode 100644 index 000000000..702c1e3d6 --- /dev/null +++ b/scripts/clearcache.php @@ -0,0 +1,70 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, 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', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = "t:c:v:k:"; + +$helptext = <<<ENDOFHELP +USAGE: clearcache.php <args> +clears the cached object based on the args + + -t table Table to look up + -c column Column to look up, default "id" + -v value Value to look up + -k key Key to look up; other args are ignored + +ENDOFHELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +$karg = get_option_value('k'); + +if (!empty($karg)) { + $k = common_cache_key($karg); +} else { + $table = get_option_value('t'); + if (empty($table)) { + die("No table or key specified\n"); + } + $column = get_option_value('c'); + if (empty($column)) { + $column = 'id'; + } + $value = get_option_value('v'); + + $k = Memcached_DataObject::cacheKey($table, $column, $value); +} + +print "Clearing key '$k'..."; + +$c = common_memcache(); + +if (empty($c)) { + die("Can't initialize cache object!\n"); +} + +$result = $c->delete($k); + +if ($result) { + print "OK.\n"; +} else { + print "FAIL.\n"; +} diff --git a/scripts/delete_status_network.sh b/scripts/delete_status_network.sh index f55f1486b..3a8ebdcfd 100755 --- a/scripts/delete_status_network.sh +++ b/scripts/delete_status_network.sh @@ -1,5 +1,9 @@ #!/bin/bash +# live fast! die young! + +set -e + source /etc/statusnet/setup.cfg export nickname=$1 diff --git a/scripts/queuedaemon.php b/scripts/queuedaemon.php index c2e2351c3..30a8a9602 100755 --- a/scripts/queuedaemon.php +++ b/scripts/queuedaemon.php @@ -109,7 +109,13 @@ class QueueDaemon extends SpawningDaemon $master = new QueueMaster($this->get_id()); $master->init($this->all); - $master->service(); + try { + $master->service(); + } catch (Exception $e) { + common_log(LOG_ERR, "Unhandled exception: " . $e->getMessage() . ' ' . + str_replace("\n", " ", $e->getTraceAsString())); + return self::EXIT_ERR; + } $this->log(LOG_INFO, 'finished servicing the queue'); diff --git a/scripts/sendemail.php b/scripts/sendemail.php new file mode 100755 index 000000000..436e085be --- /dev/null +++ b/scripts/sendemail.php @@ -0,0 +1,82 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, StatusNet, 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', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:'; +$longoptions = array('id=', 'nickname=', 'subject='); + +$helptext = <<<END_OF_USEREMAIL_HELP +sendemail.php [options] < <message body> +Sends given email text to user. + + -i --id id of the user to query + -n --nickname nickname of the user to query + --subject mail subject line (required) + +END_OF_USEREMAIL_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $user = User::staticGet('id', $id); + if (empty($user)) { + print "Can't find user with ID $id\n"; + exit(1); + } +} else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $user = User::staticGet('nickname', $nickname); + if (empty($user)) { + print "Can't find user with nickname '$nickname'\n"; + exit(1); + } +} else { + print "You must provide a user by --id or --nickname\n"; + exit(1); +} + +if (empty($user->email)) { + // @fixme unconfirmed address? + print "No email registered for user '$user->nickname'\n"; + exit(1); +} + +if (!have_option('subject')) { + echo "You must provide a subject line for the mail in --subject='...' param.\n"; + exit(1); +} +$subject = get_option_value('subject'); + +if (posix_isatty(STDIN)) { + print "You must provide message input on stdin!\n"; + exit(1); +} +$body = file_get_contents('php://stdin'); + +print "Sending to $user->email..."; +if (mail_to_user($user, $subject, $body)) { + print " done\n"; +} else { + print " failed.\n"; + exit(1); +} + diff --git a/scripts/setconfig.php b/scripts/setconfig.php index b102f99b1..fe0e46d65 100644..100755 --- a/scripts/setconfig.php +++ b/scripts/setconfig.php @@ -28,6 +28,7 @@ setconfig.php [options] [section] [setting] <value> With three args, set the setting to the value. With two args, just show the setting. With -d, delete the setting. +With no args, lists all currently set values. [section] section to use (required) [setting] setting to use (required) @@ -39,6 +40,21 @@ END_OF_SETCONFIG_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; +if (empty($args)) { + $count = 0; + $config = new Config(); + $config->find(); + while ($config->fetch()) { + $count++; + printf("%-20s %-20s %s\n", $config->section, $config->setting, + var_export($config->value, true)); + } + if ($count == 0) { + print "No configuration set in database for this site.\n"; + } + exit(0); +} + if (count($args) < 2 || count($args) > 3) { show_help(); exit(1); diff --git a/scripts/settag.php b/scripts/settag.php new file mode 100644 index 000000000..e91d5eb50 --- /dev/null +++ b/scripts/settag.php @@ -0,0 +1,84 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, StatusNet, 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', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'd'; +$longoptions = array('delete'); + +$helptext = <<<END_OF_SETTAG_HELP +settag.php [options] <site> <tag> +Set the tag <tag> for site <site>. + +With -d, delete the tag. + +END_OF_SETTAG_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (count($args) != 2) { + show_help(); + exit(1); +} + +$nickname = $args[0]; +$tag = strtolower($args[1]); + +$sn = Status_network::memGet('nickname', $nickname); + +if (empty($sn)) { + print "No such site.\n"; + exit(-1); +} + +$tags = $sn->getTags(); + +$i = array_search($tag, $tags); + +if ($i !== false) { + if (have_option('d', 'delete')) { // Delete + unset($tags[$i]); + + $orig = clone($sn); + $sn->tags = implode('|', $tags); + $result = $sn->update($orig); + if (!$result) { + print "Couldn't update.\n"; + exit(-1); + } + } else { + print "Already set.\n"; + exit(-1); + } +} else { + if (have_option('d', 'delete')) { // Delete + print "No such tag.\n"; + exit(-1); + } else { + $tags[] = $tag; + $orig = clone($sn); + $sn->tags = implode('|', $tags); + $result = $sn->update($orig); + if (!$result) { + print "Couldn't update.\n"; + exit(-1); + } + } +} diff --git a/scripts/setup.cfg.sample b/scripts/setup.cfg.sample index 8d03b06f5..f247a3bca 100644 --- a/scripts/setup.cfg.sample +++ b/scripts/setup.cfg.sample @@ -11,4 +11,8 @@ export AVATARBASE=/var/www/avatar.example.net export BACKGROUNDBASE=/var/www/background.example.net export FILEBASE=/var/www/file.example.net export PWDGEN="pwgen 20" - +export PHPBASE=/var/www/statusnet +export WILDCARD=example.net +export MAILTEMPLATE=/etc/statusnet/newsite-mail.txt +export MAILSUBJECT="Your new StatusNet site" +export POSTINSTALL=/etc/statusnet/morestuff.sh diff --git a/scripts/setup_status_network.sh b/scripts/setup_status_network.sh index 777711fb5..4ad808011 100755 --- a/scripts/setup_status_network.sh +++ b/scripts/setup_status_network.sh @@ -1,10 +1,28 @@ #!/bin/bash +# live fast! die young! + +set -e + source /etc/statusnet/setup.cfg -export nickname=$1 -export sitename=$2 +# setup_status_net.sh mysite 'My Site' '1user' 'owner@example.com' 'Firsty McLastname' + +export nickname="$1" +export sitename="$2" +export tags="$3" +export email="$4" +export fullname="$5" + +# Fixme: if this is changed later we need to update profile URLs +# for the created user. +export server="$nickname.$WILDCARD" + +# End-user info +export userpass=`$PWDGEN` +export roles="administrator moderator owner" +# DB info export password=`$PWDGEN` export database=$nickname$DBBASE export username=$nickname$USERBASE @@ -21,8 +39,8 @@ mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS GRANT ALL ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password'; GRANT ALL ON $database.* TO '$username'@'%' IDENTIFIED BY '$password'; -INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created) -VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now()); +INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created, tags) +VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now(), '$tags'); ENDOFCOMMANDS @@ -30,3 +48,39 @@ for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do mkdir $top/$nickname chmod a+w $top/$nickname done + +php $PHPBASE/scripts/registeruser.php \ + -s"$server" \ + -n"$nickname" \ + -f"$fullname" \ + -w"$userpass" \ + -e"$email" + +for role in $roles +do + php $PHPBASE/scripts/userrole.php \ + -s"$server" \ + -n"$nickname" \ + -r"$role" +done + +if [ -f "$MAILTEMPLATE" ] +then + # fixme how safe is this? are sitenames sanitized? + cat $MAILTEMPLATE | \ + sed "s/\$nickname/$nickname/" | \ + sed "s/\$sitename/$sitename/" | \ + sed "s/\$userpass/$userpass/" | \ + php $PHPBASE/scripts/sendemail.php \ + -s"$server" \ + -n"$nickname" \ + --subject="$MAILSUBJECT" +else + echo "No mail template, not sending email." +fi + +if [ -f "$POSTINSTALL" ] +then + echo "Running $POSTINSTALL ..." + source "$POSTINSTALL" +fi diff --git a/theme/base/css/display.css b/theme/base/css/display.css index b109706a1..8490fb580 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -632,7 +632,8 @@ margin-bottom:18px; .entity_profile .entity_url, .entity_profile .entity_note, .entity_profile .entity_tags, -.entity_profile .entity_aliases { +.entity_profile .entity_aliases, +.entity_profile .entity_statistics { margin-left:113px; margin-bottom:4px; } @@ -1023,6 +1024,7 @@ float:none; } #content .notice .entry-title { margin-left:59px; +margin-right:7px; } .vcard .url { @@ -1130,8 +1132,17 @@ top:3px; } .dialogbox .submit_dialogbox { -text-indent:0; font-weight:bold; +text-indent:0; +min-width:46px; +} + +#wrap form.processing input.submit, +.entity_actions a.processing, +.dialogbox.processing .submit_dialogbox { +cursor:wait; +outline:none; +text-indent:-9999px; } .notice-options { @@ -1402,6 +1413,9 @@ margin-bottom:18px; .hentry .entry-content li li { margin-left:18px; } +.hentry .entry-content .form_settings ul { +margin-left:0; +} #content #plugin_authors { min-width:122px; diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif Binary files differindex f93d33d79..6f284f023 100644 --- a/theme/base/images/icons/icons-01.gif +++ b/theme/base/images/icons/icons-01.gif diff --git a/theme/base/images/icons/twotone/green/against.gif b/theme/base/images/icons/twotone/green/against.gif Binary files differnew file mode 100644 index 000000000..ca796c8a3 --- /dev/null +++ b/theme/base/images/icons/twotone/green/against.gif diff --git a/theme/base/images/icons/twotone/green/checkmark.gif b/theme/base/images/icons/twotone/green/checkmark.gif Binary files differnew file mode 100644 index 000000000..892429d48 --- /dev/null +++ b/theme/base/images/icons/twotone/green/checkmark.gif diff --git a/theme/base/images/icons/twotone/green/clear.gif b/theme/base/images/icons/twotone/green/clear.gif Binary files differnew file mode 100644 index 000000000..2666430ef --- /dev/null +++ b/theme/base/images/icons/twotone/green/clear.gif diff --git a/plugins/UserFlag/icon_flag.gif b/theme/base/images/icons/twotone/green/flag.gif Binary files differindex 68c8aee25..68c8aee25 100644 --- a/plugins/UserFlag/icon_flag.gif +++ b/theme/base/images/icons/twotone/green/flag.gif diff --git a/theme/base/logo.png b/theme/base/logo.png Binary files differindex 7c68b34f6..cf1839194 100644 --- a/theme/base/logo.png +++ b/theme/base/logo.png diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 3aebb239d..82eb13531 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -1,7 +1,7 @@ /** theme: default * * @package StatusNet - * @author Sarven Capadisli <csarven@status.net> + * @author Sarven Capadisli <csarven@status.net> * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ @@ -18,7 +18,7 @@ font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; font-size:1em; } address { -margin-right:5.7%; +margin-right:5.3%; } input, textarea, select { border-width:2px; @@ -189,18 +189,23 @@ button.close, .notice-options .repeated, .form_notice label[for=notice_data-geo], button.minimize, -.form_reset_key input.submit { +.form_reset_key input.submit, +.entity_clear input.submit, +.entity_flag input.submit, +.entity_flag p, +.entity_subscribe input.submit { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; } #wrap form.processing input.submit, -.entity_actions a.processing { +.entity_actions a.processing, +.dialogbox.processing .submit_dialogbox { background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; -cursor:wait; -text-indent:-9999px; -outline:none; +} +.notice-options .form_repeat.processing { +background-image:none; } #content { @@ -337,6 +342,19 @@ background-position: 5px -1511px; .form_reset_key input.submit { background-position: 5px -1973px; } +.entity_clear input.submit { +background-position: 5px -2039px; +} +.entity_flag input.submit, +.entity_flag p { +background-position: 5px -2105px; +} +.entity_subscribe input.accept { +background-position: 5px -2171px; +} +.entity_subscribe input.reject { +background-position: 5px -2237px; +} /* NOTICES */ .notice .attachment { diff --git a/theme/default/logo.png b/theme/default/logo.png Binary files differindex 550d373fe..cf1839194 100644 --- a/theme/default/logo.png +++ b/theme/default/logo.png diff --git a/theme/default/mobilelogo.png b/theme/default/mobilelogo.png Binary files differindex b72f7aff5..66bb5f678 100644 --- a/theme/default/mobilelogo.png +++ b/theme/default/mobilelogo.png diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 2818196c2..44ae4953b 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -1,7 +1,7 @@ /** theme: identica * * @package StatusNet - * @author Sarven Capadisli <csarven@status.net> + * @author Sarven Capadisli <csarven@status.net> * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ @@ -189,18 +189,23 @@ button.close, .notice-options .repeated, .form_notice label[for=notice_data-geo], button.minimize, -.form_reset_key input.submit { +.form_reset_key input.submit, +.entity_clear input.submit, +.entity_flag input.submit, +.entity_flag p, +.entity_subscribe input.submit { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; } #wrap form.processing input.submit, -.entity_actions a.processing { +.entity_actions a.processing, +.dialogbox.processing .submit_dialogbox { background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; -cursor:wait; -text-indent:-9999px; -outline:none; +} +.notice-options .form_repeat.processing { +background-image:none; } #content { @@ -336,6 +341,19 @@ background-position: 5px -1511px; .form_reset_key input.submit { background-position: 5px -1973px; } +.entity_clear input.submit { +background-position: 5px -2039px; +} +.entity_flag input.submit, +.entity_flag p { +background-position: 5px -2105px; +} +.entity_subscribe input.accept { +background-position: 5px -2171px; +} +.entity_subscribe input.reject { +background-position: 5px -2237px; +} /* NOTICES */ .notice .attachment { diff --git a/theme/identica/mobilelogo.png b/theme/identica/mobilelogo.png Binary files differindex b72f7aff5..66bb5f678 100644 --- a/theme/identica/mobilelogo.png +++ b/theme/identica/mobilelogo.png |