diff --git a/EVENTS.txt b/EVENTS.txt index 0a1565752a..68752ef3fe 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -836,3 +836,230 @@ EndDeleteUser: handling the post for deleting a user - $action: action being shown - $user: user being deleted +StartActivityStart: starting the output for a notice activity +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$attrs: attributes (mostly namespace declarations, if any) + +EndActivityStart: end the opening tag for an activity +- &$notice: notice being output +- &$xs: XMLStringer for output +- $attrs: attributes (mostly namespace declarations, if any) + +StartActivitySource: before outputting the element for a notice activity +- &$notice: notice being output +- &$xs: XMLStringer for output + +EndActivitySource: after outputting the element for a notice activity +- &$notice: notice being output +- &$xs: XMLStringer for output + +StartActivityTitle: before outputting notice activity title +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$title: title of the notice, mutable + +EndActivityTitle: after outputting notice activity title +- $notice: notice being output +- &$xs: XMLStringer for output +- $title: title of the notice + +StartActivityAuthor: before outputting atom author +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$atomAuthor: string for XML representing atom author + +EndActivityAuthor: after outputting atom author +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$atomAuthor: string for XML representing atom author + +StartActivityActor: before outputting activity actor element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$actor: string for XML representing activity actor + +EndActivityActor: after outputting activity actor element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$actor: string for XML representing activity actor + +StartActivityLink: before outputting activity HTML link element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$url: URL for activity HTML link element for a notice activity entry + +EndActivityLink: before outputting activity HTML link element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $url: URL for activity HTML link element for a notice activity entry + +StartActivityId: before outputting atom:id element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$id: atom:id (notice URI by default) + +EndActivityId: after outputting atom:id element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $id: atom:id (notice URI by default) + +StartActivityPublished: before outputting atom:published element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$published: atom:published value (notice created by default) + +EndActivityPublished: before outputting atom:published element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $published: atom:published value (notice created by default) + +StartActivityUpdated: before outputting atom:updated element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$updated: atom:updated value (same as atom:published by default) + +EndActivityUpdated: after outputting atom:updated element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $updated: atom:updated value (same as atom:published by default) + +StartActivityContent: before outputting atom:content element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$content: atom:content value (notice rendered HTML by default) + +EndActivityContent: after outputting atom:content element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $content: atom:content value (notice rendered HTML by default) + +StartActivityVerb: before outputting activity:verb element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default) + +EndActivityVerb: after outputting activity:verb element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default) + +StartActivityDefaultObjectType: before outputting activity:object-type element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default) + +EndActivityDefaultObjectType: after outputting activity:verb element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default) + +StartActivityObjects: before outputting activity:object elements for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$objects: array of ActivityObject objects to output (empty by default) + +EndActivityObjects: after outputting activity:object elements for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $objects: array of ActivityObject objects to output (empty by default) + +StartActivityNoticeInfo: before outputting statusnet:notice-info element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$noticeInfoAttr: array of attributes for notice info element + +EndActivityNoticeInfo: after outputting statusnet:notice-info element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $noticeInfoAttr: array of attributes for notice info element + +StartActivityInReplyTo: before outputting thr:in-reply-to element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$replyNotice: Notice object the main notice is in-reply-to + +EndActivityInReplyTo: after outputting thr:in-reply-to element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $replyNotice: Notice object the main notice is in-reply-to + +StartActivityConversation: before outputting ostatus:conversation link element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$conv: Conversation object + +EndActivityConversation: after outputting ostatus:conversation link element for a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $conv: Conversation object + +StartActivityAttentionProfiles: before outputting ostatus:attention link element for people in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$replyProfiles: array of profiles of people being replied to + +EndActivityAttentionProfiles: after outputting ostatus:attention link element for people in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $replyProfiles: array of Profile object of people being replied to + +StartActivityAttentionGroups: before outputting ostatus:attention link element for groups in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$groups: array of Group objects of groups being addressed + +EndActivityAttentionGroups: after outputting ostatus:attention link element for groups in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $groups: array of Group objects of groups being addressed + +StartActivityForward: before outputting ostatus:forward link element in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$repeat: Notice that was repeated + +EndActivityForward: after outputting ostatus:forward link element in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $repeat: Notice that was repeated + +StartActivityCategories: before outputting atom:category elements in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$tags: array of strings for tags on the notice (used for categories) + +EndActivityCategories: after outputting atom:category elements in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $tags: array of strings for tags on the notice (used for categories) + +StartActivityEnclosures: before outputting enclosure link elements in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$enclosures: array of enclosure objects (see File::getEnclosure() for details) + +EndActivityEnclosures: after outputting enclosure link elements in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $enclosures: array of enclosure objects (see File::getEnclosure() for details) + +StartActivityGeo: before outputting geo:rss element in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- &$lat: latitude +- &$lon: longitude + +EndActivityGeo: after outputting geo:rss element in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output +- $lat: latitude +- $lon: longitude + +StartActivityEnd: before the closing in a notice activity entry (last chance for data!) +- &$notice: notice being output +- &$xs: XMLStringer for output + +EndActivityEnd: after the closing in a notice activity entry +- &$notice: notice being output +- &$xs: XMLStringer for output diff --git a/README b/README index e282e0c323..9330d133a5 100644 --- a/README +++ b/README @@ -2,8 +2,8 @@ README ------ -StatusNet 0.9.2 ("King of Birds") -3 May 2010 +StatusNet 0.9.3 ("Half a World Away") +29 June 2010 This is the README file for StatusNet, the Open Source microblogging platform. It includes installation instructions, descriptions of @@ -77,40 +77,27 @@ for additional terms. New this version ================ -This is a minor bug and feature release since version 0.9.1 released 28 -March 2010. +This is a minor bug and feature release since version 0.9.2 released on +4 May 2010. -Because of fixes to OStatus bugs, it is highly recommended that all -public sites upgrade to the new version immediately. +For best compatibility with client software and site federation, and a lot of +bug fixes, it is highly recommended that all public sites upgrade to the new +version. Notable changes this version: -- Installer no longer fails with a PHP fatal error when trying to set up the - subscription to update@status.net -- Fixed email notifications for @-replies that come in via OStatus -- OStatus related Fixes to the cloudy theme -- Pass geo locations over Twitter bridge (will only be used if enabled on the - Twitter side) -- scripts/showplugins.php - script to dump the list of activated plugins and - their settings -- scripts/fixup_blocks.php - script to finds any stray subscriptions in - violation of blocks, and removes them -- Allow blocking someone who's not currently subscribed to you (prevents - seeing @-replies from them, or them subbing to you in future) -- Default 2-second timeout on Geonames web service lookups -- Improved localization for plugins -- New anti-spam measures: added nofollow rels to group members list, - subscribers list -- Shared cache key option for Geonames plugin (lets multi-instance sites - share their cached geoname lookups) -- Stability fixes to the TwitterStatusFetcher -- If user allows location sharing but turned off browser location use profile - location -- Improved group listing via the API -- Improved FOAF output -- Several other bugfixes +- Enhanced API output to aid StatusNet-specific clients +- Many updates to user interface translation from TranslateWiki +- OStatus now works subscribing to SSL-protected sites by default +- OpenID now works on PHP 5.3, supports closer site integration. +- Numerous API and FOAF output fixes. +- Fixes to Facebook integration for FB API behavior changes +- PostgreSQL support updates +- Initial version of a custom theme uploader (disabled by default) +- LDAP auth plugins cleanup +- Many other bugfixes -A full changelog is available at http://status.net/wiki/StatusNet_0.9.2. +A full changelog is available at http://status.net/wiki/StatusNet_0.9.3. Prerequisites ============= @@ -121,8 +108,8 @@ run correctly. - PHP 5.2.3+. It may be possible to run this software on earlier versions of PHP, but many of the functions used are only available in PHP 5.2 or above. 5.2.6 or later is needed for XMPP background - daemons on 64-bit platforms. PHP 5.3.x should work but is known - to cause some failures for OpenID. + daemons on 64-bit platforms. PHP 5.3.x should work correctly in this + release, but problems with some plugins are possible. - MySQL 5.x. The StatusNet database is stored, by default, in a MySQL server. It has been primarily tested on 5.x servers, although it may be possible to install on earlier (or later!) versions. The server diff --git a/actions/all.php b/actions/all.php index 9c01b63938..6c14d2f139 100644 --- a/actions/all.php +++ b/actions/all.php @@ -143,10 +143,10 @@ class AllAction extends ProfileAction $message .= _('Try subscribing to more people, [join a group](%%action.groups%%) or post something yourself.'); } else { // TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" - $message .= sprintf(_('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).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); + $message .= sprintf(_('You can try to [nudge %1$s](../%2$s) from their profile or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); } } else { - $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname); + $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname); } $this->elementStart('div', 'guide'); diff --git a/actions/apiaccountupdateprofilecolors.php b/actions/apiaccountupdateprofilecolors.php index 3cac829749..c666f9d759 100644 --- a/actions/apiaccountupdateprofilecolors.php +++ b/actions/apiaccountupdateprofilecolors.php @@ -22,7 +22,7 @@ * @category API * @package StatusNet * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -131,7 +131,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction try { $this->setColors($design); } catch (WebColorException $e) { - $this->clientError($e->getMessage()); + $this->clientError($e->getMessage(), 400, $this->format); return false; } @@ -153,7 +153,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction try { $this->setColors($design); } catch (WebColorException $e) { - $this->clientError($e->getMessage()); + $this->clientError($e->getMessage(), 400, $this->format); return false; } diff --git a/actions/apiblockcreate.php b/actions/apiblockcreate.php index c26485f591..b355cd1c7e 100644 --- a/actions/apiblockcreate.php +++ b/actions/apiblockcreate.php @@ -23,7 +23,7 @@ * @package StatusNet * @author Evan Prodromou * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -65,7 +65,7 @@ class ApiBlockCreateAction extends ApiAuthAction parent::prepare($args); $this->user = $this->auth_user; - $this->other = $this->getTargetUser($this->arg('id')); + $this->other = $this->getTargetProfile($this->arg('id')); return true; } diff --git a/actions/apiblockdestroy.php b/actions/apiblockdestroy.php index 666f308f4c..7ea201677e 100644 --- a/actions/apiblockdestroy.php +++ b/actions/apiblockdestroy.php @@ -23,7 +23,7 @@ * @package StatusNet * @author Evan Prodromou * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -64,7 +64,7 @@ class ApiBlockDestroyAction extends ApiAuthAction parent::prepare($args); $this->user = $this->auth_user; - $this->other = $this->getTargetUser($this->arg('id')); + $this->other = $this->getTargetProfile($this->arg('id')); return true; } diff --git a/actions/apifriendshipscreate.php b/actions/apifriendshipscreate.php index 1de2cc32e0..a7ec5b28a4 100644 --- a/actions/apifriendshipscreate.php +++ b/actions/apifriendshipscreate.php @@ -24,7 +24,7 @@ * @author Dan Moore * @author Evan Prodromou * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -67,7 +67,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction parent::prepare($args); $this->user = $this->auth_user; - $this->other = $this->getTargetUser($id); + $this->other = $this->getTargetProfile($this->arg('id')); return true; } @@ -106,7 +106,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction if (empty($this->other)) { $this->clientError( - _('Could not follow user: User not found.'), + _('Could not follow user: profile not found.'), 403, $this->format ); diff --git a/actions/apifriendshipsdestroy.php b/actions/apifriendshipsdestroy.php index d48a577562..551d016823 100644 --- a/actions/apifriendshipsdestroy.php +++ b/actions/apifriendshipsdestroy.php @@ -24,7 +24,7 @@ * @author Dan Moore * @author Evan Prodromou * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -67,7 +67,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction parent::prepare($args); $this->user = $this->auth_user; - $this->other = $this->getTargetUser($id); + $this->other = $this->getTargetProfile($this->arg('id')); return true; } @@ -125,8 +125,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction } // throws an exception on error - Subscription::cancel($this->user->getProfile(), - $this->other->getProfile()); + Subscription::cancel($this->user->getProfile(), $this->other); $this->initDocument($this->format); $this->showProfile($this->other, $this->format); diff --git a/actions/apifriendshipsexists.php b/actions/apifriendshipsexists.php index ca62b5f514..725178fd42 100644 --- a/actions/apifriendshipsexists.php +++ b/actions/apifriendshipsexists.php @@ -24,7 +24,7 @@ * @author Dan Moore * @author Evan Prodromou * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -50,8 +50,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; class ApiFriendshipsExistsAction extends ApiPrivateAuthAction { - var $user_a = null; - var $user_b = null; + var $profile_a = null; + var $profile_b = null; /** * Take arguments for running @@ -66,11 +66,8 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction { parent::prepare($args); - $user_a_id = $this->trimmed('user_a'); - $user_b_id = $this->trimmed('user_b'); - - $this->user_a = $this->getTargetUser($user_a_id); - $this->user_b = $this->getTargetUser($user_b_id); + $this->profile_a = $this->getTargetProfile($this->trimmed('user_a')); + $this->profile_b = $this->getTargetProfile($this->trimmed('user_b')); return true; } @@ -89,16 +86,16 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction { parent::handle($args); - if (empty($this->user_a) || empty($this->user_b)) { + if (empty($this->profile_a) || empty($this->profile_b)) { $this->clientError( - _('Two user ids or screen_names must be supplied.'), + _('Two valid IDs or screen_names must be supplied.'), 400, $this->format ); return; } - $result = $this->user_a->isSubscribed($this->user_b); + $result = Subscription::exists($this->profile_a, $this->profile_b); switch ($this->format) { case 'xml': diff --git a/actions/apimediaupload.php b/actions/apimediaupload.php index ec316edc8d..7aa88c186b 100644 --- a/actions/apimediaupload.php +++ b/actions/apimediaupload.php @@ -88,15 +88,15 @@ class ApiMediaUploadAction extends ApiAuthAction try { $upload = MediaFile::fromUpload('media', $this->auth_user); - } catch (ClientException $ce) { - $this->clientError($ce->getMessage()); + } catch (Exception $e) { + $this->clientError($e->getMessage(), $e->getCode()); return; } if (isset($upload)) { $this->showResponse($upload); } else { - $this->clientError('Upload failed.'); + $this->clientError(_('Upload failed.')); return; } } diff --git a/actions/apistatusesupdate.php b/actions/apistatusesupdate.php index d65a068f50..fa3f611c0a 100644 --- a/actions/apistatusesupdate.php +++ b/actions/apistatusesupdate.php @@ -196,7 +196,8 @@ class ApiStatusesUpdateAction extends ApiAuthAction if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( _('This method requires a POST.'), - 400, $this->format + 400, + $this->format ); return; } @@ -217,7 +218,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction if (empty($this->status)) { $this->clientError( - 'Client must provide a \'status\' parameter with a value.', + _('Client must provide a \'status\' parameter with a value.'), 400, $this->format ); @@ -291,8 +292,8 @@ class ApiStatusesUpdateAction extends ApiAuthAction try { $upload = MediaFile::fromUpload('media', $this->auth_user); - } catch (ClientException $ce) { - $this->clientError($ce->getMessage()); + } catch (Exception $e) { + $this->clientError($e->getMessage(), $e->getCode(), $this->format); return; } @@ -305,7 +306,11 @@ class ApiStatusesUpdateAction extends ApiAuthAction 'Max notice size is %d chars, ' . 'including attachment URL.' ); - $this->clientError(sprintf($msg, Notice::maxContent())); + $this->clientError( + sprintf($msg, Notice::maxContent()), + 400, + $this->format + ); } } @@ -332,7 +337,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction $options ); } catch (Exception $e) { - $this->clientError($e->getMessage()); + $this->clientError($e->getMessage(), $e->getCode(), $this->format); return; } diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index c4a6a18d24..7a40fd8084 100644 --- a/actions/apitimelinegroup.php +++ b/actions/apitimelinegroup.php @@ -25,7 +25,7 @@ * @author Evan Prodromou * @author Jeffery To * @author Zach Copley - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-2010 StatusNet, Inc. * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ @@ -138,7 +138,9 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction $this->raw($atom->getString()); } catch (Atom10FeedException $e) { $this->serverError( - 'Could not generate feed for group - ' . $e->getMessage() + 'Could not generate feed for group - ' . $e->getMessage(), + 400, + $this->format ); return; } diff --git a/actions/favor.php b/actions/favor.php index 475912fd0b..01976a38f5 100644 --- a/actions/favor.php +++ b/actions/favor.php @@ -104,7 +104,7 @@ class FavorAction extends Action } /** - * Notifies a user when his notice is favorited. + * Notifies a user when their notice is favorited. * * @param class $notice favorited notice * @param class $user user declaring a favorite diff --git a/actions/finishremotesubscribe.php b/actions/finishremotesubscribe.php index ac51ddec3f..0325f6adbb 100644 --- a/actions/finishremotesubscribe.php +++ b/actions/finishremotesubscribe.php @@ -37,7 +37,7 @@ require_once INSTALLDIR.'/lib/omb.php'; * Handler for remote subscription finish callback * * When a remote user subscribes a local user, a redirect to this action is - * issued after the remote user authorized his service to subscribe. + * issued after the remote user authorized their service to subscribe. * * @category Action * @package Laconica diff --git a/actions/nudge.php b/actions/nudge.php index cf5f773e71..32ae8587cc 100644 --- a/actions/nudge.php +++ b/actions/nudge.php @@ -82,7 +82,7 @@ class NudgeAction extends Action } if (!$other->email || !$other->emailnotifynudge) { - $this->clientError(_('This user doesn\'t allow nudges or hasn\'t confirmed or set his email yet.')); + $this->clientError(_('This user doesn\'t allow nudges or hasn\'t confirmed or set their email yet.')); return; } diff --git a/actions/replies.php b/actions/replies.php index 608f71d6e0..8f2fc6c7f3 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -196,18 +196,18 @@ class RepliesAction extends OwnerDesignAction function showEmptyListMessage() { - $message = sprintf(_('This is the timeline showing replies to %1$s but %2$s hasn\'t received a notice to his attention yet.'), $this->user->nickname, $this->user->nickname) . ' '; + $message = sprintf(_('This is the timeline showing replies to %1$s but %2$s hasn\'t received a notice to them yet.'), $this->user->nickname, $this->user->nickname) . ' '; if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { $message .= _('You can engage other users in a conversation, subscribe to more people or [join groups](%%action.groups%%).'); } else { - $message .= sprintf(_('You can try to [nudge %1$s](../%2$s) or [post something to his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); + $message .= sprintf(_('You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); } } else { - $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname); + $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname); } $this->elementStart('div', 'guide'); diff --git a/actions/showfavorites.php b/actions/showfavorites.php index 7f3c77ee24..d8042e91c7 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -119,7 +119,7 @@ class ShowfavoritesAction extends OwnerDesignAction if (!empty($cur) && $cur->id == $this->user->id) { // Show imported/gateway notices as well as local if - // the user is looking at his own favorites + // the user is looking at their own favorites $this->notice = $this->user->favoriteNotices(true, ($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); @@ -205,11 +205,11 @@ class ShowfavoritesAction extends OwnerDesignAction if ($this->user->id === $current_user->id) { $message = _('You haven\'t chosen any favorite notices yet. Click the fave button on notices you like to bookmark them for later or shed a spotlight on them.'); } else { - $message = sprintf(_('%s hasn\'t added any notices to his favorites yet. Post something interesting they would add to their favorites :)'), $this->user->nickname); + $message = sprintf(_('%s hasn\'t added any favorite notices yet. Post something interesting they would add to their favorites :)'), $this->user->nickname); } } else { - $message = sprintf(_('%s hasn\'t added any notices to his favorites yet. Why not [register an account](%%%%action.register%%%%) and then post something interesting they would add to their favorites :)'), $this->user->nickname); + $message = sprintf(_('%s hasn\'t added any favorite notices yet. Why not [register an account](%%%%action.register%%%%) and then post something interesting they would add to their favorites :)'), $this->user->nickname); } $this->elementStart('div', 'guide'); diff --git a/actions/showstream.php b/actions/showstream.php index 5a9add36ce..744b6906eb 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -198,11 +198,11 @@ class ShowstreamAction extends ProfileAction if ($this->user->id === $current_user->id) { $message .= _('Seen anything interesting recently? You haven\'t posted any notices yet, now would be a good time to start :)'); } else { - $message .= sprintf(_('You can try to nudge %1$s or [post something to his or her attention](%%%%action.newnotice%%%%?status_textarea=%2$s).'), $this->user->nickname, '@' . $this->user->nickname); + $message .= sprintf(_('You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%%?status_textarea=%2$s).'), $this->user->nickname, '@' . $this->user->nickname); } } else { - $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to his or her attention.'), $this->user->nickname); + $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname); } $this->elementStart('div', 'guide'); diff --git a/classes/File.php b/classes/File.php index 0cd31075d2..407fd32114 100644 --- a/classes/File.php +++ b/classes/File.php @@ -139,7 +139,8 @@ class File extends Memcached_DataObject $redir_url = $redir_data; $redir_data = array(); } else { - throw new ServerException("Can't process url '$given_url'"); + // TRANS: Server exception thrown when a URL cannot be processed. + throw new ServerException(sprintf(_("Cannot process URL '%s'"), $given_url)); } // TODO: max field length if ($redir_url === $given_url || strlen($redir_url) > 255 || !$followRedirects) { @@ -169,7 +170,9 @@ class File extends Memcached_DataObject if (empty($x)) { $x = File::staticGet($file_id); if (empty($x)) { - throw new ServerException("Robin thinks something is impossible."); + // FIXME: This could possibly be a clearer message :) + // TRANS: Server exception thrown when... Robin thinks something is impossible! + throw new ServerException(_("Robin thinks something is impossible.")); } } @@ -182,8 +185,10 @@ class File extends Memcached_DataObject function isRespectsQuota($user,$fileSize) { if ($fileSize > common_config('attachments', 'file_quota')) { - return sprintf(_('No file may be larger than %d bytes ' . - 'and the file you sent was %d bytes. Try to upload a smaller version.'), + // TRANS: Message given if an upload is larger than the configured maximum. + // TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. + return sprintf(_('No file may be larger than %1$d bytes ' . + 'and the file you sent was %2$d bytes. Try to upload a smaller version.'), common_config('attachments', 'file_quota'), $fileSize); } @@ -192,6 +197,8 @@ class File extends Memcached_DataObject $this->fetch(); $total = $this->total + $fileSize; if ($total > common_config('attachments', 'user_quota')) { + // TRANS: Message given if an upload would exceed user quota. + // TRANS: %d (number) is the user quota in bytes. return sprintf(_('A file this large would exceed your user quota of %d bytes.'), common_config('attachments', 'user_quota')); } $query .= ' AND EXTRACT(month FROM file.modified) = EXTRACT(month FROM now()) and EXTRACT(year FROM file.modified) = EXTRACT(year FROM now())'; @@ -199,6 +206,8 @@ class File extends Memcached_DataObject $this->fetch(); $total = $this->total + $fileSize; if ($total > common_config('attachments', 'monthly_quota')) { + // TRANS: Message given id an upload would exceed a user's monthly quota. + // TRANS: $d (number) is the monthly user quota in bytes. return sprintf(_('A file this large would exceed your monthly quota of %d bytes.'), common_config('attachments', 'monthly_quota')); } return true; @@ -235,7 +244,8 @@ class File extends Memcached_DataObject static function path($filename) { if (!self::validFilename($filename)) { - throw new ClientException("Invalid filename"); + // TRANS: Client exception thrown if a file upload does not have a valid name. + throw new ClientException(_("Invalid filename.")); } $dir = common_config('attachments', 'dir'); @@ -249,7 +259,8 @@ class File extends Memcached_DataObject static function url($filename) { if (!self::validFilename($filename)) { - throw new ClientException("Invalid filename"); + // TRANS: Client exception thrown if a file upload does not have a valid name. + throw new ClientException(_("Invalid filename.")); } if(common_config('site','private')) { @@ -302,6 +313,7 @@ class File extends Memcached_DataObject if(! isset($this->filename)){ $notEnclosureMimeTypes = array(null,'text/html','application/xhtml+xml'); + $mimetype = $this->mimetype; if($mimetype != null){ $mimetype = strtolower($this->mimetype); } @@ -341,4 +353,3 @@ class File extends Memcached_DataObject return !empty($enclosure); } } - diff --git a/classes/Foreign_user.php b/classes/Foreign_user.php index 0dd94ffb99..e98a16064a 100644 --- a/classes/Foreign_user.php +++ b/classes/Foreign_user.php @@ -39,6 +39,22 @@ class Foreign_user extends Memcached_DataObject return null; } + static function getByNickname($nickname, $service) + { + if (empty($nickname) || empty($service)) { + return null; + } else { + $fuser = new Foreign_user(); + $fuser->service = $service; + $fuser->nickname = $nickname; + $fuser->limit(1); + + $result = $fuser->find(true); + + return empty($result) ? null : $fuser; + } + } + function updateKeys(&$orig) { $this->_connect(); diff --git a/classes/Group_member.php b/classes/Group_member.php index 7b1760f767..2239461beb 100644 --- a/classes/Group_member.php +++ b/classes/Group_member.php @@ -38,6 +38,7 @@ class Group_member extends Memcached_DataObject if (!$result) { common_log_db_error($member, 'INSERT', __FILE__); + // TRANS: Exception thrown when joining a group fails. throw new Exception(_("Group join failed.")); } @@ -50,6 +51,7 @@ class Group_member extends Memcached_DataObject 'profile_id' => $profile_id)); if (empty($member)) { + // TRANS: Exception thrown when trying to leave a group the user is not a member of. throw new Exception(_("Not part of group.")); } @@ -57,6 +59,7 @@ class Group_member extends Memcached_DataObject if (!$result) { common_log_db_error($member, 'INSERT', __FILE__); + // TRANS: Exception thrown when trying to leave a group fails. throw new Exception(_("Group leave failed.")); } diff --git a/classes/Local_group.php b/classes/Local_group.php index 42312ec63c..ccd0125cf4 100644 --- a/classes/Local_group.php +++ b/classes/Local_group.php @@ -38,6 +38,7 @@ class Local_group extends Memcached_DataObject $this->encache(); } else { common_log_db_error($local, 'UPDATE', __FILE__); + // TRANS: Server exception thrown when updating a local group fails. throw new ServerException(_('Could not update local group.')); } diff --git a/classes/Login_token.php b/classes/Login_token.php index 51dc61262e..20d5d9dbce 100644 --- a/classes/Login_token.php +++ b/classes/Login_token.php @@ -73,6 +73,8 @@ class Login_token extends Memcached_DataObject if (!$result) { common_log_db_error($login_token, 'INSERT', __FILE__); + // TRANS: Exception thrown when trying creating a login token failed. + // TRANS: %s is the user nickname for which token creation failed. throw new Exception(sprintf(_('Could not create login token for %s'), $user->nickname)); } diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 747c22ebb6..0f1ed04892 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -235,6 +235,7 @@ class Memcached_DataObject extends Safe_DataObject $pkey[] = $key; $pval[] = self::valueString($this->$key); } else { + // Low level exception. No need for i18n as discussed with Brion. throw new Exception("Unknown key type $key => $type for " . $this->tableName()); } } @@ -282,6 +283,7 @@ class Memcached_DataObject extends Safe_DataObject } else if ($type == 'fulltext') { $search_engine = new MySQLSearch($this, $table); } else { + // Low level exception. No need for i18n as discussed with Brion. throw new ServerException('Unknown search type: ' . $type); } } else { @@ -527,7 +529,8 @@ class Memcached_DataObject extends Safe_DataObject } if (!$dsn) { - throw new Exception("No database name / dsn found anywhere"); + // TRANS: Exception thrown when database name or Data Source Name could not be found. + throw new Exception(_("No database name or DSN found anywhere.")); } return $dsn; @@ -577,6 +580,7 @@ class Memcached_DataObject extends Safe_DataObject if ($message instanceof PEAR_Error) { $message = $message->getMessage(); } + // Low level exception. No need for i18n as discussed with Brion. throw new ServerException("[$id] DB_DataObject error [$type]: $message"); } @@ -593,7 +597,7 @@ class Memcached_DataObject extends Safe_DataObject return $c->get($cacheKey); } - static function cacheSet($keyPart, $value) + static function cacheSet($keyPart, $value, $flag=null, $expiry=null) { $c = self::memcache(); @@ -603,7 +607,7 @@ class Memcached_DataObject extends Safe_DataObject $cacheKey = common_cache_key($keyPart); - return $c->set($cacheKey, $value); + return $c->set($cacheKey, $value, $flag, $expiry); } static function valueString($v) @@ -619,9 +623,11 @@ class Memcached_DataObject extends Safe_DataObject case 'sql': case 'datetime': case 'time': + // Low level exception. No need for i18n as discussed with Brion. throw new ServerException("Unhandled DB_DataObject_Cast type passed as cacheKey value: '$v->type'"); break; default: + // Low level exception. No need for i18n as discussed with Brion. throw new ServerException("Unknown DB_DataObject_Cast type passed as cacheKey value: '$v->type'"); break; } diff --git a/classes/Message.php b/classes/Message.php index 16d0c60b30..fa0c5b3181 100644 --- a/classes/Message.php +++ b/classes/Message.php @@ -42,6 +42,7 @@ class Message extends Memcached_DataObject $sender = Profile::staticGet('id', $from); if (!$sender->hasRight(Right::NEWMESSAGE)) { + // TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. throw new ClientException(_('You are banned from sending direct messages.')); } @@ -58,6 +59,7 @@ class Message extends Memcached_DataObject if (!$result) { common_log_db_error($msg, 'INSERT', __FILE__); + // TRANS: Message given when a message could not be stored on the server. return _('Could not insert message.'); } @@ -68,6 +70,7 @@ class Message extends Memcached_DataObject if (!$result) { common_log_db_error($msg, 'UPDATE', __FILE__); + // TRANS: Message given when a message could not be updated on the server. return _('Could not update message with new URI.'); } diff --git a/classes/Notice.php b/classes/Notice.php index 482bc550b9..4646fc6aba 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -42,10 +42,10 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -/* We keep the first three 20-notice pages, plus one for pagination check, +/* We keep 200 notices, the max number of notices available per API request, * in the memcached cache. */ -define('NOTICE_CACHE_WINDOW', 61); +define('NOTICE_CACHE_WINDOW', 200); define('MAX_BOXCARS', 128); @@ -90,7 +90,15 @@ class Notice extends Memcached_DataObject function getProfile() { - return Profile::staticGet('id', $this->profile_id); + $profile = Profile::staticGet('id', $this->profile_id); + + if (empty($profile)) { + // TRANS: Server exception thrown when a user profile for a notice cannot be found. + // TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). + throw new ServerException(sprintf(_('No such profile (%1$d) for notice (%2$d).'), $this->profile_id, $this->id)); + } + + return $profile; } function delete() @@ -248,28 +256,34 @@ class Notice extends Memcached_DataObject $final = common_shorten_links($content); if (Notice::contentTooLong($final)) { + // TRANS: Client exception thrown if a notice contains too many characters. throw new ClientException(_('Problem saving notice. Too long.')); } if (empty($profile)) { + // TRANS: Client exception thrown when trying to save a notice for an unknown user. throw new ClientException(_('Problem saving notice. Unknown user.')); } if (common_config('throttle', 'enabled') && !Notice::checkEditThrottle($profile_id)) { common_log(LOG_WARNING, 'Excessive posting by profile #' . $profile_id . '; throttled.'); + // TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. throw new ClientException(_('Too many notices too fast; take a breather '. 'and post again in a few minutes.')); } if (common_config('site', 'dupelimit') > 0 && !Notice::checkDupes($profile_id, $final)) { common_log(LOG_WARNING, 'Dupe posting by profile #' . $profile_id . '; throttled.'); + // TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. throw new ClientException(_('Too many duplicate messages too quickly;'. ' take a breather and post again in a few minutes.')); } if (!$profile->hasRight(Right::NEWNOTICE)) { common_log(LOG_WARNING, "Attempted post from user disallowed to post: " . $profile->nickname); - throw new ClientException(_('You are banned from posting notices on this site.')); + + // TRANS: Client exception thrown when a user tries to post while being banned. + throw new ClientException(_('You are banned from posting notices on this site.'), 403); } $notice = new Notice(); @@ -335,6 +349,7 @@ class Notice extends Memcached_DataObject if (!$id) { common_log_db_error($notice, 'INSERT', __FILE__); + // TRANS: Server exception thrown when a notice cannot be saved. throw new ServerException(_('Problem saving notice.')); } @@ -361,6 +376,7 @@ class Notice extends Memcached_DataObject if ($changed) { if (!$notice->update($orig)) { common_log_db_error($notice, 'UPDATE', __FILE__); + // TRANS: Server exception thrown when a notice cannot be updated. throw new ServerException(_('Problem saving notice.')); } } @@ -872,7 +888,8 @@ class Notice extends Memcached_DataObject function saveKnownGroups($group_ids) { if (!is_array($group_ids)) { - throw new ServerException("Bad type provided to saveKnownGroups"); + // TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). + throw new ServerException(_("Bad type provided to saveKnownGroups")); } $groups = array(); @@ -970,6 +987,7 @@ class Notice extends Memcached_DataObject if (!$result) { common_log_db_error($gi, 'INSERT', __FILE__); + // TRANS: Server exception thrown when an update for a group inbox fails. throw new ServerException(_('Problem saving group inbox.')); } @@ -1075,7 +1093,9 @@ class Notice extends Memcached_DataObject if (!$id) { common_log_db_error($reply, 'INSERT', __FILE__); - throw new ServerException("Couldn't save reply for {$this->id}, {$mentioned->id}"); + // TRANS: Server exception thrown when a reply cannot be saved. + // TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. + throw new ServerException(sprintf(_("Could not save reply for %1$d, %2$d."), $this->id, $mentioned->id)); } else { $replied[$mentioned->id] = 1; self::blow('reply:stream:%d', $mentioned->id); @@ -1178,6 +1198,9 @@ class Notice extends Memcached_DataObject return $groups; } + // This has gotten way too long. Needs to be sliced up into functional bits + // or ideally exported to a utility class. + function asAtomEntry($namespace=false, $source=false, $author=true, $cur=null) { $profile = $this->getProfile(); @@ -1197,74 +1220,176 @@ class Notice extends Memcached_DataObject $attrs = array(); } - $xs->elementStart('entry', $attrs); + if (Event::handle('StartActivityStart', array(&$this, &$xs, &$attrs))) { + $xs->elementStart('entry', $attrs); + Event::handle('EndActivityStart', array(&$this, &$xs, &$attrs)); + } - if ($source) { - $xs->elementStart('source'); - $xs->element('id', null, $profile->profileurl); - $xs->element('title', null, $profile->nickname . " - " . common_config('site', 'name')); - $xs->element('link', array('href' => $profile->profileurl)); - $user = User::staticGet('id', $profile->id); - if (!empty($user)) { - $atom_feed = common_local_url('ApiTimelineUser', - array('format' => 'atom', - 'id' => $profile->nickname)); - $xs->element('link', array('rel' => 'self', - 'type' => 'application/atom+xml', - 'href' => $profile->profileurl)); - $xs->element('link', array('rel' => 'license', - 'href' => common_config('license', 'url'))); + if (Event::handle('StartActivitySource', array(&$this, &$xs))) { + + if ($source) { + + $atom_feed = $profile->getAtomFeed(); + + if (!empty($atom_feed)) { + + $xs->elementStart('source'); + + // XXX: we should store the actual feed ID + + $xs->element('id', null, $atom_feed); + + // XXX: we should store the actual feed title + + $xs->element('title', null, $profile->getBestName()); + + $xs->element('link', array('rel' => 'alternate', + 'type' => 'text/html', + 'href' => $profile->profileurl)); + + $xs->element('link', array('rel' => 'self', + 'type' => 'application/atom+xml', + 'href' => $atom_feed)); + + $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE)); + + $notice = $profile->getCurrentNotice(); + + if (!empty($notice)) { + $xs->element('updated', null, self::utcDate($notice->created)); + } + + $user = User::staticGet('id', $profile->id); + + if (!empty($user)) { + $xs->element('link', array('rel' => 'license', + 'href' => common_config('license', 'url'))); + } + + $xs->elementEnd('source'); + } } - - $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE)); - $xs->element('updated', null, common_date_w3dtf($this->created)); + Event::handle('EndActivitySource', array(&$this, &$xs)); } - if ($source) { - $xs->elementEnd('source'); + $title = common_xml_safe_str($this->content); + + if (Event::handle('StartActivityTitle', array(&$this, &$xs, &$title))) { + $xs->element('title', null, $title); + Event::handle('EndActivityTitle', array($this, &$xs, $title)); } - $xs->element('title', null, common_xml_safe_str($this->content)); + $atomAuthor = ''; if ($author) { - $xs->raw($profile->asAtomAuthor($cur)); - $xs->raw($profile->asActivityActor()); + $atomAuthor = $profile->asAtomAuthor($cur); } - $xs->element('link', array('rel' => 'alternate', - 'type' => 'text/html', - 'href' => $this->bestUrl())); - - $xs->element('id', null, $this->uri); - - $xs->element('published', null, common_date_w3dtf($this->created)); - $xs->element('updated', null, common_date_w3dtf($this->created)); - - $source = null; - - $ns = $this->getSource(); - - if ($ns) { - if (!empty($ns->name) && !empty($ns->url)) { - $source = '' - . htmlspecialchars($ns->name) - . ''; - } else { - $source = $ns->code; + if (Event::handle('StartActivityAuthor', array(&$this, &$xs, &$atomAuthor))) { + if (!empty($atomAuthor)) { + $xs->raw($atomAuthor); + Event::handle('EndActivityAuthor', array(&$this, &$xs, &$atomAuthor)); } } - $noticeInfoAttr = array( - 'local_id' => $this->id, // local notice ID (useful to clients for ordering) - 'source' => $source, // the client name (source attribution) - ); + $actor = ''; + + if ($author) { + $actor = $profile->asActivityActor(); + } + + if (Event::handle('StartActivityActor', array(&$this, &$xs, &$actor))) { + if (!empty($actor)) { + $xs->raw($actor); + Event::handle('EndActivityActor', array(&$this, &$xs, &$actor)); + } + } + + $url = $this->bestUrl(); + + if (Event::handle('StartActivityLink', array(&$this, &$xs, &$url))) { + $xs->element('link', array('rel' => 'alternate', + 'type' => 'text/html', + 'href' => $url)); + Event::handle('EndActivityLink', array(&$this, &$xs, $url)); + } + + $id = $this->uri; + + if (Event::handle('StartActivityId', array(&$this, &$xs, &$id))) { + $xs->element('id', null, $id); + Event::handle('EndActivityId', array(&$this, &$xs, $id)); + } + + $published = self::utcDate($this->created); + + if (Event::handle('StartActivityPublished', array(&$this, &$xs, &$published))) { + $xs->element('published', null, $published); + Event::handle('EndActivityPublished', array(&$this, &$xs, $published)); + } + + $updated = $published; // XXX: notices are usually immutable + + if (Event::handle('StartActivityUpdated', array(&$this, &$xs, &$updated))) { + $xs->element('updated', null, $updated); + Event::handle('EndActivityUpdated', array(&$this, &$xs, $updated)); + } + + $content = common_xml_safe_str($this->rendered); + + if (Event::handle('StartActivityContent', array(&$this, &$xs, &$content))) { + $xs->element('content', array('type' => 'html'), $content); + Event::handle('EndActivityContent', array(&$this, &$xs, $content)); + } + + // Most of our notices represent POSTing a NOTE. This is the default verb + // for activity streams, so we normally just leave it out. + + $verb = ActivityVerb::POST; + + if (Event::handle('StartActivityVerb', array(&$this, &$xs, &$verb))) { + $xs->element('activity:verb', null, $verb); + Event::handle('EndActivityVerb', array(&$this, &$xs, $verb)); + } + + // We use the default behavior for activity streams: if there's no activity:object, + // then treat the entry itself as the object. Here, you can set the type of that object, + // which is normally a NOTE. + + $type = ActivityObject::NOTE; + + if (Event::handle('StartActivityDefaultObjectType', array(&$this, &$xs, &$type))) { + $xs->element('activity:object-type', null, $type); + Event::handle('EndActivityDefaultObjectType', array(&$this, &$xs, $type)); + } + + // Since we usually use the entry itself as an object, we don't have an explicit + // object. Some extensions may want to add them (for photo, event, music, etc.). + + $objects = array(); + + if (Event::handle('StartActivityObjects', array(&$this, &$xs, &$objects))) { + foreach ($objects as $object) { + $xs->raw($object->asString()); + } + Event::handle('EndActivityObjects', array(&$this, &$xs, $objects)); + } + + $noticeInfoAttr = array('local_id' => $this->id); // local notice ID (useful to clients for ordering) $ns = $this->getSource(); - if ($ns) { + + if (!empty($ns)) { + $noticeInfoAttr['source'] = $ns->code; if (!empty($ns->url)) { $noticeInfoAttr['source_link'] = $ns->url; + if (!empty($ns->name)) { + $noticeInfoAttr['source'] = '' + . htmlspecialchars($ns->name) + . ''; + } } } @@ -1278,103 +1403,143 @@ class Notice extends Memcached_DataObject $noticeInfoAttr['repeat_of'] = $this->repeat_of; } - $xs->element('statusnet:notice_info', $noticeInfoAttr, null); + if (Event::handle('StartActivityNoticeInfo', array(&$this, &$xs, &$noticeInfoAttr))) { + $xs->element('statusnet:notice_info', $noticeInfoAttr, null); + Event::handle('EndActivityNoticeInfo', array(&$this, &$xs, $noticeInfoAttr)); + } + + $replyNotice = null; if ($this->reply_to) { - $reply_notice = Notice::staticGet('id', $this->reply_to); - if (!empty($reply_notice)) { + $replyNotice = Notice::staticGet('id', $this->reply_to); + } + + if (Event::handle('StartActivityInReplyTo', array(&$this, &$xs, &$replyNotice))) { + if (!empty($replyNotice)) { $xs->element('link', array('rel' => 'related', - 'href' => $reply_notice->bestUrl())); + 'href' => $replyNotice->bestUrl())); $xs->element('thr:in-reply-to', - array('ref' => $reply_notice->uri, - 'href' => $reply_notice->bestUrl())); + array('ref' => $replyNotice->uri, + 'href' => $replyNotice->bestUrl())); + Event::handle('EndActivityInReplyTo', array(&$this, &$xs, $replyNotice)); } } + $conv = null; + if (!empty($this->conversation)) { - $conv = Conversation::staticGet('id', $this->conversation); - - if (!empty($conv)) { - $xs->element( - 'link', array( - 'rel' => 'ostatus:conversation', - 'href' => $conv->uri - ) - ); - } } + if (Event::handle('StartActivityConversation', array(&$this, &$xs, &$conv))) { + if (!empty($conv)) { + $xs->element('link', array('rel' => 'ostatus:conversation', + 'href' => $conv->uri)); + } + Event::handle('EndActivityConversation', array(&$this, &$xs, $conv)); + } + + $replyProfiles = array(); + $reply_ids = $this->getReplies(); foreach ($reply_ids as $id) { $profile = Profile::staticGet('id', $id); - if (!empty($profile)) { - $xs->element( - 'link', array( - 'rel' => 'ostatus:attention', - 'href' => $profile->getUri() - ) - ); + if (!empty($profile)) { + $replyProfiles[] = $profile; } } + if (Event::handle('StartActivityAttentionProfiles', array(&$this, &$xs, &$replyProfiles))) { + foreach ($replyProfiles as $profile) { + $xs->element('link', array('rel' => 'ostatus:attention', + 'href' => $profile->getUri())); + $xs->element('link', array('rel' => 'mentioned', + 'href' => $profile->getUri())); + } + Event::handle('EndActivityAttentionProfiles', array(&$this, &$xs, $replyProfiles)); + } + $groups = $this->getGroups(); - foreach ($groups as $group) { - $xs->element( - 'link', array( - 'rel' => 'ostatus:attention', - 'href' => $group->permalink() - ) - ); + if (Event::handle('StartActivityAttentionGroups', array(&$this, &$xs, &$groups))) { + foreach ($groups as $group) { + $xs->element('link', array('rel' => 'ostatus:attention', + 'href' => $group->permalink())); + $xs->element('link', array('rel' => 'mentioned', + 'href' => $group->permalink())); + } + Event::handle('EndActivityAttentionGroups', array(&$this, &$xs, $groups)); } + $repeat = null; + if (!empty($this->repeat_of)) { $repeat = Notice::staticGet('id', $this->repeat_of); + } + + if (Event::handle('StartActivityForward', array(&$this, &$xs, &$repeat))) { if (!empty($repeat)) { - $xs->element( - 'ostatus:forward', - array('ref' => $repeat->uri, 'href' => $repeat->bestUrl()) - ); + $xs->element('ostatus:forward', + array('ref' => $repeat->uri, + 'href' => $repeat->bestUrl())); } + + Event::handle('EndActivityForward', array(&$this, &$xs, $repeat)); } - $xs->element( - 'content', - array('type' => 'html'), - common_xml_safe_str($this->rendered) - ); + $tags = $this->getTags(); - $tag = new Notice_tag(); - $tag->notice_id = $this->id; - if ($tag->find()) { - while ($tag->fetch()) { - $xs->element('category', array('term' => $tag->tag)); + if (Event::handle('StartActivityCategories', array(&$this, &$xs, &$tags))) { + foreach ($tags as $tag) { + $xs->element('category', array('term' => $tag)); } + Event::handle('EndActivityCategories', array(&$this, &$xs, $tags)); } - $tag->free(); - # Enclosures + // Enclosures + + $enclosures = array(); + $attachments = $this->attachments(); - if($attachments){ - foreach($attachments as $attachment){ - $enclosure=$attachment->getEnclosure(); - if ($enclosure) { - $attributes = array('rel'=>'enclosure','href'=>$enclosure->url,'type'=>$enclosure->mimetype,'length'=>$enclosure->size); - if($enclosure->title){ - $attributes['title']=$enclosure->title; - } - $xs->element('link', $attributes, null); - } + + foreach ($attachments as $attachment) { + $enclosure = $attachment->getEnclosure(); + if ($enclosure) { + $enclosures[] = $enclosure; } } - if (!empty($this->lat) && !empty($this->lon)) { - $xs->element('georss:point', null, $this->lat . ' ' . $this->lon); + if (Event::handle('StartActivityEnclosures', array(&$this, &$xs, &$enclosures))) { + foreach ($enclosures as $enclosure) { + $attributes = array('rel' => 'enclosure', + 'href' => $enclosure->url, + 'type' => $enclosure->mimetype, + 'length' => $enclosure->size); + + if ($enclosure->title) { + $attributes['title'] = $enclosure->title; + } + + $xs->element('link', $attributes, null); + } + Event::handle('EndActivityEnclosures', array(&$this, &$xs, $enclosures)); } - $xs->elementEnd('entry'); + $lat = $this->lat; + $lon = $this->lon; + + if (Event::handle('StartActivityGeo', array(&$this, &$xs, &$lat, &$lon))) { + if (!empty($lat) && !empty($lon)) { + $xs->element('georss:point', null, $lat . ' ' . $lon); + } + Event::handle('EndActivityGeo', array(&$this, &$xs, $lat, $lon)); + } + + if (Event::handle('StartActivityEnd', array(&$this, &$xs))) { + $xs->elementEnd('entry'); + Event::handle('EndActivityEnd', array(&$this, &$xs)); + } return $xs->getString(); } @@ -1895,4 +2060,24 @@ class Notice extends Memcached_DataObject $this->is_local == Notice::LOCAL_NONPUBLIC); } + public function getTags() + { + $tags = array(); + $tag = new Notice_tag(); + $tag->notice_id = $this->id; + if ($tag->find()) { + while ($tag->fetch()) { + $tags[] = $tag->tag; + } + } + $tag->free(); + return $tags; + } + + static private function utcDate($dt) + { + $dateStr = date('d F Y H:i:s', strtotime($dt)); + $d = new DateTime($dateStr, new DateTimeZone('UTC')); + return $d->format(DATE_W3C); + } } diff --git a/classes/Profile.php b/classes/Profile.php index a303469e96..0d0463b730 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -152,17 +152,16 @@ class Profile extends Memcached_DataObject * * @return mixed Notice or null */ + function getCurrentNotice() { - $notice = new Notice(); - $notice->profile_id = $this->id; - // @fixme change this to sort on notice.id only when indexes are updated - $notice->orderBy('created DESC, notice.id DESC'); - $notice->limit(1); - if ($notice->find(true)) { + $notice = $this->getNotices(0, 1); + + if ($notice->fetch()) { return $notice; + } else { + return null; } - return null; } function getTaggedNotices($tag, $offset=0, $limit=NOTICES_PER_PAGE, $since_id=0, $max_id=0) @@ -735,14 +734,18 @@ class Profile extends Memcached_DataObject 'role' => $name)); if (empty($role)) { - throw new Exception('Cannot revoke role "'.$name.'" for user #'.$this->id.'; does not exist.'); + // TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. + // TRANS: %1$s is the role name, %2$s is the user ID (number). + throw new Exception(sprintf(_('Cannot revoke role "%1$s" for user #%2$d; does not exist.'),$name, $this->id)); } $result = $role->delete(); if (!$result) { common_log_db_error($role, 'DELETE', __FILE__); - throw new Exception('Cannot revoke role "'.$name.'" for user #'.$this->id.'; database error.'); + // TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. + // TRANS: %1$s is the role name, %2$s is the user ID (number). + throw new Exception(sprintf(_('Cannot revoke role "%1$s" for user #%2$d; database error.'),$name, $this->id)); } return true; @@ -943,4 +946,20 @@ class Profile extends Memcached_DataObject return $result; } + + function getAtomFeed() + { + $feed = null; + + if (Event::handle('StartProfileGetAtomFeed', array($this, &$feed))) { + $user = User::staticGet('id', $this->id); + if (!empty($user)) { + $feed = common_local_url('ApiTimelineUser', array('id' => $user->id, + 'format' => 'atom')); + } + Event::handle('EndProfileGetAtomFeed', array($this, $feed)); + } + + return $feed; + } } diff --git a/classes/Remote_profile.php b/classes/Remote_profile.php index 0a1676a6a9..77bfbcd99c 100644 --- a/classes/Remote_profile.php +++ b/classes/Remote_profile.php @@ -50,7 +50,8 @@ class Remote_profile extends Memcached_DataObject if ($profile) { return $profile->hasright($right); } else { - throw new Exception("Missing profile"); + // TRANS: Exception thrown when a right for a non-existing user profile is checked. + throw new Exception(_("Missing profile.")); } } } diff --git a/classes/Safe_DataObject.php b/classes/Safe_DataObject.php index e926cb0d58..f0ea6b136f 100644 --- a/classes/Safe_DataObject.php +++ b/classes/Safe_DataObject.php @@ -116,6 +116,7 @@ class Safe_DataObject extends DB_DataObject if ($this->_call($method, $params, $return)) { return $return; } else { + // Low level exception. No need for i18n as discussed with Brion. throw new Exception('Call to undefined method ' . get_class($this) . '::' . $method); } @@ -125,7 +126,7 @@ class Safe_DataObject extends DB_DataObject * Work around memory-leak bugs... * Had to copy-paste the whole function in order to patch a couple lines of it. * Would be nice if this code was better factored. - * + * * @param optional string name of database to assign / read * @param optional array structure of database, and keys * @param optional array table links @@ -136,108 +137,103 @@ class Safe_DataObject extends DB_DataObject */ function databaseStructure() { - global $_DB_DATAOBJECT; - - // Assignment code - + + // Assignment code + if ($args = func_get_args()) { - + if (count($args) == 1) { - + // this returns all the tables and their structure.. if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) { $this->debug("Loading Generator as databaseStructure called with args",1); } - + $x = new DB_DataObject; $x->_database = $args[0]; $this->_connect(); $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]; - + $tables = $DB->getListOf('tables'); - class_exists('DB_DataObject_Generator') ? '' : + class_exists('DB_DataObject_Generator') ? '' : require_once 'DB/DataObject/Generator.php'; - + foreach($tables as $table) { $y = new DB_DataObject_Generator; $y->fillTableSchema($x->_database,$table); } - return $_DB_DATAOBJECT['INI'][$x->_database]; + return $_DB_DATAOBJECT['INI'][$x->_database]; } else { - + $_DB_DATAOBJECT['INI'][$args[0]] = isset($_DB_DATAOBJECT['INI'][$args[0]]) ? $_DB_DATAOBJECT['INI'][$args[0]] + $args[1] : $args[1]; - + if (isset($args[1])) { $_DB_DATAOBJECT['LINKS'][$args[0]] = isset($_DB_DATAOBJECT['LINKS'][$args[0]]) ? $_DB_DATAOBJECT['LINKS'][$args[0]] + $args[2] : $args[2]; } return true; } - + } - - - + if (!$this->_database) { $this->_connect(); } - + // loaded already? if (!empty($_DB_DATAOBJECT['INI'][$this->_database])) { - + // database loaded - but this is table is not available.. if ( - empty($_DB_DATAOBJECT['INI'][$this->_database][$this->__table]) + empty($_DB_DATAOBJECT['INI'][$this->_database][$this->__table]) && !empty($_DB_DATAOBJECT['CONFIG']['proxy']) ) { if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) { $this->debug("Loading Generator to fetch Schema",1); } - class_exists('DB_DataObject_Generator') ? '' : + class_exists('DB_DataObject_Generator') ? '' : require_once 'DB/DataObject/Generator.php'; - - + + $x = new DB_DataObject_Generator; $x->fillTableSchema($this->_database,$this->__table); } return true; } - - + if (empty($_DB_DATAOBJECT['CONFIG'])) { DB_DataObject::_loadConfig(); } - + // if you supply this with arguments, then it will take those // as the database and links array... - + $schemas = isset($_DB_DATAOBJECT['CONFIG']['schema_location']) ? array("{$_DB_DATAOBJECT['CONFIG']['schema_location']}/{$this->_database}.ini") : array() ; - + if (isset($_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"])) { $schemas = is_array($_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"]) ? $_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"] : explode(PATH_SEPARATOR,$_DB_DATAOBJECT['CONFIG']["ini_{$this->_database}"]); } - - + /* BEGIN CHANGED FROM UPSTREAM */ $_DB_DATAOBJECT['INI'][$this->_database] = $this->parseIniFiles($schemas); /* END CHANGED FROM UPSTREAM */ - // now have we loaded the structure.. - + // now have we loaded the structure.. + if (!empty($_DB_DATAOBJECT['INI'][$this->_database][$this->__table])) { return true; } // - if not try building it.. if (!empty($_DB_DATAOBJECT['CONFIG']['proxy'])) { - class_exists('DB_DataObject_Generator') ? '' : + class_exists('DB_DataObject_Generator') ? '' : require_once 'DB/DataObject/Generator.php'; - + $x = new DB_DataObject_Generator; $x->fillTableSchema($this->_database,$this->__table); // should this fail!!!??? @@ -245,7 +241,8 @@ class Safe_DataObject extends DB_DataObject } $this->debug("Cant find database schema: {$this->_database}/{$this->__table} \n". "in links file data: " . print_r($_DB_DATAOBJECT['INI'],true),"databaseStructure",5); - // we have to die here!! - it causes chaos if we dont (including looping forever!) + // we have to die here!! - it causes chaos if we don't (including looping forever!) + // Low level exception. No need for i18n as discussed with Brion. $this->raiseError( "Unable to load schema for database and table (turn debugging up to 5 for full error message)", DB_DATAOBJECT_ERROR_INVALIDARGS, PEAR_ERROR_DIE); return false; } @@ -271,7 +268,7 @@ class Safe_DataObject extends DB_DataObject if (file_exists($ini) && is_file($ini)) { $data = array_merge($data, parse_ini_file($ini, true)); - if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) { + if (!empty($_DB_DATAOBJECT['CONFIG']['debug'])) { if (!is_readable ($ini)) { $this->debug("ini file is not readable: $ini","databaseStructure",1); } else { diff --git a/classes/Status_network.php b/classes/Status_network.php index 64016dd790..5680c14584 100644 --- a/classes/Status_network.php +++ b/classes/Status_network.php @@ -27,7 +27,8 @@ class Status_network extends Safe_DataObject /* the code below is auto generated do not remove the above tag */ public $__table = 'status_network'; // table name - public $nickname; // varchar(64) primary_key not_null + public $site_id; // int(4) primary_key not_null + public $nickname; // varchar(64) unique_key not_null public $hostname; // varchar(255) unique_key public $pathname; // varchar(255) unique_key public $dbhost; // varchar(255) @@ -39,7 +40,6 @@ class Status_network extends Safe_DataObject public $logo; // varchar(255) public $created; // datetime() not_null public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - public $tags; // text /* Static get */ function staticGet($k,$v=NULL) { @@ -308,9 +308,63 @@ class Status_network extends Safe_DataObject */ function getTags() { - return array_filter(explode("|", strval($this->tags))); + $result = array(); + + $tags = new Status_network_tag(); + $tags->site_id = $this->site_id; + if ($tags->find()) { + while ($tags->fetch()) { + $result[] = $tags->tag; + } + } + + // XXX : for backwards compatibility + if (empty($result)) { + return explode('|', $this->tags); + } + + return $result; } + /** + * Save a given set of tags + * @param array tags + */ + function setTags($tags) + { + $this->clearTags(); + foreach ($tags as $tag) { + if (!empty($tag)) { + $snt = new Status_network_tag(); + $snt->site_id = $this->site_id; + $snt->tag = $tag; + $snt->created = common_sql_now(); + + $id = $snt->insert(); + if (!$id) { + // TRANS: Exception thrown when a tag cannot be saved. + throw new Exception(_("Unable to save tag.")); + } + } + } + + return true; + } + + function clearTags() + { + $tag = new Status_network_tag(); + $tag->site_id = $this->site_id; + + if ($tag->find()) { + while($tag->fetch()) { + $tag->delete(); + } + } + + $tag->free(); + } + /** * Check if this site record has a particular meta-info tag attached. * @param string $tag diff --git a/classes/Status_network_tag.php b/classes/Status_network_tag.php new file mode 100644 index 0000000000..18c508bc8e --- /dev/null +++ b/classes/Status_network_tag.php @@ -0,0 +1,69 @@ +. + */ + +if (!defined('STATUSNET')) { exit(1); } + +class Status_network_tag extends Safe_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'status_network_tag'; // table name + public $site_id; // int(4) primary_key not_null + public $tag; // varchar(64) primary_key not_null + public $created; // datetime() not_null + + + function __construct() + { + global $config; + global $_DB_DATAOBJECT; + + $sn = new Status_network(); + $sn->_connect(); + + $config['db']['table_'. $this->__table] = $sn->_database; + + $this->_connect(); + } + + + /* Static get */ + function staticGet($k,$v=null) + { + $i = DB_DataObject::staticGet('Status_network_tag',$k,$v); + + // Don't use local process cache; if we're fetching multiple + // times it's because we're reloading it in a long-running + // process; we need a fresh copy! + global $_DB_DATAOBJECT; + unset($_DB_DATAOBJECT['CACHE']['status_network_tag']); + return $i; + } + + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE + + + + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Status_network_tag', $kv); + } +} diff --git a/classes/Subscription.php b/classes/Subscription.php index 0679c09250..0225ed4df9 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -71,14 +71,17 @@ class Subscription extends Memcached_DataObject } if (!$subscriber->hasRight(Right::SUBSCRIBE)) { + // TRANS: Exception thrown when trying to subscribe while being banned from subscribing. throw new Exception(_('You have been banned from subscribing.')); } if (self::exists($subscriber, $other)) { + // TRANS: Exception thrown when trying to subscribe while already subscribed. throw new Exception(_('Already subscribed!')); } if ($other->hasBlocked($subscriber)) { + // TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. throw new Exception(_('User has blocked you.')); } @@ -129,6 +132,7 @@ class Subscription extends Memcached_DataObject if (!$result) { common_log_db_error($sub, 'INSERT', __FILE__); + // TRANS: Exception thrown when a subscription could not be stored on the server. throw new Exception(_('Could not save subscription.')); } @@ -160,17 +164,18 @@ class Subscription extends Memcached_DataObject * Cancel a subscription * */ - function cancel($subscriber, $other) { if (!self::exists($subscriber, $other)) { + // TRANS: Exception thrown when trying to unsibscribe without a subscription. throw new Exception(_('Not subscribed!')); } // Don't allow deleting self subs if ($subscriber->id == $other->id) { - throw new Exception(_('Couldn\'t delete self-subscription.')); + // TRANS: Exception thrown when trying to unsubscribe a user from themselves. + throw new Exception(_('Could not delete self-subscription.')); } if (Event::handle('StartUnsubscribe', array($subscriber, $other))) { @@ -197,7 +202,8 @@ class Subscription extends Memcached_DataObject if (!$result) { common_log_db_error($token, 'DELETE', __FILE__); - throw new Exception(_('Couldn\'t delete subscription OMB token.')); + // TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. + throw new Exception(_('Could not delete subscription OMB token.')); } } else { common_log(LOG_ERR, "Couldn't find credentials with token {$token->tok}"); @@ -208,7 +214,8 @@ class Subscription extends Memcached_DataObject if (!$result) { common_log_db_error($sub, 'DELETE', __FILE__); - throw new Exception(_('Couldn\'t delete subscription.')); + // TRANS: Exception thrown when a subscription could not be deleted on the server. + throw new Exception(_('Could not delete subscription.')); } self::blow('user:notices_with_friends:%d', $subscriber->id); diff --git a/classes/User.php b/classes/User.php index 314b805311..70e09c1dc4 100644 --- a/classes/User.php +++ b/classes/User.php @@ -355,11 +355,12 @@ class User extends Memcached_DataObject __FILE__); } else { $notice = Notice::saveNew($welcomeuser->id, + // TRANS: Notice given on user registration. + // TRANS: %1$s is the sitename, $2$s is the registering user's nickname. sprintf(_('Welcome to %1$s, @%2$s!'), common_config('site', 'name'), $user->nickname), 'system'); - } } @@ -370,7 +371,6 @@ class User extends Memcached_DataObject } // Things we do when the email changes - function emailChanged() { @@ -519,7 +519,7 @@ class User extends Memcached_DataObject if ($this->id == $other->id) { common_log(LOG_WARNING, sprintf( - "Profile ID %d (%s) tried to block his or herself.", + "Profile ID %d (%s) tried to block themself.", $this->id, $this->nickname ) diff --git a/classes/User_group.php b/classes/User_group.php index e04c466266..0b83cfd47d 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -492,6 +492,7 @@ class User_group extends Memcached_DataObject if (!$result) { common_log_db_error($group, 'INSERT', __FILE__); + // TRANS: Server exception thrown when creating a group failed. throw new ServerException(_('Could not create group.')); } @@ -501,6 +502,7 @@ class User_group extends Memcached_DataObject $result = $group->update($orig); if (!$result) { common_log_db_error($group, 'UPDATE', __FILE__); + // TRANS: Server exception thrown when updating a group URI failed. throw new ServerException(_('Could not set group URI.')); } } @@ -508,6 +510,7 @@ class User_group extends Memcached_DataObject $result = $group->setAliases($aliases); if (!$result) { + // TRANS: Server exception thrown when creating group aliases failed. throw new ServerException(_('Could not create aliases.')); } @@ -522,6 +525,7 @@ class User_group extends Memcached_DataObject if (!$result) { common_log_db_error($member, 'INSERT', __FILE__); + // TRANS: Server exception thrown when setting group membership failed. throw new ServerException(_('Could not set group membership.')); } @@ -536,6 +540,7 @@ class User_group extends Memcached_DataObject if (!$result) { common_log_db_error($local_group, 'INSERT', __FILE__); + // TRANS: Server exception thrown when saving local group information failed. throw new ServerException(_('Could not save local group info.')); } } diff --git a/classes/status_network.ini b/classes/status_network.ini index adb71cba77..b298daae46 100644 --- a/classes/status_network.ini +++ b/classes/status_network.ini @@ -1,4 +1,5 @@ [status_network] +site_id = 129 nickname = 130 hostname = 2 pathname = 2 @@ -11,9 +12,19 @@ theme = 2 logo = 2 created = 142 modified = 384 -tags = 34 [status_network__keys] -nickname = K +site_id = K +nickname = U hostname = U pathname = U + +[status_network_tag] +site_id = 129 +tag = 130 +created = 142 + +[status_network_tag__keys] +site_id = K +tag = K + diff --git a/db/notice_source.sql b/db/notice_source.sql index f5db37f04e..6bfd5c5f15 100644 --- a/db/notice_source.sql +++ b/db/notice_source.sql @@ -51,6 +51,7 @@ VALUES ('smob','SMOB','http://smob.sioc-project.org/', now()), ('socialoomphBfD4pMqz31', 'SocialOomph', 'http://www.socialoomph.com/', now()), ('spaz','Spaz','http://funkatron.com/spaz', now()), + ('StatusNet Desktop', 'StatusNet Desktop', 'http://status.net/desktop', now()), ('tarpipe','tarpipe','http://tarpipe.com/', now()), ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()), ('tr.im','tr.im','http://tr.im/', now()), diff --git a/db/site.sql b/db/site.sql index 791303bd54..f87995b943 100644 --- a/db/site.sql +++ b/db/site.sql @@ -1,8 +1,9 @@ /* For managing multiple sites */ create table status_network ( - - nickname varchar(64) primary key comment 'nickname', + + site_id integer auto_increment primary key comment 'unique id', + nickname varchar(64) unique key comment 'nickname', hostname varchar(255) unique key comment 'alternate hostname if any', pathname varchar(255) unique key comment 'alternate pathname if any', @@ -21,3 +22,12 @@ create table status_network ( modified timestamp comment 'date this record was modified' ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; + +create table status_network_tag ( + site_id integer comment 'unique id', + tag varchar(64) comment 'tag name', + created datetime not null comment 'date the record was created', + + constraint primary key (site_id, tag) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; + diff --git a/db/site_093to094.sql b/db/site_093to094.sql new file mode 100644 index 0000000000..30cea31dfa --- /dev/null +++ b/db/site_093to094.sql @@ -0,0 +1,13 @@ +alter table status_network + drop primary key, + add column site_id integer auto_increment primary key first, + add unique key (nickname); + +create table status_network_tag ( + site_id integer comment 'unique id', + tag varchar(64) comment 'tag name', + created datetime not null comment 'date the record was created', + + constraint primary key (site_id, tag) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; + diff --git a/extlib/Auth/OpenID.php b/extlib/Auth/OpenID.php index db6164256f..c9d9779624 100644 --- a/extlib/Auth/OpenID.php +++ b/extlib/Auth/OpenID.php @@ -20,7 +20,7 @@ /** * The library version string */ -define('Auth_OpenID_VERSION', '2.1.3'); +define('Auth_OpenID_VERSION', '2.2.2'); /** * Require the fetcher code. @@ -102,9 +102,7 @@ define('Auth_OpenID_digits', define('Auth_OpenID_punct', "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"); -if (Auth_OpenID_getMathLib() === null) { - Auth_OpenID_setNoMathSupport(); -} +Auth_OpenID_include_init(); /** * The OpenID utility function class. @@ -120,7 +118,7 @@ class Auth_OpenID { * * @access private */ - function isFailure($thing) + static function isFailure($thing) { return is_a($thing, 'Auth_OpenID_FailureResponse'); } @@ -139,9 +137,12 @@ class Auth_OpenID { * Returns an empty array if neither GET nor POST was used, or if * POST was used but php://input cannot be opened. * + * See background: + * http://lists.openidenabled.com/pipermail/dev/2007-March/000395.html + * * @access private */ - function getQuery($query_str=null) + static function getQuery($query_str=null) { $data = array(); @@ -177,7 +178,7 @@ class Auth_OpenID { return $data; } - function params_from_string($str) + static function params_from_string($str) { $chunks = explode("&", $str); @@ -190,7 +191,7 @@ class Auth_OpenID { } list($k, $v) = $parts; - $data[$k] = urldecode($v); + $data[urldecode($k)] = urldecode($v); } return $data; @@ -203,7 +204,7 @@ class Auth_OpenID { * * @access private */ - function ensureDir($dir_name) + static function ensureDir($dir_name) { if (is_dir($dir_name) || @mkdir($dir_name)) { return true; @@ -225,7 +226,7 @@ class Auth_OpenID { * * @access private */ - function addPrefix($values, $prefix) + static function addPrefix($values, $prefix) { $new_values = array(); foreach ($values as $s) { @@ -241,7 +242,7 @@ class Auth_OpenID { * * @access private */ - function arrayGet($arr, $key, $fallback = null) + static function arrayGet($arr, $key, $fallback = null) { if (is_array($arr)) { if (array_key_exists($key, $arr)) { @@ -261,7 +262,7 @@ class Auth_OpenID { /** * Replacement for PHP's broken parse_str. */ - function parse_str($query) + static function parse_str($query) { if ($query === null) { return null; @@ -278,7 +279,7 @@ class Auth_OpenID { } list($key, $value) = $pair; - $new_parts[$key] = urldecode($value); + $new_parts[urldecode($key)] = urldecode($value); } return $new_parts; @@ -295,7 +296,7 @@ class Auth_OpenID { * pairs from $data into a URL query string * (e.g. "username=bob&id=56"). */ - function httpBuildQuery($data) + static function httpBuildQuery($data) { $pairs = array(); foreach ($data as $key => $value) { @@ -323,7 +324,7 @@ class Auth_OpenID { * @return string $url The original URL with the new parameters added. * */ - function appendArgs($url, $args) + static function appendArgs($url, $args) { if (count($args) == 0) { return $url; @@ -367,7 +368,7 @@ class Auth_OpenID { * @return string $url The URL resulting from assembling the * specified components. */ - function urlunparse($scheme, $host, $port = null, $path = '/', + static function urlunparse($scheme, $host, $port = null, $path = '/', $query = '', $fragment = '') { @@ -412,7 +413,7 @@ class Auth_OpenID { * @return mixed $new_url The URL after normalization, or null if * $url was malformed. */ - function normalizeUrl($url) + static function normalizeUrl($url) { @$parsed = parse_url($url); @@ -443,7 +444,7 @@ class Auth_OpenID { * * @access private */ - function intval($value) + static function intval($value) { $re = "/^\\d+$/"; @@ -461,7 +462,7 @@ class Auth_OpenID { * @param string $str The string of bytes to count. * @return int The number of bytes in $str. */ - function bytes($str) + static function bytes($str) { return strlen(bin2hex($str)) / 2; } @@ -470,7 +471,7 @@ class Auth_OpenID { * Get the bytes in a string independently of multibyte support * conditions. */ - function toBytes($str) + static function toBytes($str) { $hex = bin2hex($str); @@ -486,7 +487,7 @@ class Auth_OpenID { return $b; } - function urldefrag($url) + static function urldefrag($url) { $parts = explode("#", $url, 2); @@ -497,7 +498,7 @@ class Auth_OpenID { } } - function filter($callback, &$sequence) + static function filter($callback, &$sequence) { $result = array(); @@ -510,7 +511,7 @@ class Auth_OpenID { return $result; } - function update(&$dest, &$src) + static function update(&$dest, &$src) { foreach ($src as $k => $v) { $dest[$k] = $v; @@ -524,14 +525,14 @@ class Auth_OpenID { * * @param string $format_string The sprintf format for the message */ - function log($format_string) + static function log($format_string) { $args = func_get_args(); $message = call_user_func_array('sprintf', $args); error_log($message); } - function autoSubmitHTML($form, $title="OpenId transaction in progress") + static function autoSubmitHTML($form, $title="OpenId transaction in progress") { return("". "". @@ -549,4 +550,14 @@ class Auth_OpenID { "</html>"); } } -?> + +/* + * Function to run when this file is included. + * Abstracted to a function to make life easier + * for some PHP optimizers. + */ +function Auth_OpenID_include_init() { + if (Auth_OpenID_getMathLib() === null) { + Auth_OpenID_setNoMathSupport(); + } +} diff --git a/extlib/Auth/OpenID/AX.php b/extlib/Auth/OpenID/AX.php index 4a617ae30c..7370715e3a 100644 --- a/extlib/Auth/OpenID/AX.php +++ b/extlib/Auth/OpenID/AX.php @@ -38,7 +38,7 @@ class Auth_OpenID_AX { * @return bool true if $thing is an Auth_OpenID_AX_Error; false * if not. */ - function isError($thing) + static function isError($thing) { return is_a($thing, 'Auth_OpenID_AX_Error'); } @@ -191,7 +191,7 @@ class Auth_OpenID_AX_AttrInfo { * Construct an attribute information object. For parameter * details, see the constructor. */ - function make($type_uri, $count=1, $required=false, + static function make($type_uri, $count=1, $required=false, $alias=null) { if ($alias !== null) { @@ -235,7 +235,7 @@ class Auth_OpenID_AX_AttrInfo { * return null If an alias is present in the list of aliases but * is not present in the namespace map. */ -function Auth_OpenID_AX_toTypeURIs(&$namespace_map, $alias_list_s) +function Auth_OpenID_AX_toTypeURIs($namespace_map, $alias_list_s) { $uris = array(); @@ -386,7 +386,7 @@ class Auth_OpenID_AX_FetchRequest extends Auth_OpenID_AX_Message { * Auth_OpenID_AX_FetchRequest extracted from the request message if * successful */ - function &fromOpenIDRequest($request) + static function fromOpenIDRequest($request) { $m = $request->message; $obj = new Auth_OpenID_AX_FetchRequest(); @@ -484,7 +484,7 @@ class Auth_OpenID_AX_FetchRequest extends Auth_OpenID_AX_Message { Auth_OpenID::arrayGet($ax_args, 'required')); foreach ($required as $type_uri) { - $attrib =& $this->requested_attributes[$type_uri]; + $attrib = $this->requested_attributes[$type_uri]; $attrib->required = true; } @@ -587,7 +587,7 @@ class Auth_OpenID_AX_KeyValueMessage extends Auth_OpenID_AX_Message { * * @access private */ - function _getExtensionKVArgs(&$aliases) + function _getExtensionKVArgs($aliases) { if ($aliases === null) { $aliases = new Auth_OpenID_NamespaceMap(); @@ -652,7 +652,7 @@ class Auth_OpenID_AX_KeyValueMessage extends Auth_OpenID_AX_Message { foreach ($aliases->iteritems() as $pair) { list($type_uri, $alias) = $pair; - if (array_key_exists('count.' . $alias, $ax_args)) { + if (array_key_exists('count.' . $alias, $ax_args) && ($ax_args['count.' . $alias] !== Auth_OpenID_AX_UNLIMITED_VALUES)) { $count_key = 'count.' . $alias; $count_s = $ax_args[$count_key]; @@ -888,7 +888,7 @@ class Auth_OpenID_AX_FetchResponse extends Auth_OpenID_AX_KeyValueMessage { $ax_args['update_url'] = $update_url; } - Auth_OpenID::update(&$ax_args, $kv_args); + Auth_OpenID::update($ax_args, $kv_args); return $ax_args; } @@ -922,7 +922,7 @@ class Auth_OpenID_AX_FetchResponse extends Auth_OpenID_AX_KeyValueMessage { * @return $response A FetchResponse containing the data from the * OpenID message */ - function fromSuccessResponse($success_response, $signed=true) + static function fromSuccessResponse($success_response, $signed=true) { $obj = new Auth_OpenID_AX_FetchResponse(); if ($signed) { @@ -960,7 +960,7 @@ class Auth_OpenID_AX_StoreRequest extends Auth_OpenID_AX_KeyValueMessage { { $ax_args = $this->_newArgs(); $kv_args = $this->_getExtensionKVArgs($aliases); - Auth_OpenID::update(&$ax_args, $kv_args); + Auth_OpenID::update($ax_args, $kv_args); return $ax_args; } } @@ -980,7 +980,7 @@ class Auth_OpenID_AX_StoreResponse extends Auth_OpenID_AX_Message { * Returns Auth_OpenID_AX_Error on error or an * Auth_OpenID_AX_StoreResponse object on success. */ - function &make($succeeded=true, $error_message=null) + function make($succeeded=true, $error_message=null) { if (($succeeded) && ($error_message !== null)) { return new Auth_OpenID_AX_Error('An error message may only be '. @@ -1020,4 +1020,3 @@ class Auth_OpenID_AX_StoreResponse extends Auth_OpenID_AX_Message { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/Association.php b/extlib/Auth/OpenID/Association.php index 37ce0cbf45..7fdf399a3c 100644 --- a/extlib/Auth/OpenID/Association.php +++ b/extlib/Auth/OpenID/Association.php @@ -94,7 +94,7 @@ class Auth_OpenID_Association { * @return association An {@link Auth_OpenID_Association} * instance. */ - function fromExpiresIn($expires_in, $handle, $secret, $assoc_type) + static function fromExpiresIn($expires_in, $handle, $secret, $assoc_type) { $issued = time(); $lifetime = $expires_in; @@ -132,7 +132,7 @@ class Auth_OpenID_Association { $handle, $secret, $issued, $lifetime, $assoc_type) { if (!in_array($assoc_type, - Auth_OpenID_getSupportedAssociationTypes())) { + Auth_OpenID_getSupportedAssociationTypes(), true)) { $fmt = 'Unsupported association type (%s)'; trigger_error(sprintf($fmt, $assoc_type), E_USER_ERROR); } @@ -206,7 +206,7 @@ class Auth_OpenID_Association { * @param string $assoc_s Association as serialized by serialize() * @return Auth_OpenID_Association $result instance of this class */ - function deserialize($class_name, $assoc_s) + static function deserialize($class_name, $assoc_s) { $pairs = Auth_OpenID_KVForm::toArray($assoc_s, $strict = true); $keys = array(); @@ -327,7 +327,7 @@ class Auth_OpenID_Association { * * @access private */ - function _makePairs(&$message) + function _makePairs($message) { $signed = $message->getArg(Auth_OpenID_OPENID_NS, 'signed'); if (!$signed || Auth_OpenID::isFailure($signed)) { @@ -352,7 +352,7 @@ class Auth_OpenID_Association { * * @access private */ - function getMessageSignature(&$message) + function getMessageSignature($message) { $pairs = $this->_makePairs($message); return base64_encode($this->sign($pairs)); @@ -364,7 +364,7 @@ class Auth_OpenID_Association { * * @access private */ - function checkMessageSignature(&$message) + function checkMessageSignature($message) { $sig = $message->getArg(Auth_OpenID_OPENID_NS, 'sig'); @@ -374,7 +374,42 @@ class Auth_OpenID_Association { } $calculated_sig = $this->getMessageSignature($message); - return $calculated_sig == $sig; + + return $this->constantTimeCompare($calculated_sig, $sig); + } + + /** + * String comparison function which will complete in a constant time + * for strings of any given matching length, to help prevent an attacker + * from distinguishing how much of a signature token they have guessed + * correctly. + * + * For this usage, it's assumed that the length of the string is known, + * so we may safely short-circuit on mismatched lengths which will be known + * to be invalid by the attacker. + * + * http://lists.openid.net/pipermail/openid-security/2010-July/001156.html + * http://rdist.root.org/2010/01/07/timing-independent-array-comparison/ + */ + private function constantTimeCompare($a, $b) + { + $len = strlen($a); + if (strlen($b) !== $len) { + // Short-circuit on length mismatch; attackers will already know + // the correct target length so this is safe. + return false; + } + if ($len == 0) { + // 0-length valid input shouldn't really happen. :) + return true; + } + $result = 0; + for ($i = 0; $i < strlen($a); $i++) { + // We use scary bitwise operations to avoid logical short-circuits + // in lower-level code. + $result |= ord($a{$i}) ^ ord($b{$i}); + } + return ($result == 0); } } @@ -469,18 +504,16 @@ function Auth_OpenID_getOnlyEncryptedOrder() return $result; } -function &Auth_OpenID_getDefaultNegotiator() +function Auth_OpenID_getDefaultNegotiator() { - $x = new Auth_OpenID_SessionNegotiator( + return new Auth_OpenID_SessionNegotiator( Auth_OpenID_getDefaultAssociationOrder()); - return $x; } -function &Auth_OpenID_getEncryptedNegotiator() +function Auth_OpenID_getEncryptedNegotiator() { - $x = new Auth_OpenID_SessionNegotiator( + return new Auth_OpenID_SessionNegotiator( Auth_OpenID_getOnlyEncryptedOrder()); - return $x; } /** @@ -610,4 +643,3 @@ class Auth_OpenID_SessionNegotiator { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/BigMath.php b/extlib/Auth/OpenID/BigMath.php index 45104947d6..7fca2dc43e 100644 --- a/extlib/Auth/OpenID/BigMath.php +++ b/extlib/Auth/OpenID/BigMath.php @@ -351,8 +351,7 @@ function Auth_OpenID_math_extensions() 'class' => 'Auth_OpenID_GmpMathWrapper'); } - $result[] = array( - 'modules' => array('bcmath', 'php_bcmath'), + $result[] = array('modules' => array('bcmath', 'php_bcmath'), 'extension' => 'bcmath', 'class' => 'Auth_OpenID_BcMathWrapper'); @@ -366,27 +365,9 @@ function Auth_OpenID_detectMathLibrary($exts) { $loaded = false; + $hasDl = function_exists('dl'); foreach ($exts as $extension) { - // See if the extension specified is already loaded. - if ($extension['extension'] && - extension_loaded($extension['extension'])) { - $loaded = true; - } - - // Try to load dynamic modules. - if (!$loaded) { - foreach ($extension['modules'] as $module) { - if (@dl($module . "." . PHP_SHLIB_SUFFIX)) { - $loaded = true; - break; - } - } - } - - // If the load succeeded, supply an instance of - // Auth_OpenID_MathWrapper which wraps the specified - // module's functionality. - if ($loaded) { + if (extension_loaded($extension['extension'])) { return $extension; } } @@ -405,7 +386,7 @@ function Auth_OpenID_detectMathLibrary($exts) * instance of a wrapper for that extension module. If no extension * module is found, an instance of {@link Auth_OpenID_MathWrapper} is * returned, which wraps the native PHP integer implementation. The - * proper calling convention for this method is $lib =& + * proper calling convention for this method is $lib = * Auth_OpenID_getMathLib(). * * This function checks for the existence of specific long number @@ -416,7 +397,7 @@ function Auth_OpenID_detectMathLibrary($exts) * * @package OpenID */ -function &Auth_OpenID_getMathLib() +function Auth_OpenID_getMathLib() { // The instance of Auth_OpenID_MathWrapper that we choose to // supply will be stored here, so that subseqent calls to this @@ -468,4 +449,4 @@ function Auth_OpenID_noMathSupport() return defined('Auth_OpenID_NO_MATH_SUPPORT'); } -?> + diff --git a/extlib/Auth/OpenID/Consumer.php b/extlib/Auth/OpenID/Consumer.php index 500890b656..021c038988 100644 --- a/extlib/Auth/OpenID/Consumer.php +++ b/extlib/Auth/OpenID/Consumer.php @@ -258,19 +258,19 @@ class Auth_OpenID_Consumer { * when creating the internal consumer object. This is used for * testing. */ - function Auth_OpenID_Consumer(&$store, $session = null, + function Auth_OpenID_Consumer($store, $session = null, $consumer_cls = null) { if ($session === null) { $session = new Auth_Yadis_PHPSession(); } - $this->session =& $session; + $this->session = $session; if ($consumer_cls !== null) { - $this->consumer =& new $consumer_cls($store); + $this->consumer = new $consumer_cls($store); } else { - $this->consumer =& new Auth_OpenID_GenericConsumer($store); + $this->consumer = new Auth_OpenID_GenericConsumer($store); } $this->_token_key = $this->session_key_prefix . $this->_token_suffix; @@ -281,7 +281,7 @@ class Auth_OpenID_Consumer { * * @access private */ - function getDiscoveryObject(&$session, $openid_url, + function getDiscoveryObject($session, $openid_url, $session_key_prefix) { return new Auth_Yadis_Discovery($session, $openid_url, @@ -339,7 +339,7 @@ class Auth_OpenID_Consumer { $this->consumer->fetcher); // Reset the 'stale' attribute of the manager. - $m =& $disco->getManager(); + $m = $disco->getManager(); if ($m) { $m->stale = false; $disco->session->set($disco->session_key, @@ -370,7 +370,7 @@ class Auth_OpenID_Consumer { * @return Auth_OpenID_AuthRequest $auth_request An OpenID * authentication request object. */ - function &beginWithoutDiscovery($endpoint, $anonymous=false) + function beginWithoutDiscovery($endpoint, $anonymous=false) { $loader = new Auth_OpenID_ServiceEndpointLoader(); $auth_req = $this->consumer->begin($endpoint); @@ -467,7 +467,7 @@ class Auth_OpenID_DiffieHellmanSHA1ConsumerSession { function getRequest() { - $math =& Auth_OpenID_getMathLib(); + $math = Auth_OpenID_getMathLib(); $cpub = $math->longToBase64($this->dh->public); @@ -496,7 +496,7 @@ class Auth_OpenID_DiffieHellmanSHA1ConsumerSession { return null; } - $math =& Auth_OpenID_getMathLib(); + $math = Auth_OpenID_getMathLib(); $spub = $math->base64ToLong($response->getArg(Auth_OpenID_OPENID_NS, 'dh_server_public')); @@ -611,11 +611,11 @@ class Auth_OpenID_GenericConsumer { * in the module description. The default value is False, which * disables immediate mode. */ - function Auth_OpenID_GenericConsumer(&$store) + function Auth_OpenID_GenericConsumer($store) { - $this->store =& $store; - $this->negotiator =& Auth_OpenID_getDefaultNegotiator(); - $this->_use_assocs = ($this->store ? true : false); + $this->store = $store; + $this->negotiator = Auth_OpenID_getDefaultNegotiator(); + $this->_use_assocs = (is_null($this->store) ? false : true); $this->fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); @@ -665,14 +665,14 @@ class Auth_OpenID_GenericConsumer { $method = Auth_OpenID::arrayGet($mode_methods, $mode, '_completeInvalid'); - return call_user_func_array(array(&$this, $method), - array($message, $endpoint, $return_to)); + return call_user_func_array(array($this, $method), + array($message, &$endpoint, $return_to)); } /** * @access private */ - function _completeInvalid($message, &$endpoint, $unused) + function _completeInvalid($message, $endpoint, $unused) { $mode = $message->getArg(Auth_OpenID_OPENID_NS, 'mode', '<No mode set>'); @@ -684,7 +684,7 @@ class Auth_OpenID_GenericConsumer { /** * @access private */ - function _complete_cancel($message, &$endpoint, $unused) + function _complete_cancel($message, $endpoint, $unused) { return new Auth_OpenID_CancelResponse($endpoint); } @@ -692,7 +692,7 @@ class Auth_OpenID_GenericConsumer { /** * @access private */ - function _complete_error($message, &$endpoint, $unused) + function _complete_error($message, $endpoint, $unused) { $error = $message->getArg(Auth_OpenID_OPENID_NS, 'error'); $contact = $message->getArg(Auth_OpenID_OPENID_NS, 'contact'); @@ -705,7 +705,7 @@ class Auth_OpenID_GenericConsumer { /** * @access private */ - function _complete_setup_needed($message, &$endpoint, $unused) + function _complete_setup_needed($message, $endpoint, $unused) { if (!$message->isOpenID2()) { return $this->_completeInvalid($message, $endpoint); @@ -719,7 +719,7 @@ class Auth_OpenID_GenericConsumer { /** * @access private */ - function _complete_id_res($message, &$endpoint, $return_to) + function _complete_id_res($message, $endpoint, $return_to) { $user_setup_url = $message->getArg(Auth_OpenID_OPENID1_NS, 'user_setup_url'); @@ -1181,7 +1181,7 @@ class Auth_OpenID_GenericConsumer { // oidutil.log('Performing discovery on %s' % (claimed_id,)) list($unused, $services) = call_user_func($this->discoverMethod, $claimed_id, - $this->fetcher); + &$this->fetcher); if (!$services) { return new Auth_OpenID_FailureResponse(null, @@ -1197,7 +1197,7 @@ class Auth_OpenID_GenericConsumer { * @access private */ function _verifyDiscoveryServices($claimed_id, - &$services, &$to_match_endpoints) + $services, $to_match_endpoints) { // Search the services resulting from discovery to find one // that matches the information from the assertion @@ -1216,8 +1216,8 @@ class Auth_OpenID_GenericConsumer { } return new Auth_OpenID_FailureResponse(null, - sprintf('No matching endpoint found after discovering %s', - $claimed_id)); + sprintf('No matching endpoint found after discovering %s: %s', + $claimed_id, $result->message)); } /** @@ -1397,7 +1397,7 @@ class Auth_OpenID_GenericConsumer { * * @access private */ - function _httpResponseToMessage($response, $server_url) + static function _httpResponseToMessage($response, $server_url) { // Should this function be named Message.fromHTTPResponse instead? $response_message = Auth_OpenID_Message::fromKVForm($response->body); @@ -1461,7 +1461,7 @@ class Auth_OpenID_GenericConsumer { * * @access private */ - function _extractSupportedAssociationType(&$server_error, &$endpoint, + function _extractSupportedAssociationType($server_error, $endpoint, $assoc_type) { // Any error message whose code is not 'unsupported-type' @@ -1566,7 +1566,7 @@ class Auth_OpenID_GenericConsumer { /** * @access private */ - function _extractAssociation(&$assoc_response, &$assoc_session) + function _extractAssociation($assoc_response, $assoc_session) { // Extract the common fields from the response, raising an // exception if they are not found @@ -1748,10 +1748,10 @@ class Auth_OpenID_AuthRequest { * class. Instances of this class are created by the library when * needed. */ - function Auth_OpenID_AuthRequest(&$endpoint, $assoc) + function Auth_OpenID_AuthRequest($endpoint, $assoc) { $this->assoc = $assoc; - $this->endpoint =& $endpoint; + $this->endpoint = $endpoint; $this->return_to_args = array(); $this->message = new Auth_OpenID_Message( $endpoint->preferredNamespace()); @@ -1764,7 +1764,7 @@ class Auth_OpenID_AuthRequest { * $extension_request: An object that implements the extension * request interface for adding arguments to an OpenID message. */ - function addExtension(&$extension_request) + function addExtension($extension_request) { $extension_request->toMessage($this->message); } @@ -2089,7 +2089,7 @@ class Auth_OpenID_SuccessResponse extends Auth_OpenID_ConsumerResponse { foreach ($msg_args as $key => $value) { if (!$this->isSigned($ns_uri, $key)) { - return null; + unset($msg_args[$key]); } } @@ -2167,7 +2167,7 @@ class Auth_OpenID_ServerErrorContainer { /** * @access private */ - function fromMessage($message) + static function fromMessage($message) { $error_text = $message->getArg( Auth_OpenID_OPENID_NS, 'error', '<no error message supplied>'); @@ -2227,4 +2227,4 @@ class Auth_OpenID_SetupNeededResponse extends Auth_OpenID_ConsumerResponse { } } -?> + diff --git a/extlib/Auth/OpenID/CryptUtil.php b/extlib/Auth/OpenID/CryptUtil.php index aacc3cd397..a926267779 100644 --- a/extlib/Auth/OpenID/CryptUtil.php +++ b/extlib/Auth/OpenID/CryptUtil.php @@ -37,7 +37,7 @@ class Auth_OpenID_CryptUtil { * @param int $num_bytes The length of the return value * @return string $bytes random bytes */ - function getBytes($num_bytes) + static function getBytes($num_bytes) { static $f = null; $bytes = ''; @@ -77,7 +77,7 @@ class Auth_OpenID_CryptUtil { * @return string $result A string of randomly-chosen characters * from $chrs */ - function randomString($length, $population = null) + static function randomString($length, $population = null) { if ($population === null) { return Auth_OpenID_CryptUtil::getBytes($length); @@ -106,4 +106,3 @@ class Auth_OpenID_CryptUtil { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/DatabaseConnection.php b/extlib/Auth/OpenID/DatabaseConnection.php index 9db6e0eb3f..0c7d08f916 100644 --- a/extlib/Auth/OpenID/DatabaseConnection.php +++ b/extlib/Auth/OpenID/DatabaseConnection.php @@ -128,4 +128,3 @@ class Auth_OpenID_DatabaseConnection { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/DiffieHellman.php b/extlib/Auth/OpenID/DiffieHellman.php index f4ded7eba5..3e25b7dbbb 100644 --- a/extlib/Auth/OpenID/DiffieHellman.php +++ b/extlib/Auth/OpenID/DiffieHellman.php @@ -51,9 +51,9 @@ class Auth_OpenID_DiffieHellman { $private = null, $lib = null) { if ($lib === null) { - $this->lib =& Auth_OpenID_getMathLib(); + $this->lib = Auth_OpenID_getMathLib(); } else { - $this->lib =& $lib; + $this->lib = $lib; } if ($mod === null) { @@ -110,4 +110,4 @@ class Auth_OpenID_DiffieHellman { } } -?> + diff --git a/extlib/Auth/OpenID/Discover.php b/extlib/Auth/OpenID/Discover.php index 62aeb1d2bc..7b0c640c58 100644 --- a/extlib/Auth/OpenID/Discover.php +++ b/extlib/Auth/OpenID/Discover.php @@ -28,8 +28,34 @@ function Auth_OpenID_getOpenIDTypeURIs() Auth_OpenID_TYPE_2_0, Auth_OpenID_TYPE_1_2, Auth_OpenID_TYPE_1_1, - Auth_OpenID_TYPE_1_0, - Auth_OpenID_RP_RETURN_TO_URL_TYPE); + Auth_OpenID_TYPE_1_0); +} + +function Auth_OpenID_getOpenIDConsumerTypeURIs() +{ + return array(Auth_OpenID_RP_RETURN_TO_URL_TYPE); +} + + +/* + * Provides a user-readable interpretation of a type uri. + * Useful for error messages. + */ +function Auth_OpenID_getOpenIDTypeName($type_uri) { + switch ($type_uri) { + case Auth_OpenID_TYPE_2_0_IDP: + return 'OpenID 2.0 IDP'; + case Auth_OpenID_TYPE_2_0: + return 'OpenID 2.0'; + case Auth_OpenID_TYPE_1_2: + return 'OpenID 1.2'; + case Auth_OpenID_TYPE_1_1: + return 'OpenID 1.1'; + case Auth_OpenID_TYPE_1_0: + return 'OpenID 1.0'; + case Auth_OpenID_RP_RETURN_TO_URL_TYPE: + return 'OpenID relying party'; + } } /** @@ -124,7 +150,7 @@ class Auth_OpenID_ServiceEndpoint { return in_array(Auth_OpenID_TYPE_2_0_IDP, $this->type_uris); } - function fromOPEndpointURL($op_endpoint_url) + static function fromOPEndpointURL($op_endpoint_url) { // Construct an OP-Identifier OpenIDServiceEndpoint object for // a given OP Endpoint URL @@ -171,15 +197,34 @@ class Auth_OpenID_ServiceEndpoint { } } + /* + * Parse the given document as XRDS looking for OpenID consumer services. + * + * @return array of Auth_OpenID_ServiceEndpoint or null if the + * document cannot be parsed. + */ + function consumerFromXRDS($uri, $xrds_text) + { + $xrds =& Auth_Yadis_XRDS::parseXRDS($xrds_text); + + if ($xrds) { + $yadis_services = + $xrds->services(array('filter_MatchesAnyOpenIDConsumerType')); + return Auth_OpenID_makeOpenIDEndpoints($uri, $yadis_services); + } + + return null; + } + /* * Parse the given document as XRDS looking for OpenID services. * * @return array of Auth_OpenID_ServiceEndpoint or null if the * document cannot be parsed. */ - function fromXRDS($uri, $xrds_text) + static function fromXRDS($uri, $xrds_text) { - $xrds =& Auth_Yadis_XRDS::parseXRDS($xrds_text); + $xrds = Auth_Yadis_XRDS::parseXRDS($xrds_text); if ($xrds) { $yadis_services = @@ -197,7 +242,7 @@ class Auth_OpenID_ServiceEndpoint { * @return array of Auth_OpenID_ServiceEndpoint or null if * endpoints cannot be created. */ - function fromDiscoveryResult($discoveryResult) + static function fromDiscoveryResult($discoveryResult) { if ($discoveryResult->isXRDS()) { return Auth_OpenID_ServiceEndpoint::fromXRDS( @@ -210,7 +255,7 @@ class Auth_OpenID_ServiceEndpoint { } } - function fromHTML($uri, $html) + static function fromHTML($uri, $html) { $discovery_types = array( array(Auth_OpenID_TYPE_2_0, @@ -273,7 +318,7 @@ function Auth_OpenID_findOPLocalIdentifier($service, $type_uris) $service->parser->registerNamespace('xrd', Auth_Yadis_XMLNS_XRD_2_0); - $parser =& $service->parser; + $parser = $service->parser; $permitted_tags = array(); @@ -305,7 +350,7 @@ function Auth_OpenID_findOPLocalIdentifier($service, $type_uris) return $local_id; } -function filter_MatchesAnyOpenIDType(&$service) +function filter_MatchesAnyOpenIDType($service) { $uris = $service->getTypes(); @@ -318,6 +363,19 @@ function filter_MatchesAnyOpenIDType(&$service) return false; } +function filter_MatchesAnyOpenIDConsumerType(&$service) +{ + $uris = $service->getTypes(); + + foreach ($uris as $uri) { + if (in_array($uri, Auth_OpenID_getOpenIDConsumerTypeURIs())) { + return true; + } + } + + return false; +} + function Auth_OpenID_bestMatchingService($service, $preferred_types) { // Return the index of the first matching type, or something @@ -415,7 +473,7 @@ function Auth_OpenID_makeOpenIDEndpoints($uri, $yadis_services) return $s; } -function Auth_OpenID_discoverWithYadis($uri, &$fetcher, +function Auth_OpenID_discoverWithYadis($uri, $fetcher, $endpoint_filter='Auth_OpenID_getOPOrUserServices', $discover_function=null) { @@ -433,12 +491,12 @@ function Auth_OpenID_discoverWithYadis($uri, &$fetcher, $openid_services = array(); $response = call_user_func_array($discover_function, - array($uri, &$fetcher)); + array($uri, $fetcher)); $yadis_url = $response->normalized_uri; $yadis_services = array(); - if ($response->isFailure()) { + if ($response->isFailure() && !$response->isXRDS()) { return array($uri, array()); } @@ -460,18 +518,18 @@ function Auth_OpenID_discoverWithYadis($uri, &$fetcher, } $openid_services = call_user_func_array($endpoint_filter, - array(&$openid_services)); + array($openid_services)); return array($yadis_url, $openid_services); } -function Auth_OpenID_discoverURI($uri, &$fetcher) +function Auth_OpenID_discoverURI($uri, $fetcher) { $uri = Auth_OpenID::normalizeUrl($uri); return Auth_OpenID_discoverWithYadis($uri, $fetcher); } -function Auth_OpenID_discoverWithoutYadis($uri, &$fetcher) +function Auth_OpenID_discoverWithoutYadis($uri, $fetcher) { $http_resp = @$fetcher->get($uri); @@ -490,7 +548,7 @@ function Auth_OpenID_discoverWithoutYadis($uri, &$fetcher) return array($identity_url, $openid_services); } -function Auth_OpenID_discoverXRI($iname, &$fetcher) +function Auth_OpenID_discoverXRI($iname, $fetcher) { $resolver = new Auth_Yadis_ProxyResolver($fetcher); list($canonicalID, $yadis_services) = @@ -513,7 +571,7 @@ function Auth_OpenID_discoverXRI($iname, &$fetcher) return array($iname, $openid_services); } -function Auth_OpenID_discover($uri, &$fetcher) +function Auth_OpenID_discover($uri, $fetcher) { // If the fetcher (i.e., PHP) doesn't support SSL, we can't do // discovery on an HTTPS URL. @@ -545,4 +603,4 @@ function Auth_OpenID_discover($uri, &$fetcher) return $result; } -?> + diff --git a/extlib/Auth/OpenID/DumbStore.php b/extlib/Auth/OpenID/DumbStore.php index 22fd2d3661..e8f29ace55 100644 --- a/extlib/Auth/OpenID/DumbStore.php +++ b/extlib/Auth/OpenID/DumbStore.php @@ -97,4 +97,3 @@ class Auth_OpenID_DumbStore extends Auth_OpenID_OpenIDStore { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/Extension.php b/extlib/Auth/OpenID/Extension.php index f362a4b389..c4e38c0380 100644 --- a/extlib/Auth/OpenID/Extension.php +++ b/extlib/Auth/OpenID/Extension.php @@ -39,7 +39,7 @@ class Auth_OpenID_Extension { * * Returns the message with the extension arguments added. */ - function toMessage(&$message) + function toMessage($message) { $implicit = $message->isOpenID1(); $added = $message->namespaces->addAlias($this->ns_uri, @@ -59,4 +59,3 @@ class Auth_OpenID_Extension { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/FileStore.php b/extlib/Auth/OpenID/FileStore.php index 29d8d20e76..074421a0bb 100644 --- a/extlib/Auth/OpenID/FileStore.php +++ b/extlib/Auth/OpenID/FileStore.php @@ -367,7 +367,7 @@ class Auth_OpenID_FileStore extends Auth_OpenID_OpenIDStore { } if ( abs($timestamp - time()) > $Auth_OpenID_SKEW ) { - return False; + return false; } if ($server_url) { @@ -519,7 +519,7 @@ class Auth_OpenID_FileStore extends Auth_OpenID_OpenIDStore { /** * @access private */ - function _mkdtemp($dir) + static function _mkdtemp($dir) { foreach (range(0, 4) as $i) { $name = $dir . strval(DIRECTORY_SEPARATOR) . strval(getmypid()) . @@ -615,4 +615,4 @@ class Auth_OpenID_FileStore extends Auth_OpenID_OpenIDStore { } } -?> + diff --git a/extlib/Auth/OpenID/HMAC.php b/extlib/Auth/OpenID/HMAC.php index ec42db8dfc..e9779bd4e0 100644 --- a/extlib/Auth/OpenID/HMAC.php +++ b/extlib/Auth/OpenID/HMAC.php @@ -96,4 +96,3 @@ if (function_exists('hash_hmac') && define('Auth_OpenID_HMACSHA256_SUPPORTED', false); } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/Interface.php b/extlib/Auth/OpenID/Interface.php index f4c6062f8c..eca6b9c50f 100644 --- a/extlib/Auth/OpenID/Interface.php +++ b/extlib/Auth/OpenID/Interface.php @@ -194,4 +194,3 @@ class Auth_OpenID_OpenIDStore { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/KVForm.php b/extlib/Auth/OpenID/KVForm.php index fb342a0013..dd02661d88 100644 --- a/extlib/Auth/OpenID/KVForm.php +++ b/extlib/Auth/OpenID/KVForm.php @@ -26,7 +26,7 @@ class Auth_OpenID_KVForm { * @static * @access private */ - function toArray($kvs, $strict=false) + static function toArray($kvs, $strict=false) { $lines = explode("\n", $kvs); @@ -78,7 +78,7 @@ class Auth_OpenID_KVForm { * @static * @access private */ - function fromArray($values) + static function fromArray($values) { if ($values === null) { return null; @@ -109,4 +109,3 @@ class Auth_OpenID_KVForm { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/MemcachedStore.php b/extlib/Auth/OpenID/MemcachedStore.php index d357c6b11d..fc10800b1c 100644 --- a/extlib/Auth/OpenID/MemcachedStore.php +++ b/extlib/Auth/OpenID/MemcachedStore.php @@ -205,4 +205,3 @@ class Auth_OpenID_MemcachedStore extends Auth_OpenID_OpenIDStore { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/Message.php b/extlib/Auth/OpenID/Message.php index 5ab115a86e..9aa1fa4684 100644 --- a/extlib/Auth/OpenID/Message.php +++ b/extlib/Auth/OpenID/Message.php @@ -143,7 +143,7 @@ class Auth_OpenID_Mapping { * Returns true if $thing is an Auth_OpenID_Mapping object; false * if not. */ - function isA($thing) + static function isA($thing) { return (is_object($thing) && strtolower(get_class($thing)) == 'auth_openid_mapping'); @@ -442,7 +442,7 @@ class Auth_OpenID_Message { return $this->getOpenIDNamespace() == Auth_OpenID_OPENID2_NS; } - function fromPostArgs($args) + static function fromPostArgs($args) { // Construct a Message containing a set of POST arguments $obj = new Auth_OpenID_Message(); @@ -477,7 +477,7 @@ class Auth_OpenID_Message { } } - function fromOpenIDArgs($openid_args) + static function fromOpenIDArgs($openid_args) { // Takes an array. @@ -594,7 +594,7 @@ class Auth_OpenID_Message { return $this->_openid_ns_uri; } - function fromKVForm($kvform_string) + static function fromKVForm($kvform_string) { // Create a Message from a KVForm string return Auth_OpenID_Message::fromOpenIDArgs( @@ -917,4 +917,4 @@ class Auth_OpenID_Message { } } -?> + diff --git a/extlib/Auth/OpenID/MySQLStore.php b/extlib/Auth/OpenID/MySQLStore.php index eb08af0162..810f059f1d 100644 --- a/extlib/Auth/OpenID/MySQLStore.php +++ b/extlib/Auth/OpenID/MySQLStore.php @@ -75,4 +75,3 @@ class Auth_OpenID_MySQLStore extends Auth_OpenID_SQLStore { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/Nonce.php b/extlib/Auth/OpenID/Nonce.php index effecac385..b83c5911f8 100644 --- a/extlib/Auth/OpenID/Nonce.php +++ b/extlib/Auth/OpenID/Nonce.php @@ -106,4 +106,3 @@ function Auth_OpenID_mkNonce($when = null) return $time_str . $salt; } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/PAPE.php b/extlib/Auth/OpenID/PAPE.php index 62cba8a912..f08ca8bd0b 100644 --- a/extlib/Auth/OpenID/PAPE.php +++ b/extlib/Auth/OpenID/PAPE.php @@ -21,7 +21,7 @@ define('PAPE_AUTH_PHISHING_RESISTANT', 'http://schemas.openid.net/pape/policies/2007/06/phishing-resistant'); define('PAPE_TIME_VALIDATOR', - '^[0-9]{4,4}-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z$'); + '/^[0-9]{4,4}-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z$/'); /** * A Provider Authentication Policy request, sent from a relying party * to a provider @@ -82,7 +82,7 @@ class Auth_OpenID_PAPE_Request extends Auth_OpenID_Extension { * Instantiate a Request object from the arguments in a checkid_* * OpenID message */ - function fromOpenIDRequest($request) + static function fromOpenIDRequest($request) { $obj = new Auth_OpenID_PAPE_Request(); $args = $request->message->getArgs(Auth_OpenID_PAPE_NS_URI); @@ -201,7 +201,7 @@ class Auth_OpenID_PAPE_Response extends Auth_OpenID_Extension { * @returns: A provider authentication policy response from the * data that was supplied with the id_res response. */ - function fromSuccessResponse($success_response) + static function fromSuccessResponse($success_response) { $obj = new Auth_OpenID_PAPE_Response(); @@ -262,7 +262,7 @@ class Auth_OpenID_PAPE_Response extends Auth_OpenID_Extension { $auth_time = Auth_OpenID::arrayGet($args, 'auth_time'); if ($auth_time !== null) { - if (ereg(PAPE_TIME_VALIDATOR, $auth_time)) { + if (preg_match(PAPE_TIME_VALIDATOR, $auth_time)) { $this->auth_time = $auth_time; } else if ($strict) { return false; @@ -287,7 +287,7 @@ class Auth_OpenID_PAPE_Response extends Auth_OpenID_Extension { } if ($this->auth_time !== null) { - if (!ereg(PAPE_TIME_VALIDATOR, $this->auth_time)) { + if (!preg_match(PAPE_TIME_VALIDATOR, $this->auth_time)) { return false; } @@ -298,4 +298,3 @@ class Auth_OpenID_PAPE_Response extends Auth_OpenID_Extension { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/Parse.php b/extlib/Auth/OpenID/Parse.php index 546f34f6be..6c2e721691 100644 --- a/extlib/Auth/OpenID/Parse.php +++ b/extlib/Auth/OpenID/Parse.php @@ -101,7 +101,7 @@ class Auth_OpenID_Parse { * Starts with the tag name at a word boundary, where the tag name * is not a namespace */ - var $_tag_expr = "<%s\b(?!:)([^>]*?)(?:\/>|>(.*?)(?:<\/?%s\s*>|\Z))"; + var $_tag_expr = "<%s\b(?!:)([^>]*?)(?:\/>|>(.*)(?:<\/?%s\s*>|\Z))"; var $_attr_find = '\b(\w+)=("[^"]*"|\'[^\']*\'|[^\'"\s\/<>]+)'; @@ -215,11 +215,31 @@ class Auth_OpenID_Parse { return $str; } } + + function match($regexp, $text, &$match) + { + if (!is_callable('mb_ereg_search_init')) { + return preg_match($regexp, $text, $match); + } + + $regexp = substr($regexp, 1, strlen($regexp) - 2 - strlen($this->_re_flags)); + mb_ereg_search_init($text); + if (!mb_ereg_search($regexp)) { + return false; + } + list($match) = mb_ereg_search_getregs(); + return true; + } /** * Find all link tags in a string representing a HTML document and * return a list of their attributes. * + * @todo This is quite ineffective and may fail with the default + * pcre.backtrack_limit of 100000 in PHP 5.2, if $html is big. + * It should rather use stripos (in PHP5) or strpos()+strtoupper() + * in PHP4 to manage this. + * * @param string $html The text to parse * @return array $list An array of arrays of attributes, one for each * link tag @@ -244,18 +264,23 @@ class Auth_OpenID_Parse { $stripped = substr($stripped, $html_begin, $html_end - $html_begin); + // Workaround to prevent PREG_BACKTRACK_LIMIT_ERROR: + $old_btlimit = ini_set( 'pcre.backtrack_limit', -1 ); + // Try to find the <HEAD> tag. $head_re = $this->headFind(); - $head_matches = array(); - if (!preg_match($head_re, $stripped, $head_matches)) { - return array(); + $head_match = ''; + if (!$this->match($head_re, $stripped, $head_match)) { + ini_set( 'pcre.backtrack_limit', $old_btlimit ); + return array(); } $link_data = array(); $link_matches = array(); - if (!preg_match_all($this->_link_find, $head_matches[0], + if (!preg_match_all($this->_link_find, $head_match, $link_matches)) { + ini_set( 'pcre.backtrack_limit', $old_btlimit ); return array(); } @@ -273,6 +298,7 @@ class Auth_OpenID_Parse { $link_data[] = $link_attrs; } + ini_set( 'pcre.backtrack_limit', $old_btlimit ); return $link_data; } @@ -349,4 +375,3 @@ function Auth_OpenID_legacy_discover($html_text, $server_rel, } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/PostgreSQLStore.php b/extlib/Auth/OpenID/PostgreSQLStore.php index 69d95e7b8d..d90e43e00d 100644 --- a/extlib/Auth/OpenID/PostgreSQLStore.php +++ b/extlib/Auth/OpenID/PostgreSQLStore.php @@ -110,4 +110,3 @@ class Auth_OpenID_PostgreSQLStore extends Auth_OpenID_SQLStore { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/SQLStore.php b/extlib/Auth/OpenID/SQLStore.php index da93c6aa25..c04059732c 100644 --- a/extlib/Auth/OpenID/SQLStore.php +++ b/extlib/Auth/OpenID/SQLStore.php @@ -13,16 +13,6 @@ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache */ -/** - * Require the PEAR DB module because we'll need it for the SQL-based - * stores implemented here. We silence any errors from the inclusion - * because it might not be present, and a user of the SQL stores may - * supply an Auth_OpenID_DatabaseConnection instance that implements - * its own storage. - */ -global $__Auth_OpenID_PEAR_AVAILABLE; -$__Auth_OpenID_PEAR_AVAILABLE = @include_once 'DB.php'; - /** * @access private */ @@ -89,8 +79,6 @@ class Auth_OpenID_SQLStore extends Auth_OpenID_OpenIDStore { $associations_table = null, $nonces_table = null) { - global $__Auth_OpenID_PEAR_AVAILABLE; - $this->associations_table_name = "oid_associations"; $this->nonces_table_name = "oid_nonces"; @@ -113,7 +101,7 @@ class Auth_OpenID_SQLStore extends Auth_OpenID_OpenIDStore { // constant, so only try to use it if PEAR is present. Note // that Auth_Openid_Databaseconnection instances need not // implement ::setFetchMode for this reason. - if ($__Auth_OpenID_PEAR_AVAILABLE) { + if (is_subclass_of($this->connection, 'db_common')) { $this->connection->setFetchMode(DB_FETCHMODE_ASSOC); } @@ -482,7 +470,7 @@ class Auth_OpenID_SQLStore extends Auth_OpenID_OpenIDStore { global $Auth_OpenID_SKEW; if ( abs($timestamp - time()) > $Auth_OpenID_SKEW ) { - return False; + return false; } return $this->_add_nonce($server_url, $timestamp, $salt); @@ -566,4 +554,4 @@ class Auth_OpenID_SQLStore extends Auth_OpenID_OpenIDStore { } } -?> + diff --git a/extlib/Auth/OpenID/SQLiteStore.php b/extlib/Auth/OpenID/SQLiteStore.php index ec2bf58e46..4558fa1c33 100644 --- a/extlib/Auth/OpenID/SQLiteStore.php +++ b/extlib/Auth/OpenID/SQLiteStore.php @@ -68,4 +68,3 @@ class Auth_OpenID_SQLiteStore extends Auth_OpenID_SQLStore { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/SReg.php b/extlib/Auth/OpenID/SReg.php index 63280769fd..5ece707243 100644 --- a/extlib/Auth/OpenID/SReg.php +++ b/extlib/Auth/OpenID/SReg.php @@ -94,7 +94,7 @@ Auth_OpenID_registerNamespaceAlias(Auth_OpenID_SREG_NS_URI_1_1, 'sreg'); * $endpoint: The endpoint object as returned by OpenID discovery. * returns whether an sreg type was advertised by the endpoint */ -function Auth_OpenID_supportsSReg(&$endpoint) +function Auth_OpenID_supportsSReg($endpoint) { return ($endpoint->usesExtension(Auth_OpenID_SREG_NS_URI_1_1) || $endpoint->usesExtension(Auth_OpenID_SREG_NS_URI_1_0)); @@ -122,7 +122,7 @@ class Auth_OpenID_SRegBase extends Auth_OpenID_Extension { * * @access private */ - function _getSRegNS(&$message) + static function _getSRegNS($message) { $alias = null; $found_ns_uri = null; @@ -173,7 +173,7 @@ class Auth_OpenID_SRegRequest extends Auth_OpenID_SRegBase { /** * Initialize an empty simple registration request. */ - function build($required=null, $optional=null, + static function build($required=null, $optional=null, $policy_url=null, $sreg_ns_uri=Auth_OpenID_SREG_NS_URI, $cls='Auth_OpenID_SRegRequest') @@ -213,7 +213,7 @@ class Auth_OpenID_SRegRequest extends Auth_OpenID_SRegBase { * * Returns the newly created simple registration request */ - function fromOpenIDRequest($request, $cls='Auth_OpenID_SRegRequest') + static function fromOpenIDRequest($request, $cls='Auth_OpenID_SRegRequest') { $obj = call_user_func_array(array($cls, 'build'), @@ -442,7 +442,7 @@ class Auth_OpenID_SRegResponse extends Auth_OpenID_SRegBase { * string (unicode) value. For instance, the nickname should be * stored under the key 'nickname'. */ - function extractResponse($request, $data) + static function extractResponse($request, $data) { $obj = new Auth_OpenID_SRegResponse(); $obj->ns_uri = $request->ns_uri; @@ -471,7 +471,7 @@ class Auth_OpenID_SRegResponse extends Auth_OpenID_SRegBase { * Returns a simple registration response containing the data that * was supplied with the C{id_res} response. */ - function fromSuccessResponse(&$success_response, $signed_only=true) + static function fromSuccessResponse($success_response, $signed_only=true) { global $Auth_OpenID_sreg_data_fields; @@ -518,4 +518,4 @@ class Auth_OpenID_SRegResponse extends Auth_OpenID_SRegBase { } } -?> + diff --git a/extlib/Auth/OpenID/Server.php b/extlib/Auth/OpenID/Server.php index f1db4d8725..cc8ba961c2 100644 --- a/extlib/Auth/OpenID/Server.php +++ b/extlib/Auth/OpenID/Server.php @@ -43,7 +43,7 @@ * consumers to add extensions to their requests. For example, with * sites using the Simple Registration * Extension - * (http://www.openidenabled.com/openid/simple-registration-extension/), + * (http://openid.net/specs/openid-simple-registration-extension-1_0.html), * a user can agree to have their nickname and e-mail address sent to * a site when they sign up. * @@ -365,7 +365,7 @@ class Auth_OpenID_CheckAuthRequest extends Auth_OpenID_Request { $this->message = null; } - function fromMessage($message, $server=null) + static function fromMessage($message, $server=null) { $required_keys = array('assoc_handle', 'sig', 'signed'); @@ -396,7 +396,7 @@ class Auth_OpenID_CheckAuthRequest extends Auth_OpenID_Request { return $result; } - function answer(&$signatory) + function answer($signatory) { $is_valid = $signatory->verify($this->assoc_handle, $this->signed); @@ -436,7 +436,7 @@ class Auth_OpenID_PlainTextServerSession { var $needs_math = false; var $allowed_assoc_types = array('HMAC-SHA1', 'HMAC-SHA256'); - function fromMessage($unused_request) + static function fromMessage($unused_request) { return new Auth_OpenID_PlainTextServerSession(); } @@ -469,7 +469,7 @@ class Auth_OpenID_DiffieHellmanSHA1ServerSession { $this->consumer_pubkey = $consumer_pubkey; } - function getDH($message) + static function getDH($message) { $dh_modulus = $message->getArg(Auth_OpenID_OPENID_NS, 'dh_modulus'); $dh_gen = $message->getArg(Auth_OpenID_OPENID_NS, 'dh_gen'); @@ -489,7 +489,7 @@ class Auth_OpenID_DiffieHellmanSHA1ServerSession { $missing); } - $lib =& Auth_OpenID_getMathLib(); + $lib = Auth_OpenID_getMathLib(); if ($dh_modulus || $dh_gen) { $dh_modulus = $lib->base64ToLong($dh_modulus); @@ -523,7 +523,7 @@ class Auth_OpenID_DiffieHellmanSHA1ServerSession { return array($dh, $consumer_pubkey); } - function fromMessage($message) + static function fromMessage($message) { $result = Auth_OpenID_DiffieHellmanSHA1ServerSession::getDH($message); @@ -538,7 +538,7 @@ class Auth_OpenID_DiffieHellmanSHA1ServerSession { function answer($secret) { - $lib =& Auth_OpenID_getMathLib(); + $lib = Auth_OpenID_getMathLib(); $mac_key = $this->dh->xorSecret($this->consumer_pubkey, $secret, $this->hash_func); return array( @@ -560,7 +560,7 @@ class Auth_OpenID_DiffieHellmanSHA256ServerSession var $hash_func = 'Auth_OpenID_SHA256'; var $allowed_assoc_types = array('HMAC-SHA256'); - function fromMessage($message) + static function fromMessage($message) { $result = Auth_OpenID_DiffieHellmanSHA1ServerSession::getDH($message); @@ -582,7 +582,7 @@ class Auth_OpenID_DiffieHellmanSHA256ServerSession class Auth_OpenID_AssociateRequest extends Auth_OpenID_Request { var $mode = "associate"; - function getSessionClasses() + static function getSessionClasses() { return array( 'no-encryption' => 'Auth_OpenID_PlainTextServerSession', @@ -590,14 +590,14 @@ class Auth_OpenID_AssociateRequest extends Auth_OpenID_Request { 'DH-SHA256' => 'Auth_OpenID_DiffieHellmanSHA256ServerSession'); } - function Auth_OpenID_AssociateRequest(&$session, $assoc_type) + function Auth_OpenID_AssociateRequest($session, $assoc_type) { - $this->session =& $session; + $this->session = $session; $this->namespace = Auth_OpenID_OPENID2_NS; $this->assoc_type = $assoc_type; } - function fromMessage($message, $server=null) + static function fromMessage($message, $server=null) { if ($message->isOpenID1()) { $session_type = $message->getArg(Auth_OpenID_OPENID_NS, @@ -696,7 +696,7 @@ class Auth_OpenID_AssociateRequest extends Auth_OpenID_Request { 'session_type', $preferred_session_type); } - + $response->code = AUTH_OPENID_HTTP_ERROR; return $response; } } @@ -734,7 +734,7 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { */ var $namespace; - function make(&$message, $identity, $return_to, $trust_root = null, + static function make($message, $identity, $return_to, $trust_root = null, $immediate = false, $assoc_handle = null, $server = null) { if ($server === null) { @@ -752,7 +752,7 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { $assoc_handle, $server); $r->namespace = $message->getOpenIDNamespace(); - $r->message =& $message; + $r->message = $message; if (!$r->trustRootValid()) { return new Auth_OpenID_UntrustedReturnURL($message, @@ -778,7 +778,7 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { } $this->return_to = $return_to; $this->trust_root = $trust_root; - $this->server =& $server; + $this->server = $server; if ($immediate) { $this->immediate = true; @@ -817,11 +817,12 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { */ function returnToVerified() { + $fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); return call_user_func_array($this->verifyReturnTo, - array($this->trust_root, $this->return_to)); + array($this->trust_root, $this->return_to, $fetcher)); } - - function fromMessage(&$message, $server) + + static function fromMessage($message, $server) { $mode = $message->getArg(Auth_OpenID_OPENID_NS, 'mode'); $immediate = null; @@ -1097,7 +1098,7 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { in OpenID 1.x immediate mode.'); } - $setup_request =& new Auth_OpenID_CheckIDRequest( + $setup_request = new Auth_OpenID_CheckIDRequest( $this->identity, $this->return_to, $this->trust_root, @@ -1183,9 +1184,9 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { */ class Auth_OpenID_ServerResponse { - function Auth_OpenID_ServerResponse(&$request) + function Auth_OpenID_ServerResponse($request) { - $this->request =& $request; + $this->request = $request; $this->fields = new Auth_OpenID_Message($this->request->namespace); } @@ -1310,10 +1311,10 @@ class Auth_OpenID_Signatory { /** * Create a new signatory using a given store. */ - function Auth_OpenID_Signatory(&$store) + function Auth_OpenID_Signatory($store) { // assert store is not None - $this->store =& $store; + $this->store = $store; } /** @@ -1447,7 +1448,7 @@ class Auth_OpenID_Encoder { * Encode an {@link Auth_OpenID_ServerResponse} and return an * {@link Auth_OpenID_WebResponse}. */ - function encode(&$response) + function encode($response) { $cls = $this->responseFactory; @@ -1463,10 +1464,14 @@ class Auth_OpenID_Encoder { array('location' => $location)); } else if ($encode_as == Auth_OpenID_ENCODE_HTML_FORM) { $wr = new $cls(AUTH_OPENID_HTTP_OK, array(), - $response->toFormMarkup()); + $response->toHTML()); } else { return new Auth_OpenID_EncodingError($response); } + /* Allow the response to carry a custom error code (ex: for Association errors) */ + if(isset($response->code)) { + $wr->code = $response->code; + } return $wr; } } @@ -1478,16 +1483,16 @@ class Auth_OpenID_Encoder { */ class Auth_OpenID_SigningEncoder extends Auth_OpenID_Encoder { - function Auth_OpenID_SigningEncoder(&$signatory) + function Auth_OpenID_SigningEncoder($signatory) { - $this->signatory =& $signatory; + $this->signatory = $signatory; } /** * Sign an {@link Auth_OpenID_ServerResponse} and return an * {@link Auth_OpenID_WebResponse}. */ - function encode(&$response) + function encode($response) { // the isinstance is a bit of a kludge... it means there isn't // really an adapter to make the interfaces quite match. @@ -1516,9 +1521,9 @@ class Auth_OpenID_SigningEncoder extends Auth_OpenID_Encoder { */ class Auth_OpenID_Decoder { - function Auth_OpenID_Decoder(&$server) + function Auth_OpenID_Decoder($server) { - $this->server =& $server; + $this->server = $server; $this->handlers = array( 'checkid_setup' => 'Auth_OpenID_CheckIDRequest', @@ -1599,9 +1604,9 @@ class Auth_OpenID_Decoder { * @package OpenID */ class Auth_OpenID_EncodingError { - function Auth_OpenID_EncodingError(&$response) + function Auth_OpenID_EncodingError($response) { - $this->response =& $response; + $this->response = $response; } } @@ -1674,14 +1679,14 @@ class Auth_OpenID_UntrustedReturnURL extends Auth_OpenID_ServerError { * @package OpenID */ class Auth_OpenID_Server { - function Auth_OpenID_Server(&$store, $op_endpoint=null) + function Auth_OpenID_Server($store, $op_endpoint=null) { - $this->store =& $store; - $this->signatory =& new Auth_OpenID_Signatory($this->store); - $this->encoder =& new Auth_OpenID_SigningEncoder($this->signatory); - $this->decoder =& new Auth_OpenID_Decoder($this); + $this->store = $store; + $this->signatory = new Auth_OpenID_Signatory($this->store); + $this->encoder = new Auth_OpenID_SigningEncoder($this->signatory); + $this->decoder = new Auth_OpenID_Decoder($this); $this->op_endpoint = $op_endpoint; - $this->negotiator =& Auth_OpenID_getDefaultNegotiator(); + $this->negotiator = Auth_OpenID_getDefaultNegotiator(); } /** @@ -1699,7 +1704,7 @@ class Auth_OpenID_Server { { if (method_exists($this, "openid_" . $request->mode)) { $handler = array($this, "openid_" . $request->mode); - return call_user_func($handler, $request); + return call_user_func($handler, &$request); } return null; } @@ -1707,7 +1712,7 @@ class Auth_OpenID_Server { /** * The callback for 'check_authentication' messages. */ - function openid_check_authentication(&$request) + function openid_check_authentication($request) { return $request->answer($this->signatory); } @@ -1715,7 +1720,7 @@ class Auth_OpenID_Server { /** * The callback for 'associate' messages. */ - function openid_associate(&$request) + function openid_associate($request) { $assoc_type = $request->assoc_type; $session_type = $request->session->session_type; @@ -1738,7 +1743,7 @@ class Auth_OpenID_Server { * Encodes as response in the appropriate format suitable for * sending to the user agent. */ - function encodeResponse(&$response) + function encodeResponse($response) { return $this->encoder->encode($response); } @@ -1757,4 +1762,4 @@ class Auth_OpenID_Server { } } -?> + diff --git a/extlib/Auth/OpenID/ServerRequest.php b/extlib/Auth/OpenID/ServerRequest.php index 33a8556cea..69222a5e04 100644 --- a/extlib/Auth/OpenID/ServerRequest.php +++ b/extlib/Auth/OpenID/ServerRequest.php @@ -34,4 +34,3 @@ class Auth_OpenID_ServerRequest { } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/TrustRoot.php b/extlib/Auth/OpenID/TrustRoot.php index 4919a60651..000440b588 100644 --- a/extlib/Auth/OpenID/TrustRoot.php +++ b/extlib/Auth/OpenID/TrustRoot.php @@ -58,7 +58,7 @@ class Auth_OpenID_TrustRoot { * @return The URL upon which relying party discovery should be * run in order to verify the return_to URL */ - function buildDiscoveryURL($realm) + static function buildDiscoveryURL($realm) { $parsed = Auth_OpenID_TrustRoot::_parse($realm); @@ -93,7 +93,7 @@ class Auth_OpenID_TrustRoot { * @return mixed $parsed Either an associative array of trust root * parts or false if parsing failed. */ - function _parse($trust_root) + static function _parse($trust_root) { $trust_root = Auth_OpenID_urinorm($trust_root); if ($trust_root === null) { @@ -199,7 +199,7 @@ class Auth_OpenID_TrustRoot { * @param string $trust_root The trust root to check * @return bool $sanity Whether the trust root looks OK */ - function isSane($trust_root) + static function isSane($trust_root) { $parts = Auth_OpenID_TrustRoot::_parse($trust_root); if ($parts === false) { @@ -269,7 +269,7 @@ class Auth_OpenID_TrustRoot { * @return bool $matches Whether the URL matches against the * trust root */ - function match($trust_root, $url) + static function match($trust_root, $url) { $trust_root_parsed = Auth_OpenID_TrustRoot::_parse($trust_root); $url_parsed = Auth_OpenID_TrustRoot::_parse($url); @@ -341,7 +341,7 @@ class Auth_OpenID_TrustRoot { * @returns: The endpoint URL or None if the endpoint is not a * relying party endpoint. */ -function filter_extractReturnURL(&$endpoint) +function filter_extractReturnURL($endpoint) { if ($endpoint->matchTypes(array(Auth_OpenID_RP_RETURN_TO_URL_TYPE))) { return $endpoint; @@ -394,14 +394,14 @@ function Auth_OpenID_returnToMatches($allowed_return_to_urls, $return_to) * Given a relying party discovery URL return a list of return_to * URLs. */ -function Auth_OpenID_getAllowedReturnURLs($relying_party_url, &$fetcher, +function Auth_OpenID_getAllowedReturnURLs($relying_party_url, $fetcher, $discover_function=null) { if ($discover_function === null) { $discover_function = array('Auth_Yadis_Yadis', 'discover'); } - $xrds_parse_cb = array('Auth_OpenID_ServiceEndpoint', 'fromXRDS'); + $xrds_parse_cb = array('Auth_OpenID_ServiceEndpoint', 'consumerFromXRDS'); list($rp_url_after_redirects, $endpoints) = Auth_Yadis_getServiceEndpoints($relying_party_url, $xrds_parse_cb, @@ -413,7 +413,7 @@ function Auth_OpenID_getAllowedReturnURLs($relying_party_url, &$fetcher, } call_user_func_array($discover_function, - array($relying_party_url, $fetcher)); + array($relying_party_url, &$fetcher)); $return_to_urls = array(); $matching_endpoints = Auth_OpenID_extractReturnURL($endpoints); @@ -435,7 +435,7 @@ function Auth_OpenID_getAllowedReturnURLs($relying_party_url, &$fetcher, * * @return true if the return_to URL is valid for the realm */ -function Auth_OpenID_verifyReturnTo($realm_str, $return_to, &$fetcher, +function Auth_OpenID_verifyReturnTo($realm_str, $return_to, $fetcher, $_vrfy='Auth_OpenID_getAllowedReturnURLs') { $disco_url = Auth_OpenID_TrustRoot::buildDiscoveryURL($realm_str); @@ -445,7 +445,7 @@ function Auth_OpenID_verifyReturnTo($realm_str, $return_to, &$fetcher, } $allowable_urls = call_user_func_array($_vrfy, - array($disco_url, &$fetcher)); + array($disco_url, $fetcher)); // The realm_str could not be parsed. if ($allowable_urls === false) { @@ -459,4 +459,3 @@ function Auth_OpenID_verifyReturnTo($realm_str, $return_to, &$fetcher, } } -?> \ No newline at end of file diff --git a/extlib/Auth/OpenID/URINorm.php b/extlib/Auth/OpenID/URINorm.php index f821d836a9..c051b550aa 100644 --- a/extlib/Auth/OpenID/URINorm.php +++ b/extlib/Auth/OpenID/URINorm.php @@ -246,4 +246,4 @@ function Auth_OpenID_urinorm($uri) return $scheme . '://' . $authority . $path . $query . $fragment; } -?> + diff --git a/extlib/Auth/Yadis/HTTPFetcher.php b/extlib/Auth/Yadis/HTTPFetcher.php index 963b9a49a4..148cde1b2e 100644 --- a/extlib/Auth/Yadis/HTTPFetcher.php +++ b/extlib/Auth/Yadis/HTTPFetcher.php @@ -115,12 +115,40 @@ class Auth_Yadis_HTTPFetcher { /** * @access private */ - function _findRedirect($headers) + function _findRedirect($headers, $url) { foreach ($headers as $line) { if (strpos(strtolower($line), "location: ") === 0) { $parts = explode(" ", $line, 2); - return $parts[1]; + $loc = $parts[1]; + $ppos = strpos($loc, "://"); + if ($ppos === false || $ppos > strpos($loc, "/")) { + /* no host; add it */ + $hpos = strpos($url, "://"); + $prt = substr($url, 0, $hpos+3); + $url = substr($url, $hpos+3); + if (substr($loc, 0, 1) == "/") { + /* absolute path */ + $fspos = strpos($url, "/"); + if ($fspos) $loc = $prt.substr($url, 0, $fspos).$loc; + else $loc = $prt.$url.$loc; + } else { + /* relative path */ + $pp = $prt; + while (1) { + $xpos = strpos($url, "/"); + if ($xpos === false) break; + $apos = strpos($url, "?"); + if ($apos !== false && $apos < $xpos) break; + $apos = strpos($url, "&"); + if ($apos !== false && $apos < $xpos) break; + $pp .= substr($url, 0, $xpos+1); + $url = substr($url, $xpos+1); + } + $loc = $pp.$loc; + } + } + return $loc; } } return null; @@ -144,4 +172,3 @@ class Auth_Yadis_HTTPFetcher { } } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/Manager.php b/extlib/Auth/Yadis/Manager.php index d50cf7ad65..ee6f68bcb6 100644 --- a/extlib/Auth/Yadis/Manager.php +++ b/extlib/Auth/Yadis/Manager.php @@ -387,11 +387,11 @@ class Auth_Yadis_Discovery { * @param string $session_key_suffix The optional session key * suffix override. */ - function Auth_Yadis_Discovery(&$session, $url, + function Auth_Yadis_Discovery($session, $url, $session_key_suffix = null) { /// Initialize a discovery object - $this->session =& $session; + $this->session = $session; $this->url = $url; if ($session_key_suffix === null) { $session_key_suffix = $this->DEFAULT_SUFFIX; @@ -405,7 +405,7 @@ class Auth_Yadis_Discovery { * Return the next authentication service for the pair of * user_input and session. This function handles fallback. */ - function getNextService($discover_cb, &$fetcher) + function getNextService($discover_cb, $fetcher) { $manager = $this->getManager(); if (!$manager || (!$manager->services)) { @@ -413,7 +413,7 @@ class Auth_Yadis_Discovery { list($yadis_url, $services) = call_user_func($discover_cb, $this->url, - $fetcher); + &$fetcher); $manager = $this->createManager($services, $yadis_url); } @@ -466,7 +466,7 @@ class Auth_Yadis_Discovery { * @param $force True if the manager should be returned regardless * of whether it's a manager for $this->url. */ - function &getManager($force=false) + function getManager($force=false) { // Extract the YadisServiceManager for this object's URL and // suffix from the session. @@ -481,16 +481,13 @@ class Auth_Yadis_Discovery { if ($manager && ($manager->forURL($this->url) || $force)) { return $manager; - } else { - $unused = null; - return $unused; } } /** * @access private */ - function &createManager($services, $yadis_url = null) + function createManager($services, $yadis_url = null) { $key = $this->getSessionKey(); if ($this->getManager()) { @@ -504,10 +501,6 @@ class Auth_Yadis_Discovery { $this->session->set($this->session_key, serialize($loader->toSession($manager))); return $manager; - } else { - // Oh, PHP. - $unused = null; - return $unused; } } @@ -526,4 +519,3 @@ class Auth_Yadis_Discovery { } } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/Misc.php b/extlib/Auth/Yadis/Misc.php index 1134a4ff4b..a5afa8e9a8 100644 --- a/extlib/Auth/Yadis/Misc.php +++ b/extlib/Auth/Yadis/Misc.php @@ -56,4 +56,3 @@ function Auth_Yadis_startswith($s, $stuff) return strpos($s, $stuff) === 0; } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/ParanoidHTTPFetcher.php b/extlib/Auth/Yadis/ParanoidHTTPFetcher.php index 6a418260ee..4da7c94c0d 100644 --- a/extlib/Auth/Yadis/ParanoidHTTPFetcher.php +++ b/extlib/Auth/Yadis/ParanoidHTTPFetcher.php @@ -109,9 +109,9 @@ class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher { } curl_setopt($c, CURLOPT_WRITEFUNCTION, - array(&$this, "_writeData")); + array($this, "_writeData")); curl_setopt($c, CURLOPT_HEADERFUNCTION, - array(&$this, "_writeHeader")); + array($this, "_writeHeader")); if ($extra_headers) { curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers); @@ -128,6 +128,10 @@ class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher { curl_setopt($c, CURLOPT_TIMEOUT, $off); curl_setopt($c, CURLOPT_URL, $url); + if (defined('Auth_OpenID_VERIFY_HOST')) { + curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true); + curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2); + } curl_exec($c); $code = curl_getinfo($c, CURLINFO_HTTP_CODE); @@ -142,12 +146,17 @@ class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher { } if (in_array($code, array(301, 302, 303, 307))) { - $url = $this->_findRedirect($headers); + $url = $this->_findRedirect($headers, $url); $redir = true; } else { $redir = false; curl_close($c); + if (defined('Auth_OpenID_VERIFY_HOST') && + $this->isHTTPS($url)) { + Auth_OpenID::log('OpenID: Verified SSL host %s using '. + 'curl/get', $url); + } $new_headers = array(); foreach ($headers as $header) { @@ -190,7 +199,12 @@ class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher { curl_setopt($c, CURLOPT_TIMEOUT, $this->timeout); curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_WRITEFUNCTION, - array(&$this, "_writeData")); + array($this, "_writeData")); + + if (defined('Auth_OpenID_VERIFY_HOST')) { + curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true); + curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2); + } curl_exec($c); @@ -198,9 +212,15 @@ class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher { if (!$code) { Auth_OpenID::log("Got no response code when fetching %s", $url); + Auth_OpenID::log("CURL error (%s): %s", + curl_errno($c), curl_error($c)); return null; } + if (defined('Auth_OpenID_VERIFY_HOST') && $this->isHTTPS($url)) { + Auth_OpenID::log('OpenID: Verified SSL host %s using '. + 'curl/post', $url); + } $body = $this->data; curl_close($c); @@ -223,4 +243,3 @@ class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher { } } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/ParseHTML.php b/extlib/Auth/Yadis/ParseHTML.php index 297ccbd2c3..6f0f8b7e28 100644 --- a/extlib/Auth/Yadis/ParseHTML.php +++ b/extlib/Auth/Yadis/ParseHTML.php @@ -256,4 +256,3 @@ class Auth_Yadis_ParseHTML { } } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/PlainHTTPFetcher.php b/extlib/Auth/Yadis/PlainHTTPFetcher.php index 3e0ca2bb0c..26890539aa 100644 --- a/extlib/Auth/Yadis/PlainHTTPFetcher.php +++ b/extlib/Auth/Yadis/PlainHTTPFetcher.php @@ -122,7 +122,7 @@ class Auth_Yadis_PlainHTTPFetcher extends Auth_Yadis_HTTPFetcher { $code = $http_code[1]; if (in_array($code, array('301', '302'))) { - $url = $this->_findRedirect($headers); + $url = $this->_findRedirect($headers, $url); $redir = true; } else { $redir = false; @@ -246,4 +246,3 @@ class Auth_Yadis_PlainHTTPFetcher extends Auth_Yadis_HTTPFetcher { } } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/XML.php b/extlib/Auth/Yadis/XML.php index 81b2ce2210..cf1f5c41b2 100644 --- a/extlib/Auth/Yadis/XML.php +++ b/extlib/Auth/Yadis/XML.php @@ -310,20 +310,16 @@ $__Auth_Yadis_defaultParser = null; * @param Auth_Yadis_XMLParser $parser An instance of a * Auth_Yadis_XMLParser subclass. */ -function Auth_Yadis_setDefaultParser(&$parser) +function Auth_Yadis_setDefaultParser($parser) { global $__Auth_Yadis_defaultParser; - $__Auth_Yadis_defaultParser =& $parser; + $__Auth_Yadis_defaultParser = $parser; } function Auth_Yadis_getSupportedExtensions() { - return array( - 'dom' => array('classname' => 'Auth_Yadis_dom', - 'libname' => array('dom.so', 'dom.dll')), - 'domxml' => array('classname' => 'Auth_Yadis_domxml', - 'libname' => array('domxml.so', 'php_domxml.dll')), - ); + return array('dom' => 'Auth_Yadis_dom', + 'domxml' => 'Auth_Yadis_domxml'); } /** @@ -332,43 +328,25 @@ function Auth_Yadis_getSupportedExtensions() * Auth_Yadis_setDefaultParser has been called, the parser used in * that call will be returned instead. */ -function &Auth_Yadis_getXMLParser() +function Auth_Yadis_getXMLParser() { global $__Auth_Yadis_defaultParser; - + if (isset($__Auth_Yadis_defaultParser)) { return $__Auth_Yadis_defaultParser; } - - $p = null; - $classname = null; - - $extensions = Auth_Yadis_getSupportedExtensions(); - - // Return a wrapper for the resident implementation, if any. - foreach ($extensions as $name => $params) { - if (!extension_loaded($name)) { - foreach ($params['libname'] as $libname) { - if (@dl($libname)) { - $classname = $params['classname']; - } - } - } else { - $classname = $params['classname']; - } - if (isset($classname)) { - $p = new $classname(); - return $p; - } - } - - if (!isset($p)) { - trigger_error('No XML parser was found', E_USER_ERROR); - } else { + + foreach(Auth_Yadis_getSupportedExtensions() as $extension => $classname) + { + if (extension_loaded($extension)) + { + $p = new $classname(); Auth_Yadis_setDefaultParser($p); + return $p; + } } - - return $p; + + return false; } -?> + diff --git a/extlib/Auth/Yadis/XRDS.php b/extlib/Auth/Yadis/XRDS.php index f14a7948e1..1f5af96fb2 100644 --- a/extlib/Auth/Yadis/XRDS.php +++ b/extlib/Auth/Yadis/XRDS.php @@ -255,11 +255,11 @@ class Auth_Yadis_XRDS { * Instantiate a Auth_Yadis_XRDS object. Requires an XPath * instance which has been used to parse a valid XRDS document. */ - function Auth_Yadis_XRDS(&$xmlParser, &$xrdNodes) + function Auth_Yadis_XRDS($xmlParser, $xrdNodes) { - $this->parser =& $xmlParser; + $this->parser = $xmlParser; $this->xrdNode = $xrdNodes[count($xrdNodes) - 1]; - $this->allXrdNodes =& $xrdNodes; + $this->allXrdNodes = $xrdNodes; $this->serviceList = array(); $this->_parse(); } @@ -273,7 +273,7 @@ class Auth_Yadis_XRDS { * @return mixed $xrds An instance of Auth_Yadis_XRDS or null, * depending on the validity of $xml_string */ - function &parseXRDS($xml_string, $extra_ns_map = null) + static function parseXRDS($xml_string, $extra_ns_map = null) { $_null = null; @@ -352,9 +352,9 @@ class Auth_Yadis_XRDS { $services = $this->parser->evalXPath('xrd:Service', $this->xrdNode); foreach ($services as $node) { - $s =& new Auth_Yadis_Service(); + $s = new Auth_Yadis_Service(); $s->element = $node; - $s->parser =& $this->parser; + $s->parser = $this->parser; $priority = $s->getPriority(); @@ -428,7 +428,8 @@ class Auth_Yadis_XRDS { $matches = 0; foreach ($filters as $filter) { - if (call_user_func_array($filter, array($service))) { + + if (call_user_func_array($filter, array(&$service))) { $matches++; if ($filter_mode == SERVICES_YADIS_MATCH_ANY) { @@ -475,4 +476,3 @@ class Auth_Yadis_XRDS { } } -?> \ No newline at end of file diff --git a/extlib/Auth/Yadis/XRI.php b/extlib/Auth/Yadis/XRI.php index 4e34623176..0143a692e0 100644 --- a/extlib/Auth/Yadis/XRI.php +++ b/extlib/Auth/Yadis/XRI.php @@ -190,7 +190,7 @@ function Auth_Yadis_getCanonicalID($iname, $xrds) // Now nodes are in reverse order. $xrd_list = array_reverse($xrds->allXrdNodes); - $parser =& $xrds->parser; + $parser = $xrds->parser; $node = $xrd_list[0]; $canonicalID_nodes = $parser->evalXPath('xrd:CanonicalID', $node); @@ -231,4 +231,4 @@ function Auth_Yadis_getCanonicalID($iname, $xrds) return $canonicalID; } -?> + diff --git a/extlib/Auth/Yadis/XRIRes.php b/extlib/Auth/Yadis/XRIRes.php index 4e8e8d0372..5e11587352 100644 --- a/extlib/Auth/Yadis/XRIRes.php +++ b/extlib/Auth/Yadis/XRIRes.php @@ -8,9 +8,9 @@ require_once 'Auth/Yadis/XRDS.php'; require_once 'Auth/Yadis/XRI.php'; class Auth_Yadis_ProxyResolver { - function Auth_Yadis_ProxyResolver(&$fetcher, $proxy_url = null) + function Auth_Yadis_ProxyResolver($fetcher, $proxy_url = null) { - $this->fetcher =& $fetcher; + $this->fetcher = $fetcher; $this->proxy_url = $proxy_url; if (!$this->proxy_url) { $this->proxy_url = Auth_Yadis_getDefaultProxy(); @@ -69,4 +69,4 @@ class Auth_Yadis_ProxyResolver { } } -?> + diff --git a/extlib/Auth/Yadis/Yadis.php b/extlib/Auth/Yadis/Yadis.php index d89f77c6d7..9ea2db7f91 100644 --- a/extlib/Auth/Yadis/Yadis.php +++ b/extlib/Auth/Yadis/Yadis.php @@ -105,7 +105,7 @@ class Auth_Yadis_DiscoveryResult { function usedYadisLocation() { // Was the Yadis protocol's indirection used? - return $this->normalized_uri != $this->xrds_uri; + return ($this->xrds_uri && $this->normalized_uri != $this->xrds_uri); } function isXRDS() @@ -141,7 +141,7 @@ function Auth_Yadis_getServiceEndpoints($input_url, $xrds_parse_func, } $yadis_result = call_user_func_array($discover_func, - array($input_url, $fetcher)); + array($input_url, &$fetcher)); if ($yadis_result === null) { return array($input_url, array()); @@ -196,7 +196,7 @@ function Auth_Yadis_getServiceEndpoints($input_url, $xrds_parse_func, * The filter functions (whose names appear in the array passed to * services()) take the following form: * - * <pre> function myFilter(&$service) { + * <pre> function myFilter($service) { * // Query $service object here. Return true if the service * // matches your query; false if not. * }</pre> @@ -207,7 +207,7 @@ function Auth_Yadis_getServiceEndpoints($input_url, $xrds_parse_func, * this contrived example): * * <pre> - * function URIMatcher(&$service) { + * function URIMatcher($service) { * foreach ($service->getElements('xrd:URI') as $uri) { * if (preg_match("/some_pattern/", * $service->parser->content($uri))) { @@ -250,7 +250,7 @@ class Auth_Yadis_Yadis { * If Auth_Yadis_CURL_OVERRIDE is defined, this method will always * return a {@link Auth_Yadis_PlainHTTPFetcher}. */ - function getHTTPFetcher($timeout = 20) + static function getHTTPFetcher($timeout = 20) { if (Auth_Yadis_Yadis::curlPresent() && (!defined('Auth_Yadis_CURL_OVERRIDE'))) { @@ -261,7 +261,7 @@ class Auth_Yadis_Yadis { return $fetcher; } - function curlPresent() + static function curlPresent() { return function_exists('curl_init'); } @@ -269,7 +269,7 @@ class Auth_Yadis_Yadis { /** * @access private */ - function _getHeader($header_list, $names) + static function _getHeader($header_list, $names) { foreach ($header_list as $name => $value) { foreach ($names as $n) { @@ -285,7 +285,7 @@ class Auth_Yadis_Yadis { /** * @access private */ - function _getContentType($content_type_header) + static function _getContentType($content_type_header) { if ($content_type_header) { $parts = explode(";", $content_type_header); @@ -317,7 +317,7 @@ class Auth_Yadis_Yadis { * Auth_Yadis_Yadis, depending on whether the discovery * succeeded. */ - function discover($uri, &$fetcher, + static function discover($uri, $fetcher, $extra_ns_map = null, $timeout = 20) { $result = new Auth_Yadis_DiscoveryResult($uri); @@ -379,4 +379,4 @@ class Auth_Yadis_Yadis { } } -?> + diff --git a/extlib/OAuth.php b/extlib/OAuth.php index 648627b576..04984d5fa0 100644 --- a/extlib/OAuth.php +++ b/extlib/OAuth.php @@ -54,6 +54,24 @@ class OAuthSignatureMethod {/*{{{*/ public function check_signature(&$request, $consumer, $token, $signature) { $built = $this->build_signature($request, $consumer, $token); return $built == $signature; + + // Check for zero length, although unlikely here + if (strlen($built) == 0 || strlen($signature) == 0) { + return false; + } + + if (strlen($built) != strlen($signature)) { + return false; + } + + $result = 0; + + // Avoid a timing leak with a (hopefully) time insensitive compare + for ($i = 0; $i < strlen($signature); $i++) { + $result |= ord($built{$i}) ^ ord($signature{$i}); + } + + return $result == 0; } }/*}}}*/ diff --git a/extlib/libomb/base_url_xrds_mapper.php b/extlib/libomb/base_url_xrds_mapper.php index 6454595835..d45d6d69f9 100755 --- a/extlib/libomb/base_url_xrds_mapper.php +++ b/extlib/libomb/base_url_xrds_mapper.php @@ -1,14 +1,6 @@ <?php - -require_once 'xrds_mapper.php'; -require_once 'constants.php'; - /** - * Map XRDS actions to URLs using base URLs. - * - * This interface specifies classes which write the XRDS file announcing - * the OMB server. An instance of an implementing class should be passed to - * OMB_Service_Provider->writeXRDS. + * This file is part of libomb * * PHP version 5 * @@ -25,27 +17,56 @@ require_once 'constants.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Base_URL_XRDS_Mapper implements OMB_XRDS_Mapper { +require_once 'xrds_mapper.php'; +require_once 'constants.php'; - protected $urls; +/** + * Map XRDS actions to URLs using base URLs + * + * This class realizes a simple mapping of action URIs to handler URLs. The + * target URLs are constructed using a base URL. + */ +class OMB_Base_URL_XRDS_Mapper implements OMB_XRDS_Mapper +{ + protected $urls; - public function __construct($oauth_base, $omb_base) { - $this->urls = array( - OAUTH_ENDPOINT_REQUEST => $oauth_base . 'requesttoken', - OAUTH_ENDPOINT_AUTHORIZE => $oauth_base . 'userauthorization', - OAUTH_ENDPOINT_ACCESS => $oauth_base . 'accesstoken', - OMB_ENDPOINT_POSTNOTICE => $omb_base . 'postnotice', - OMB_ENDPOINT_UPDATEPROFILE => $omb_base . 'updateprofile'); - } + /** + * Constructor + * + * Initialize the XRDS mapper with base URLs for OAuth and OMB endpoints. + * + * @param string $oauth_base The base URL for OAuth endpoints + * @param string $omb_base The base URL for OMB endpoints + */ + public function __construct($oauth_base, $omb_base) + { + $this->urls = array( + OAUTH_ENDPOINT_REQUEST => $oauth_base . 'requesttoken', + OAUTH_ENDPOINT_AUTHORIZE => $oauth_base . 'userauthorization', + OAUTH_ENDPOINT_ACCESS => $oauth_base . 'accesstoken', + OMB_ENDPOINT_POSTNOTICE => $omb_base . 'postnotice', + OMB_ENDPOINT_UPDATEPROFILE => $omb_base . 'updateprofile'); + } - public function getURL($action) { - return $this->urls[$action]; - } + /** + * Fetch an URL for a specified action + * + * Returns the action URL for an action specified by the endpoint URI. + * + * @param string $action The endpoint URI + * + * @return string The action URL + */ + public function getURL($action) + { + return $this->urls[$action]; + } } ?> diff --git a/extlib/libomb/constants.php b/extlib/libomb/constants.php index a097443acc..2f8c0e514d 100644 --- a/extlib/libomb/constants.php +++ b/extlib/libomb/constants.php @@ -20,15 +20,16 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ /** * The OMB constants. - **/ + */ define('OMB_VERSION_01', 'http://openmicroblogging.org/protocol/0.1'); @@ -40,7 +41,7 @@ define('OMB_ENDPOINT_POSTNOTICE', OMB_VERSION . '/postNotice'); /** * The OAuth constants. - **/ + */ define('OAUTH_NAMESPACE', 'http://oauth.net/core/1.0/'); diff --git a/extlib/libomb/datastore.php b/extlib/libomb/datastore.php index ab52de547b..d67aafcc56 100755 --- a/extlib/libomb/datastore.php +++ b/extlib/libomb/datastore.php @@ -1,4 +1,28 @@ <?php +/** + * This file is part of libomb + * + * PHP version 5 + * + * LICENSE: 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/>. + * + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ require_once 'OAuth.php'; @@ -27,174 +51,162 @@ require_once 'OAuth.php'; * Most of the parameters passed to these methods are unescaped and unverified * user input. Therefore they should be handled with extra care to avoid * security problems like SQL injections. - * - * PHP version 5 - * - * LICENSE: 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/>. - * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + */ +class OMB_Datastore extends OAuthDataStore +{ -class OMB_Datastore extends OAuthDataStore { + /********* + * OAUTH * + *********/ - /********* - * OAUTH * - *********/ + /** + * Revoke specified OAuth token + * + * Revokes the authorization token specified by $token_key. + * Throws exceptions in case of error. + * + * @param string $token_key The key of the token to be revoked + * + * @access public + */ + public function revoke_token($token_key) + { + throw new Exception(); + } - /** - * Revoke specified OAuth token - * - * Revokes the authorization token specified by $token_key. - * Throws exceptions in case of error. - * - * @param string $token_key The key of the token to be revoked - * - * @access public - **/ - public function revoke_token($token_key) { - throw new Exception(); - } + /** + * Authorize specified OAuth token + * + * Authorizes the authorization token specified by $token_key. + * Throws exceptions in case of error. + * + * @param string $token_key The key of the token to be authorized + * + * @access public + */ + public function authorize_token($token_key) + { + throw new Exception(); + } - /** - * Authorize specified OAuth token - * - * Authorizes the authorization token specified by $token_key. - * Throws exceptions in case of error. - * - * @param string $token_key The key of the token to be authorized - * - * @access public - **/ - public function authorize_token($token_key) { - throw new Exception(); - } + /********* + * OMB * + *********/ - /********* - * OMB * - *********/ + /** + * Get profile by identifying URI + * + * Returns an OMB_Profile object representing the OMB profile identified by + * $identifier_uri. + * Returns null if there is no such OMB profile. + * Throws exceptions in case of other error. + * + * @param string $identifier_uri The OMB identifier URI specifying the + * requested profile + * + * @access public + * + * @return OMB_Profile The corresponding profile + */ + public function getProfile($identifier_uri) + { + throw new Exception(); + } - /** - * Get profile by identifying URI - * - * Returns an OMB_Profile object representing the OMB profile identified by - * $identifier_uri. - * Returns null if there is no such OMB profile. - * Throws exceptions in case of other error. - * - * @param string $identifier_uri The OMB identifier URI specifying the - * requested profile - * - * @access public - * - * @return OMB_Profile The corresponding profile - **/ - public function getProfile($identifier_uri) { - throw new Exception(); - } + /** + * Save passed profile + * + * Stores the OMB profile $profile. Overwrites an existing entry. + * Throws exceptions in case of error. + * + * @param OMB_Profile $profile The OMB profile which should be saved + * + * @access public + */ + public function saveProfile($profile) + { + throw new Exception(); + } - /** - * Save passed profile - * - * Stores the OMB profile $profile. Overwrites an existing entry. - * Throws exceptions in case of error. - * - * @param OMB_Profile $profile The OMB profile which should be saved - * - * @access public - **/ - public function saveProfile($profile) { - throw new Exception(); - } + /** + * Save passed notice + * + * Stores the OMB notice $notice. The datastore may change the passed + * notice. This might by necessary for URIs depending on a database key. + * Note that it is the user’s duty to present a mechanism for his + * OMB_Datastore to appropriately change his OMB_Notice. + * Throws exceptions in case of error. + * + * @param OMB_Notice &$notice The OMB notice which should be saved + * + * @access public + */ + public function saveNotice(&$notice) + { + throw new Exception(); + } - /** - * Save passed notice - * - * Stores the OMB notice $notice. The datastore may change the passed notice. - * This might by neccessary for URIs depending on a database key. Note that - * it is the user’s duty to present a mechanism for his OMB_Datastore to - * appropriately change his OMB_Notice. TODO: Ugly. - * Throws exceptions in case of error. - * - * @param OMB_Notice $notice The OMB notice which should be saved - * - * @access public - **/ - public function saveNotice(&$notice) { - throw new Exception(); - } + /** + * Get subscriptions of a given profile + * + * Returns an array containing subscription informations for the specified + * profile. Every array entry should in turn be an array with keys + * 'uri´: The identifier URI of the subscriber + * 'token´: The subscribe token + * 'secret´: The secret token + * Throws exceptions in case of error. + * + * @param string $subscribed_user_uri The OMB identifier URI specifying the + * subscribed profile + * + * @access public + * + * @return mixed An array containing the subscriptions or 0 if no + * subscription has been found. + */ + public function getSubscriptions($subscribed_user_uri) + { + throw new Exception(); + } - /** - * Get subscriptions of a given profile - * - * Returns an array containing subscription informations for the specified - * profile. Every array entry should in turn be an array with keys - * 'uri´: The identifier URI of the subscriber - * 'token´: The subscribe token - * 'secret´: The secret token - * Throws exceptions in case of error. - * - * @param string $subscribed_user_uri The OMB identifier URI specifying the - * subscribed profile - * - * @access public - * - * @return mixed An array containing the subscriptions or 0 if no - * subscription has been found. - **/ - public function getSubscriptions($subscribed_user_uri) { - throw new Exception(); - } + /** + * Delete a subscription + * + * Deletes the subscription from $subscriber_uri to $subscribed_user_uri. + * Throws exceptions in case of error. + * + * @param string $subscriber_uri The OMB identifier URI specifying the + * subscribing profile + * + * @param string $subscribed_user_uri The OMB identifier URI specifying the + * subscribed profile + * + * @access public + */ + public function deleteSubscription($subscriber_uri, $subscribed_user_uri) + { + throw new Exception(); + } - /** - * Delete a subscription - * - * Deletes the subscription from $subscriber_uri to $subscribed_user_uri. - * Throws exceptions in case of error. - * - * @param string $subscriber_uri The OMB identifier URI specifying the - * subscribing profile - * - * @param string $subscribed_user_uri The OMB identifier URI specifying the - * subscribed profile - * - * @access public - **/ - public function deleteSubscription($subscriber_uri, $subscribed_user_uri) { - throw new Exception(); - } - - /** - * Save a subscription - * - * Saves the subscription from $subscriber_uri to $subscribed_user_uri. - * Throws exceptions in case of error. - * - * @param string $subscriber_uri The OMB identifier URI specifying - * the subscribing profile - * - * @param string $subscribed_user_uri The OMB identifier URI specifying - * the subscribed profile - * @param OAuthToken $token The access token - * - * @access public - **/ - public function saveSubscription($subscriber_uri, $subscribed_user_uri, - $token) { - throw new Exception(); - } + /** + * Save a subscription + * + * Saves the subscription from $subscriber_uri to $subscribed_user_uri. + * Throws exceptions in case of error. + * + * @param string $subscriber_uri The OMB identifier URI specifying + * the subscribing profile + * + * @param string $subscribed_user_uri The OMB identifier URI specifying + * the subscribed profile + * @param OAuthToken $token The access token + * + * @access public + */ + public function saveSubscription($subscriber_uri, $subscribed_user_uri, + $token) + { + throw new Exception(); + } } ?> diff --git a/extlib/libomb/helper.php b/extlib/libomb/helper.php index a1f21f2680..08e6e7ab44 100644 --- a/extlib/libomb/helper.php +++ b/extlib/libomb/helper.php @@ -1,11 +1,6 @@ <?php - -require_once 'Validate.php'; - /** - * Helper functions for libomb - * - * This file contains helper functions for libomb. + * This file is part of libomb * * PHP version 5 * @@ -22,78 +17,88 @@ require_once 'Validate.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Helper { +require_once 'Validate.php'; - /** - * Non-scalar constants - * - * The set of OMB and OAuth Services an OMB Server has to implement. - */ +/** + * Helper functions for libomb + * + * This class contains helper functions for libomb. + */ +class OMB_Helper +{ - public static $OMB_SERVICES = - array(OMB_ENDPOINT_UPDATEPROFILE, OMB_ENDPOINT_POSTNOTICE); - public static $OAUTH_SERVICES = - array(OAUTH_ENDPOINT_REQUEST, OAUTH_ENDPOINT_AUTHORIZE, OAUTH_ENDPOINT_ACCESS); + /** + * Non-scalar constants + * + * The set of OMB and OAuth Services an OMB Server has to implement. + */ - /** - * Validate URL - * - * Basic URL validation. Currently http, https, ftp and gopher are supported - * schemes. - * - * @param string $url The URL which is to be validated. - * - * @return bool Whether URL is valid. - * - * @access public - */ - public static function validateURL($url) { - return Validate::uri($url, array('allowed_schemes' => array('http', 'https', - 'gopher', 'ftp'))); - } + public static $OMB_SERVICES = array(OMB_ENDPOINT_UPDATEPROFILE, + OMB_ENDPOINT_POSTNOTICE); + public static $OAUTH_SERVICES = array(OAUTH_ENDPOINT_REQUEST, + OAUTH_ENDPOINT_AUTHORIZE, + OAUTH_ENDPOINT_ACCESS); - /** - * Validate Media type - * - * Basic Media type validation. Checks for valid maintype and correct format. - * - * @param string $mediatype The Media type which is to be validated. - * - * @return bool Whether media type is valid. - * - * @access public - */ - public static function validateMediaType($mediatype) { - if (0 === preg_match('/^(\w+)\/([\w\d-+.]+)$/', $mediatype, $subtypes)) { - return false; + /** + * Validate URL + * + * Basic URL validation. Currently http, https, ftp and gopher are supported + * schemes. + * + * @param string $url The URL which is to be validated. + * + * @return bool Whether URL is valid. + * + * @access public + */ + public static function validateURL($url) + { + return Validate::uri($url, array('allowed_schemes' => array('http', + 'https', 'gopher', 'ftp'))); } - if (!in_array(strtolower($subtypes[1]), array('application', 'audio', 'image', - 'message', 'model', 'multipart', 'text', 'video'))) { - return false; - } - return true; - } - /** - * Remove escaping from request parameters - * - * Neutralise the evil effects of magic_quotes_gpc in the current request. - * This is used before handing a request off to OAuthRequest::from_request. - * Many thanks to Ciaran Gultnieks for this fix. - * - * @access public - */ - public static function removeMagicQuotesFromRequest() { - if(get_magic_quotes_gpc() == 1) { - $_POST = array_map('stripslashes', $_POST); - $_GET = array_map('stripslashes', $_GET); + /** + * Validate Media type + * + * Basic Media type validation. Checks for valid maintype and correct + * format. + * + * @param string $mediatype The Media type which is to be validated. + * + * @return bool Whether media type is valid. + * + * @access public + */ + public static function validateMediaType($mediatype) + { + return preg_match('/^(\w+)\/([\w\d-+.]+)$/', $mediatype, $subtypes) > 0 + && + in_array(strtolower($subtypes[1]), array('application', 'audio', + 'image', 'message', 'model', 'multipart', 'text', 'video')); + } + + /** + * Remove escaping from request parameters + * + * Neutralise the evil effects of magic_quotes_gpc in the current request. + * This is used before handing a request off to OAuthRequest::from_request. + * Many thanks to Ciaran Gultnieks for this fix. + * + * @access public + */ + public static function removeMagicQuotesFromRequest() + { + if (get_magic_quotes_gpc() === 1) { + $_POST = array_map('stripslashes', $_POST); + $_GET = array_map('stripslashes', $_GET); + } } - } } ?> diff --git a/extlib/libomb/invalidparameterexception.php b/extlib/libomb/invalidparameterexception.php index 163e1dd4cc..d95c7022cb 100755 --- a/extlib/libomb/invalidparameterexception.php +++ b/extlib/libomb/invalidparameterexception.php @@ -1,8 +1,6 @@ <?php /** - * Exception stating that a passed parameter is invalid - * - * This exception is raised when a parameter does not obey the OMB standard. + * This file is part of libomb * * PHP version 5 * @@ -19,14 +17,36 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ -class OMB_InvalidParameterException extends Exception { - public function __construct($value, $type, $parameter) { - parent::__construct("Invalid value $value for parameter $parameter in $type"); - } + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ + +/** + * Exception stating that a passed parameter is invalid + * + * This exception is raised when a parameter does not obey the OMB standard. + */ +class OMB_InvalidParameterException extends Exception +{ + /** + * Constructor + * + * Creates a new exception based on a parameter name, value, and object + * type. + * + * @param string $value The wrong value passed + * @param string $type The object type the parameter belongs to; + * Currently OMB uses profiles and notices + * @param string $parameter The name of the parameter the wrong value has + * been passed for + */ + public function __construct($value, $type, $parameter) + { + parent::__construct("Invalid value ‘${value}’ for parameter " . + "‘${parameter}’ in $type"); + } } ?> diff --git a/extlib/libomb/invalidyadisexception.php b/extlib/libomb/invalidyadisexception.php index 797b7b95bd..dc61a13ad4 100755 --- a/extlib/libomb/invalidyadisexception.php +++ b/extlib/libomb/invalidyadisexception.php @@ -1,9 +1,6 @@ <?php /** - * Exception stating that a requested url does not resolve to a valid yadis - * - * This exception is raised when OMB_Service is not able to discover a valid - * yadis location with XRDS. + * This file is part of libomb * * PHP version 5 * @@ -20,12 +17,21 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ -class OMB_InvalidYadisException extends Exception { + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ + +/** + * Exception stating that a requested url does not resolve to a valid yadis + * + * This exception is raised when OMB_Service is not able to discover a valid + * yadis location with XRDS. + */ +class OMB_InvalidYadisException extends Exception +{ } ?> diff --git a/extlib/libomb/notice.php b/extlib/libomb/notice.php index 9ac36640a2..4963597b2e 100755 --- a/extlib/libomb/notice.php +++ b/extlib/libomb/notice.php @@ -1,15 +1,6 @@ <?php -require_once 'invalidparameterexception.php'; -require_once 'Validate.php'; -require_once 'helper.php'; - /** - * OMB Notice representation - * - * This class represents an OMB notice. - * - * Do not call the setters with null values. Instead, if you want to delete a - * field, pass an empty string. The getters will return null for empty fields. + * This file is part of libomb * * PHP version 5 * @@ -26,247 +17,278 @@ require_once 'helper.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Notice { - protected $author; - protected $uri; - protected $content; - protected $url; - protected $license_url; /* url is an own addition for clarification. */ - protected $seealso_url; /* url is an own addition for clarification. */ - protected $seealso_disposition; - protected $seealso_mediatype; - protected $seealso_license_url; /* url is an addition for clarification. */ +require_once 'invalidparameterexception.php'; +require_once 'Validate.php'; +require_once 'helper.php'; - /* The notice as OMB param array. Cached and rebuild on usage. - false while outdated. */ - protected $param_array; +/** + * OMB Notice representation + * + * This class represents an OMB notice. + * + * Do not call the setters with null values. Instead, if you want to delete a + * field, pass an empty string. The getters will return null for empty fields. + */ +class OMB_Notice +{ + protected $author; + protected $uri; + protected $content; + protected $url; + protected $license_url; /* url is an own addition for clarification. */ + protected $seealso_url; /* url is an own addition for clarification. */ + protected $seealso_disposition; + protected $seealso_mediatype; + protected $seealso_license_url; /* url is an addition for clarification. */ - /** - * Constructor for OMB_Notice - * - * Initializes the OMB_Notice object with author, uri and content. - * These parameters are mandatory for postNotice. - * - * @param object $author An OMB_Profile object representing the author of the - * notice. - * @param string $uri The notice URI as defined by the OMB. A unique and - * unchanging identifier for a notice. - * @param string $content The content of the notice. 140 chars recommended, - * but there is no limit. - * - * @access public - */ - public function __construct($author, $uri, $content) { - $this->content = $content; - if (is_null($author)) { - throw new OMB_InvalidParameterException('', 'notice', 'omb_listenee'); - } - $this->author = $author; + /* The notice as OMB param array. Cached and rebuild on usage. + false while outdated. */ + protected $param_array; - if (!Validate::uri($uri)) { - throw new OMB_InvalidParameterException($uri, 'notice', 'omb_notice'); - } - $this->uri = $uri; + /** + * Constructor for OMB_Notice + * + * Initializes the OMB_Notice object with author, uri and content. + * These parameters are mandatory for postNotice. + * + * @param object $author An OMB_Profile object representing the author of + * the notice. + * @param string $uri The notice URI as defined by the OMB. A unique and + * never changing identifier for a notice. + * @param string $content The content of the notice. 140 chars recommended, + * but there is no limit. + * + * @access public + */ + public function __construct($author, $uri, $content) + { + $this->content = $content; + if (is_null($author)) { + throw new OMB_InvalidParameterException('', 'notice', 'omb_listenee'); + } + $this->author = $author; - $this->param_array = false; - } + if (!Validate::uri($uri)) { + throw new OMB_InvalidParameterException($uri, 'notice', 'omb_notice'); + } + $this->uri = $uri; - /** - * Returns the notice as array - * - * The method returns an array which contains the whole notice as array. The - * array is cached and only rebuilt on changes of the notice. - * Empty optional values are not passed. - * - * @access public - * @returns array The notice as parameter array - */ - public function asParameters() { - if ($this->param_array !== false) { - return $this->param_array; + $this->param_array = false; } - $this->param_array = array( - 'omb_notice' => $this->uri, - 'omb_notice_content' => $this->content); + /** + * Return the notice as array + * + * Returns an array which contains the whole notice as array. The array is + * cached and only rebuilt on changes of the notice. + * Empty optional values are not passed. + * + * @access public + * @return array The notice as parameter array + */ + public function asParameters() + { + if ($this->param_array !== false) { + return $this->param_array; + } - if (!is_null($this->url)) - $this->param_array['omb_notice_url'] = $this->url; + $this->param_array = array( + 'omb_notice' => $this->uri, + 'omb_notice_content' => $this->content); - if (!is_null($this->license_url)) - $this->param_array['omb_notice_license'] = $this->license_url; + if (!is_null($this->url)) + $this->param_array['omb_notice_url'] = $this->url; - if (!is_null($this->seealso_url)) { - $this->param_array['omb_seealso'] = $this->seealso_url; + if (!is_null($this->license_url)) + $this->param_array['omb_notice_license'] = $this->license_url; - /* This is actually a free interpretation of the OMB standard. We assume - that additional seealso parameters are not of any use if seealso itself - is not set. */ - if (!is_null($this->seealso_disposition)) - $this->param_array['omb_seealso_disposition'] = + if (!is_null($this->seealso_url)) { + $this->param_array['omb_seealso'] = $this->seealso_url; + + /* This is actually a free interpretation of the OMB standard. We + assume that additional seealso parameters are not of any use if + seealso itself is not set. */ + if (!is_null($this->seealso_disposition)) + $this->param_array['omb_seealso_disposition'] = $this->seealso_disposition; - if (!is_null($this->seealso_mediatype)) - $this->param_array['omb_seealso_mediatype'] = $this->seealso_mediatype; + if (!is_null($this->seealso_mediatype)) + $this->param_array['omb_seealso_mediatype'] = + $this->seealso_mediatype; - if (!is_null($this->seealso_license_url)) - $this->param_array['omb_seealso_license'] = $this->seealso_license_url; - } - return $this->param_array; - } - - /** - * Builds an OMB_Notice object from array - * - * The method builds an OMB_Notice object from the passed parameters array. - * The array MUST provide a notice URI and content. The array fields HAVE TO - * be named according to the OMB standard, i. e. omb_notice_* and - * omb_seealso_*. Values are handled as not passed if the corresponding array - * fields are not set or the empty string. - * - * @param object $author An OMB_Profile object representing the author of - * the notice. - * @param string $parameters An array containing the notice parameters. - * - * @access public - * - * @returns OMB_Notice The built OMB_Notice. - */ - public static function fromParameters($author, $parameters) { - $notice = new OMB_Notice($author, $parameters['omb_notice'], - $parameters['omb_notice_content']); - - if (isset($parameters['omb_notice_url'])) { - $notice->setURL($parameters['omb_notice_url']); + if (!is_null($this->seealso_license_url)) + $this->param_array['omb_seealso_license'] = + $this->seealso_license_url; + } + return $this->param_array; } - if (isset($parameters['omb_notice_license'])) { - $notice->setLicenseURL($parameters['omb_notice_license']); + /** + * Build an OMB_Notice object from array + * + * Builds an OMB_Notice object from the passed parameters array. The array + * MUST provide a notice URI and content. The array fields HAVE TO be named + * according to the OMB standard, i. e. omb_notice_* and omb_seealso_*. + * Values are handled as not passed if the corresponding array fields are + * not set or the empty string. + * + * @param object $author An OMB_Profile object representing the author + * of the notice. + * @param string $parameters An array containing the notice parameters. + * + * @access public + * + * @returns OMB_Notice The built OMB_Notice. + */ + public static function fromParameters($author, $parameters) + { + $notice = new OMB_Notice($author, $parameters['omb_notice'], + $parameters['omb_notice_content']); + + if (isset($parameters['omb_notice_url'])) { + $notice->setURL($parameters['omb_notice_url']); + } + + if (isset($parameters['omb_notice_license'])) { + $notice->setLicenseURL($parameters['omb_notice_license']); + } + + if (isset($parameters['omb_seealso'])) { + $notice->setSeealsoURL($parameters['omb_seealso']); + } + + if (isset($parameters['omb_seealso_disposition'])) { + $notice->setSeealsoDisposition($parameters['omb_seealso_disposition']); + } + + if (isset($parameters['omb_seealso_mediatype'])) { + $notice->setSeealsoMediatype($parameters['omb_seealso_mediatype']); + } + + if (isset($parameters['omb_seealso_license'])) { + $notice->setSeealsoLicenseURL($parameters['omb_seealso_license']); + } + return $notice; } - if (isset($parameters['omb_seealso'])) { - $notice->setSeealsoURL($parameters['omb_seealso']); + public function getAuthor() + { + return $this->author; } - if (isset($parameters['omb_seealso_disposition'])) { - $notice->setSeealsoDisposition($parameters['omb_seealso_disposition']); + public function getIdentifierURI() + { + return $this->uri; } - if (isset($parameters['omb_seealso_mediatype'])) { - $notice->setSeealsoMediatype($parameters['omb_seealso_mediatype']); + public function getContent() + { + return $this->content; } - if (isset($parameters['omb_seealso_license'])) { - $notice->setSeealsoLicenseURL($parameters['omb_seealso_license']); + public function getURL() + { + return $this->url; } - return $notice; - } - public function getAuthor() { - return $this->author; - } - - public function getIdentifierURI() { - return $this->uri; - } - - public function getContent() { - return $this->content; - } - - public function getURL() { - return $this->url; - } - - public function getLicenseURL() { - return $this->license_url; - } - - public function getSeealsoURL() { - return $this->seealso_url; - } - - public function getSeealsoDisposition() { - return $this->seealso_disposition; - } - - public function getSeealsoMediatype() { - return $this->seealso_mediatype; - } - - public function getSeealsoLicenseURL() { - return $this->seealso_license_url; - } - - public function setURL($url) { - if ($url === '') { - $url = null; - } elseif (!OMB_Helper::validateURL($url)) { - throw new OMB_InvalidParameterException($url, 'notice', 'omb_notice_url'); + public function getLicenseURL() + { + return $this->license_url; } - $this->url = $url; - $this->param_array = false; - } - public function setLicenseURL($license_url) { - if ($license_url === '') { - $license_url = null; - } elseif (!OMB_Helper::validateURL($license_url)) { - throw new OMB_InvalidParameterException($license_url, 'notice', - 'omb_notice_license'); + public function getSeealsoURL() + { + return $this->seealso_url; } - $this->license_url = $license_url; - $this->param_array = false; - } - public function setSeealsoURL($seealso_url) { - if ($seealso_url === '') { - $seealso_url = null; - } elseif (!OMB_Helper::validateURL($seealso_url)) { - throw new OMB_InvalidParameterException($seealso_url, 'notice', - 'omb_seealso'); + public function getSeealsoDisposition() + { + return $this->seealso_disposition; } - $this->seealso_url = $seealso_url; - $this->param_array = false; - } - public function setSeealsoDisposition($seealso_disposition) { - if ($seealso_disposition === '') { - $seealso_disposition = null; - } elseif ($seealso_disposition !== 'link' && $seealso_disposition !== 'inline') { - throw new OMB_InvalidParameterException($seealso_disposition, 'notice', - 'omb_seealso_disposition'); + public function getSeealsoMediatype() + { + return $this->seealso_mediatype; } - $this->seealso_disposition = $seealso_disposition; - $this->param_array = false; - } - public function setSeealsoMediatype($seealso_mediatype) { - if ($seealso_mediatype === '') { - $seealso_mediatype = null; - } elseif (!OMB_Helper::validateMediaType($seealso_mediatype)) { - throw new OMB_InvalidParameterException($seealso_mediatype, 'notice', - 'omb_seealso_mediatype'); + public function getSeealsoLicenseURL() + { + return $this->seealso_license_url; } - $this->seealso_mediatype = $seealso_mediatype; - $this->param_array = false; - } - public function setSeealsoLicenseURL($seealso_license_url) { - if ($seealso_license_url === '') { - $seealso_license_url = null; - } elseif (!OMB_Helper::validateURL($seealso_license_url)) { - throw new OMB_InvalidParameterException($seealso_license_url, 'notice', - 'omb_seealso_license'); + public function setURL($url) + { + $this->setVal('notice_url', $url, 'OMB_Helper::validateURL', 'url'); + } + + public function setLicenseURL($license_url) + { + $this->setVal('license', $license_url, 'OMB_Helper::validateURL', + 'license_url'); + } + + public function setSeealsoURL($seealso_url) + { + $this->setVal('seealso', $seealso_url, 'OMB_Helper::validateURL', + 'seealso_url'); + } + + public function setSeealsoDisposition($seealso_disposition) + { + $this->setVal('seealso_disposition', $seealso_disposition, + 'OMB_Notice::validateDisposition'); + } + + protected static function validateDisposition($str) + { + return in_array($str, array('link', 'inline')); + } + + public function setSeealsoMediatype($seealso_mediatype) + { + $this->setVal('seealso_mediatype', $seealso_mediatype, + 'OMB_Helper::validateMediaType'); + } + + public function setSeealsoLicenseURL($seealso_license_url) + { + $this->setVal('seealso_license', $seealso_license_url, + 'OMB_Helper::validateURL', 'seealso_license_url'); + } + + /** + * Set a value + * + * Updates a value specified by a parameter name and the new value. + * + * @param string $param The parameter name according to OMB + * @param string $value The new value + * @param callback $validator A validator function for the parameter + * @param string $field The name of the field in OMB_Notice + * @param bool $force Whether null values should be checked as well + */ + protected function setVal($param, $value, $validator, $field = null, + $force = false) + { + if (is_null($field)) { + $field = $param; + } + if ($value === '' && !$force) { + $value = null; + } elseif (!call_user_func($validator, $value)) { + throw new OMB_InvalidParameterException($value, 'notice', $param); + } + if ($this->$field !== $value) { + $this->$field = $value; + $this->param_array = false; + } } - $this->seealso_license_url = $seealso_license_url; - $this->param_array = false; - } } ?> diff --git a/extlib/libomb/omb_yadis_xrds.php b/extlib/libomb/omb_yadis_xrds.php index 89921203b0..a05477c103 100755 --- a/extlib/libomb/omb_yadis_xrds.php +++ b/extlib/libomb/omb_yadis_xrds.php @@ -1,14 +1,6 @@ <?php - -require_once 'Auth/Yadis/Yadis.php'; -require_once 'unsupportedserviceexception.php'; -require_once 'invalidyadisexception.php'; - /** - * OMB XRDS representation - * - * This class represents a Yadis XRDS file for OMB. It adds some useful methods to - * Auth_Yadis_XRDS. + * This file is part of libomb * * PHP version 5 * @@ -25,172 +17,193 @@ require_once 'invalidyadisexception.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Yadis_XRDS extends Auth_Yadis_XRDS { +require_once 'Auth/Yadis/Yadis.php'; +require_once 'unsupportedserviceexception.php'; +require_once 'invalidyadisexception.php'; - protected $fetcher; +/** + * OMB XRDS representation + * + * This class represents a Yadis XRDS file for OMB. It adds some useful methods to + * Auth_Yadis_XRDS. + */ +class OMB_Yadis_XRDS extends Auth_Yadis_XRDS +{ - /** - * Create an instance from URL - * - * Constructs an OMB_Yadis_XRDS object from a given URL. A full Yadis - * discovery is performed on the URL and the XRDS is parsed. - * Throws an OMB_InvalidYadisException when no Yadis is discovered or the - * detected XRDS file is broken. - * - * @param string $url The URL on which Yadis discovery - * should be performed on - * @param Auth_Yadis_HTTPFetcher $fetcher A fetcher used to get HTTP - * resources - * - * @access public - * - * @return OMB_Yadis_XRDS The initialized object representing the given - * resource - **/ - public static function fromYadisURL($url, $fetcher) { - /* Perform a Yadis discovery. */ - $yadis = Auth_Yadis_Yadis::discover($url, $fetcher); - if ($yadis->failed) { - throw new OMB_InvalidYadisException($url); + protected $fetcher; + + /** + * Create an instance from URL + * + * Constructs an OMB_Yadis_XRDS object from a given URL. A full Yadis + * discovery is performed on the URL and the XRDS is parsed. + * Throws an OMB_InvalidYadisException when no Yadis is discovered or the + * detected XRDS file is broken. + * + * @param string $url The URL on which Yadis discovery + * should be performed on + * @param Auth_Yadis_HTTPFetcher $fetcher A fetcher used to get HTTP + * resources + * + * @access public + * + * @return OMB_Yadis_XRDS The initialized object representing the given + * resource + */ + public static function fromYadisURL($url, $fetcher) + { + /* Perform a Yadis discovery. */ + $yadis = Auth_Yadis_Yadis::discover($url, $fetcher); + if ($yadis->failed) { + throw new OMB_InvalidYadisException($url); + } + + /* Parse the XRDS file. */ + $xrds = OMB_Yadis_XRDS::parseXRDS($yadis->response_text); + if ($xrds === null) { + throw new OMB_InvalidYadisException($url); + } + $xrds->fetcher = $fetcher; + return $xrds; } - /* Parse the XRDS file. */ - $xrds = OMB_Yadis_XRDS::parseXRDS($yadis->response_text); - if ($xrds === null) { - throw new OMB_InvalidYadisException($url); - } - $xrds->fetcher = $fetcher; - return $xrds; - } - - /** - * Get a specific service - * - * Returns the Auth_Yadis_Service object corresponding to the given service - * URI. - * Throws an OMB_UnsupportedServiceException if the service is not available. - * - * @param string $service URI specifier of the requested service - * - * @access public - * - * @return Auth_Yadis_Service The object representing the requested service - **/ - public function getService($service) { - $match = $this->services(array( create_function('$s', - "return in_array('$service', \$s->getTypes());"))); - if ($match === array()) { - throw new OMB_UnsupportedServiceException($service); - } - return $match[0]; - } - - /** - * Get a specific XRD - * - * Returns the OMB_Yadis_XRDS object corresponding to the given URI. - * Throws an OMB_UnsupportedServiceException if the XRD is not available. - * Note that getXRD tries to resolve external XRD parts as well. - * - * @param string $uri URI specifier of the requested XRD - * - * @access public - * - * @return OMB_Yadis_XRDS The object representing the requested XRD - **/ - public function getXRD($uri) { - $nexthash = strpos($uri, '#'); - if ($nexthash !== 0) { - if ($nexthash !== false) { - $cururi = substr($uri, 0, $nexthash); - $nexturi = substr($uri, $nexthash); - } - return - OMB_Yadis_XRDS::fromYadisURL($cururi, $this->fetcher)->getXRD($nexturi); + /** + * Get a specific service + * + * Returns the Auth_Yadis_Service object corresponding to the given service + * URI. + * Throws an OMB_UnsupportedServiceException if the service is not + * available. + * + * @param string $service URI specifier of the requested service + * + * @access public + * + * @return Auth_Yadis_Service The object representing the requested service + */ + public function getService($service) + { + $match = $this->services(array(create_function('$s', + "return in_array('$service', \$s->getTypes());"))); + if ($match === array()) { + throw new OMB_UnsupportedServiceException($service); + } + return $match[0]; } - $id = substr($uri, 1); - foreach ($this->allXrdNodes as $node) { - $attrs = $this->parser->attributes($node); - if (array_key_exists('xml:id', $attrs) && $attrs['xml:id'] == $id) { - /* Trick the constructor into thinking this is the only node. */ - $bogus_nodes = array($node); - return new OMB_Yadis_XRDS($this->parser, $bogus_nodes); - } - } - throw new OMB_UnsupportedServiceException($uri); - } + /** + * Get a specific XRD + * + * Returns the OMB_Yadis_XRDS object corresponding to the given URI. + * Throws an OMB_UnsupportedServiceException if the XRD is not available. + * Note that getXRD tries to resolve external XRD parts as well. + * + * @param string $uri URI specifier of the requested XRD + * + * @access public + * + * @return OMB_Yadis_XRDS The object representing the requested XRD + */ + public function getXRD($uri) + { + $nexthash = strpos($uri, '#'); + if ($nexthash === false) { + throw new OMB_InvalidYadisException("‘$uri’ does not specify a " . + 'valid XML node.'); + } - /** - * Parse an XML string containing a XRDS document - * - * Parse an XML string (XRDS document) and return either a - * Auth_Yadis_XRDS object or null, depending on whether the - * XRDS XML is valid. - * Copy and paste from parent to select correct constructor. - * - * @param string $xml_string An XRDS XML string. - * - * @access public - * - * @return mixed An instance of OMB_Yadis_XRDS or null, - * depending on the validity of $xml_string - **/ + if ($nexthash > 0) { + $cururi = substr($uri, 0, $nexthash); + $nexturi = substr($uri, $nexthash); + return OMB_Yadis_XRDS::fromYadisURL($cururi, $this->fetcher) + ->getXRD($nexturi); + } - public function &parseXRDS($xml_string, $extra_ns_map = null) { - $_null = null; - - if (!$xml_string) { - return $_null; + $id = substr($uri, 1); + foreach ($this->allXrdNodes as $node) { + $attrs = $this->parser->attributes($node); + if (array_key_exists('xml:id', $attrs) && $attrs['xml:id'] == $id) { + /* Trick the constructor into thinking this is the only node. */ + $bogus_nodes = array($node); + return new OMB_Yadis_XRDS($this->parser, $bogus_nodes); + } + } + throw new OMB_UnsupportedServiceException($uri); } - $parser = Auth_Yadis_getXMLParser(); + /** + * Parse an XML string containing a XRDS document + * + * Parses an XML string (XRDS document) and returns either an + * Auth_Yadis_XRDS object or null, depending on whether the XRDS XML is + * valid. + * This method is just copy and paste from the parent class to select the + * correct constructor. + * + * @param string $xml_string An XRDS XML string + * @param array $extra_ns_map Additional namespace declarations + * + * @access public + * + * @return mixed An instance of OMB_Yadis_XRDS or null, + * depending on the validity of $xml_string + */ + public static function parseXRDS($xml_string, $extra_ns_map = null) + { + $_null = null; - $ns_map = Auth_Yadis_getNSMap(); + if (!$xml_string) { + return $_null; + } - if ($extra_ns_map && is_array($extra_ns_map)) { - $ns_map = array_merge($ns_map, $extra_ns_map); + $parser = Auth_Yadis_getXMLParser(); + + $ns_map = Auth_Yadis_getNSMap(); + + if ($extra_ns_map && is_array($extra_ns_map)) { + $ns_map = array_merge($ns_map, $extra_ns_map); + } + + if (!($parser && $parser->init($xml_string, $ns_map))) { + return $_null; + } + + // Try to get root element. + $root = $parser->evalXPath('/xrds:XRDS[1]'); + if (!$root) { + return $_null; + } + + if (is_array($root)) { + $root = $root[0]; + } + + $attrs = $parser->attributes($root); + + if (array_key_exists('xmlns:xrd', $attrs) && + $attrs['xmlns:xrd'] != Auth_Yadis_XMLNS_XRDS) { + return $_null; + } else if (array_key_exists('xmlns', $attrs) && + preg_match('/xri/', $attrs['xmlns']) && + $attrs['xmlns'] != Auth_Yadis_XMLNS_XRD_2_0) { + return $_null; + } + + // Get the last XRD node. + $xrd_nodes = $parser->evalXPath('/xrds:XRDS[1]/xrd:XRD'); + + if (!$xrd_nodes) { + return $_null; + } + + $xrds = new OMB_Yadis_XRDS($parser, $xrd_nodes); + return $xrds; } - - if (!($parser && $parser->init($xml_string, $ns_map))) { - return $_null; - } - - // Try to get root element. - $root = $parser->evalXPath('/xrds:XRDS[1]'); - if (!$root) { - return $_null; - } - - if (is_array($root)) { - $root = $root[0]; - } - - $attrs = $parser->attributes($root); - - if (array_key_exists('xmlns:xrd', $attrs) && - $attrs['xmlns:xrd'] != Auth_Yadis_XMLNS_XRDS) { - return $_null; - } else if (array_key_exists('xmlns', $attrs) && - preg_match('/xri/', $attrs['xmlns']) && - $attrs['xmlns'] != Auth_Yadis_XMLNS_XRD_2_0) { - return $_null; - } - - // Get the last XRD node. - $xrd_nodes = $parser->evalXPath('/xrds:XRDS[1]/xrd:XRD'); - - if (!$xrd_nodes) { - return $_null; - } - - $xrds = new OMB_Yadis_XRDS($parser, $xrd_nodes); - return $xrds; - } } diff --git a/extlib/libomb/plain_xrds_writer.php b/extlib/libomb/plain_xrds_writer.php index b4a6e990bc..ba1027b611 100755 --- a/extlib/libomb/plain_xrds_writer.php +++ b/extlib/libomb/plain_xrds_writer.php @@ -1,13 +1,6 @@ <?php - -require_once 'xrds_writer.php'; - /** - * Write OMB-specific XRDS using XMLWriter. - * - * This class writes the XRDS file announcing the OMB server. It uses - * OMB_XMLWriter, which is a subclass of XMLWriter. An instance of - * OMB_Plain_XRDS_Writer should be passed to OMB_Service_Provider->writeXRDS. + * This file is part of libomb * * PHP version 5 * @@ -24,25 +17,45 @@ require_once 'xrds_writer.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Plain_XRDS_Writer implements OMB_XRDS_Writer { - public function writeXRDS($user, $mapper) { - header('Content-Type: application/xrds+xml'); - $xw = new XMLWriter(); - $xw->openURI('php://output'); - $xw->setIndent(true); +require_once 'xrds_writer.php'; - $xw->startDocument('1.0', 'UTF-8'); - $this->writeFullElement($xw, 'XRDS', array('xmlns' => 'xri://$xrds'), array( - array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xml:id' => 'oauth', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0'), array( +/** + * Write OMB-specific XRDS using XMLWriter + * + * This class writes the XRDS file announcing the OMB server. It uses XMLWriter. + * An instance of OMB_Plain_XRDS_Writer should be passed to + * OMB_Service_Provider->writeXRDS. + */ +class OMB_Plain_XRDS_Writer implements OMB_XRDS_Writer +{ + /** + * Write XRDS using XMLWriter + * + * Outputs a XRDS document specifying an OMB service. + * + * @param OMB_profile $user The target user for the OMB service + * @param OMB_XRDS_Mapper $mapper An OMB_XRDS_Mapper providing endpoint URLs + */ + public function writeXRDS($user, $mapper) + { + header('Content-Type: application/xrds+xml'); + $xw = new XMLWriter(); + $xw->openURI('php://output'); + $xw->setIndent(true); + + $xw->startDocument('1.0', 'UTF-8'); + $this->_writeFullElement($xw, 'XRDS', array('xmlns' => 'xri://$xrds'), array( + array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', + 'xml:id' => 'oauth', + 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', + 'version' => '2.0'), array( array('Type', null, 'xri://$xrds*simple'), array('Service', null, array( array('Type', null, OAUTH_ENDPOINT_REQUEST), @@ -73,10 +86,10 @@ class OMB_Plain_XRDS_Writer implements OMB_XRDS_Writer { array('Type', null, OAUTH_HMAC_SHA1) )) )), - array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xml:id' => 'omb', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0'), array( + array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', + 'xml:id' => 'omb', + 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', + 'version' => '2.0'), array( array('Type', null, 'xri://$xrds*simple'), array('Service', null, array( array('Type', null, OMB_ENDPOINT_POSTNOTICE), @@ -87,8 +100,8 @@ class OMB_Plain_XRDS_Writer implements OMB_XRDS_Writer { array('URI', null, $mapper->getURL(OMB_ENDPOINT_UPDATEPROFILE)) )) )), - array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'version' => '2.0'), array( + array('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', + 'version' => '2.0'), array( array('Type', null, 'xri://$xrds*simple'), array('Service', null, array( array('Type', null, OAUTH_DISCOVERY), @@ -98,27 +111,40 @@ class OMB_Plain_XRDS_Writer implements OMB_XRDS_Writer { array('Type', null, OMB_VERSION), array('URI', null, '#omb') )) - )) - )); - $xw->endDocument(); - $xw->flush(); - } + )))); + $xw->endDocument(); + $xw->flush(); + } - public static function writeFullElement($xw, $tag, $attributes, $content) { - $xw->startElement($tag); - if (!is_null($attributes)) { - foreach ($attributes as $name => $value) { - $xw->writeAttribute($name, $value); - } + /** + * Write a complex XML element + * + * Outputs a XML element with attributes and content. + * + * @param XMLWriter $xw The XMLWriter used to output the element + * @param string $tag The tag name + * @param array|null $attributes A map of XML attributes + * @param array|string $content The content of the element; either an + * array of child nodes each specified by a + * three entry-array ($tag, $attributes, + * $content) or a string + */ + private function _writeFullElement($xw, $tag, $attributes, $content) + { + $xw->startElement($tag); + if (!is_null($attributes)) { + foreach ($attributes as $name => $value) { + $xw->writeAttribute($name, $value); + } + } + if (is_array($content)) { + foreach ($content as $val) { + $this->_writeFullElement($xw, $val[0], $val[1], $val[2]); + } + } else { + $xw->text($content); + } + $xw->fullEndElement(); } - if (is_array($content)) { - foreach ($content as $values) { - OMB_Plain_XRDS_Writer::writeFullElement($xw, $values[0], $values[1], $values[2]); - } - } else { - $xw->text($content); - } - $xw->fullEndElement(); - } } ?> diff --git a/extlib/libomb/profile.php b/extlib/libomb/profile.php index 13314d3e80..d732e10d7d 100755 --- a/extlib/libomb/profile.php +++ b/extlib/libomb/profile.php @@ -1,15 +1,6 @@ <?php -require_once 'invalidparameterexception.php'; -require_once 'Validate.php'; -require_once 'helper.php'; - /** - * OMB profile representation - * - * This class represents an OMB profile. - * - * Do not call the setters with null values. Instead, if you want to delete a - * field, pass an empty string. The getters will return null for empty fields. + * This file is part of libomb * * PHP version 5 * @@ -26,292 +17,329 @@ require_once 'helper.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Profile { - protected $identifier_uri; - protected $profile_url; - protected $nickname; - protected $license_url; - protected $fullname; - protected $homepage; - protected $bio; - protected $location; - protected $avatar_url; +require_once 'invalidparameterexception.php'; +require_once 'Validate.php'; +require_once 'helper.php'; - /* The profile as OMB param array. Cached and rebuild on usage. - false while outdated. */ - protected $param_array; +/** + * OMB profile representation + * + * This class represents an OMB profile. + * + * Do not call the setters with null values. Instead, if you want to delete a + * field, pass an empty string. The getters will return null for empty fields. + */ +class OMB_Profile +{ + protected $identifier_uri; + protected $profile_url; + protected $nickname; + protected $license_url; + protected $fullname; + protected $homepage; + protected $bio; + protected $location; + protected $avatar_url; - /** - * Constructor for OMB_Profile - * - * Initializes the OMB_Profile object with an identifier uri. - * - * @param string $identifier_uri The profile URI as defined by the OMB. A unique - * and unchanging identifier for a profile. - * - * @access public - */ - public function __construct($identifier_uri) { - if (!Validate::uri($identifier_uri)) { - throw new OMB_InvalidParameterException($identifier_uri, 'profile', + /* The profile as OMB param array. Cached and rebuild on usage. + false while outdated. */ + protected $param_array; + + /** + * Constructor for OMB_Profile + * + * Initializes the OMB_Profile object with an identifier uri. + * + * @param string $identifier_uri The profile URI as defined by the OMB; + * A unique and never changing identifier for + * a profile + * + * @access public + */ + public function __construct($identifier_uri) + { + if (!Validate::uri($identifier_uri)) { + throw new OMB_InvalidParameterException($identifier_uri, 'profile', 'omb_listenee or omb_listener'); - } - $this->identifier_uri = $identifier_uri; - $this->param_array = false; - } - - /** - * Returns the profile as array - * - * The method returns an array which contains the whole profile as array. The - * array is cached and only rebuilt on changes of the profile. - * - * @param bool $force_all Specifies whether empty fields should be added to - * the array as well. This is neccessary to clear - * fields via updateProfile. - * - * @param string $prefix The common prefix to the key for all parameters. - * - * @access public - * - * @return array The profile as parameter array - */ - public function asParameters($prefix, $force_all = false) { - if ($this->param_array === false) { - $this->param_array = array('' => $this->identifier_uri); - - if ($force_all || !is_null($this->profile_url)) { - $this->param_array['_profile'] = $this->profile_url; - } - - if ($force_all || !is_null($this->homepage)) { - $this->param_array['_homepage'] = $this->homepage; - } - - if ($force_all || !is_null($this->nickname)) { - $this->param_array['_nickname'] = $this->nickname; - } - - if ($force_all || !is_null($this->license_url)) { - $this->param_array['_license'] = $this->license_url; - } - - if ($force_all || !is_null($this->fullname)) { - $this->param_array['_fullname'] = $this->fullname; - } - - if ($force_all || !is_null($this->bio)) { - $this->param_array['_bio'] = $this->bio; - } - - if ($force_all || !is_null($this->location)) { - $this->param_array['_location'] = $this->location; - } - - if ($force_all || !is_null($this->avatar_url)) { - $this->param_array['_avatar'] = $this->avatar_url; - } - - } - $ret = array(); - foreach ($this->param_array as $k => $v) { - $ret[$prefix . $k] = $v; - } - return $ret; - } - - /** - * Builds an OMB_Profile object from array - * - * The method builds an OMB_Profile object from the passed parameters array. The - * array MUST provide a profile URI. The array fields HAVE TO be named according - * to the OMB standard. The prefix (omb_listener or omb_listenee) is passed as a - * parameter. - * - * @param string $parameters An array containing the profile parameters. - * @param string $prefix The common prefix of the profile parameter keys. - * - * @access public - * - * @returns OMB_Profile The built OMB_Profile. - */ - public static function fromParameters($parameters, $prefix) { - if (!isset($parameters[$prefix])) { - throw new OMB_InvalidParameterException('', 'profile', $prefix); + } + $this->identifier_uri = $identifier_uri; + $this->param_array = false; } - $profile = new OMB_Profile($parameters[$prefix]); - $profile->updateFromParameters($parameters, $prefix); - return $profile; - } + /** + * Return the profile as array + * + * Returns an array which contains the whole profile as array. + * The array is cached and only rebuilt on changes of the profile. + * + * @param string $prefix The common prefix to the key for all parameters + * @param bool $force_all Specifies whether empty fields should be added + * to the array as well; This is necessary to + * clear fields via updateProfile + * + * @access public + * + * @return array The profile as parameter array + */ + public function asParameters($prefix, $force_all = false) + { + if ($this->param_array === false) { + $this->param_array = array('' => $this->identifier_uri); - /** - * Update from array - * - * Updates from the passed parameters array. The array does not have to - * provide a profile URI. The array fields HAVE TO be named according to the - * OMB standard. The prefix (omb_listener or omb_listenee) is passed as a - * parameter. - * - * @param string $parameters An array containing the profile parameters. - * @param string $prefix The common prefix of the profile parameter keys. - * - * @access public - */ - public function updateFromParameters($parameters, $prefix) { - if (isset($parameters[$prefix.'_profile'])) { - $this->setProfileURL($parameters[$prefix.'_profile']); + if ($force_all || !is_null($this->profile_url)) { + $this->param_array['_profile'] = $this->profile_url; + } + + if ($force_all || !is_null($this->homepage)) { + $this->param_array['_homepage'] = $this->homepage; + } + + if ($force_all || !is_null($this->nickname)) { + $this->param_array['_nickname'] = $this->nickname; + } + + if ($force_all || !is_null($this->license_url)) { + $this->param_array['_license'] = $this->license_url; + } + + if ($force_all || !is_null($this->fullname)) { + $this->param_array['_fullname'] = $this->fullname; + } + + if ($force_all || !is_null($this->bio)) { + $this->param_array['_bio'] = $this->bio; + } + + if ($force_all || !is_null($this->location)) { + $this->param_array['_location'] = $this->location; + } + + if ($force_all || !is_null($this->avatar_url)) { + $this->param_array['_avatar'] = $this->avatar_url; + } + + } + $ret = array(); + foreach ($this->param_array as $k => $v) { + $ret[$prefix . $k] = $v; + } + return $ret; } - if (isset($parameters[$prefix.'_license'])) { - $this->setLicenseURL($parameters[$prefix.'_license']); + /** + * Build an OMB_Profile object from array + * + * Builds an OMB_Profile object from the passed parameters array. The + * array MUST provide a profile URI. The array fields HAVE TO be named + * according to the OMB standard. The prefix (omb_listener or omb_listenee) + * is passed as a parameter. + * + * @param string $parameters An array containing the profile parameters + * @param string $prefix The common prefix of the profile parameter keys + * + * @access public + * + * @returns OMB_Profile The built OMB_Profile + */ + public static function fromParameters($parameters, $prefix) + { + if (!isset($parameters[$prefix])) { + throw new OMB_InvalidParameterException('', 'profile', $prefix); + } + + $profile = new OMB_Profile($parameters[$prefix]); + $profile->updateFromParameters($parameters, $prefix); + return $profile; } - if (isset($parameters[$prefix.'_nickname'])) { - $this->setNickname($parameters[$prefix.'_nickname']); + /** + * Update from array + * + * Updates from the passed parameters array. The array does not have to + * provide a profile URI. The array fields HAVE TO be named according to the + * OMB standard. The prefix (omb_listener or omb_listenee) is passed as a + * parameter. + * + * @param string $parameters An array containing the profile parameters + * @param string $prefix The common prefix of the profile parameter keys + * + * @access public + */ + public function updateFromParameters($parameters, $prefix) + { + if (isset($parameters[$prefix.'_profile'])) { + $this->setProfileURL($parameters[$prefix.'_profile']); + } + + if (isset($parameters[$prefix.'_license'])) { + $this->setLicenseURL($parameters[$prefix.'_license']); + } + + if (isset($parameters[$prefix.'_nickname'])) { + $this->setNickname($parameters[$prefix.'_nickname']); + } + + if (isset($parameters[$prefix.'_fullname'])) { + $this->setFullname($parameters[$prefix.'_fullname']); + } + + if (isset($parameters[$prefix.'_homepage'])) { + $this->setHomepage($parameters[$prefix.'_homepage']); + } + + if (isset($parameters[$prefix.'_bio'])) { + $this->setBio($parameters[$prefix.'_bio']); + } + + if (isset($parameters[$prefix.'_location'])) { + $this->setLocation($parameters[$prefix.'_location']); + } + + if (isset($parameters[$prefix.'_avatar'])) { + $this->setAvatarURL($parameters[$prefix.'_avatar']); + } } - if (isset($parameters[$prefix.'_fullname'])) { - $this->setFullname($parameters[$prefix.'_fullname']); + public function getIdentifierURI() + { + return $this->identifier_uri; } - if (isset($parameters[$prefix.'_homepage'])) { - $this->setHomepage($parameters[$prefix.'_homepage']); + public function getProfileURL() + { + return $this->profile_url; } - if (isset($parameters[$prefix.'_bio'])) { - $this->setBio($parameters[$prefix.'_bio']); + public function getHomepage() + { + return $this->homepage; } - if (isset($parameters[$prefix.'_location'])) { - $this->setLocation($parameters[$prefix.'_location']); + public function getNickname() + { + return $this->nickname; } - if (isset($parameters[$prefix.'_avatar'])) { - $this->setAvatarURL($parameters[$prefix.'_avatar']); - } - } - - public function getIdentifierURI() { - return $this->identifier_uri; - } - - public function getProfileURL() { - return $this->profile_url; - } - - public function getHomepage() { - return $this->homepage; - } - - public function getNickname() { - return $this->nickname; - } - - public function getLicenseURL() { - return $this->license_url; - } - - public function getFullname() { - return $this->fullname; - } - - public function getBio() { - return $this->bio; - } - - public function getLocation() { - return $this->location; - } - - public function getAvatarURL() { - return $this->avatar_url; - } - - public function setProfileURL($profile_url) { - if (!OMB_Helper::validateURL($profile_url)) { - throw new OMB_InvalidParameterException($profile_url, 'profile', - 'omb_listenee_profile or omb_listener_profile'); - } - $this->profile_url = $profile_url; - $this->param_array = false; - } - - public function setNickname($nickname) { - if (!Validate::string($nickname, - array('min_length' => 1, - 'max_length' => 64, - 'format' => VALIDATE_NUM . VALIDATE_ALPHA))) { - throw new OMB_InvalidParameterException($nickname, 'profile', 'nickname'); + public function getLicenseURL() + { + return $this->license_url; } - $this->nickname = $nickname; - $this->param_array = false; - } - - public function setLicenseURL($license_url) { - if (!OMB_Helper::validateURL($license_url)) { - throw new OMB_InvalidParameterException($license_url, 'profile', - 'omb_listenee_license or omb_listener_license'); + public function getFullname() + { + return $this->fullname; } - $this->license_url = $license_url; - $this->param_array = false; - } - public function setFullname($fullname) { - if ($fullname === '') { - $fullname = null; - } elseif (!Validate::string($fullname, array('max_length' => 255))) { - throw new OMB_InvalidParameterException($fullname, 'profile', 'fullname'); + public function getBio() + { + return $this->bio; } - $this->fullname = $fullname; - $this->param_array = false; - } - public function setHomepage($homepage) { - if ($homepage === '') { - $homepage = null; + public function getLocation() + { + return $this->location; } - $this->homepage = $homepage; - $this->param_array = false; - } - public function setBio($bio) { - if ($bio === '') { - $bio = null; - } elseif (!Validate::string($bio, array('max_length' => 140))) { - throw new OMB_InvalidParameterException($bio, 'profile', 'fullname'); + public function getAvatarURL() + { + return $this->avatar_url; } - $this->bio = $bio; - $this->param_array = false; - } - public function setLocation($location) { - if ($location === '') { - $location = null; - } elseif (!Validate::string($location, array('max_length' => 255))) { - throw new OMB_InvalidParameterException($location, 'profile', 'fullname'); + public function setProfileURL($profile_url) + { + $this->setVal('profile', $profile_url, 'OMB_Helper::validateURL', + 'profile_url'); } - $this->location = $location; - $this->param_array = false; - } - public function setAvatarURL($avatar_url) { - if ($avatar_url === '') { - $avatar_url = null; - } elseif (!OMB_Helper::validateURL($avatar_url)) { - throw new OMB_InvalidParameterException($avatar_url, 'profile', - 'omb_listenee_avatar or omb_listener_avatar'); + public function setNickname($nickname) + { + $this->setVal('nickname', $nickname, 'OMB_Profile::validateNickname', + 'nickname', true); } - $this->avatar_url = $avatar_url; - $this->param_array = false; - } + public function setLicenseURL($license_url) + { + $this->setVal('license', $license_url, 'OMB_Helper::validateURL', + 'license_url'); + } + + public function setFullname($fullname) + { + $this->setVal('fullname', $fullname, 'OMB_Profile::validate255'); + } + + public function setHomepage($homepage) + { + $this->setVal('homepage', $homepage, 'OMB_Helper::validateURL'); + } + + public function setBio($bio) + { + $this->setVal('bio', $bio, 'OMB_Profile::validate140'); + } + + public function setLocation($location) + { + $this->setVal('location', $location, 'OMB_Profile::validate255'); + } + + public function setAvatarURL($avatar_url) + { + $this->setVal('avatar', $avatar_url, 'OMB_Helper::validateURL', + 'avatar_url'); + } + + protected static function validate255($str) + { + return Validate::string($str, array('max_length' => 255)); + } + + protected static function validate140($str) + { + return Validate::string($str, array('max_length' => 140)); + } + + protected static function validateNickname($str) + { + return Validate::string($str, + array('min_length' => 1, + 'max_length' => 64, + 'format' => VALIDATE_NUM . VALIDATE_ALPHA)); + } + + /** + * Set a value + * + * Updates a value specified by a parameter name and the new value. + * + * @param string $param The parameter name according to OMB + * @param string $value The new value + * @param callback $validator A validator function for the parameter + * @param string $field The name of the field in OMB_Profile + * @param bool $force Whether null values should be checked as well + */ + protected function setVal($param, $value, $validator, $field = null, + $force = false) + { + if (is_null($field)) { + $field = $param; + } + if ($value === '' && !$force) { + $value = null; + } elseif (!call_user_func($validator, $value)) { + throw new OMB_InvalidParameterException($value, 'profile', $param); + } + if ($this->$field !== $value) { + $this->$field = $value; + $this->param_array = false; + } + } } ?> diff --git a/extlib/libomb/remoteserviceexception.php b/extlib/libomb/remoteserviceexception.php index 374d15973b..f8341e82b6 100755 --- a/extlib/libomb/remoteserviceexception.php +++ b/extlib/libomb/remoteserviceexception.php @@ -1,9 +1,6 @@ <?php /** - * Exception stating that the remote service had a failure - * - * This exception is raised when a remote service failed to return a valid - * response to a request or send a valid request. + * This file is part of libomb * * PHP version 5 * @@ -20,23 +17,57 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ -class OMB_RemoteServiceException extends Exception { - public static function fromYadis($request_uri, $result) { - if ($result->status == 200) { - $err = 'Got wrong response ' . $result->body; - } else { - $err = 'Got error code ' . $result->status . ' with response ' . $result->body; - } - return new OMB_RemoteServiceException($request_uri . ': ' . $err); - } + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ - public static function forRequest($action_uri, $failure) { - return new OMB_RemoteServiceException("Handler for $action_uri: " . $failure); - } +/** + * Exception stating that the remote service had a failure + * + * This exception is raised when a remote service failed to return a valid + * response to a request or send a valid request. + */ +class OMB_RemoteServiceException extends Exception +{ + /** + * Create exception from Yadis response + * + * Creates an exception from a passed yadis result. + * + * @param string $request_uri The target URI for the failed + * request + * @param Auth_Yadis_HTTPResponse $result The result of the failed + * request + * + * @return OMB_RemoteServiceException A new exception + */ + public static function fromYadis($request_uri, $result) + { + if ($result->status == 200) { + $err = 'Got wrong response ' . $result->body; + } else { + $err = 'Got error code ' . $result->status . ' with response ' . + $result->body; + } + return OMB_RemoteServiceException::forRequest($request_uri, $err); + } + + /** + * Create exception for a call to a resource + * + * Creates an exception for a given error message and target URI. + * + * @param string $action_uri The target URI for the failed request + * @param string $failure An error message + * + * @return OMB_RemoteServiceException A new exception + */ + public static function forRequest($action_uri, $failure) + { + return new OMB_RemoteServiceException("Handler for $action_uri: $failure"); + } } ?> diff --git a/extlib/libomb/service_consumer.php b/extlib/libomb/service_consumer.php index 273fd052ec..33ebccc654 100755 --- a/extlib/libomb/service_consumer.php +++ b/extlib/libomb/service_consumer.php @@ -1,19 +1,6 @@ <?php - -require_once 'constants.php'; -require_once 'Validate.php'; -require_once 'Auth/Yadis/Yadis.php'; -require_once 'OAuth.php'; -require_once 'unsupportedserviceexception.php'; -require_once 'remoteserviceexception.php'; -require_once 'omb_yadis_xrds.php'; -require_once 'helper.php'; - /** - * OMB service representation - * - * This class represents a complete remote OMB service. It provides discovery - * and execution of the service’s methods. + * This file is part of libomb * * PHP version 5 * @@ -30,401 +17,445 @@ require_once 'helper.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Service_Consumer { - protected $url; /* The service URL */ - protected $services; /* An array of strings mapping service URI to - service URL */ +require_once 'Validate.php'; +require_once 'Auth/Yadis/Yadis.php'; +require_once 'OAuth.php'; +require_once 'constants.php'; +require_once 'helper.php'; +require_once 'omb_yadis_xrds.php'; +require_once 'profile.php'; +require_once 'remoteserviceexception.php'; +require_once 'unsupportedserviceexception.php'; - protected $token; /* An OAuthToken */ +/** + * OMB service representation + * + * This class represents a complete remote OMB service. It provides discovery + * and execution of the service’s methods. + */ +class OMB_Service_Consumer +{ + protected $url; /* The service URL */ + protected $services; /* An array of strings mapping service URI to + service URL */ - protected $listener_uri; /* The URI identifying the listener, i. e. the - remote user. */ + protected $token; /* An OAuthToken */ - protected $listenee_uri; /* The URI identifying the listenee, i. e. the - local user during an auth request. */ + protected $listener_uri; /* The URI identifying the listener, i. e. the + remote user. */ - /** - * According to OAuth Core 1.0, an user authorization request is no full-blown - * OAuth request. nonce, timestamp, consumer_key and signature are not needed - * in this step. See http://laconi.ca/trac/ticket/827 for more informations. - * - * Since Laconica up to version 0.7.2 performs a full OAuth request check, a - * correct request would fail. - **/ - public $performLegacyAuthRequest = true; + protected $listenee_uri; /* The URI identifying the listenee, i. e. the + local user during an auth request. */ - /* Helper stuff we are going to need. */ - protected $fetcher; - protected $oauth_consumer; - protected $datastore; + /** + * According to OAuth Core 1.0, an user authorization request is no + * full-blown OAuth request. nonce, timestamp, consumer_key and signature + * are not needed in this step. See http://laconi.ca/trac/ticket/827 for + * more informations. + * + * Since Laconica up to version 0.7.2 performs a full OAuth request check, a + * correct request would fail. + */ + public $performLegacyAuthRequest = true; - /** - * Constructor for OMB_Service_Consumer - * - * Initializes an OMB_Service_Consumer object representing the OMB service - * specified by $service_url. Performs a complete service discovery using - * Yadis. - * Throws OMB_UnsupportedServiceException if XRDS file does not specify a - * complete OMB service. - * - * @param string $service_url The URL of the service - * @param string $consumer_url An URL representing the consumer - * @param OMB_Datastore $datastore An instance of a class implementing - * OMB_Datastore - * - * @access public - **/ - public function __construct ($service_url, $consumer_url, $datastore) { - $this->url = $service_url; - $this->fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); - $this->datastore = $datastore; - $this->oauth_consumer = new OAuthConsumer($consumer_url, ''); + /* Helper stuff we are going to need. */ + protected $fetcher; + protected $oauth_consumer; + protected $datastore; - $xrds = OMB_Yadis_XRDS::fromYadisURL($service_url, $this->fetcher); + /** + * Constructor for OMB_Service_Consumer + * + * Initializes an OMB_Service_Consumer object representing the OMB service + * specified by $service_url. Performs a complete service discovery using + * Yadis. + * Throws OMB_UnsupportedServiceException if XRDS file does not specify a + * complete OMB service. + * + * @param string $service_url The URL of the service + * @param string $consumer_url An URL representing the consumer + * @param OMB_Datastore $datastore An instance of a class implementing + * OMB_Datastore + * + * @access public + */ + public function __construct ($service_url, $consumer_url, $datastore) + { + $this->url = $service_url; + $this->fetcher = Auth_Yadis_Yadis::getHTTPFetcher(); + $this->datastore = $datastore; + $this->oauth_consumer = new OAuthConsumer($consumer_url, ''); - /* Detect our services. This performs a validation as well, since - getService und getXRD throw exceptions on failure. */ - $this->services = array(); + $xrds = OMB_Yadis_XRDS::fromYadisURL($service_url, $this->fetcher); - foreach (array(OAUTH_DISCOVERY => OMB_Helper::$OAUTH_SERVICES, - OMB_VERSION => OMB_Helper::$OMB_SERVICES) - as $service_root => $targetservices) { - $uris = $xrds->getService($service_root)->getURIs(); - $xrd = $xrds->getXRD($uris[0]); - foreach ($targetservices as $targetservice) { - $yadis_service = $xrd->getService($targetservice); - if ($targetservice == OAUTH_ENDPOINT_REQUEST) { - $localid = $yadis_service->getElements('xrd:LocalID'); - $this->listener_uri = $yadis_service->parser->content($localid[0]); + /* Detect our services. This performs a validation as well, since + getService und getXRD throw exceptions on failure. */ + $this->services = array(); + + foreach (array(OAUTH_DISCOVERY => OMB_Helper::$OAUTH_SERVICES, + OMB_VERSION => OMB_Helper::$OMB_SERVICES) + as $service_root => $targetservices) { + $uris = $xrds->getService($service_root)->getURIs(); + $xrd = $xrds->getXRD($uris[0]); + foreach ($targetservices as $targetservice) { + $yadis_service = $xrd->getService($targetservice); + if ($targetservice == OAUTH_ENDPOINT_REQUEST) { + $localid = + $yadis_service->getElements('xrd:LocalID'); + $this->listener_uri = + $yadis_service->parser->content($localid[0]); + } + $uris = $yadis_service->getURIs(); + $this->services[$targetservice] = $uris[0]; + } } - $uris = $yadis_service->getURIs(); - $this->services[$targetservice] = $uris[0]; - } - } - } - - /** - * Get the handler URI for a service - * - * Returns the URI the remote web service has specified for the given - * service. - * - * @param string $service The URI identifying the service - * - * @access public - * - * @return string The service handler URI - **/ - public function getServiceURI($service) { - return $this->services[$service]; - } - - /** - * Get the remote user’s URI - * - * Returns the URI of the remote user, i. e. the listener. - * - * @access public - * - * @return string The remote user’s URI - **/ - public function getRemoteUserURI() { - return $this->listener_uri; - } - - /** - * Get the listenee’s URI - * - * Returns the URI of the user being subscribed to, i. e. the local user. - * - * @access public - * - * @return string The local user’s URI - **/ - public function getListeneeURI() { - return $this->listenee_uri; - } - - /** - * Request a request token - * - * Performs a token request on the service. Returns an OAuthToken on success. - * Throws an exception if the request fails. - * - * @access public - * - * @return OAuthToken An unauthorized request token - **/ - public function requestToken() { - /* Set the token to null just in case the user called setToken. */ - $this->token = null; - - $result = $this->performAction(OAUTH_ENDPOINT_REQUEST, - array('omb_listener' => $this->listener_uri)); - if ($result->status != 200) { - throw OMB_RemoteServiceException::fromYadis(OAUTH_ENDPOINT_REQUEST, - $result); - } - parse_str($result->body, $return); - if (!isset($return['oauth_token']) || !isset($return['oauth_token_secret'])) { - throw OMB_RemoteServiceException::fromYadis(OAUTH_ENDPOINT_REQUEST, - $result); - } - $this->setToken($return['oauth_token'], $return['oauth_token_secret']); - return $this->token; - } - - /** - * - * Request authorization - * - * Returns an URL which equals to an authorization request. The end user - * should be redirected to this location to perform authorization. - * The $finish_url should be a local resource which invokes - * OMB_Consumer::finishAuthorization on request. - * - * @param OMB_Profile $profile An OMB_Profile object representing the - * soon-to-be subscribed (i. e. local) user - * @param string $finish_url Target location after successful - * authorization - * - * @access public - * - * @return string An URL representing an authorization request - **/ - public function requestAuthorization($profile, $finish_url) { - if ($this->performLegacyAuthRequest) { - $params = $profile->asParameters('omb_listenee', false); - $params['omb_listener'] = $this->listener_uri; - $params['oauth_callback'] = $finish_url; - - $url = $this->prepareAction(OAUTH_ENDPOINT_AUTHORIZE, $params, 'GET')->to_url(); - } else { - - $params = array( - 'oauth_callback' => $finish_url, - 'oauth_token' => $this->token->key, - 'omb_version' => OMB_VERSION, - 'omb_listener' => $this->listener_uri); - - $params = array_merge($profile->asParameters('omb_listenee', false). $params); - - /* Build result URL. */ - $url = $this->services[OAUTH_ENDPOINT_AUTHORIZE]; - $url .= (strrpos($url, '?') === false ? '?' : '&'); - foreach ($params as $k => $v) { - $url .= OAuthUtil::urlencode_rfc3986($k) . '=' . OAuthUtil::urlencode_rfc3986($v) . '&'; - } } - $this->listenee_uri = $profile->getIdentifierURI(); - - return $url; - } - - /** - * Finish authorization - * - * Finish the subscription process by converting the received and authorized - * request token into an access token. After that, the subscriber’s profile - * and the subscription are stored in the database. - * Expects an OAuthRequest in query parameters. - * Throws exceptions on failure. - * - * @access public - **/ - public function finishAuthorization() { - OMB_Helper::removeMagicQuotesFromRequest(); - $req = OAuthRequest::from_request(); - if ($req->get_parameter('oauth_token') != - $this->token->key) { - /* That’s not the token I wanted to get authorized. */ - throw new OAuthException('The authorized token does not equal the ' . - 'submitted token.'); + /** + * Get the handler URI for a service + * + * Returns the URI the remote web service has specified for the given + * service. + * + * @param string $service The URI identifying the service + * + * @access public + * + * @return string The service handler URI + */ + public function getServiceURI($service) + { + return $this->services[$service]; } - if ($req->get_parameter('omb_version') != OMB_VERSION) { - throw new OMB_RemoteServiceException('The remote service uses an ' . - 'unsupported OMB version'); + /** + * Get the remote user’s URI + * + * Returns the URI of the remote user, i. e. the listener. + * + * @access public + * + * @return string The remote user’s URI + */ + public function getRemoteUserURI() + { + return $this->listener_uri; } - /* Construct the profile to validate it. */ - - /* Fix OMB bug. Listener URI is not passed. */ - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $params = $_POST; - } else { - $params = $_GET; - } - $params['omb_listener'] = $this->listener_uri; - - require_once 'profile.php'; - $listener = OMB_Profile::fromParameters($params, 'omb_listener'); - - /* Ask the remote service to convert the authorized request token into an - access token. */ - - $result = $this->performAction(OAUTH_ENDPOINT_ACCESS, array()); - if ($result->status != 200) { - throw new OAuthException('Could not get access token'); + /** + * Get the listenee’s URI + * + * Returns the URI of the user being subscribed to, i. e. the local user. + * + * @access public + * + * @return string The local user’s URI + */ + public function getListeneeURI() + { + return $this->listenee_uri; } - parse_str($result->body, $return); - if (!isset($return['oauth_token']) || !isset($return['oauth_token_secret'])) { - throw new OAuthException('Could not get access token'); + /** + * Request a request token + * + * Performs a token request on the service. Returns an OAuthToken on success. + * Throws an exception if the request fails. + * + * @access public + * + * @return OAuthToken An unauthorized request token + */ + public function requestToken() + { + /* Set the token to null just in case the user called setToken. */ + $this->token = null; + + $result = $this->performAction(OAUTH_ENDPOINT_REQUEST, + array('omb_listener' => $this->listener_uri)); + if ($result->status != 200) { + throw OMB_RemoteServiceException::fromYadis(OAUTH_ENDPOINT_REQUEST, + $result); + } + parse_str($result->body, $return); + if (!isset($return['oauth_token']) || + !isset($return['oauth_token_secret'])) { + throw OMB_RemoteServiceException::fromYadis(OAUTH_ENDPOINT_REQUEST, + $result); + } + $this->setToken($return['oauth_token'], $return['oauth_token_secret']); + return $this->token; } - $this->setToken($return['oauth_token'], $return['oauth_token_secret']); - /* Subscription is finished and valid. Now store the new subscriber and the - subscription in the database. */ + /** + * Request authorization + * + * Returns an URL which equals to an authorization request. The end user + * should be redirected to this location to perform authorization. + * The $finish_url should be a local resource which invokes + * OMB_Consumer::finishAuthorization on request. + * + * @param OMB_Profile $profile An OMB_Profile object representing the + * soon-to-be subscribed (i. e. local) user + * @param string $finish_url Target location after successful + * authorization + * + * @access public + * + * @return string An URL representing an authorization request + */ + public function requestAuthorization($profile, $finish_url) + { + if ($this->performLegacyAuthRequest) { + $params = $profile->asParameters('omb_listenee', + false); + $params['omb_listener'] = $this->listener_uri; + $params['oauth_callback'] = $finish_url; - $this->datastore->saveProfile($listener); - $this->datastore->saveSubscription($this->listener_uri, - $this->listenee_uri, - $this->token); - } + $url = $this->prepareAction(OAUTH_ENDPOINT_AUTHORIZE, $params, + 'GET')->to_url(); + } else { + $params = array('oauth_callback' => $finish_url, + 'oauth_token' => $this->token->key, + 'omb_version' => OMB_VERSION, + 'omb_listener' => $this->listener_uri); - /** - * Return the URI identifying the listener - * - * Returns the URI for the OMB user who tries to subscribe or already has - * subscribed our user. This method is a workaround for a serious OMB flaw: - * The Listener URI is not passed in the finishauthorization call. - * - * @access public - * - * @return string the listener’s URI - **/ - public function getListenerURI() { - return $this->listener_uri; - } + $params = array_merge($profile->asParameters('omb_listenee', false), + $params); - /** - * Inform the service about a profile update - * - * Sends an updated profile to the service. - * - * @param OMB_Profile $profile The profile that has changed - * - * @access public - **/ - public function updateProfile($profile) { - $params = $profile->asParameters('omb_listenee', true); - $this->performOMBAction(OMB_ENDPOINT_UPDATEPROFILE, $params, $profile->getIdentifierURI()); - } + /* Build result URL. */ + $url = $this->services[OAUTH_ENDPOINT_AUTHORIZE] . + (strrpos($url, '?') === false ? '?' : '&'); + foreach ($params as $k => $v) { + $url .= OAuthUtil::urlencode_rfc3986($k) . '=' . + OAuthUtil::urlencode_rfc3986($v) . '&'; + } + } - /** - * Inform the service about a new notice - * - * Sends a notice to the service. - * - * @param OMB_Notice $notice The notice - * - * @access public - **/ - public function postNotice($notice) { - $params = $notice->asParameters(); - $params['omb_listenee'] = $notice->getAuthor()->getIdentifierURI(); - $this->performOMBAction(OMB_ENDPOINT_POSTNOTICE, $params, $params['omb_listenee']); - } + $this->listenee_uri = $profile->getIdentifierURI(); - /** - * Set the token member variable - * - * Initializes the token based on given token and secret token. - * - * @param string $token The token - * @param string $secret The secret token - * - * @access public - **/ - public function setToken($token, $secret) { - $this->token = new OAuthToken($token, $secret); - } - - /** - * Prepare an OAuthRequest object - * - * Creates an OAuthRequest object mapping the request specified by the - * parameters. - * - * @param string $action_uri The URI specifying the target service - * @param array $params Additional parameters for the service call - * @param string $method The HTTP method used to call the service - * ('POST' or 'GET', usually) - * - * @access protected - * - * @return OAuthRequest the prepared request - **/ - protected function prepareAction($action_uri, $params, $method) { - $url = $this->services[$action_uri]; - - $url_params = array(); - parse_str(parse_url($url, PHP_URL_QUERY), $url_params); - - /* Add OMB version. */ - $url_params['omb_version'] = OMB_VERSION; - - /* Add user-defined parameters. */ - $url_params = array_merge($url_params, $params); - - $req = OAuthRequest::from_consumer_and_token($this->oauth_consumer, - $this->token, $method, $url, $url_params); - - /* Sign the request. */ - $req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), - $this->oauth_consumer, $this->token); - - return $req; - } - - /** - * Perform a service call - * - * Creates an OAuthRequest object and execute the mapped call as POST request. - * - * @param string $action_uri The URI specifying the target service - * @param array $params Additional parameters for the service call - * - * @access protected - * - * @return Auth_Yadis_HTTPResponse The POST request response - **/ - protected function performAction($action_uri, $params) { - $req = $this->prepareAction($action_uri, $params, 'POST'); - - /* Return result page. */ - return $this->fetcher->post($req->get_normalized_http_url(), $req->to_postdata(), array()); - } - - /** - * Perform an OMB action - * - * Executes an OMB action – to date, it’s one of updateProfile or postNotice. - * - * @param string $action_uri The URI specifying the target service - * @param array $params Additional parameters for the service call - * @param string $listenee_uri The URI identifying the local user for whom - * the action is performed - * - * @access protected - **/ - protected function performOMBAction($action_uri, $params, $listenee_uri) { - $result = $this->performAction($action_uri, $params); - if ($result->status == 403) { - /* The remote user unsubscribed us. */ - $this->datastore->deleteSubscription($this->listener_uri, $listenee_uri); - } else if ($result->status != 200 || - strpos($result->body, 'omb_version=' . OMB_VERSION) === false) { - /* The server signaled an error or sent an incorrect response. */ - throw OMB_RemoteServiceException::fromYadis($action_uri, $result); + return $url; + } + + /** + * Finish authorization + * + * Finish the subscription process by converting the received and authorized + * request token into an access token. After that, the subscriber’s profile + * and the subscription are stored in the database. + * Expects an OAuthRequest in query parameters. + * Throws exceptions on failure. + * + * @access public + */ + public function finishAuthorization() + { + OMB_Helper::removeMagicQuotesFromRequest(); + $req = OAuthRequest::from_request(); + if ($req->get_parameter('oauth_token') != $this->token->key) { + /* That’s not the token I wanted to get authorized. */ + throw new OAuthException('The authorized token does not equal ' . + 'the submitted token.'); + } + + if ($req->get_parameter('omb_version') != OMB_VERSION) { + throw new OMB_RemoteServiceException('The remote service uses an ' . + 'unsupported OMB version'); + } + + /* Construct the profile to validate it. */ + + /* Fix OMB bug. Listener URI is not passed. */ + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + $params = $_POST; + } else { + $params = $_GET; + } + $params['omb_listener'] = $this->listener_uri; + + $listener = OMB_Profile::fromParameters($params, 'omb_listener'); + + /* Ask the remote service to convert the authorized request token into + an access token. */ + + $result = $this->performAction(OAUTH_ENDPOINT_ACCESS, array()); + if ($result->status != 200) { + throw new OAuthException('Could not get access token'); + } + + parse_str($result->body, $return); + if (!isset($return['oauth_token']) || + !isset($return['oauth_token_secret'])) { + throw new OAuthException('Could not get access token'); + } + $this->setToken($return['oauth_token'], $return['oauth_token_secret']); + + /* Subscription is finished and valid. Now store the new subscriber and + the subscription in the database. */ + + $this->datastore->saveProfile($listener); + $this->datastore->saveSubscription($this->listener_uri, + $this->listenee_uri, + $this->token); + } + + /** + * Return the URI identifying the listener + * + * Returns the URI for the OMB user who tries to subscribe or already has + * subscribed our user. This method is a workaround for a serious OMB flaw: + * The Listener URI is not passed in the finishauthorization call. + * + * @access public + * + * @return string the listener’s URI + */ + public function getListenerURI() + { + return $this->listener_uri; + } + + /** + * Inform the service about a profile update + * + * Sends an updated profile to the service. + * + * @param OMB_Profile $profile The profile that has changed + * + * @access public + */ + public function updateProfile($profile) + { + $params = $profile->asParameters('omb_listenee', true); + $this->performOMBAction(OMB_ENDPOINT_UPDATEPROFILE, $params, + $profile->getIdentifierURI()); + } + + /** + * Inform the service about a new notice + * + * Sends a notice to the service. + * + * @param OMB_Notice $notice The notice + * + * @access public + */ + public function postNotice($notice) + { + $params = $notice->asParameters(); + $params['omb_listenee'] = $notice->getAuthor()->getIdentifierURI(); + $this->performOMBAction(OMB_ENDPOINT_POSTNOTICE, $params, + $params['omb_listenee']); + } + + /** + * Set the token member variable + * + * Initializes the token based on given token and secret token. + * + * @param string $token The token + * @param string $secret The secret token + * + * @access public + */ + public function setToken($token, $secret) + { + $this->token = new OAuthToken($token, $secret); + } + + /** + * Prepare an OAuthRequest object + * + * Creates an OAuthRequest object mapping the request specified by the + * parameters. + * + * @param string $action_uri The URI specifying the target service + * @param array $params Additional parameters for the service call + * @param string $method The HTTP method used to call the service + * ('POST' or 'GET', usually) + * + * @access protected + * + * @return OAuthRequest the prepared request + */ + protected function prepareAction($action_uri, $params, $method) + { + $url = $this->services[$action_uri]; + + $url_params = array(); + parse_str(parse_url($url, PHP_URL_QUERY), $url_params); + + /* Add OMB version. */ + $url_params['omb_version'] = OMB_VERSION; + + /* Add user-defined parameters. */ + $url_params = array_merge($url_params, $params); + + $req = OAuthRequest::from_consumer_and_token($this->oauth_consumer, + $this->token, $method, + $url, $url_params); + + /* Sign the request. */ + $req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), + $this->oauth_consumer, $this->token); + + return $req; + } + + /** + * Perform a service call + * + * Creates an OAuthRequest object and execute the mapped call as POST + * request. + * + * @param string $action_uri The URI specifying the target service + * @param array $params Additional parameters for the service call + * + * @access protected + * + * @return Auth_Yadis_HTTPResponse The POST request response + */ + protected function performAction($action_uri, $params) + { + $req = $this->prepareAction($action_uri, $params, 'POST'); + + /* Return result page. */ + return $this->fetcher->post($req->get_normalized_http_url(), + $req->to_postdata(), array()); + } + + /** + * Perform an OMB action + * + * Executes an OMB action – as of OMB 0.1, it’s one of updateProfile and + * postNotice. + * + * @param string $action_uri The URI specifying the target service + * @param array $params Additional parameters for the service call + * @param string $listenee_uri The URI identifying the local user for whom + * the action is performed + * + * @access protected + */ + protected function performOMBAction($action_uri, $params, $listenee_uri) + { + $result = $this->performAction($action_uri, $params); + if ($result->status == 403) { + /* The remote user unsubscribed us. */ + $this->datastore->deleteSubscription($this->listener_uri, + $listenee_uri); + } else if ($result->status != 200 || + strpos($result->body, 'omb_version=' . OMB_VERSION) === false) { + /* The server signaled an error or sent an incorrect response. */ + throw OMB_RemoteServiceException::fromYadis($action_uri, $result); + } } - } } +?> diff --git a/extlib/libomb/service_provider.php b/extlib/libomb/service_provider.php index a1c69e86ff..9a1a488a6b 100755 --- a/extlib/libomb/service_provider.php +++ b/extlib/libomb/service_provider.php @@ -1,13 +1,6 @@ <?php - -require_once 'constants.php'; -require_once 'remoteserviceexception.php'; -require_once 'helper.php'; - /** - * OMB service realization - * - * This class realizes a complete, simple OMB service. + * This file is part of libomb * * PHP version 5 * @@ -24,406 +17,445 @@ require_once 'helper.php'; * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -class OMB_Service_Provider { - protected $user; /* An OMB_Profile representing the user */ - protected $datastore; /* AN OMB_Datastore */ +require_once 'constants.php'; +require_once 'helper.php'; +require_once 'notice.php'; +require_once 'remoteserviceexception.php'; - protected $remote_user; /* An OMB_Profile representing the remote user during - the authorization process */ +/** + * OMB service realization + * + * This class realizes a complete, simple OMB service. + */ +class OMB_Service_Provider +{ + protected $user; /* An OMB_Profile representing the user */ + protected $datastore; /* AN OMB_Datastore */ - protected $oauth_server; /* An OAuthServer; should only be accessed via - getOAuthServer. */ + protected $remote_user; /* An OMB_Profile representing the remote user + during the authorization process */ - /** - * Initialize an OMB_Service_Provider object - * - * Constructs an OMB_Service_Provider instance that provides OMB services - * referring to a particular user. - * - * @param OMB_Profile $user An OMB_Profile; mandatory for XRDS - * output, user auth handling and OMB - * action performing - * @param OMB_Datastore $datastore An OMB_Datastore; mandatory for - * everything but XRDS output - * @param OAuthServer $oauth_server An OAuthServer; used for token writing - * and OMB action handling; will use - * default value if not set - * - * @access public - **/ - public function __construct ($user = null, $datastore = null, $oauth_server = null) { - $this->user = $user; - $this->datastore = $datastore; - $this->oauth_server = $oauth_server; - } + protected $oauth_server; /* An OAuthServer; should only be accessed via + getOAuthServer. */ - public function getRemoteUser() { - return $this->remote_user; - } - - /** - * Write a XRDS document - * - * Writes a XRDS document specifying the OMB service. Optionally uses a - * given object of a class implementing OMB_XRDS_Writer for output. Else - * OMB_Plain_XRDS_Writer is used. - * - * @param OMB_XRDS_Mapper $xrds_mapper An object mapping actions to URLs - * @param OMB_XRDS_Writer $xrds_writer Optional; The OMB_XRDS_Writer used to - * write the XRDS document - * - * @access public - * - * @return mixed Depends on the used OMB_XRDS_Writer; OMB_Plain_XRDS_Writer - * returns nothing. - **/ - public function writeXRDS($xrds_mapper, $xrds_writer = null) { - if ($xrds_writer == null) { - require_once 'plain_xrds_writer.php'; - $xrds_writer = new OMB_Plain_XRDS_Writer(); - } - return $xrds_writer->writeXRDS($this->user, $xrds_mapper); - } - - /** - * Echo a request token - * - * Outputs an unauthorized request token for the query found in $_GET or - * $_POST. - * - * @access public - **/ - public function writeRequestToken() { - OMB_Helper::removeMagicQuotesFromRequest(); - echo $this->getOAuthServer()->fetch_request_token(OAuthRequest::from_request()); - } - - /** - * Handle an user authorization request. - * - * Parses an authorization request. This includes OAuth and OMB verification. - * Throws exceptions on failures. Returns an OMB_Profile object representing - * the remote user. - * - * The OMB_Profile passed to the constructor of OMB_Service_Provider should - * not represent the user specified in the authorization request, but the one - * currently logged in to the service. This condition being satisfied, - * handleUserAuth will check whether the listener specified in the request is - * identical to the logged in user. - * - * @access public - * - * @return OMB_Profile The profile of the soon-to-be subscribed, i. e. remote - * user - **/ - public function handleUserAuth() { - OMB_Helper::removeMagicQuotesFromRequest(); - - /* Verify the request token. */ - - $this->token = $this->datastore->lookup_token(null, "request", $_GET['oauth_token']); - if (is_null($this->token)) { - throw new OAuthException('The given request token has not been issued ' . - 'by this service.'); + /** + * Initialize an OMB_Service_Provider object + * + * Constructs an OMB_Service_Provider instance that provides OMB services + * referring to a particular user. + * + * @param OMB_Profile $user An OMB_Profile; mandatory for XRDS + * output, user auth handling and OMB + * action performing + * @param OMB_Datastore $datastore An OMB_Datastore; mandatory for + * everything but XRDS output + * @param OAuthServer $oauth_server An OAuthServer; used for token writing + * and OMB action handling; will use + * default value if not set + * + * @access public + */ + public function __construct ($user = null, $datastore = null, + $oauth_server = null) + { + $this->user = $user; + $this->datastore = $datastore; + $this->oauth_server = $oauth_server; } - /* Verify the OMB part. */ - - if ($_GET['omb_version'] !== OMB_VERSION) { - throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE, - 'Wrong OMB version ' . $_GET['omb_version']); + /** + * Return the remote user during user authorization + * + * Returns an OMB_Profile representing the remote user during the user + * authorization request. + * + * @return OMB_Profile The remote user + */ + public function getRemoteUser() + { + return $this->remote_user; } - if ($_GET['omb_listener'] !== $this->user->getIdentifierURI()) { - throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE, - 'Wrong OMB listener ' . $_GET['omb_listener']); - } - - foreach (array('omb_listenee', 'omb_listenee_profile', - 'omb_listenee_nickname', 'omb_listenee_license') as $param) { - if (!isset($_GET[$param]) || is_null($_GET[$param])) { - throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE, - "Required parameter '$param' not found"); - } - } - - /* Store given callback for later use. */ - if (isset($_GET['oauth_callback']) && $_GET['oauth_callback'] !== '') { - $this->callback = $_GET['oauth_callback']; - if (!OMB_Helper::validateURL($this->callback)) { - throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE, - 'Invalid callback URL specified'); - } - } - $this->remote_user = OMB_Profile::fromParameters($_GET, 'omb_listenee'); - - return $this->remote_user; - } - - /** - * Continue the OAuth dance after user authorization - * - * Performs the appropriate actions after user answered the authorization - * request. - * - * @param bool $accepted Whether the user granted authorization - * - * @access public - * - * @return array A two-component array with the values: - * - callback The callback URL or null if none given - * - token The authorized request token or null if not - * authorized. - **/ - public function continueUserAuth($accepted) { - $callback = $this->callback; - if (!$accepted) { - $this->datastore->revoke_token($this->token->key); - $this->token = null; - /* TODO: The handling is probably wrong in terms of OAuth 1.0 but the way - laconica works. Moreover I don’t know the right way either. */ - - } else { - $this->datastore->authorize_token($this->token->key); - $this->datastore->saveProfile($this->remote_user); - $this->datastore->saveSubscription($this->user->getIdentifierURI(), - $this->remote_user->getIdentifierURI(), $this->token); - - if (!is_null($this->callback)) { - /* Callback wants to get some informations as well. */ - $params = $this->user->asParameters('omb_listener', false); - - $params['oauth_token'] = $this->token->key; - $params['omb_version'] = OMB_VERSION; - - $callback .= (parse_url($this->callback, PHP_URL_QUERY) ? '&' : '?'); - foreach ($params as $k => $v) { - $callback .= OAuthUtil::urlencode_rfc3986($k) . '=' . - OAuthUtil::urlencode_rfc3986($v) . '&'; + /** + * Write a XRDS document + * + * Writes a XRDS document specifying the OMB service. Optionally uses a + * given object of a class implementing OMB_XRDS_Writer for output. Else + * OMB_Plain_XRDS_Writer is used. + * + * @param OMB_XRDS_Mapper $xrds_mapper An object mapping actions to URLs + * @param OMB_XRDS_Writer $xrds_writer Optional; The OMB_XRDS_Writer used to + * write the XRDS document + * + * @access public + * + * @return mixed Depends on the used OMB_XRDS_Writer; OMB_Plain_XRDS_Writer + * returns nothing. + */ + public function writeXRDS($xrds_mapper, $xrds_writer = null) + { + if ($xrds_writer == null) { + require_once 'plain_xrds_writer.php'; + $xrds_writer = new OMB_Plain_XRDS_Writer(); } - } + return $xrds_writer->writeXRDS($this->user, $xrds_mapper); } - return array($callback, $this->token); - } - /** - * Echo an access token - * - * Outputs an access token for the query found in $_POST. OMB 0.1 specifies - * that the access token request has to be a POST even if OAuth allows GET as - * well. - * - * @access public - **/ - public function writeAccessToken() { - OMB_Helper::removeMagicQuotesFromRequest(); - echo $this->getOAuthServer()->fetch_access_token( + /** + * Echo a request token + * + * Outputs an unauthorized request token for the query found in $_GET or + * $_POST. + * + * @access public + */ + public function writeRequestToken() + { + OMB_Helper::removeMagicQuotesFromRequest(); + echo $this->getOAuthServer()->fetch_request_token( + OAuthRequest::from_request()); + } + + /** + * Handle an user authorization request. + * + * Parses an authorization request. This includes OAuth and OMB + * verification. + * Throws exceptions on failures. Returns an OMB_Profile object representing + * the remote user. + * + * The OMB_Profile passed to the constructor of OMB_Service_Provider should + * not represent the user specified in the authorization request, but the + * one currently logged in to the service. This condition being satisfied, + * handleUserAuth will check whether the listener specified in the request + * is identical to the logged in user. + * + * @access public + * + * @return OMB_Profile The profile of the soon-to-be subscribed, i. e. + * remote user + */ + public function handleUserAuth() + { + OMB_Helper::removeMagicQuotesFromRequest(); + + /* Verify the request token. */ + + $this->token = $this->datastore->lookup_token(null, "request", + $_GET['oauth_token']); + if (is_null($this->token)) { + throw new OAuthException('The given request token has not been ' . + 'issued by this service.'); + } + + /* Verify the OMB part. */ + + if ($_GET['omb_version'] !== OMB_VERSION) { + throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE, + 'Wrong OMB version ' . + $_GET['omb_version']); + } + + if ($_GET['omb_listener'] !== $this->user->getIdentifierURI()) { + throw OMB_RemoteServiceException::forRequest(OAUTH_ENDPOINT_AUTHORIZE, + 'Wrong OMB listener ' . + $_GET['omb_listener']); + } + + foreach (array('omb_listenee', 'omb_listenee_profile', + 'omb_listenee_nickname', 'omb_listenee_license') as $param) { + if (!isset($_GET[$param]) || is_null($_GET[$param])) { + throw OMB_RemoteServiceException::forRequest( + OAUTH_ENDPOINT_AUTHORIZE, + "Required parameter '$param' not found"); + } + } + + /* Store given callback for later use. */ + if (isset($_GET['oauth_callback']) && $_GET['oauth_callback'] !== '') { + $this->callback = $_GET['oauth_callback']; + if (!OMB_Helper::validateURL($this->callback)) { + throw OMB_RemoteServiceException::forRequest( + OAUTH_ENDPOINT_AUTHORIZE, + 'Invalid callback URL specified'); + } + } + $this->remote_user = OMB_Profile::fromParameters($_GET, 'omb_listenee'); + + return $this->remote_user; + } + + /** + * Continue the OAuth dance after user authorization + * + * Performs the appropriate actions after user answered the authorization + * request. + * + * @param bool $accepted Whether the user granted authorization + * + * @access public + * + * @return array A two-component array with the values: + * - callback The callback URL or null if none given + * - token The authorized request token or null if not + * authorized. + */ + public function continueUserAuth($accepted) + { + $callback = $this->callback; + if (!$accepted) { + $this->datastore->revoke_token($this->token->key); + $this->token = null; + + } else { + $this->datastore->authorize_token($this->token->key); + $this->datastore->saveProfile($this->remote_user); + $this->datastore->saveSubscription($this->user->getIdentifierURI(), + $this->remote_user->getIdentifierURI(), + $this->token); + + if (!is_null($this->callback)) { + /* Callback wants to get some informations as well. */ + $params = $this->user->asParameters('omb_listener', false); + + $params['oauth_token'] = $this->token->key; + $params['omb_version'] = OMB_VERSION; + + $callback .= (parse_url($this->callback, PHP_URL_QUERY) ? '&' : '?'); + foreach ($params as $k => $v) { + $callback .= OAuthUtil::urlencode_rfc3986($k) . '=' . + OAuthUtil::urlencode_rfc3986($v) . '&'; + } + } + } + return array($callback, $this->token); + } + + /** + * Echo an access token + * + * Outputs an access token for the query found in $_POST. OMB 0.1 specifies + * that the access token request has to be a POST even if OAuth allows GET + * as well. + * + * @access public + */ + public function writeAccessToken() + { + OMB_Helper::removeMagicQuotesFromRequest(); + echo $this->getOAuthServer()->fetch_access_token( OAuthRequest::from_request('POST')); - } - - /** - * Handle an updateprofile request - * - * Handles an updateprofile request posted to this service. Updates the - * profile through the OMB_Datastore. - * - * @access public - * - * @return OMB_Profile The updated profile - **/ - public function handleUpdateProfile() { - list($req, $profile) = $this->handleOMBRequest(OMB_ENDPOINT_UPDATEPROFILE); - $profile->updateFromParameters($req->get_parameters(), 'omb_listenee'); - $this->datastore->saveProfile($profile); - $this->finishOMBRequest(); - return $profile; - } - - /** - * Handle a postnotice request - * - * Handles a postnotice request posted to this service. Saves the notice - * through the OMB_Datastore. - * - * @access public - * - * @return OMB_Notice The received notice - **/ - public function handlePostNotice() { - list($req, $profile) = $this->handleOMBRequest(OMB_ENDPOINT_POSTNOTICE); - require_once 'notice.php'; - $notice = OMB_Notice::fromParameters($profile, $req->get_parameters()); - $this->datastore->saveNotice($notice); - $this->finishOMBRequest(); - return $notice; - } - - /** - * Handle an OMB request - * - * Performs common OMB request handling. - * - * @param string $uri The URI defining the OMB endpoint being served - * - * @access protected - * - * @return array(OAuthRequest, OMB_Profile) - **/ - protected function handleOMBRequest($uri) { - - OMB_Helper::removeMagicQuotesFromRequest(); - $req = OAuthRequest::from_request('POST'); - $listenee = $req->get_parameter('omb_listenee'); - - try { - list($consumer, $token) = $this->getOAuthServer()->verify_request($req); - } catch (OAuthException $e) { - header('HTTP/1.1 403 Forbidden'); - // @debug hack - throw OMB_RemoteServiceException::forRequest($uri, - 'Revoked accesstoken for ' . $listenee . ': ' . $e->getMessage()); - // @end debug - throw OMB_RemoteServiceException::forRequest($uri, - 'Revoked accesstoken for ' . $listenee); } - $version = $req->get_parameter('omb_version'); - if ($version !== OMB_VERSION) { - header('HTTP/1.1 400 Bad Request'); - throw OMB_RemoteServiceException::forRequest($uri, - 'Wrong OMB version ' . $version); + /** + * Handle an updateprofile request + * + * Handles an updateprofile request posted to this service. Updates the + * profile through the OMB_Datastore. + * + * @access public + * + * @return OMB_Profile The updated profile + */ + public function handleUpdateProfile() + { + list($req, $profile) = $this->handleOMBRequest(OMB_ENDPOINT_UPDATEPROFILE); + $profile->updateFromParameters($req->get_parameters(), 'omb_listenee'); + $this->datastore->saveProfile($profile); + $this->finishOMBRequest(); + return $profile; } - $profile = $this->datastore->getProfile($listenee); - if (is_null($profile)) { - header('HTTP/1.1 400 Bad Request'); - throw OMB_RemoteServiceException::forRequest($uri, - 'Unknown remote profile ' . $listenee); + /** + * Handle a postnotice request + * + * Handles a postnotice request posted to this service. Saves the notice + * through the OMB_Datastore. + * + * @access public + * + * @return OMB_Notice The received notice + */ + public function handlePostNotice() + { + list($req, $profile) = $this->handleOMBRequest(OMB_ENDPOINT_POSTNOTICE); + + $notice = OMB_Notice::fromParameters($profile, $req->get_parameters()); + $this->datastore->saveNotice($notice); + $this->finishOMBRequest(); + + return $notice; } - $subscribers = $this->datastore->getSubscriptions($listenee); - if (count($subscribers) === 0) { - header('HTTP/1.1 403 Forbidden'); - throw OMB_RemoteServiceException::forRequest($uri, - 'No subscriber for ' . $listenee); + /** + * Handle an OMB request + * + * Performs common OMB request handling. + * + * @param string $uri The URI defining the OMB endpoint being served + * + * @access protected + * + * @return array(OAuthRequest, OMB_Profile) + */ + protected function handleOMBRequest($uri) + { + OMB_Helper::removeMagicQuotesFromRequest(); + $req = OAuthRequest::from_request('POST'); + $listenee = $req->get_parameter('omb_listenee'); + + try { + list($consumer, $token) = $this->getOAuthServer()->verify_request($req); + } catch (OAuthException $e) { + header('HTTP/1.1 403 Forbidden'); + throw OMB_RemoteServiceException::forRequest($uri, + 'Revoked accesstoken for ' . $listenee); + } + + $version = $req->get_parameter('omb_version'); + if ($version !== OMB_VERSION) { + header('HTTP/1.1 400 Bad Request'); + throw OMB_RemoteServiceException::forRequest($uri, + 'Wrong OMB version ' . $version); + } + + $profile = $this->datastore->getProfile($listenee); + if (is_null($profile)) { + header('HTTP/1.1 400 Bad Request'); + throw OMB_RemoteServiceException::forRequest($uri, + 'Unknown remote profile ' . $listenee); + } + + $subscribers = $this->datastore->getSubscriptions($listenee); + if (count($subscribers) === 0) { + header('HTTP/1.1 403 Forbidden'); + throw OMB_RemoteServiceException::forRequest($uri, + 'No subscriber for ' . $listenee); + } + + return array($req, $profile); } - return array($req, $profile); - } + /** + * Finishes an OMB request handling + * + * Performs common OMB request handling finishing. + * + * @access protected + */ + protected function finishOMBRequest() + { + header('HTTP/1.1 200 OK'); + header('Content-type: text/plain'); + /* There should be no clutter but the version. */ + echo "omb_version=" . OMB_VERSION; + } - /** - * Finishes an OMB request handling - * - * Performs common OMB request handling finishing. - * - * @access protected - **/ - protected function finishOMBRequest() { - header('HTTP/1.1 200 OK'); - header('Content-type: text/plain'); - /* There should be no clutter but the version. */ - echo "omb_version=" . OMB_VERSION; - } - - /** - * Return an OAuthServer - * - * Checks whether the OAuthServer is null. If so, initializes it with a - * default value. Returns the OAuth server. - * - * @access protected - **/ - protected function getOAuthServer() { - if (is_null($this->oauth_server)) { - $this->oauth_server = new OAuthServer($this->datastore); - $this->oauth_server->add_signature_method( + /** + * Return an OAuthServer + * + * Checks whether the OAuthServer is null. If so, initializes it with a + * default value. Returns the OAuth server. + * + * @access protected + */ + protected function getOAuthServer() + { + if (is_null($this->oauth_server)) { + $this->oauth_server = new OAuthServer($this->datastore); + $this->oauth_server->add_signature_method( new OAuthSignatureMethod_HMAC_SHA1()); - } - return $this->oauth_server; - } - - /** - * Publish a notice - * - * Posts an OMB notice. This includes storing the notice and posting it to - * subscribed users. - * - * @param OMB_Notice $notice The new notice - * - * @access public - * - * @return array An array mapping subscriber URIs to the exception posting to - * them has raised; Empty array if no exception occured - **/ - public function postNotice($notice) { - $uri = $this->user->getIdentifierURI(); - - /* $notice is passed by reference and may change. */ - $this->datastore->saveNotice($notice); - $subscribers = $this->datastore->getSubscriptions($uri); - - /* No one to post to. */ - if (is_null($subscribers)) { - return array(); + } + return $this->oauth_server; } - require_once 'service_consumer.php'; + /** + * Publish a notice + * + * Posts an OMB notice. This includes storing the notice and posting it to + * subscribed users. + * + * @param OMB_Notice $notice The new notice + * + * @access public + * + * @return array An array mapping subscriber URIs to the exception posting + * to them has raised; Empty array if no exception occured + */ + public function postNotice($notice) + { + $uri = $this->user->getIdentifierURI(); - $err = array(); - foreach($subscribers as $subscriber) { - try { - $service = new OMB_Service_Consumer($subscriber['uri'], $uri, $this->datastore); - $service->setToken($subscriber['token'], $subscriber['secret']); - $service->postNotice($notice); - } catch (Exception $e) { - $err[$subscriber['uri']] = $e; - continue; - } - } - return $err; - } + /* $notice is passed by reference and may change. */ + $this->datastore->saveNotice($notice); + $subscribers = $this->datastore->getSubscriptions($uri); - /** - * Publish a profile update - * - * Posts the current profile as an OMB profile update. This includes updating - * the stored profile and posting it to subscribed users. - * - * @access public - * - * @return array An array mapping subscriber URIs to the exception posting to - * them has raised; Empty array if no exception occured - **/ - public function updateProfile() { - $uri = $this->user->getIdentifierURI(); + /* No one to post to. */ + if (is_null($subscribers)) { + return array(); + } - $this->datastore->saveProfile($this->user); - $subscribers = $this->datastore->getSubscriptions($uri); + require_once 'service_consumer.php'; - /* No one to post to. */ - if (is_null($subscribers)) { - return array(); + $err = array(); + foreach ($subscribers as $subscriber) { + try { + $service = new OMB_Service_Consumer($subscriber['uri'], $uri, + $this->datastore); + $service->setToken($subscriber['token'], $subscriber['secret']); + $service->postNotice($notice); + } catch (Exception $e) { + $err[$subscriber['uri']] = $e; + continue; + } + } + return $err; } - require_once 'service_consumer.php'; + /** + * Publish a profile update + * + * Posts the current profile as an OMB profile update. This includes + * updating the stored profile and posting it to subscribed users. + * + * @access public + * + * @return array An array mapping subscriber URIs to the exception posting + * to them has raised; Empty array if no exception occured + */ + public function updateProfile() + { + $uri = $this->user->getIdentifierURI(); - $err = array(); - foreach($subscribers as $subscriber) { - try { - $service = new OMB_Service_Consumer($subscriber['uri'], $uri, $this->datastore); - $service->setToken($subscriber['token'], $subscriber['secret']); - $service->updateProfile($this->user); - } catch (Exception $e) { - $err[$subscriber['uri']] = $e; - continue; - } + $this->datastore->saveProfile($this->user); + $subscribers = $this->datastore->getSubscriptions($uri); + + /* No one to post to. */ + if (is_null($subscribers)) { + return array(); + } + + require_once 'service_consumer.php'; + + $err = array(); + foreach ($subscribers as $subscriber) { + try { + $service = new OMB_Service_Consumer($subscriber['uri'], $uri, + $this->datastore); + $service->setToken($subscriber['token'], $subscriber['secret']); + $service->updateProfile($this->user); + } catch (Exception $e) { + $err[$subscriber['uri']] = $e; + continue; + } + } + return $err; } - return $err; - } } diff --git a/extlib/libomb/unsupportedserviceexception.php b/extlib/libomb/unsupportedserviceexception.php index 4dab63ebee..be30a1f69b 100755 --- a/extlib/libomb/unsupportedserviceexception.php +++ b/extlib/libomb/unsupportedserviceexception.php @@ -1,9 +1,6 @@ <?php /** - * Exception stating that a requested service is not available - * - * This exception is raised when OMB_Service is asked to call a service the remote - * server does not provide. + * This file is part of libomb * * PHP version 5 * @@ -20,12 +17,20 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ -class OMB_UnsupportedServiceException extends Exception { + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ +/** + * Exception stating that a requested service is not available + * + * This exception is raised when OMB_Service is asked to call a service the + * remote server does not provide. + */ +class OMB_UnsupportedServiceException extends Exception +{ } ?> diff --git a/extlib/libomb/xrds_mapper.php b/extlib/libomb/xrds_mapper.php index 7552154e55..8fbe65249c 100755 --- a/extlib/libomb/xrds_mapper.php +++ b/extlib/libomb/xrds_mapper.php @@ -1,10 +1,6 @@ <?php /** - * Map XRDS actions to URLs - * - * This interface specifies classes which write the XRDS file announcing - * the OMB server. An instance of an implementing class should be passed to - * OMB_Service_Provider->writeXRDS. + * This file is part of libomb * * PHP version 5 * @@ -21,13 +17,31 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -interface OMB_XRDS_Mapper { - public function getURL($action); +/** + * Map XRDS actions to URLs + * + * This interface specifies classes which write the XRDS file announcing + * the OMB server. An instance of an implementing class should be passed to + * OMB_Service_Provider->writeXRDS. + */ +interface OMB_XRDS_Mapper +{ + /** + * Fetch an URL for a specified action + * + * Returns the action URL for an action specified by the endpoint URI. + * + * @param string $action The endpoint URI + * + * @return string The action URL + */ + public function getURL($action); } ?> diff --git a/extlib/libomb/xrds_writer.php b/extlib/libomb/xrds_writer.php index 31b451b9ce..c7939d60ad 100755 --- a/extlib/libomb/xrds_writer.php +++ b/extlib/libomb/xrds_writer.php @@ -1,10 +1,6 @@ <?php /** - * Write OMB-specific XRDS - * - * This interface specifies classes which write the XRDS file announcing - * the OMB server. An instance of an implementing class should be passed to - * OMB_Service_Provider->writeXRDS. + * This file is part of libomb * * PHP version 5 * @@ -21,13 +17,30 @@ * 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/>. * - * @package OMB - * @author Adrian Lang <mail@adrianlang.de> - * @copyright 2009 Adrian Lang - * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 - **/ + * @package OMB + * @author Adrian Lang <mail@adrianlang.de> + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 + * @version 0.1a-20090828 + * @link http://adrianlang.de/libomb + */ -interface OMB_XRDS_Writer { - public function writeXRDS($user, $mapper); +/** + * Write OMB-specific XRDS + * + * This interface specifies classes which write the XRDS file announcing + * the OMB server. An instance of an implementing class should be passed to + * OMB_Service_Provider->writeXRDS. + */ +interface OMB_XRDS_Writer +{ + /** + * Write XRDS + * + * Outputs a XRDS document specifying an OMB service. + * + * @param OMB_profile $user The target user for the OMB service + * @param OMB_XRDS_Mapper $mapper An OMB_XRDS_Mapper providing endpoint URLs + */ + public function writeXRDS($user, $mapper); } ?> diff --git a/js/util.js b/js/util.js index 29b33097b1..6a67da4bcd 100644 --- a/js/util.js +++ b/js/util.js @@ -258,9 +258,10 @@ var SN = { // StatusNet form.append('<p class="form_response success">'+result+'</p>'); } else { + // New notice post was successful. If on our timeline, show it! + var notice = document._importNode($('li', data)[0], true); var notices = $('#notices_primary .notices'); - if (notices.length > 0) { - var notice = document._importNode($('li', data)[0], true); + if (notices.length > 0 && SN.U.belongsOnTimeline(notice)) { if ($('#'+notice.id).length === 0) { var notice_irt_value = $('#'+SN.C.S.NoticeInReplyTo).val(); var notice_irt = '#notices_primary #notice-'+notice_irt_value; @@ -281,6 +282,8 @@ var SN = { // StatusNet } } else { + // Not on a timeline that this belongs on? + // Just show a success message. result = document._importNode($('title', data)[0], true); result_title = result.textContent || result.innerHTML; form.append('<p class="form_response success">'+result_title+'</p>'); @@ -707,6 +710,38 @@ var SN = { // StatusNet Delete: function() { $.cookie(SN.C.S.StatusNetInstance, null); } + }, + + /** + * Check if the current page is a timeline where the current user's + * posts should be displayed immediately on success. + * + * @fixme this should be done in a saner way, with machine-readable + * info about what page we're looking at. + */ + belongsOnTimeline: function(notice) { + var action = $("body").attr('id'); + if (action == 'public') { + return true; + } + + var profileLink = $('#nav_profile a').attr('href'); + if (profileLink) { + var authorUrl = $(notice).find('.entry-title .author a.url').attr('href'); + if (authorUrl == profileLink) { + if (action == 'all' || action == 'showstream') { + // Posts always show on your own friends and profile streams. + return true; + } + } + } + + // @fixme tag, group, reply timelines should be feasible as well. + // Mismatch between id-based and name-based user/group links currently complicates + // the lookup, since all our inline mentions contain the absolute links but the + // UI links currently on the page use malleable names. + + return false; } }, diff --git a/lib/activitycontext.php b/lib/activitycontext.php index 2df7613f7d..5afbb7fd28 100644 --- a/lib/activitycontext.php +++ b/lib/activitycontext.php @@ -51,6 +51,7 @@ class ActivityContext const POINT = 'point'; const ATTENTION = 'ostatus:attention'; + const MENTIONED = 'mentioned'; const CONVERSATION = 'ostatus:conversation'; function __construct($element) @@ -76,8 +77,12 @@ class ActivityContext $linkRel = $link->getAttribute(ActivityUtils::REL); + // XXX: Deprecate this in favour of "mentioned" from Salmon spec + // http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-salmon-00.html#SALR if ($linkRel == self::ATTENTION) { $this->attention[] = $link->getAttribute(self::HREF); + } elseif ($linkRel == self::MENTIONED) { + $this->attention[] = $link->getAttribute(self::HREF); } } } diff --git a/lib/activityutils.php b/lib/activityutils.php index 401fd7fc28..dd38d4e142 100644 --- a/lib/activityutils.php +++ b/lib/activityutils.php @@ -257,6 +257,12 @@ class ActivityUtils */ static function validateUri($uri) { + // Check mailto: URIs first + + if (preg_match('/^mailto:(.*)$/', $uri, $match)) { + return Validate::email($match[1], common_config('email', 'check_domain')); + } + if (Validate::uri($uri)) { return true; } diff --git a/lib/apiaction.php b/lib/apiaction.php index e6b5164532..432b324532 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -27,7 +27,7 @@ * @author Jeffery To <jeffery.to@gmail.com> * @author Toby Inkster <mail@tobyinkster.co.uk> * @author Zach Copley <zach@status.net> - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-2010 StatusNet, Inc. * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ @@ -128,6 +128,7 @@ class ApiAction extends Action var $max_id = null; var $since_id = null; var $source = null; + var $callback = null; var $access = self::READ_ONLY; // read (default) or read-write @@ -147,6 +148,7 @@ class ApiAction extends Action parent::prepare($args); $this->format = $this->arg('format'); + $this->callback = $this->arg('callback'); $this->page = (int)$this->arg('page', 1); $this->count = (int)$this->arg('count', 20); $this->max_id = (int)$this->arg('max_id', 0); @@ -463,6 +465,7 @@ class ApiAction extends Action function twitterRssEntryArray($notice) { $profile = $notice->getProfile(); + $entry = array(); // We trim() to avoid extraneous whitespace in the output @@ -735,14 +738,16 @@ class ApiAction extends Action 'xmlns:statusnet' => 'http://status.net/schema/api/1/')); if (is_array($notice)) { - foreach ($notice as $n) { - $twitter_status = $this->twitterStatusArray($n); - $this->showTwitterXmlStatus($twitter_status); - } - } else { - while ($notice->fetch()) { + $notice = new ArrayWrapper($notice); + } + + while ($notice->fetch()) { + try { $twitter_status = $this->twitterStatusArray($notice); $this->showTwitterXmlStatus($twitter_status); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + continue; } } @@ -790,14 +795,16 @@ class ApiAction extends Action $this->element('ttl', null, '40'); if (is_array($notice)) { - foreach ($notice as $n) { - $entry = $this->twitterRssEntryArray($n); - $this->showTwitterRssItem($entry); - } - } else { - while ($notice->fetch()) { + $notice = new ArrayWrapper($notice); + } + + while ($notice->fetch()) { + try { $entry = $this->twitterRssEntryArray($notice); $this->showTwitterRssItem($entry); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + // continue on exceptions } } @@ -833,12 +840,15 @@ class ApiAction extends Action $this->element('subtitle', null, $subtitle); if (is_array($notice)) { - foreach ($notice as $n) { - $this->raw($n->asAtomEntry()); - } - } else { - while ($notice->fetch()) { + $notice = new ArrayWrapper($notice); + } + + while ($notice->fetch()) { + try { $this->raw($notice->asAtomEntry()); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + continue; } } @@ -1033,14 +1043,16 @@ class ApiAction extends Action $statuses = array(); if (is_array($notice)) { - foreach ($notice as $n) { - $twitter_status = $this->twitterStatusArray($n); - array_push($statuses, $twitter_status); - } - } else { - while ($notice->fetch()) { + $notice = new ArrayWrapper($notice); + } + + while ($notice->fetch()) { + try { $twitter_status = $this->twitterStatusArray($notice); array_push($statuses, $twitter_status); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + continue; } } @@ -1177,9 +1189,8 @@ class ApiAction extends Action header('Content-Type: application/json; charset=utf-8'); // Check for JSONP callback - $callback = $this->arg('callback'); - if ($callback) { - print $callback . '('; + if (isset($this->callback)) { + print $this->callback . '('; } break; case 'rss': @@ -1208,8 +1219,7 @@ class ApiAction extends Action case 'json': // Check for JSONP callback - $callback = $this->arg('callback'); - if ($callback) { + if (isset($this->callback)) { print ')'; } break; @@ -1239,7 +1249,10 @@ class ApiAction extends Action $status_string = ClientErrorAction::$status[$code]; - header('HTTP/1.1 '.$code.' '.$status_string); + // Do not emit error header for JSONP + if (!isset($this->callback)) { + header('HTTP/1.1 '.$code.' '.$status_string); + } if ($format == 'xml') { $this->initDocument('xml'); @@ -1272,7 +1285,10 @@ class ApiAction extends Action $status_string = ServerErrorAction::$status[$code]; - header('HTTP/1.1 '.$code.' '.$status_string); + // Do not emit error header for JSONP + if (!isset($this->callback)) { + header('HTTP/1.1 '.$code.' '.$status_string); + } if ($content_type == 'xml') { $this->initDocument('xml'); @@ -1376,6 +1392,34 @@ class ApiAction extends Action } } + function getTargetProfile($id) + { + if (empty($id)) { + + // Twitter supports these other ways of passing the user ID + if (is_numeric($this->arg('id'))) { + return Profile::staticGet($this->arg('id')); + } else if ($this->arg('id')) { + $nickname = common_canonical_nickname($this->arg('id')); + return Profile::staticGet('nickname', $nickname); + } else if ($this->arg('user_id')) { + // This is to ensure that a non-numeric user_id still + // overrides screen_name even if it doesn't get used + if (is_numeric($this->arg('user_id'))) { + return Profile::staticGet('id', $this->arg('user_id')); + } + } else if ($this->arg('screen_name')) { + $nickname = common_canonical_nickname($this->arg('screen_name')); + return Profile::staticGet('nickname', $nickname); + } + } else if (is_numeric($id)) { + return Profile::staticGet($id); + } else { + $nickname = common_canonical_nickname($id); + return Profile::staticGet('nickname', $nickname); + } + } + function getTargetGroup($id) { if (empty($id)) { diff --git a/lib/apiauth.php b/lib/apiauth.php index 91cb64262b..cf7a2692ca 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -227,7 +227,7 @@ class ApiAuthAction extends ApiAction } catch (OAuthException $e) { common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage()); - $this->showAuthError(); + $this->clientError($e->getMessage(), 401, $this->format); exit; } } @@ -265,7 +265,7 @@ class ApiAuthAction extends ApiAction // show error if the user clicks 'cancel' - $this->showAuthError(); + $this->clientError("Could not authenticate you.", 401, $this->format); exit; } else { @@ -298,7 +298,7 @@ class ApiAuthAction extends ApiAction $proxy, $ip); common_log(LOG_WARNING, $msg); - $this->showAuthError(); + $this->clientError("Could not authenticate you.", 401, $this->format); exit; } } @@ -345,36 +345,4 @@ class ApiAuthAction extends ApiAction } } } - - /** - * Output an authentication error message. Use XML or JSON if one - * of those formats is specified, otherwise output plain text - * - * @return void - */ - - function showAuthError() - { - header('HTTP/1.1 401 Unauthorized'); - $msg = 'Could not authenticate you.'; - - if ($this->format == 'xml') { - header('Content-Type: application/xml; charset=utf-8'); - $this->startXML(); - $this->elementStart('hash'); - $this->element('error', null, $msg); - $this->element('request', null, $_SERVER['REQUEST_URI']); - $this->elementEnd('hash'); - $this->endXML(); - } elseif ($this->format == 'json') { - header('Content-Type: application/json; charset=utf-8'); - $error_array = array('error' => $msg, - 'request' => $_SERVER['REQUEST_URI']); - print(json_encode($error_array)); - } else { - header('Content-type: text/plain'); - print "$msg\n"; - } - } - } diff --git a/lib/atomnoticefeed.php b/lib/atomnoticefeed.php index 6ed803ce4e..b882172918 100644 --- a/lib/atomnoticefeed.php +++ b/lib/atomnoticefeed.php @@ -125,12 +125,17 @@ class AtomNoticeFeed extends Atom10Feed */ function addEntryFromNotice($notice) { - $source = $this->showSource(); - $author = $this->showAuthor(); + try { + $source = $this->showSource(); + $author = $this->showAuthor(); - $cur = empty($this->cur) ? common_current_user() : $this->cur; + $cur = empty($this->cur) ? common_current_user() : $this->cur; - $this->addEntryRaw($notice->asAtomEntry(false, $source, $author, $cur)); + $this->addEntryRaw($notice->asAtomEntry(false, $source, $author, $cur)); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + // we continue on exceptions + } } function showSource() diff --git a/lib/common.php b/lib/common.php index 72a1b70751..f04bd64b77 100644 --- a/lib/common.php +++ b/lib/common.php @@ -22,10 +22,10 @@ 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.2'); +define('STATUSNET_VERSION', '0.9.3'); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility -define('STATUSNET_CODENAME', 'King of Birds'); +define('STATUSNET_CODENAME', 'Half a World Away'); define('AVATAR_PROFILE_SIZE', 96); define('AVATAR_STREAM_SIZE', 48); diff --git a/lib/installer.php b/lib/installer.php index bd9d69cd4a..ff2bed1403 100644 --- a/lib/installer.php +++ b/lib/installer.php @@ -91,7 +91,7 @@ abstract class Installer } if (version_compare(PHP_VERSION, '5.2.3', '<')) { - $errors[] = 'Require PHP version 5.2.3 or greater.'; + $this->warning('Require PHP version 5.2.3 or greater.'); $pass = false; } diff --git a/lib/language.php b/lib/language.php index 1805707ad5..d93e4e0ad5 100644 --- a/lib/language.php +++ b/lib/language.php @@ -213,16 +213,16 @@ function _mdomain($backtrace) $plug = strpos($path, '/plugins/'); if ($plug === false) { // We're not in a plugin; return default domain. - return 'statusnet'; + $final = 'statusnet'; } else { $cut = $plug + 9; $cut2 = strpos($path, '/', $cut); if ($cut2) { - $cached[$path] = substr($path, $cut, $cut2 - $cut); + $final = substr($path, $cut, $cut2 - $cut); } else { // We might be running directly from the plugins dir? // If so, there's no place to store locale info. - return 'statusnet'; + $final = 'statusnet'; } } $cached[$path] = $final; @@ -307,6 +307,7 @@ function get_all_languages() { 'br' => array('q' => 0.8, 'lang' => 'br', 'name' => 'Breton', 'direction' => 'ltr'), 'ca' => array('q' => 0.5, 'lang' => 'ca', 'name' => 'Catalan', 'direction' => 'ltr'), 'cs' => array('q' => 0.5, 'lang' => 'cs', 'name' => 'Czech', 'direction' => 'ltr'), + 'da' => array('q' => 0.8, 'lang' => 'da', 'name' => 'Danish', 'direction' => 'ltr'), 'de' => array('q' => 0.8, 'lang' => 'de', 'name' => 'German', 'direction' => 'ltr'), 'el' => array('q' => 0.1, 'lang' => 'el', 'name' => 'Greek', 'direction' => 'ltr'), 'en-us' => array('q' => 1, 'lang' => 'en', 'name' => 'English (US)', 'direction' => 'ltr'), diff --git a/lib/mysqlschema.php b/lib/mysqlschema.php index 4556953667..464c718f99 100644 --- a/lib/mysqlschema.php +++ b/lib/mysqlschema.php @@ -50,21 +50,6 @@ 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 diff --git a/lib/noticelist.php b/lib/noticelist.php index 432ea78d5b..17adf3a49c 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -96,8 +96,14 @@ class NoticeList extends Widget break; } - $item = $this->newListItem($this->notice); - $item->show(); + try { + $item = $this->newListItem($this->notice); + $item->show(); + } catch (Exception $e) { + // we log exceptions and continue + common_log(LOG_ERR, $e->getMessage()); + continue; + } } $this->out->elementEnd('ol'); @@ -463,12 +469,14 @@ class NoticeListItem extends Widget $this->out->elementEnd('span'); } + /** + * @param number $dec decimal degrees + * @return array split into 'deg', 'min', and 'sec' + */ function decimalDegreesToDMS($dec) { - - $vars = explode(".",$dec); - $deg = $vars[0]; - $tempma = "0.".$vars[1]; + $deg = intval($dec); + $tempma = abs($dec) - abs($deg); $tempma = $tempma * 3600; $min = floor($tempma / 60); diff --git a/lib/rssaction.php b/lib/rssaction.php index 62e3f21b61..f366db9729 100644 --- a/lib/rssaction.php +++ b/lib/rssaction.php @@ -178,7 +178,13 @@ class Rss10Action extends Action if (count($this->notices)) { foreach ($this->notices as $n) { - $this->showItem($n); + try { + $this->showItem($n); + } catch (Exception $e) { + // log exceptions and continue + common_log(LOG_ERR, $e->getMessage()); + continue; + } } } @@ -232,7 +238,7 @@ class Rss10Action extends Action function showItem($notice) { - $profile = Profile::staticGet($notice->profile_id); + $profile = $notice->getProfile(); $nurl = common_local_url('shownotice', array('notice' => $notice->id)); $creator_uri = common_profile_uri($profile); $this->elementStart('item', array('rdf:about' => $notice->uri, diff --git a/lib/schema.php b/lib/schema.php index 1503c96d4f..e5def514e3 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -47,40 +47,47 @@ if (!defined('STATUSNET')) { class Schema { - static $_single = null; + static $_static = null; protected $conn = null; /** * Constructor. Only run once for singleton object. */ - protected function __construct() + protected function __construct($conn = null) { - // XXX: there should be an easier way to do this. - $user = new User(); + if (is_null($conn)) { + // XXX: there should be an easier way to do this. + $user = new User(); + $conn = $user->getDatabaseConnection(); + $user->free(); + unset($user); + } - $this->conn = $user->getDatabaseConnection(); - - $user->free(); - - unset($user); + $this->conn = $conn; } /** * Main public entry point. Use this to get - * the singleton object. + * the schema object. * - * @return Schema the (single) Schema object + * @return Schema the Schema object for the connection */ - static function get() + static function get($conn = null) { - $type = common_config('db', 'type'); - if (empty(self::$_single)) { - $schemaClass = ucfirst($type).'Schema'; - self::$_single = new $schemaClass(); + if (is_null($conn)) { + $key = 'default'; + } else { + $key = md5(serialize($conn->dsn)); } - return self::$_single; + + $type = common_config('db', 'type'); + if (empty(self::$_static[$key])) { + $schemaClass = ucfirst($type).'Schema'; + self::$_static[$key] = new $schemaClass($conn); + } + return self::$_static[$key]; } /** diff --git a/lib/util.php b/lib/util.php index d8fb3b65e4..8eff4e568c 100644 --- a/lib/util.php +++ b/lib/util.php @@ -88,8 +88,8 @@ function common_init_language() // don't do the job. en_US.UTF-8 should be there most of the // time, but not guaranteed. $ok = common_init_locale("en_US"); - if (!$ok) { - // Try to find a complete, working locale... + if (!$ok && strtolower(substr(PHP_OS, 0, 3)) != 'win') { + // Try to find a complete, working locale on Unix/Linux... // @fixme shelling out feels awfully inefficient // but I don't think there's a more standard way. $all = `locale -a`; @@ -101,9 +101,9 @@ function common_init_language() } } } - if (!$ok) { - common_log(LOG_ERR, "Unable to find a UTF-8 locale on this system; UI translations may not work."); - } + } + if (!$ok) { + common_log(LOG_ERR, "Unable to find a UTF-8 locale on this system; UI translations may not work."); } $locale_set = common_init_locale($language); } diff --git a/locale/af/LC_MESSAGES/statusnet.po b/locale/af/LC_MESSAGES/statusnet.po index aa82c30f62..a1a8a6801c 100644 --- a/locale/af/LC_MESSAGES/statusnet.po +++ b/locale/af/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:02:38+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:38+0000\n" "Language-Team: Afrikaans\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: af\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "Hierdie bladsy bestaan nie" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -167,15 +167,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -208,7 +208,7 @@ msgstr "Opdaterings van %1$s en vriende op %2$s." #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -256,7 +256,7 @@ msgstr "Kon nie die profiel stoor nie." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -355,7 +355,8 @@ msgstr "" "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "U kan nie die gebruiker volg nie: die gebruiker bestaan nie." #: actions/apifriendshipscreate.php:118 @@ -373,8 +374,8 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "U kan nie ophou om uself te volg nie." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -505,6 +506,11 @@ msgstr "%s groepe" msgid "groups on %s" msgstr "groepe op %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Die deblokkering van die gebruiker het gefaal." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -643,22 +649,26 @@ msgstr "Die status is verwyder." msgid "No status with that ID found." msgstr "Geen status met die ID gevind nie." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Die kennisgewing is te lank. Gebruik maksimum %d karakters." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Nie gevind nie." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Nie-ondersteunde formaat." @@ -712,6 +722,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Die aanhangsel bestaan nie." @@ -764,7 +778,7 @@ msgid "Preview" msgstr "Voorskou" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Skrap" @@ -1039,7 +1053,7 @@ msgid "Do not delete this notice" msgstr "Moenie hierdie kennisgewing verwyder nie" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Verwyder hierdie kennisgewing" @@ -1314,7 +1328,8 @@ msgstr "Ongeldige alias: \"%s\"" msgid "Could not update group." msgstr "Dit was nie moontlik om die groep by te werk nie." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Dit was nie moontlik om die aliasse te skep nie." @@ -2400,7 +2415,7 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2476,8 +2491,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3332,7 +3347,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Herhalend" @@ -3367,11 +3382,13 @@ msgid "Replies feed for %s (Atom)" msgstr "" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" +"Hierdie is die tydslyn vir %s en vriende, maar niemand het nog iets gepos " +"nie." #: actions/replies.php:204 #, php-format @@ -3383,8 +3400,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3473,7 +3490,7 @@ msgstr "Organisasie" msgid "Description" msgstr "Beskrywing" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistieke" @@ -3558,16 +3575,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3626,7 +3643,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "Vriend van 'n vriend vir die groep %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Lede" @@ -3640,11 +3657,11 @@ msgstr "(geen)" msgid "All members" msgstr "Alle lede" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Geskep" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3654,7 +3671,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3663,7 +3680,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administrateurs" @@ -3738,8 +3755,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4112,7 +4129,8 @@ msgstr "" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "" @@ -4276,10 +4294,6 @@ msgstr "" msgid "No such tag." msgstr "Onbekende etiket." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "" @@ -4566,146 +4580,248 @@ msgstr "Weergawe" msgid "Author(s)" msgstr "Outeur(s)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Ongeldige grootte." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Nie lid van die groep nie." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Hierdie gebruiker het nie 'n profiel nie." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "" +"Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "" +"Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "" +"Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom by %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Kon nie die groep skep nie." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "" @@ -6015,7 +6131,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "van" @@ -6070,24 +6186,24 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6141,51 +6257,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "O" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "W" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "op" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "in konteks" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Herhaal deur" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Antwoord" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "" @@ -6443,7 +6559,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 3f9f582751..c5e7f56b8d 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Arabic # +# Author@translatewiki.net: Brion # Author@translatewiki.net: Meno25 # Author@translatewiki.net: OsamaK # -- @@ -9,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:02:42+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:39+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +100,7 @@ msgstr "لا صفحة كهذه." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -166,16 +167,18 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" +"%s لم يضف أي إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." +"register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" #. TRANS: H1 text #: actions/all.php:182 @@ -207,7 +210,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -255,7 +258,7 @@ msgstr "لم يمكن حفظ الملف." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -351,8 +354,9 @@ msgid "Could not delete favorite." msgstr "تعذّر حذف المفضلة." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +#, fuzzy +msgid "Could not follow user: profile not found." +msgstr "لم يمكن حفظ الملف." #: actions/apifriendshipscreate.php:118 #, php-format @@ -367,8 +371,8 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "لا يمكنك عدم متابعة نفسك." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -429,9 +433,9 @@ msgid "Too many aliases! Maximum %d." msgstr "كنيات كيرة! العدد الأقصى هو %d." #: actions/apigroupcreate.php:267 -#, fuzzy, php-format +#, php-format msgid "Invalid alias: \"%s\"." -msgstr "كنية غير صالحة: \"%s\"" +msgstr "كنية غير صالحة: \"%s\"." #: actions/apigroupcreate.php:276 actions/editgroup.php:232 #: actions/newgroup.php:172 @@ -480,9 +484,9 @@ msgstr "مجموعات %s" #. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s #: actions/apigrouplist.php:108 -#, fuzzy, php-format +#, php-format msgid "%1$s groups %2$s is a member of." -msgstr "المجموعات التي %s عضو فيها" +msgstr "مجموعات %1$s التي %2$s عضو فيها." #. TRANS: Message is used as a title. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. @@ -496,6 +500,11 @@ msgstr "مجموعات %s" msgid "groups on %s" msgstr "مجموعات %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "ارفع ملفًا" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -528,9 +537,8 @@ msgid "Invalid nickname / password!" msgstr "اسم/كلمة سر غير صحيحة!" #: actions/apioauthauthorize.php:159 -#, fuzzy msgid "Database error deleting OAuth application user." -msgstr "خطأ قاعدة البيانات أثناء حذف المستخدم OAuth app" +msgstr "خطأ في قاعدة البيانات أثناء حذف مستخدم تطبيق OAuth." #: actions/apioauthauthorize.php:185 #, fuzzy @@ -637,22 +645,26 @@ msgstr "حُذِفت الحالة." msgid "No status with that ID found." msgstr "لا حالة وُجدت بهذه الهوية." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." -msgstr "" +msgstr "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "لم يوجد." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "نسق غير مدعوم." @@ -706,6 +718,10 @@ msgstr "الإشعارات الموسومة ب%s" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "لا مرفق كهذا." @@ -758,7 +774,7 @@ msgid "Preview" msgstr "معاينة" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "احذف" @@ -1031,7 +1047,7 @@ msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1099,9 +1115,8 @@ msgid "Theme for the site." msgstr "سمة الموقع." #: actions/designadminpanel.php:467 -#, fuzzy msgid "Custom theme" -msgstr "سمة الموقع" +msgstr "سمة مخصصة" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." @@ -1163,11 +1178,11 @@ msgstr "وصلات" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "متقدم" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "CSS مخصصة" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -1306,7 +1321,8 @@ msgstr "كنية غير صالحة: \"%s\"" msgid "Could not update group." msgstr "تعذر تحديث المجموعة." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." @@ -1650,9 +1666,8 @@ msgid "Remote service uses unknown version of OMB protocol." msgstr "" #: actions/finishremotesubscribe.php:138 -#, fuzzy msgid "Error updating remote profile." -msgstr "خطأ أثناء تحديث الملف الشخصي البعيد" +msgstr "خطأ أثناء تحديث الملف الشخصي البعيد." #: actions/getfile.php:79 msgid "No such file." @@ -1677,9 +1692,8 @@ msgid "You cannot grant user roles on this site." msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "المستخدم مسكت من قبل." +msgstr "لدى المستخدم هذا الدور من قبل." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -2390,7 +2404,7 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2466,8 +2480,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "ليس نسق بيانات مدعوم." @@ -3226,7 +3240,7 @@ msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. #: actions/register.php:535 msgid "All rights reserved." -msgstr "" +msgstr "جميع الحقوق محفوظة." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. #: actions/register.php:540 @@ -3308,7 +3322,7 @@ msgstr "" #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." -msgstr "" +msgstr "هذا ملف شخصي محلي! لُج لتشترك." #: actions/remotesubscribe.php:183 msgid "Couldn’t get a request token." @@ -3330,7 +3344,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "مكرر" @@ -3368,7 +3382,7 @@ msgstr "" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3381,8 +3395,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3391,14 +3405,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." +msgstr "لا يمكنك سحب أدوار المستخدمين على هذا الموقع." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "المستخدم بدون ملف مطابق." +msgstr "ليس للمستخدم هذا الدور." #: actions/rsd.php:146 actions/version.php:159 msgid "StatusNet" @@ -3473,7 +3485,7 @@ msgstr "المنظمة" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "إحصاءات" @@ -3556,20 +3568,20 @@ msgid "" msgstr "" #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s لم يضف أي إشعارات إلى مفضلته إلى الآن. أرسل شيئًا شيقًا ليضيفه إلى " "مفضلته. :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s لم يضف أي إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." "register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" @@ -3586,7 +3598,7 @@ msgstr "مجموعة %s" #: actions/showgroup.php:84 #, php-format msgid "%1$s group, page %2$d" -msgstr "مجموعة %1$، الصفحة %2$d" +msgstr "مجموعة %1$s، الصفحة %2$d" #: actions/showgroup.php:227 msgid "Group profile" @@ -3630,7 +3642,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" @@ -3644,11 +3656,11 @@ msgstr "(لا شيء)" msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "أنشئت" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3663,7 +3675,7 @@ msgstr "" "[انضم الآن](%%%%action.register%%%%) لتصبح عضوًا في هذه المجموعة ومجموعات " "أخرى عديدة! ([اقرأ المزيد](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3675,7 +3687,7 @@ msgstr "" "en.wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" "(http://status.net/). يتشارك أعضاؤها رسائل قصيرة عن حياتهم واهتماماتهم. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "الإداريون" @@ -3750,8 +3762,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4128,7 +4140,8 @@ msgstr "اذف إعدادت الموقع" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "تعذّر حفظ الاشتراك." @@ -4292,10 +4305,6 @@ msgstr "" msgid "No such tag." msgstr "لا وسم كهذا." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "لم تمنع هذا المستخدم." @@ -4584,149 +4593,247 @@ msgstr "النسخة" msgid "Author(s)" msgstr "المؤلف(ون)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "حجم غير صالح." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "الانضمام للمجموعة فشل." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "ليس جزءا من المجموعة." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "ترك المجموعة فشل." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "تعذر تحديث المجموعة المحلية." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "لم يمكن إنشاء توكن الولوج ل%s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "أنت ممنوع من إرسال رسائل مباشرة." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "تعذّر إدراج الرسالة." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "خطأ قاعدة البيانات أثناء إدخال المستخدم OAuth app" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "مشكلة في حفظ الإشعار. طويل جدًا." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "مشكلة في حفظ الإشعار. مستخدم غير معروف." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكلة أثناء حفظ الإشعار." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "ليس للمستخدم ملف شخصي." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "تعذّر حفظ إشعار الموقع." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "مُشترك أصلا!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "لقد منعك المستخدم." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "غير مشترك!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "لم يمكن حذف اشتراك ذاتي." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "تعذّر حذف الاشتراك." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعة." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "تعذّر ضبط عضوية المجموعة." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "تعذّر ضبط عضوية المجموعة." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." @@ -4802,10 +4909,9 @@ msgstr "غير بريدك الإلكتروني وكلمة سرّك وأفتار #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:452 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "اتصالات" +msgstr "اتصل بالخدمات" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services #: lib/action.php:455 @@ -6115,7 +6221,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "من" @@ -6168,26 +6274,26 @@ msgstr "فشل في كتابة الملف إلى القرص." #: lib/mediafile.php:165 msgid "File upload stopped by extension." -msgstr "" +msgstr "أوقفت إضافة رفع الملف." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "لم يمكن تحديد نوع MIME للملف." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6241,51 +6347,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "ش" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "ج" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "ر" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "غ" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "في" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6543,7 +6649,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 @@ -6648,9 +6754,8 @@ msgid "Moderate" msgstr "راقب" #: lib/userprofile.php:364 -#, fuzzy msgid "User role" -msgstr "ملف المستخدم الشخصي" +msgstr "دور المستخدم" #: lib/userprofile.php:366 msgctxt "role" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 8fc6294537..dc05558481 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:02:48+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:41+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.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "لا صفحه كهذه" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -173,16 +173,18 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" +"%s لم يضف أى إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." +"register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" #. TRANS: H1 text #: actions/all.php:182 @@ -214,7 +216,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -262,7 +264,7 @@ msgstr "لم يمكن حفظ الملف." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -358,8 +360,9 @@ msgid "Could not delete favorite." msgstr "تعذّر حذف المفضله." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +#, fuzzy +msgid "Could not follow user: profile not found." +msgstr "لم يمكن حفظ الملف." #: actions/apifriendshipscreate.php:118 #, php-format @@ -374,8 +377,8 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "ما ينفعش عدم متابعة نفسك." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -504,6 +507,11 @@ msgstr "مجموعات %s" msgid "groups on %s" msgstr "مجموعات %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "ارفع ملفًا" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -645,22 +653,26 @@ msgstr "حُذِفت الحاله." msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "لم يوجد." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "نسق غير مدعوم." @@ -714,6 +726,10 @@ msgstr "الإشعارات الموسومه ب%s" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "لا مرفق كهذا." @@ -766,7 +782,7 @@ msgid "Preview" msgstr "عاين" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "احذف" @@ -1047,7 +1063,7 @@ msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1323,7 +1339,8 @@ msgstr "كنيه غير صالحة: \"%s\"" msgid "Could not update group." msgstr "تعذر تحديث المجموعه." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." @@ -2414,7 +2431,7 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2490,8 +2507,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr " مش نظام بيانات مدعوم." @@ -3352,7 +3369,7 @@ msgstr "ما ينفعش تكرر الملاحظه بتاعتك." msgid "You already repeated that notice." msgstr "انت عيدت الملاحظه دى فعلا." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "مكرر" @@ -3390,7 +3407,7 @@ msgstr "" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3403,8 +3420,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3496,7 +3513,7 @@ msgstr "المنظمه" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "إحصاءات" @@ -3580,20 +3597,20 @@ msgid "" msgstr "" #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s لم يضف أى إشعارات إلى مفضلته إلى الآن. أرسل شيئًا شيقًا ليضيفه إلى " "مفضلته. :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s لم يضف أى إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." "register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" @@ -3654,7 +3671,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" @@ -3668,11 +3685,11 @@ msgstr "(لا شيء)" msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3682,7 +3699,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3691,7 +3708,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "الإداريون" @@ -3766,8 +3783,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4150,7 +4167,8 @@ msgstr "اذف إعدادت الموقع" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "تعذّر حفظ الاشتراك." @@ -4315,10 +4333,6 @@ msgstr "" msgid "No such tag." msgstr "لا وسم كهذا." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "لم تمنع هذا المستخدم." @@ -4606,150 +4620,248 @@ msgstr "النسخه" msgid "Author(s)" msgstr "المؤلف/ين" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "حجم غير صالح." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "دخول الجروپ فشل." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "مش جزء من الجروپ." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "الخروج من الجروپ فشل." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "تعذر تحديث المجموعه." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "ما نفعش يتعمل امارة تسجيل دخول لـ %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "أنت ممنوع من إرسال رسائل مباشره." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "تعذّر إدراج الرساله." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "خطأ قاعده البيانات أثناء إدخال المستخدم OAuth app" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "مشكله فى حفظ الإشعار. طويل جدًا." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "مشكله فى حفظ الإشعار. مستخدم غير معروف." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكله أثناء حفظ الإشعار." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "ليس للمستخدم ملف شخصى." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "مشكله أثناء حفظ الإشعار." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "مُشترك أصلا!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "لقد منعك المستخدم." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "غير مشترك!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "ما نفعش يمسح الاشتراك الشخصى." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "تعذّر حذف الاشتراك." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعه." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "تعذّر ضبط عضويه المجموعه." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "تعذّر ضبط عضويه المجموعه." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." @@ -6100,7 +6212,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "من" @@ -6155,24 +6267,24 @@ msgstr "فشل فى كتابه الملف إلى القرص." msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "مش نافع يتحدد نوع الـMIME بتاع الفايل." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6227,51 +6339,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "ش" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "ج" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "ر" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "غ" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "في" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "متكرر من" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6529,7 +6641,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 6f87d49bec..4661bc824a 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:02:52+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:42+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -87,7 +87,6 @@ msgstr "Запазване" #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." msgstr "Няма такака страница." @@ -100,7 +99,7 @@ msgstr "Няма такака страница." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -167,15 +166,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -208,7 +207,7 @@ msgstr "Бележки от %1$s и приятели в %2$s." #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -256,7 +255,7 @@ msgstr "Грешка при запазване на профила." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -356,7 +355,8 @@ msgid "Could not delete favorite." msgstr "Грешка при изтриване на любима бележка." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Грешка при проследяване — потребителят не е намерен." #: actions/apifriendshipscreate.php:118 @@ -372,8 +372,9 @@ msgstr "Грешка при спиране на проследяването — msgid "You cannot unfollow yourself." msgstr "Не можете да спрете да следите себе си." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Трябва да се дадат два идентификатора или имена на потребители." #: actions/apifriendshipsshow.php:134 @@ -437,7 +438,7 @@ msgid "Too many aliases! Maximum %d." msgstr "" #: actions/apigroupcreate.php:267 -#, fuzzy, php-format +#, php-format msgid "Invalid alias: \"%s\"." msgstr "Неправилен псевдоним: \"%s\"" @@ -504,6 +505,11 @@ msgstr "Групи на %s" msgid "groups on %s" msgstr "групи в %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Качване на файл" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -575,7 +581,7 @@ msgstr "" #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" -msgstr "" +msgstr "Разрешение или забрана на достъпа" #: actions/apioauthauthorize.php:292 #, php-format @@ -606,12 +612,11 @@ msgstr "Парола" #: actions/apioauthauthorize.php:328 msgid "Deny" -msgstr "" +msgstr "Забрана" #: actions/apioauthauthorize.php:334 -#, fuzzy msgid "Allow" -msgstr "Всички" +msgstr "Разрешение" #: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." @@ -646,22 +651,26 @@ msgstr "Бележката е изтрита." msgid "No status with that ID found." msgstr "Не е открита бележка с такъв идентификатор." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Твърде дълга бележка. Трябва да е най-много 140 знака." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Не е открито." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Неподдържан формат." @@ -715,6 +724,10 @@ msgstr "Бележки с етикет %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Методът в API все още се разработва." + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -770,7 +783,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Изтриване" @@ -1044,7 +1057,7 @@ msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -1330,7 +1343,8 @@ msgstr "Неправилен псевдоним: \"%s\"" msgid "Could not update group." msgstr "Грешка при обновяване на групата." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Грешка при отбелязване като любима." @@ -1388,7 +1402,6 @@ msgstr "" #. TRANS: Button label #: actions/emailsettings.php:127 actions/imsettings.php:131 #: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy msgctxt "BUTTON" msgid "Cancel" msgstr "Отказ" @@ -1435,9 +1448,8 @@ msgstr "Ново" #. TRANS: Form legend for e-mail preferences form. #: actions/emailsettings.php:174 -#, fuzzy msgid "Email preferences" -msgstr "Настройки" +msgstr "Настройки на е-поща" #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:180 @@ -1477,9 +1489,8 @@ msgstr "Публикуване на MicroID за адреса на е-пощат #. TRANS: Confirmation message for successful e-mail preferences save. #: actions/emailsettings.php:334 -#, fuzzy msgid "Email preferences saved." -msgstr "Настройките са запазени." +msgstr "Настройките на е-поща са запазени." #. TRANS: Message given saving e-mail address without having provided one. #: actions/emailsettings.php:353 @@ -2496,7 +2507,7 @@ msgstr "Бележки, съдържащи търсеното \"%1$s\" в %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2575,8 +2586,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Неподдържан формат на данните" @@ -3471,7 +3482,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Повторено" @@ -3509,7 +3520,7 @@ msgstr "Емисия с отговори на %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3522,8 +3533,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3617,7 +3628,7 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистики" @@ -3704,16 +3715,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3772,7 +3783,7 @@ msgstr "Емисия с бележки на %s" msgid "FOAF for %s group" msgstr "Изходяща кутия за %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Членове" @@ -3780,17 +3791,17 @@ msgstr "Членове" #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(Без)" #: actions/showgroup.php:404 msgid "All members" msgstr "Всички членове" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Създадена на" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3800,7 +3811,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3809,7 +3820,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Администратори" @@ -3884,8 +3895,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4278,7 +4289,8 @@ msgstr "Запазване настройките на сайта" msgid "You are not subscribed to that profile." msgstr "Не сте абонирани за този профил" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "Грешка при създаване на нов абонамент." @@ -4447,10 +4459,6 @@ msgstr "" msgid "No such tag." msgstr "Няма такъв етикет." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Методът в API все още се разработва." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Не сте блокирали този потребител." @@ -4754,84 +4762,132 @@ msgstr "Версия" msgid "Author(s)" msgstr "Автор(и)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Неправилен размер." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Профил на групата" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Грешка при обновяване на групата." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Профил на групата" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Грешка при обновяване на групата." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Грешка при отбелязване като любима." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Грешка при изпращане на прякото съобщение" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Грешка при вмъкване на съобщението." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Грешка при обновяване на бележката с нов URL-адрес." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Грешка в базата от данни — отговор при вмъкването: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Грешка при записване на бележката. Непознат потребител." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Твърде много бележки за кратко време. Спрете, поемете дъх и публикувайте " "отново след няколко минути." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4840,78 +4896,127 @@ msgstr "" "Твърде много бележки за кратко време. Спрете, поемете дъх и публикувайте " "отново след няколко минути." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Забранено ви е да публикувате бележки в този сайт." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Проблем при записване на бележката." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Потребителят няма профил." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Грешка при записване настройките за Twitter" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Потребителят е забранил да се абонирате за него." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Потребителят ви е блокирал." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Не сте абонирани!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Грешка при изтриване на абонамента." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Грешка при създаване на групата." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Грешка при създаване на нов абонамент." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "Грешка при създаване на нов абонамент." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Грешка при създаване на нов абонамент." @@ -5067,7 +5172,6 @@ msgid "Help me!" msgstr "Помощ" #: lib/action.php:497 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Помощ" @@ -6272,7 +6376,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "от" @@ -6327,25 +6431,25 @@ msgstr "Грешка при записване файла на диска." msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Грешка при изтегляне на общия поток" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6400,51 +6504,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "С" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "Ю" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "И" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "З" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Бележката е повторена." @@ -6519,9 +6623,8 @@ msgid "Tags in %s's notices" msgstr "Етикети в бележките на %s" #: lib/plugin.php:115 -#, fuzzy msgid "Unknown" -msgstr "Непознато действие" +msgstr "Непознато" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -6617,9 +6720,8 @@ msgid "Sandbox this user" msgstr "Разблокиране на този потребител" #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "Търсене" +msgstr "Търсене в сайта" #: lib/searchaction.php:126 msgid "Keyword(s)" @@ -6708,9 +6810,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Системна грешка при качване на файл." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index 0989677134..676ef5a27a 100644 --- a/locale/br/LC_MESSAGES/statusnet.po +++ b/locale/br/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:02:56+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:44+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "N'eus ket eus ar bajenn-se." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -165,16 +165,18 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" +"Perak ne [groufec'h ket ur gont](%%action.register%%) ha bezañ an hini " +"gentañ da embann un dra !" #. TRANS: H1 text #: actions/all.php:182 @@ -206,7 +208,7 @@ msgstr "Hizivadennoù %1$s ha mignoned e %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -254,7 +256,7 @@ msgstr "Diposubl eo enrollañ ar profil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -352,7 +354,8 @@ msgid "Could not delete favorite." msgstr "Diposupl eo dilemel ar pennroll-mañ." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Diposupl eo heuliañ an implijer : N'eo ket bet kavet an implijer." #: actions/apifriendshipscreate.php:118 @@ -369,8 +372,9 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "Ne c'hallit ket chom hep ho heuliañ hoc'h-unan." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Rankout a reoc'h reiñ daou id pe lesanv." #: actions/apifriendshipsshow.php:134 @@ -498,6 +502,11 @@ msgstr "Strolladoù %s" msgid "groups on %s" msgstr "strolladoù war %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "C'hwitet en deus an urzhiad" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Arventenn oauth_token nann-roet." @@ -636,22 +645,26 @@ msgstr "Statud diverket." msgid "No status with that ID found." msgstr "N'eo ket bet kavet a statud evit an ID-mañ" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "N'eo ket bet kavet." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Diembreget eo ar furmad-se." @@ -705,6 +718,10 @@ msgstr "Alioù merket gant %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Hizivadennoù merket gant %1$s e %2$s !" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "N'eo ket bet kavet ar restr stag." @@ -757,7 +774,7 @@ msgid "Preview" msgstr "Rakwelet" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Diverkañ" @@ -1031,7 +1048,7 @@ msgid "Do not delete this notice" msgstr "Arabat dilemel an ali-mañ" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Dilemel an ali-mañ" @@ -1099,9 +1116,8 @@ msgid "Theme for the site." msgstr "Dodenn evit al lec'hienn." #: actions/designadminpanel.php:467 -#, fuzzy msgid "Custom theme" -msgstr "Dodenn al lec'hienn" +msgstr "Dodenn personelaet" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." @@ -1163,11 +1179,11 @@ msgstr "Liammoù" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "Araokaet" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "CSS personelaet" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -1306,7 +1322,8 @@ msgstr "Alias fall : \"%s\"" msgid "Could not update group." msgstr "Diposubl eo hizivaat ar strollad." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Diposubl eo krouiñ an aliasoù." @@ -2391,7 +2408,7 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2466,8 +2483,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3346,7 +3363,7 @@ msgstr "Ne c'helloc'h ket adkemer ho ali deoc'h." msgid "You already repeated that notice." msgstr "Adkemeret o peus dija an ali-mañ." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Adlavaret" @@ -3384,7 +3401,7 @@ msgstr "Gwazh respontoù evit %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3397,8 +3414,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3488,7 +3505,7 @@ msgstr "Aozadur" msgid "Description" msgstr "Deskrivadur" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Stadegoù" @@ -3574,16 +3591,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3642,7 +3659,7 @@ msgstr "Neudenn alioù ar strollad %s (Atom)" msgid "FOAF for %s group" msgstr "Mignon ur mignon evit ar strollad %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Izili" @@ -3656,11 +3673,11 @@ msgstr "(Hini ebet)" msgid "All members" msgstr "An holl izili" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Krouet" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3670,7 +3687,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3679,7 +3696,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Merourien" @@ -3756,8 +3773,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4129,7 +4146,8 @@ msgstr "Enrollañ an arventennoù moned" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "" @@ -4296,10 +4314,6 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "N'o peus ket stanket an implijer-mañ." @@ -4585,147 +4599,245 @@ msgstr "Stumm" msgid "Author(s)" msgstr "Aozer(ien)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Ment direizh." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "C'hwitet eo bet an enskrivadur d'ar strollad." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "N'eo ezel eus strollad ebet." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "C'hwitet eo bet an disenskrivadur d'ar strollad." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Diposubl eo ensoc'hañ ur gemenadenn" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Dibosupl eo hizivaat ar gemennadenn gant un URI nevez." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Ur gudenn 'zo bet pa veze enrollet an ali." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Ur gudenn 'zo bet pa veze enrollet boest degemer ar strollad." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "An implijer-mañ n'eus profil ebet dezhañ." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Diposubl eo enrollañ ali al lec'hienn." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Nac'het ez eus bet deoc'h en em goumanantiñ." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Koumanantet dija !" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "An implijer-mañ en deus stanket ac'hanoc'h." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Nann-koumanantet !" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." -msgstr "" - -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete subscription OMB token." -msgstr "Diposubl eo dilemel ar postel kadarnadur." - -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +msgid "Could not delete self-subscription." msgstr "Dibosupl eo paouez gant ar c'houmanant." -#: classes/User.php:363 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." +msgstr "Diposubl eo dilemel ar postel kadarnadur." + +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." +msgstr "Dibosupl eo paouez gant ar c'houmanant." + +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Deuet mat da %1$s, @%2$s !" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Dibosupl eo krouiñ ar strollad." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Dibosupl eo termeniñ URI ar strollad." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Dibosupl eo en em enskrivañ d'ar strollad." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Dibosupl eo enrollañ titouroù ar strollad lec'hel." @@ -6043,7 +6155,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "eus" @@ -6098,24 +6210,24 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Klaskit implijout ur furmad %s all." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6169,51 +6281,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "R" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "K" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "e" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "en amdro" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Adkemeret gant" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Respont d'an ali-mañ" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Respont" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Ali adkemeret" @@ -6471,7 +6583,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 2b5a2076d7..94bca4e7f0 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -1,6 +1,7 @@ # Translation of StatusNet to Catalan # # Author@translatewiki.net: Aleator +# Author@translatewiki.net: McDutchie # Author@translatewiki.net: Paucabot # Author@translatewiki.net: Toniher # -- @@ -10,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:01+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:45+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +102,7 @@ msgstr "No existeix la pàgina." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,20 +171,20 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Podeu provar d'[avisar %1$s](../%2$s) des del seu perfil o [publiqueu " -"quelcom per reclamar-li l'atenció](%%%%action.newnotice%%%%?status_textarea=%" -"3$s)." +"quelcom per cridar-li l'atenció](%%%%action.newnotice%%%%?status_textarea=%3" +"$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Per què no [registreu un compte](%%%%action.register%%%%) i aviseu %s o " "publiqueu un avís a la seva atenció." @@ -218,7 +219,7 @@ msgstr "Actualitzacions de %1$s i amics a %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -268,7 +269,7 @@ msgstr "No s'ha pogut desar el perfil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -368,7 +369,8 @@ msgid "Could not delete favorite." msgstr "No s'ha pogut eliminar el preferit." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "No s'ha pogut seguir l'usuari: l'usuari no existeix." #: actions/apifriendshipscreate.php:118 @@ -384,8 +386,9 @@ msgstr "No es pot deixar de seguir l'usuari: no s'ha trobat l'usuari." msgid "You cannot unfollow yourself." msgstr "No podeu deixar de seguir-vos a un mateix." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Cal proporcionar dos ids d'usuari o screen_names." #: actions/apifriendshipsshow.php:134 @@ -515,6 +518,11 @@ msgstr "%s grups" msgid "groups on %s" msgstr "grups sobre %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Puja un fitxer" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "No s'ha proporcionat cap paràmetre oauth_token." @@ -660,22 +668,26 @@ msgstr "S'ha eliminat l'estat." msgid "No status with that ID found." msgstr "No s'ha trobat cap estatus amb la ID trobada." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Massa llarg. La longitud màxima és de %d caràcters." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "No s'ha trobat." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "La mida màxima de l'avís és %d caràcters, incloent l'URL de l'adjunt." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "El format no està implementat." @@ -722,13 +734,17 @@ msgstr "Repeticions de %s" #: actions/apitimelinetag.php:105 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "Aviso etiquetats amb %s" +msgstr "Avisos etiquetats amb %s" #: actions/apitimelinetag.php:107 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualitzacions etiquetades amb %1$s el %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Mètode API en construcció." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "No existeix l'adjunció." @@ -782,7 +798,7 @@ msgid "Preview" msgstr "Vista prèvia" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Elimina" @@ -1065,7 +1081,7 @@ msgid "Do not delete this notice" msgstr "No eliminis aquest avís" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Elimina aquest avís" @@ -1226,7 +1242,7 @@ msgstr "Torna a restaurar al valor per defecte" #: actions/useradminpanel.php:294 lib/applicationeditform.php:363 #: lib/designsettings.php:256 lib/groupeditform.php:202 msgid "Save" -msgstr "Guardar" +msgstr "Desa" #: actions/designadminpanel.php:686 lib/designsettings.php:257 msgid "Save design" @@ -1342,7 +1358,8 @@ msgstr "L'àlies no és vàlid «%s»" msgid "Could not update group." msgstr "No s'ha pogut actualitzar el grup." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "No s'han pogut crear els àlies." @@ -1471,7 +1488,8 @@ msgstr "Envia'm un correu electrònic quan algú m'enviï una resposta amb @." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:205 msgid "Allow friends to nudge me and send me an email." -msgstr "Permetre que els amics em reclamin i m'enviïn un correu electrònic." +msgstr "" +"Permetre que els amics em cridin l'atenció i m'enviïn un correu electrònic." #. TRANS: Checkbox label in e-mail preferences form. #: actions/emailsettings.php:212 @@ -2164,8 +2182,7 @@ msgstr "%1$s (%2$s)" #: actions/invite.php:136 msgid "" "These people are already users and you were automatically subscribed to them:" -msgstr "" -"Aquestes persona ja són usuaris i tu estàs subscrit automàticament a ells:" +msgstr "Aquestes persones ja són usuaris i se us ha subscrit automàticament:" #: actions/invite.php:144 msgid "Invitation(s) sent to the following people:" @@ -2176,8 +2193,8 @@ msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" -"Seràs avisat quan les teves invitacions siguin acceptades i els teus " -"convidats es registrin al lloc. Gràcies per fer créixer la comunitat." +"Se us notificarà quan els vostres convidats acceptin la invitació i es " +"registrin al lloc. Gràcies per fer créixer la comunitat!" #: actions/invite.php:162 msgid "" @@ -2304,7 +2321,7 @@ msgstr "%1$s ha abandonat el grup %2$s" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." -msgstr "Ja estàs connectat." +msgstr "Ja hi heu iniciat una sessió." #: actions/login.php:148 msgid "Incorrect username or password." @@ -2500,19 +2517,20 @@ msgstr "" "Les actualitzacions que coincideixen amb el terme de cerca «%1$s» el %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" -"Aquest usuari no permet reclamacions o no ha confirmar encara cap correu " -"electrònic." +"Aquest usuari no permet que li cridin l'atenció o no ha confirmat encara cap " +"correu electrònic." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "Reclamació enviada" +msgstr "S'ha cridat l'atenció" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "Reclamació enviada!" +msgstr "S'ha cridat l'atenció!" #: actions/oauthappssettings.php:59 msgid "You must be logged in to list your applications." @@ -2580,8 +2598,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Si us plau, només URL %s sobre HTTP pla." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Format de data no suportat." @@ -2689,7 +2707,7 @@ msgstr "6 o més caràcters" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 #: actions/register.php:440 msgid "Confirm" -msgstr "Confirmar" +msgstr "Confirma" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" @@ -2697,7 +2715,7 @@ msgstr "Igual a la contrasenya de dalt" #: actions/passwordsettings.php:117 msgid "Change" -msgstr "Canviar" +msgstr "Canvia" #: actions/passwordsettings.php:154 actions/register.php:237 msgid "Password must be 6 or more characters." @@ -3017,11 +3035,11 @@ msgstr "La biografia és massa llarga (màx. %d caràcters)." #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." -msgstr "Franja horària no seleccionada." +msgstr "No s'ha seleccionat el fus horari." #: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." -msgstr "L'idioma és massa llarg (màx 50 caràcters)." +msgstr "La llengua és massa llarga (màx. 50 caràcters)." #: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format @@ -3047,7 +3065,7 @@ msgstr "No s'han pogut desar les etiquetes." #. TRANS: Message after successful saving of administrative settings. #: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." -msgstr "Configuració guardada." +msgstr "S'ha desat la configuració." #: actions/public.php:83 #, php-format @@ -3158,7 +3176,7 @@ msgstr "Núvol d'etiquetes" #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "Ja t'has connectat!" +msgstr "Ja heu iniciat una sessió!" #: actions/recoverpassword.php:62 msgid "No such recovery code." @@ -3207,7 +3225,7 @@ msgstr "Sobrenom o adreça electrònica" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." msgstr "" -"El teu nom d'usuari en aquest servidor, o la teva adreça de correu " +"El vostre nom d'usuari en aquest servidor, o la vostra adreça de correu " "electrònic registrada." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 @@ -3236,11 +3254,11 @@ msgstr "6 o més caràcters, i no te n'oblidis!" #: actions/recoverpassword.php:243 msgid "Reset" -msgstr "Restablir" +msgstr "Reinicialitza" #: actions/recoverpassword.php:252 msgid "Enter a nickname or email address." -msgstr "Escriu un sobrenom o una adreça de correu electrònic." +msgstr "Escriviu un sobrenom o una adreça de correu electrònic." #: actions/recoverpassword.php:282 msgid "No user with that email address or username." @@ -3252,7 +3270,7 @@ msgstr "No hi ha cap adreça de correu electrònic registrada d'aquest usuari." #: actions/recoverpassword.php:313 msgid "Error saving address confirmation." -msgstr "Error en guardar confirmació de l'adreça." +msgstr "S'ha produït un error en desar la confirmació de l'adreça." #: actions/recoverpassword.php:338 msgid "" @@ -3312,7 +3330,7 @@ msgstr "L'adreça de correu electrònic ja existeix." #: actions/register.php:250 actions/register.php:272 msgid "Invalid username or password." -msgstr "Nom d'usuari o contrasenya invàlids." +msgstr "El nom d'usuari o la contrasenya no són vàlids." #: actions/register.php:350 msgid "" @@ -3463,7 +3481,7 @@ msgstr "URL del teu perfil en un altre servei de microblogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 #: lib/userprofile.php:406 msgid "Subscribe" -msgstr "Subscriure's" +msgstr "Subscriu-m'hi" #: actions/remotesubscribe.php:159 msgid "Invalid profile URL (bad format)" @@ -3499,7 +3517,7 @@ msgstr "No podeu repetir el vostre propi avís." msgid "You already repeated that notice." msgstr "Ja havíeu repetit l'avís." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repetit" @@ -3534,10 +3552,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Canal de respostes de %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Aquesta és la línia temporal que mostra les respostes a %1$s, però %2$s " "encara no ha rebut cap avís a la seva atenció." @@ -3552,13 +3570,13 @@ msgstr "" "[uniu-vos a grups](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Podeu provar d'[avisar %1$s](../%2$s) o [enviar quelcom per reclamar la seva " -"atenció](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Podeu provar d'[avisar %1$s](../%2$s) o [enviar quelcom per cridar-li " +"l'atenció](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3646,7 +3664,7 @@ msgstr "Organització" msgid "Description" msgstr "Descripció" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estadístiques" @@ -3734,20 +3752,20 @@ msgstr "" "avisos que us agraden per arxivar-los per a més endavant i fer-los conèixer." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s no ha afegit cap avís als seus preferits encara. Envieu quelcom " "interessant que pugui afegir-hi." #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s no ha afegit cap avís als seus preferits encara. Per què no [registreu un " "compte](%%%%action.register%%%%) i llavors envieu quelcom interessant que " @@ -3809,7 +3827,7 @@ msgstr "Canal d'avisos del grup %s (Atom)" msgid "FOAF for %s group" msgstr "Safata de sortida per %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membres" @@ -3823,11 +3841,11 @@ msgstr "(Cap)" msgid "All members" msgstr "Tots els membres" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "S'ha creat" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3843,7 +3861,7 @@ msgstr "" "%) per formar part del grup i molt més! ([Més informació...](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3856,7 +3874,7 @@ msgstr "" "[StatusNet](http://status.net/). Els seus membre comparteixen missatges " "curts sobre llur vida i interessos. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administradors" @@ -3932,13 +3950,13 @@ msgstr "" "podria ser un bon moment per començar :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"Podeu provar d'avisar %1$s o [enviar quelcom per reclamar la seva atenció](%%" -"%%action.newnotice%%%%?status_textarea=%2$s)." +"Podeu provar d'avisar %1$s o [enviar quelcom per cridar-li l'atenció](%%%%" +"action.newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -4119,8 +4137,8 @@ msgstr "Paràmetres de l'SMS" #, php-format msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" -"Pots rebre missatges SMS a través del teu coreu electrònic des de %%site.name" -"%%." +"Podeu rebre missatges SMS a través del vostre correu electrònic des de %%" +"site.name%%." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 @@ -4179,7 +4197,7 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" -"Enviar-me avisos a través de SMS; puc entendre que això repercutirà en una " +"Envia'm avisos a través de l'SMS; puc entendre que això repercutirà en una " "exorbitant càrrega del meu transport." #. TRANS: Confirmation message for successful SMS preferences save. @@ -4200,7 +4218,7 @@ msgstr "No s'ha sel·leccionat cap transport." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 msgid "That is already your phone number." -msgstr "Aquest ja és el teu número de telèfon." +msgstr "Aquest ja és el vostre número de telèfon." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 @@ -4327,7 +4345,8 @@ msgstr "Desa els paràmetres de les instantànies" msgid "You are not subscribed to that profile." msgstr "No estàs subscrit a aquest perfil." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "No s'ha pogut guardar la subscripció." @@ -4507,10 +4526,6 @@ msgstr "" msgid "No such tag." msgstr "No existeix aquesta etiqueta." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Mètode API en construcció." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "No heu blocat l'usuari." @@ -4611,7 +4626,7 @@ msgstr "Si es permet als usuaris invitar-ne de nous." #: actions/userauthorization.php:105 msgid "Authorize subscription" -msgstr "Autoritzar subscripció" +msgstr "Autoritza la subscripció" #: actions/userauthorization.php:110 msgid "" @@ -4822,83 +4837,131 @@ msgstr "Versió" msgid "Author(s)" msgstr "Autoria" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Cap fitxer pot ser major de %d bytes i el fitxer que heu enviat era de %d " "bytes. Proveu de pujar una versió de mida menor." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Un fitxer d'aquesta mida excediria la vostra quota d'usuari de %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "Un fitxer d'aquesta mida excediria la vostra quota mensual de %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "La mida no és vàlida." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "No s'ha pogut unir al grup." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "No s'és part del grup." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "La sortida del grup ha fallat." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "No s'ha pogut actualitzar el grup local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "No s'ha pogut crear un testimoni d'inici de sessió per a %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Se us ha bandejat enviar missatges directes." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "No s'ha pogut inserir el missatge." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "No s'ha pogut inserir el missatge amb la nova URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" "S'ha produït un error de la base de dades en inserir una etiqueta de " "coixinet (%): %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "S'ha produït un problema en desar l'avís. És massa llarg." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "S'ha produït un problema en desar l'avís. Usuari desconegut." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Massa avisos massa ràpid; pren un respir i publica de nou en uns minuts." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4906,71 +4969,122 @@ msgstr "" "Massa missatges duplicats en massa poc temps; preneu un respir i torneu a " "enviar en uns minuts." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Ha estat bandejat de publicar avisos en aquest lloc." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." -msgstr "Problema en guardar l'avís." +msgstr "S'ha produït un problema en desar l'avís." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "S'ha produït un problema en desar la safata d'entrada del grup." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "L'usuari no té perfil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "No s'ha pogut desar l'avís del lloc." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Se us ha banejat la subscripció." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Ja hi esteu subscrit!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Un usuari t'ha bloquejat." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "No hi esteu subscrit!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "No s'ha pogut eliminar l'autosubscripció." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "No s'ha pogut eliminar el testimoni OMB de la subscripció." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "No s'ha pogut crear el grup." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "No es pot definir l'URI del grup." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "No s'ha pogut establir la pertinença d'aquest grup." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "No s'ha pogut desar la informació del grup local." @@ -5572,7 +5686,7 @@ msgstr "No té massa sentit avisar-se a un mateix!" #: lib/command.php:234 #, php-format msgid "Nudge sent to %s" -msgstr "S'ha enviat un avís a %s" +msgstr "S'ha cridat l'atenció a %s" #: lib/command.php:260 #, php-format @@ -6248,7 +6362,7 @@ msgstr "%s: confirmeu-ho si teniu aquest número de telèfon amb aquest codi:" #: lib/mail.php:484 #, php-format msgid "You've been nudged by %s" -msgstr "Has estat reclamat per %s" +msgstr "%s us ha cridat l'atenció" #. TRANS: Body for 'nudge' notification email #: lib/mail.php:489 @@ -6405,8 +6519,8 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" -"1$s (@%9$s) acaba d'enviar un avís un avís a la vostra atenció (una resposta " -"amb @) a %2$s.\n" +"%1$s (@%9$s) acaba d'enviar un avís un avís a la vostra atenció (una " +"resposta amb @) a %2$s.\n" "\n" "L'avís és a continuació:\n" "\n" @@ -6442,7 +6556,7 @@ msgstr "" "usuaris en la conversa. La gent pot enviar-vos missatges només per als " "vostres ulls." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "de" @@ -6503,24 +6617,24 @@ msgstr "No s'ha pogut escriure el fitxer al disc." msgid "File upload stopped by extension." msgstr "L'extensió ha aturat la càrrega del fitxer." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "El fitxer excedeix la quota de l'usuari." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "No s'ha pogut moure el fitxer al directori de destinació." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "No s'ha pogut determinar el tipus MIME del fitxer." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Proveu d'emprar un altre format %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s no és un tipus de fitxer permès al servidor." @@ -6576,65 +6690,65 @@ msgstr "" "l'esperat; torneu-ho a provar més tard" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "O" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "a" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "en context" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetit per" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Avís repetit" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "Reclamar aquest usuari" +msgstr "Crida l'atenció a l'usuari" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "Reclamar" +msgstr "Crida l'atenció" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "Enviar una reclamació a aquest usuari" +msgstr "Crida l'atenció a l'usuari" #: lib/oauthstore.php:283 msgid "Error inserting new profile" @@ -6878,8 +6992,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "El servidor no pot gestionar la pujada de temes si no pot tractar ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "La pujada del tema ha fallat o no hi és." +msgid "The theme file is missing or the upload failed." +msgstr "Manca el fitxer del tema o la pujada ha fallat." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 @@ -6899,7 +7013,7 @@ msgstr "" #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "L'arxiu del tema no és vàlid: manca el fitxer de css / display.css" +msgstr "L'arxiu del tema no és vàlid: manca el fitxer css/display.css" #: lib/themeuploader.php:205 msgid "" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index f9bd7ded92..0834169e90 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:06+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:47+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "Žádné takové oznámení." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -173,15 +173,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -215,7 +215,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +266,7 @@ msgstr "Nelze uložit profil" #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -365,8 +365,9 @@ msgid "Could not delete favorite." msgstr "Nelze smazat oblíbenou položku." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +#, fuzzy +msgid "Could not follow user: profile not found." +msgstr "Nelze přesměrovat na server: %s" #: actions/apifriendshipscreate.php:118 #, php-format @@ -383,8 +384,8 @@ msgstr "Nelze přesměrovat na server: %s" msgid "You cannot unfollow yourself." msgstr "Nelze aktualizovat uživatele" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -517,6 +518,11 @@ msgstr "" msgid "groups on %s" msgstr "" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Upload" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -664,23 +670,27 @@ msgstr "Obrázek nahrán" msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 #, fuzzy msgid "Not found." msgstr "Žádný požadavek nebyl nalezen!" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "Nepodporovaný formát obrázku." @@ -735,6 +745,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "Mikroblog od %s" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -790,7 +804,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Odstranit" @@ -1081,7 +1095,7 @@ msgid "Do not delete this notice" msgstr "Žádné takové oznámení." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Odstranit toto oznámení" @@ -1373,7 +1387,8 @@ msgstr "Neplatná adresa '%s'" msgid "Could not update group." msgstr "Nelze aktualizovat uživatele" -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Nelze uložin informace o obrázku" @@ -2515,7 +2530,7 @@ msgstr "Všechny položky obsahující \"%s\"" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2592,8 +2607,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3492,7 +3507,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Vytvořit" @@ -3532,7 +3547,7 @@ msgstr "Feed sdělení pro %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3545,8 +3560,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3645,7 +3660,7 @@ msgstr "Umístění" msgid "Description" msgstr "Odběry" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiky" @@ -3730,16 +3745,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3799,7 +3814,7 @@ msgstr "Feed sdělení pro %s" msgid "FOAF for %s group" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Členem od" @@ -3814,12 +3829,12 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "Vytvořit" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3829,7 +3844,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3838,7 +3853,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -3914,8 +3929,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4304,7 +4319,8 @@ msgstr "Nastavení" msgid "You are not subscribed to that profile." msgstr "Neodeslal jste nám profil" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "Nelze vytvořit odebírat" @@ -4477,10 +4493,6 @@ msgstr "" msgid "No such tag." msgstr "Žádné takové oznámení." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4789,160 +4801,257 @@ msgstr "Osobní" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Neplatná velikost" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Žádné takové oznámení." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Nelze aktualizovat uživatele" -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Žádné takové oznámení." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Nelze aktualizovat uživatele" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Nelze uložin informace o obrázku" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Chyba v DB při vkládání odpovědi: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Problém při ukládání sdělení" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Uživatel nemá profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Problém při ukládání sdělení" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 #, fuzzy msgid "User has blocked you." msgstr "Uživatel nemá profil." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Nepřihlášen!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Nelze smazat odebírání" -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Nelze smazat odebírání" -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Nelze smazat odebírání" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 #, fuzzy msgid "Could not create group." msgstr "Nelze uložin informace o obrázku" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Nelze vytvořit odebírat" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "Nelze vytvořit odebírat" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Nelze vytvořit odebírat" @@ -6323,7 +6432,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr " od " @@ -6379,25 +6488,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Nelze aktualizovat uživatele" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6456,54 +6565,54 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "Žádný obsah!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Vytvořit" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply" msgstr "odpověď" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Sdělení" @@ -6772,9 +6881,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Chyba systému při nahrávání souboru" +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/da/LC_MESSAGES/statusnet.po b/locale/da/LC_MESSAGES/statusnet.po new file mode 100644 index 0000000000..772ca0e56c --- /dev/null +++ b/locale/da/LC_MESSAGES/statusnet.po @@ -0,0 +1,6737 @@ +# Translation of StatusNet to Danish +# +# Author@translatewiki.net: Mstenbaek +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:48+0000\n" +"Language-Team: Danish\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: da\n" +"X-Message-Group: out-statusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Page title +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +msgid "Access" +msgstr "Adgang" + +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 +msgid "Site access settings" +msgstr "Indstillinger for adgang til webstedet" + +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 +msgid "Registration" +msgstr "Registrering" + +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "Forhindre anonyme brugere (som ikke er logget ind) i at se webstedet?" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 +msgctxt "LABEL" +msgid "Private" +msgstr "Privat" + +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." +msgstr "Registreing er kun mulig gennem en invitation" + +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Kun Inviterede" + +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." +msgstr "Forhindre nye registreringer" + +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Lukket" + +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 +msgid "Save access settings" +msgstr "Gem adgangsindstillinger" + +#. TRANS: Button label to save e-mail preferences. +#. TRANS: Button label to save IM preferences. +#. TRANS: Button label to save SMS preferences. +#. TRANS: Button label +#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 +#: actions/imsettings.php:184 actions/smssettings.php:209 +#: lib/applicationeditform.php:361 +msgctxt "BUTTON" +msgid "Save" +msgstr "Gem" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:68 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 +msgid "No such page." +msgstr "Siden findes ikke" + +#: actions/all.php:79 actions/allrss.php:68 +#: actions/apiaccountupdatedeliverydevice.php:114 +#: actions/apiaccountupdateprofile.php:105 +#: actions/apiaccountupdateprofilebackgroundimage.php:116 +#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 +#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 +#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 +#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 +#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 +#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 +#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 +#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 +#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 +#: actions/hcard.php:67 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/rsd.php:116 actions/showfavorites.php:105 +#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 +#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 +msgid "No such user." +msgstr "Ingen bruger fundet." + +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:90 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s og venner, side %2$d" + +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Message is used as link title. %s is a user nickname. +#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 +#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 +#: lib/personalgroupnav.php:100 +#, php-format +msgid "%s and friends" +msgstr "%s og venner" + +#. TRANS: %1$s is user nickname +#: actions/all.php:107 +#, php-format +msgid "Feed for friends of %s (RSS 1.0)" +msgstr "Feed for venner af %s (RSS 1.0)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:116 +#, php-format +msgid "Feed for friends of %s (RSS 2.0)" +msgstr "Feed for venner af %s (RSS 1.0)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:125 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "Feed for venner af %s (Atom)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:138 +#, php-format +msgid "" +"This is the timeline for %s and friends but no one has posted anything yet." +msgstr "" +"Dette er tidslinjen for %s og venner, men ingen har skrevet noget endnu." + +#: actions/all.php:143 +#, php-format +msgid "" +"Try subscribing to more people, [join a group](%%action.groups%%) or post " +"something yourself." +msgstr "" +"Prøv at abonnere på flere personer, [deltage i en gruppe] (%%action.groups%" +"%) eller skriv noget selv." + +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:146 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#, fuzzy, php-format +msgid "" +"Why not [register an account](%%%%action.register%%%%) and then nudge %s or " +"post a notice to them." +msgstr "" +"Hvorfor ikke [registrere en konto] (%%action.register%%), og vær den første " +"til at tilføje en meddelelse til dine favoritter!" + +#. TRANS: H1 text +#: actions/all.php:182 +msgid "You and friends" +msgstr "Du og vennerne" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. +#: actions/allrss.php:121 actions/apitimelinefriends.php:216 +#: actions/apitimelinehome.php:122 +#, php-format +msgid "Updates from %1$s and friends on %2$s!" +msgstr "Opdateringer fra %1$s og venner på %2$s!" + +#: actions/apiaccountratelimitstatus.php:72 +#: actions/apiaccountupdatedeliverydevice.php:94 +#: actions/apiaccountupdateprofile.php:97 +#: actions/apiaccountupdateprofilebackgroundimage.php:94 +#: actions/apiaccountupdateprofilecolors.php:118 +#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 +#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 +#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 +#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 +#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 +#: actions/apigroupshow.php:116 actions/apihelptest.php:88 +#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 +#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 +#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 +#: actions/apitimelineretweetedtome.php:121 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 +#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +msgid "API method not found." +msgstr "API metode ikke fundet." + +#: actions/apiaccountupdatedeliverydevice.php:86 +#: actions/apiaccountupdateprofile.php:89 +#: actions/apiaccountupdateprofilebackgroundimage.php:86 +#: actions/apiaccountupdateprofilecolors.php:110 +#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 +#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 +#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 +#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 +#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 +#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 +#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +msgid "This method requires a POST." +msgstr "Denne metode kræver en POST." + +#: actions/apiaccountupdatedeliverydevice.php:106 +msgid "" +"You must specify a parameter named 'device' with a value of one of: sms, im, " +"none." +msgstr "" +"Du skal angive en parameter med navnet 'device', med værdien sat til en af " +"følgende: sms, im, none." + +#: actions/apiaccountupdatedeliverydevice.php:133 +msgid "Could not update user." +msgstr "Kunne ikke opdatere brugeren." + +#: actions/apiaccountupdateprofile.php:112 +#: actions/apiaccountupdateprofilebackgroundimage.php:194 +#: actions/apiaccountupdateprofilecolors.php:185 +#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 +#: lib/profileaction.php:84 +msgid "User has no profile." +msgstr "Brugeren har ingen profil." + +#: actions/apiaccountupdateprofile.php:147 +msgid "Could not save profile." +msgstr "Kunne ikke gemme profilen." + +#: actions/apiaccountupdateprofilebackgroundimage.php:108 +#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 +#: actions/designadminpanel.php:123 actions/editapplication.php:118 +#: actions/newapplication.php:101 actions/newnotice.php:94 +#: lib/designsettings.php:283 +#, php-format +msgid "" +"The server was unable to handle that much POST data (%s bytes) due to its " +"current configuration." +msgstr "" +"Serveren var ikke i stand til at håndtere så meget POST data (%s bytes) på " +"grund af sin nuværende konfiguration." + +#: actions/apiaccountupdateprofilebackgroundimage.php:136 +#: actions/apiaccountupdateprofilebackgroundimage.php:146 +#: actions/apiaccountupdateprofilecolors.php:164 +#: actions/apiaccountupdateprofilecolors.php:174 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 +#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 +#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 +msgid "Unable to save your design settings." +msgstr "Kunne ikke gemme dine design indstillinger." + +#: actions/apiaccountupdateprofilebackgroundimage.php:187 +#: actions/apiaccountupdateprofilecolors.php:142 +msgid "Could not update your design." +msgstr "Kunne ikke opdatere dit design." + +#: actions/apiblockcreate.php:105 +msgid "You cannot block yourself!" +msgstr "Du kan ikke blokere dig selv!" + +#: actions/apiblockcreate.php:126 +msgid "Block user failed." +msgstr "Blokering af bruger mislykkedes" + +#: actions/apiblockdestroy.php:114 +msgid "Unblock user failed." +msgstr "Ophæv blokering af bruger mislykkedes." + +#: actions/apidirectmessage.php:89 +#, php-format +msgid "Direct messages from %s" +msgstr "Direkte beskeder fra %s" + +#: actions/apidirectmessage.php:93 +#, php-format +msgid "All the direct messages sent from %s" +msgstr "Alle direkte beskeder, sendt fra %s" + +#: actions/apidirectmessage.php:101 +#, php-format +msgid "Direct messages to %s" +msgstr "Direkte beskeder til %s" + +#: actions/apidirectmessage.php:105 +#, php-format +msgid "All the direct messages sent to %s" +msgstr "Alle direkte beskeder, sendt til %s" + +#: actions/apidirectmessagenew.php:118 +msgid "No message text!" +msgstr "Ingen besked tekst!" + +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#, php-format +msgid "That's too long. Max message size is %d chars." +msgstr "Det er for langt. Maksimal besked størrelse er %d tegn." + +#: actions/apidirectmessagenew.php:138 +msgid "Recipient user not found." +msgstr "Modtager bruger ikke fundet" + +#: actions/apidirectmessagenew.php:142 +msgid "Can't send direct messages to users who aren't your friend." +msgstr "Kan ikke sende direkte beskeder til brugere, som ikke din ven." + +#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#: actions/apistatusesdestroy.php:121 +msgid "No status found with that ID." +msgstr "Ingen status fundet med dette ID." + +#: actions/apifavoritecreate.php:120 +msgid "This status is already a favorite." +msgstr "Denne status er allerede en favorit." + +#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +msgid "Could not create favorite." +msgstr "Kunne ikke oprette favorit." + +#: actions/apifavoritedestroy.php:123 +msgid "That status is not a favorite." +msgstr "Denne status er ikke en favorit." + +#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 +msgid "Could not delete favorite." +msgstr "Kunne ikke slette favorit." + +#: actions/apifriendshipscreate.php:109 +msgid "Could not follow user: profile not found." +msgstr "" + +#: actions/apifriendshipscreate.php:118 +#, php-format +msgid "Could not follow user: %s is already on your list." +msgstr "Kunne ikke følge bruger: %s er allerede på din liste." + +#: actions/apifriendshipsdestroy.php:109 +msgid "Could not unfollow user: User not found." +msgstr "Kunne ikke stoppe følgeskab af bruger: Bruger ikke fundet." + +#: actions/apifriendshipsdestroy.php:120 +msgid "You cannot unfollow yourself." +msgstr "Du kan ikke ophæve følgeskab til dig selv." + +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "" + +#: actions/apifriendshipsshow.php:134 +msgid "Could not determine source user." +msgstr "Kunne ikke finde kilde bruger" + +#: actions/apifriendshipsshow.php:142 +msgid "Could not find target user." +msgstr "Kunne ikke finde mål bruger." + +#: actions/apigroupcreate.php:167 actions/editgroup.php:186 +#: actions/newgroup.php:126 actions/profilesettings.php:215 +#: actions/register.php:212 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Kaldenavn må kun have små bogstaver og tal og ingen mellemrum." + +#: actions/apigroupcreate.php:176 actions/editgroup.php:190 +#: actions/newgroup.php:130 actions/profilesettings.php:238 +#: actions/register.php:215 +msgid "Nickname already in use. Try another one." +msgstr "Kaldenavn allerede er i brug. Prøv med et andet." + +#: actions/apigroupcreate.php:183 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:218 +#: actions/register.php:217 +msgid "Not a valid nickname." +msgstr "Ikke et gyldigt kaldenavn" + +#: actions/apigroupcreate.php:199 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 +#: actions/newgroup.php:139 actions/profilesettings.php:222 +#: actions/register.php:224 +msgid "Homepage is not a valid URL." +msgstr "Hjemmesiden er ikke en gyldig URL adresse." + +#: actions/apigroupcreate.php:208 actions/editgroup.php:202 +#: actions/newgroup.php:142 actions/profilesettings.php:225 +#: actions/register.php:227 +msgid "Full name is too long (max 255 chars)." +msgstr "Fulde navn er for langt (max 255 tegn)." + +#: actions/apigroupcreate.php:216 actions/editapplication.php:190 +#: actions/newapplication.php:172 +#, php-format +msgid "Description is too long (max %d chars)." +msgstr "Beskrivelse er for lang (max %d tegn)." + +#: actions/apigroupcreate.php:227 actions/editgroup.php:208 +#: actions/newgroup.php:148 actions/profilesettings.php:232 +#: actions/register.php:234 +msgid "Location is too long (max 255 chars)." +msgstr "Placering er for lang (max 255 tegn)." + +#: actions/apigroupcreate.php:246 actions/editgroup.php:219 +#: actions/newgroup.php:159 +#, php-format +msgid "Too many aliases! Maximum %d." +msgstr "Alt for mange aliaser! Maksimum %d." + +#: actions/apigroupcreate.php:267 +#, php-format +msgid "Invalid alias: \"%s\"." +msgstr "Ugyldigt alias: \"%s\"." + +#: actions/apigroupcreate.php:276 actions/editgroup.php:232 +#: actions/newgroup.php:172 +#, php-format +msgid "Alias \"%s\" already in use. Try another one." +msgstr "Alias \"%s\" er allerede i brug. Prøv med et andet." + +#: actions/apigroupcreate.php:289 actions/editgroup.php:238 +#: actions/newgroup.php:178 +msgid "Alias can't be the same as nickname." +msgstr "Alias kan ikke være det samme som kaldenavn." + +#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 +#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 +#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +msgid "Group not found." +msgstr "Gruppen blev ikke fundet." + +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +msgid "You are already a member of that group." +msgstr "Du er allerede medlem af denne gruppe." + +#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +msgid "You have been blocked from that group by the admin." +msgstr "Du er blevet blokeret fra denne gruppe af administratoren." + +#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Kunne ikke tilslutte bruger %1$s til gruppe %2$s." + +#: actions/apigroupleave.php:115 +msgid "You are not a member of this group." +msgstr "Du er ikke medlem af denne gruppe." + +#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#, php-format +msgid "Could not remove user %1$s from group %2$s." +msgstr "Kunne ikke fjerne brugeren %1$s fra gruppen %2$s." + +#. TRANS: %s is a user name +#: actions/apigrouplist.php:98 +#, php-format +msgid "%s's groups" +msgstr "%s's grupper" + +#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s +#: actions/apigrouplist.php:108 +#, php-format +msgid "%1$s groups %2$s is a member of." +msgstr "%1$s grupper som %2$s er medlem af." + +#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a page title. %s is a nick name. +#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#, php-format +msgid "%s groups" +msgstr "%s's grupper" + +#: actions/apigrouplistall.php:96 +#, php-format +msgid "groups on %s" +msgstr "grupper på %s" + +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Ophæv blokering af bruger mislykkedes." + +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Ingen oauth_token parameter angivet." + +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Ugyldigt token." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 +#: actions/deletenotice.php:169 actions/disfavor.php:74 +#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#: actions/groupblock.php:66 actions/grouplogo.php:312 +#: actions/groupunblock.php:66 actions/imsettings.php:227 +#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 +#: actions/othersettings.php:145 actions/passwordsettings.php:138 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/register.php:172 actions/remotesubscribe.php:77 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/subscribe.php:86 actions/tagother.php:166 +#: actions/unsubscribe.php:69 actions/userauthorization.php:52 +#: lib/designsettings.php:294 +msgid "There was a problem with your session token. Try again, please." +msgstr "Der var et problem med din session token. Venligst prøv igen." + +#: actions/apioauthauthorize.php:135 +msgid "Invalid nickname / password!" +msgstr "Ugyldig kaldenavn / password!" + +#: actions/apioauthauthorize.php:159 +msgid "Database error deleting OAuth application user." +msgstr "Databasefejl ved sletning af OAuth applikationsbruger." + +#: actions/apioauthauthorize.php:185 +msgid "Database error inserting OAuth application user." +msgstr "Databasefejl ved tilføjelse af OAuth applikationsbruger." + +#: actions/apioauthauthorize.php:214 +#, php-format +msgid "" +"The request token %s has been authorized. Please exchange it for an access " +"token." +msgstr "" +"Anmodnings-token %s er blevet godkendt. Venligst anvend den til en Adgangs-" +"token." + +#: actions/apioauthauthorize.php:227 +#, php-format +msgid "The request token %s has been denied and revoked." +msgstr "Anmodnings-token %s er blevet afvist og trukket tilbage." + +#. TRANS: Message given submitting a form with an unknown action in e-mail settings. +#. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Message given submitting a form with an unknown action in SMS settings. +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 +#: actions/designadminpanel.php:104 actions/editapplication.php:139 +#: actions/emailsettings.php:286 actions/grouplogo.php:322 +#: actions/imsettings.php:242 actions/newapplication.php:121 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 +#: actions/smssettings.php:277 lib/designsettings.php:304 +msgid "Unexpected form submission." +msgstr "Uventet formularafsendelse." + +#: actions/apioauthauthorize.php:259 +msgid "An application would like to connect to your account" +msgstr "En applikation vil gerne forbinde til din konto" + +#: actions/apioauthauthorize.php:276 +msgid "Allow or deny access" +msgstr "Tillad eller Afvis adgang" + +#: 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> af %2$s</strong> vil gerne <strong>%3$s</" +"strong> dine data for konto %4$s. Du bør kun give adgang til din %4$s konto " +"til tredjemand du stoler på." + +#. TRANS: Main menu option when logged in for access to user settings +#: actions/apioauthauthorize.php:310 lib/action.php:450 +msgid "Account" +msgstr "Konto" + +#: actions/apioauthauthorize.php:313 actions/login.php:252 +#: actions/profilesettings.php:106 actions/register.php:431 +#: actions/showgroup.php:245 actions/tagother.php:94 +#: actions/userauthorization.php:145 lib/groupeditform.php:152 +#: lib/userprofile.php:132 +msgid "Nickname" +msgstr "Kaldenavn" + +#. TRANS: Link description in user account settings menu. +#: actions/apioauthauthorize.php:316 actions/login.php:255 +#: actions/register.php:436 lib/accountsettingsaction.php:125 +msgid "Password" +msgstr "Adgangskode" + +#: actions/apioauthauthorize.php:328 +msgid "Deny" +msgstr "Nægt" + +#: actions/apioauthauthorize.php:334 +msgid "Allow" +msgstr "Tillad" + +#: actions/apioauthauthorize.php:351 +msgid "Allow or deny access to your account information." +msgstr "Tillad eller nægte adgang til dine kontooplysninger." + +#: actions/apistatusesdestroy.php:112 +msgid "This method requires a POST or DELETE." +msgstr "Denne metode kræver en POST eller DELETE." + +#: actions/apistatusesdestroy.php:135 +msgid "You may not delete another user's status." +msgstr "Du kan ikke slette en anden brugers status." + +#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 +#: actions/deletenotice.php:52 actions/shownotice.php:92 +msgid "No such notice." +msgstr "Ingen sådan meddelelse." + +#: actions/apistatusesretweet.php:83 +msgid "Cannot repeat your own notice." +msgstr "Kan ikke gentage din egen meddelelse." + +#: actions/apistatusesretweet.php:91 +msgid "Already repeated that notice." +msgstr "Allerede gentaget denne medelelse." + +#: actions/apistatusesshow.php:139 +msgid "Status deleted." +msgstr "Status slettet." + +#: actions/apistatusesshow.php:145 +msgid "No status with that ID found." +msgstr "Ingen status med dette ID fundet." + +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#: lib/mailhandler.php:60 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "Det er for langt. Maksimal besked størrelse er %d tegn." + +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 +msgid "Not found." +msgstr "Ikke fundet." + +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#, php-format +msgid "Max notice size is %d chars, including attachment URL." +msgstr "Max meddelelse størrelse er %d tegn, inklusiv vedlagt URL." + +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +msgid "Unsupported format." +msgstr "Formatet understøttes ikke" + +#: actions/apitimelinefavorites.php:110 +#, php-format +msgid "%1$s / Favorites from %2$s" +msgstr "%1$s / favoritter fra %2$s" + +#: actions/apitimelinefavorites.php:119 +#, php-format +msgid "%1$s updates favorited by %2$s / %2$s." +msgstr "%1$s opdateringer favoriseret af %2$s / %2$s." + +#: actions/apitimelinementions.php:118 +#, php-format +msgid "%1$s / Updates mentioning %2$s" +msgstr "%1$s / opdateringer nævner %2$s" + +#: actions/apitimelinementions.php:131 +#, php-format +msgid "%1$s updates that reply to updates from %2$s / %3$s." +msgstr "%1$s opdateringer, som svar på opdateringer fra %2$s / %3$s." + +#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#, php-format +msgid "%s public timeline" +msgstr "%s offentlig tidslinie" + +#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#, php-format +msgid "%s updates from everyone!" +msgstr "%s opdateringer fra alle!" + +#: actions/apitimelineretweetedtome.php:111 +#, php-format +msgid "Repeated to %s" +msgstr "Gentagne til %s" + +#: actions/apitimelineretweetsofme.php:114 +#, php-format +msgid "Repeats of %s" +msgstr "Gentaget af %s" + +#: actions/apitimelinetag.php:105 actions/tag.php:67 +#, php-format +msgid "Notices tagged with %s" +msgstr "Bekendtgørelser tagged med %s" + +#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#, php-format +msgid "Updates tagged with %1$s on %2$s!" +msgstr "Opdateringer tagged med %1$s på %2$s!" + +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Ingen sådan fil." + +#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/grouplogo.php:86 actions/groupmembers.php:76 +#: actions/grouprss.php:91 actions/showgroup.php:121 +msgid "No nickname." +msgstr "Ingen kaldenavn." + +#: actions/avatarbynickname.php:64 +msgid "No size." +msgstr "Ingen størrelse." + +#: actions/avatarbynickname.php:69 +msgid "Invalid size." +msgstr "Ugyldig størrelse." + +#. TRANS: Link description in user account settings menu. +#: actions/avatarsettings.php:67 actions/showgroup.php:230 +#: lib/accountsettingsaction.php:118 +msgid "Avatar" +msgstr "Avatar" + +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "" +"Du kan uploade dine personlige avatar. Den maksimale filstørrelse er %s." + +#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#: actions/grouplogo.php:181 actions/remotesubscribe.php:191 +#: actions/userauthorization.php:72 actions/userrss.php:108 +msgid "User without matching profile." +msgstr "Bruger uden matchende profil." + +#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#: actions/grouplogo.php:254 +msgid "Avatar settings" +msgstr "Avatar indstillinger" + +#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 +msgid "Original" +msgstr "Original" + +#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 +msgid "Preview" +msgstr "Forhåndsvisning" + +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 +msgid "Delete" +msgstr "Slet" + +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +msgid "Upload" +msgstr "Oplægge" + +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +msgid "Crop" +msgstr "Beskær" + +#: actions/avatarsettings.php:305 +msgid "No file uploaded." +msgstr "Ingen fil uploaded." + +#: actions/avatarsettings.php:332 +msgid "Pick a square area of the image to be your avatar" +msgstr "Vælg en firkantet område af billedet til at være din avatar" + +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +msgid "Lost our file data." +msgstr "Mistede vores fil data." + +#: actions/avatarsettings.php:370 +msgid "Avatar updated." +msgstr "Avatar opdateret." + +#: actions/avatarsettings.php:373 +msgid "Failed updating avatar." +msgstr "Mislykket ajourføring af Avatar." + +#: actions/avatarsettings.php:397 +msgid "Avatar deleted." +msgstr "Avatar slettet." + +#: actions/block.php:69 +msgid "You already blocked that user." +msgstr "Du har allerede blokeret for denne bruger." + +#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +msgid "Block user" +msgstr "Bloker bruger" + +#: actions/block.php:138 +msgid "" +"Are you sure you want to block this user? Afterwards, they will be " +"unsubscribed from you, unable to subscribe to you in the future, and you " +"will not be notified of any @-replies from them." +msgstr "" +"Er du sikker på du vil blokere denne bruger? Bagefter vil de blive afmeldt " +"fra dig, ude af stand til at abonnere på dig i fremtiden, og du vil ikke " +"blive underrettet om nogen @-svar fra dem." + +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:153 actions/deleteapplication.php:154 +#: actions/deletenotice.php:147 actions/deleteuser.php:152 +#: actions/groupblock.php:178 +msgctxt "BUTTON" +msgid "No" +msgstr "Nej" + +#. TRANS: Submit button title for 'No' when blocking a user. +#. TRANS: Submit button title for 'No' when deleting a user. +#: actions/block.php:157 actions/deleteuser.php:156 +msgid "Do not block this user" +msgstr "Bloker ikke denne bruger" + +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:160 actions/deleteapplication.php:161 +#: actions/deletenotice.php:154 actions/deleteuser.php:159 +#: actions/groupblock.php:185 +msgctxt "BUTTON" +msgid "Yes" +msgstr "Ja" + +#. TRANS: Submit button title for 'Yes' when blocking a user. +#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +msgid "Block this user" +msgstr "Bloker denne bruger" + +#: actions/block.php:187 +msgid "Failed to save block information." +msgstr "Kunne ikke gemme blokerings oplysninger." + +#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 +#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 +#: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 +#: actions/groupmembers.php:83 actions/groupmembers.php:90 +#: actions/grouprss.php:98 actions/grouprss.php:105 +#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/joingroup.php:93 actions/leavegroup.php:82 +#: actions/leavegroup.php:93 actions/makeadmin.php:86 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 +#: lib/command.php:368 +msgid "No such group." +msgstr "Ingen sådan gruppe." + +#: actions/blockedfromgroup.php:97 +#, php-format +msgid "%s blocked profiles" +msgstr "%s blokerede profiler" + +#: actions/blockedfromgroup.php:100 +#, php-format +msgid "%1$s blocked profiles, page %2$d" +msgstr "%1$s blokerede profiler, side %2$d" + +#: actions/blockedfromgroup.php:115 +msgid "A list of the users blocked from joining this group." +msgstr "En liste over brugere blokeret fra at deltage i denne gruppe." + +#: actions/blockedfromgroup.php:288 +msgid "Unblock user from group" +msgstr "Ophæv blokering af bruger fra gruppe" + +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +msgid "Unblock" +msgstr "Fjern blokering" + +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +msgid "Unblock this user" +msgstr "Fjern blokeringen af denne bruger" + +#. TRANS: Title for mini-posting window loaded from bookmarklet. +#: actions/bookmarklet.php:51 +#, php-format +msgid "Post to %s" +msgstr "Post til %s" + +#: actions/confirmaddress.php:75 +msgid "No confirmation code." +msgstr "Ingen bekræftelseskode." + +#: actions/confirmaddress.php:80 +msgid "Confirmation code not found." +msgstr "Bekræftelseskode ikke fundet." + +#: actions/confirmaddress.php:85 +msgid "That confirmation code is not for you!" +msgstr "Denne bekræftelseskode er ikke til dig!" + +#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:91 +#, php-format +msgid "Unrecognized address type %s." +msgstr "Ukendte adresse type %s." + +#. TRANS: Client error for an already confirmed email/jabbel/sms address. +#: actions/confirmaddress.php:96 +msgid "That address has already been confirmed." +msgstr "Denne adresse er allerede blevet bekræftet." + +#. TRANS: Server error thrown on database error updating e-mail preferences. +#. TRANS: Server error thrown on database error removing a registered e-mail address. +#. TRANS: Server error thrown on database error updating IM preferences. +#. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error thrown on database error updating SMS preferences. +#. TRANS: Server error thrown on database error removing a registered SMS phone number. +#: actions/confirmaddress.php:116 actions/emailsettings.php:327 +#: actions/emailsettings.php:473 actions/imsettings.php:280 +#: actions/imsettings.php:439 actions/othersettings.php:174 +#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/smssettings.php:464 +msgid "Couldn't update user." +msgstr "Kunne ikke opdatere brugeren." + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/confirmaddress.php:128 actions/emailsettings.php:433 +#: actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Kunne ikke slette e-mail bekræftelse." + +#: actions/confirmaddress.php:146 +msgid "Confirm address" +msgstr "Bekræft adresse" + +#: actions/confirmaddress.php:161 +#, php-format +msgid "The address \"%s\" has been confirmed for your account." +msgstr "Adressen \"%s\" er blevet bekræftet for din konto." + +#: actions/conversation.php:99 +msgid "Conversation" +msgstr "Samtale" + +#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#: lib/profileaction.php:229 lib/searchgroupnav.php:82 +msgid "Notices" +msgstr "Bekendtgørelser" + +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Du skal være logget ind for at slette et program." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "Program ikke fundet." + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "Du er ikke ejer af dette program." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1263 +msgid "There was a problem with your session token." +msgstr "Der var et problem med din session token." + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Slet program" + +#: 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 "" +"Er du sikker på du vil slette dette program? Dette vil slette alle data om " +"anvendelsen fra databasen, herunder alle eksisterende bruger indstillinger." + +#. TRANS: Submit button title for 'No' when deleting an application. +#: actions/deleteapplication.php:158 +msgid "Do not delete this application" +msgstr "Slet ikke dette program" + +#. TRANS: Submit button title for 'Yes' when deleting an application. +#: actions/deleteapplication.php:164 +msgid "Delete this application" +msgstr "Slet dette program" + +#. TRANS: Client error message thrown when trying to access the admin panel while not logged in. +#: 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 +#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/tagother.php:33 actions/unsubscribe.php:52 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/settingsaction.php:72 +msgid "Not logged in." +msgstr "Ikke logget ind" + +#: actions/deletenotice.php:71 +msgid "Can't delete this notice." +msgstr "Kan ikke slette denne meddelelse." + +#: actions/deletenotice.php:103 +msgid "" +"You are about to permanently delete a notice. Once this is done, it cannot " +"be undone." +msgstr "" +"Du er ved permanent at slette en meddelelse. Når dette er gjort, kan det " +"ikke fortrydes." + +#: actions/deletenotice.php:109 actions/deletenotice.php:141 +msgid "Delete notice" +msgstr "Slet meddelelse" + +#: actions/deletenotice.php:144 +msgid "Are you sure you want to delete this notice?" +msgstr "Er du sikker på du vil slette denne meddelelse?" + +#. TRANS: Submit button title for 'No' when deleting a notice. +#: actions/deletenotice.php:151 +msgid "Do not delete this notice" +msgstr "Slet ikke denne meddelelse" + +#. TRANS: Submit button title for 'Yes' when deleting a notice. +#: actions/deletenotice.php:158 lib/noticelist.php:656 +msgid "Delete this notice" +msgstr "Slet denne meddelelse" + +#: actions/deleteuser.php:67 +msgid "You cannot delete users." +msgstr "Du kan ikke slette brugere." + +#: actions/deleteuser.php:74 +msgid "You can only delete local users." +msgstr "Du kan kun slette de lokale brugere." + +#: actions/deleteuser.php:110 actions/deleteuser.php:133 +msgid "Delete user" +msgstr "Slet bruger" + +#: actions/deleteuser.php:136 +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 "" +"Er du sikker på du vil slette denne bruger? Dette vil slette alle data om " +"brugeren fra databasen, uden en sikkerhedskopi." + +#. TRANS: Submit button title for 'Yes' when deleting a user. +#: actions/deleteuser.php:163 lib/deleteuserform.php:77 +msgid "Delete this user" +msgstr "Slet denne bruger" + +#. TRANS: Message used as title for design settings for the site. +#. TRANS: Link description in user account settings menu. +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 +#: lib/groupnav.php:119 +msgid "Design" +msgstr "Design" + +#: actions/designadminpanel.php:74 +msgid "Design settings for this StatusNet site." +msgstr "Design indstillinger for dette StatusNet site." + +#: actions/designadminpanel.php:318 +msgid "Invalid logo URL." +msgstr "Ugyldig logo URL." + +#: actions/designadminpanel.php:322 +#, php-format +msgid "Theme not available: %s." +msgstr "Tema ikke tilgængelige: %s." + +#: actions/designadminpanel.php:426 +msgid "Change logo" +msgstr "Skift logo" + +#: actions/designadminpanel.php:431 +msgid "Site logo" +msgstr "Site logo" + +#: actions/designadminpanel.php:443 +msgid "Change theme" +msgstr "Skift tema" + +#: actions/designadminpanel.php:460 +msgid "Site theme" +msgstr "Site tema" + +#: actions/designadminpanel.php:461 +msgid "Theme for the site." +msgstr "Tema for webstedet." + +#: actions/designadminpanel.php:467 +msgid "Custom theme" +msgstr "Brugerdefineret tema" + +#: actions/designadminpanel.php:471 +msgid "You can upload a custom StatusNet theme as a .ZIP archive." +msgstr "Du kan uploade en brugerdefineret StatusNet tema som en. ZIP arkiv." + +#: actions/designadminpanel.php:486 lib/designsettings.php:101 +msgid "Change background image" +msgstr "Skift baggrundsbillede" + +#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 +#: lib/designsettings.php:178 +msgid "Background" +msgstr "Baggrund" + +#: actions/designadminpanel.php:496 +#, php-format +msgid "" +"You can upload a background image for the site. The maximum file size is %1" +"$s." +msgstr "" +"Du kan uploade et baggrundsbillede til webstedet. Den maksimale filstørrelse " +"er %1$s." + +#. TRANS: Used as radio button label to add a background image. +#: actions/designadminpanel.php:527 lib/designsettings.php:139 +msgid "On" +msgstr "Til" + +#. TRANS: Used as radio button label to not add a background image. +#: actions/designadminpanel.php:544 lib/designsettings.php:155 +msgid "Off" +msgstr "Fra" + +#: actions/designadminpanel.php:545 lib/designsettings.php:156 +msgid "Turn background image on or off." +msgstr "Slå baggrundsbilledet til eller fra." + +#: actions/designadminpanel.php:550 lib/designsettings.php:161 +msgid "Tile background image" +msgstr "Tile baggrundsbillede" + +#: actions/designadminpanel.php:564 lib/designsettings.php:170 +msgid "Change colours" +msgstr "Skift farver" + +#: actions/designadminpanel.php:587 lib/designsettings.php:191 +msgid "Content" +msgstr "Indhold" + +#: actions/designadminpanel.php:600 lib/designsettings.php:204 +msgid "Sidebar" +msgstr "Sidebar" + +#: actions/designadminpanel.php:613 lib/designsettings.php:217 +msgid "Text" +msgstr "Tekst" + +#: actions/designadminpanel.php:626 lib/designsettings.php:230 +msgid "Links" +msgstr "Henvisninger" + +#: actions/designadminpanel.php:651 +msgid "Advanced" +msgstr "Avanceret" + +#: actions/designadminpanel.php:655 +msgid "Custom CSS" +msgstr "Personlig CSS" + +#: actions/designadminpanel.php:676 lib/designsettings.php:247 +msgid "Use defaults" +msgstr "Brug standardindstillinger" + +#: actions/designadminpanel.php:677 lib/designsettings.php:248 +msgid "Restore default designs" +msgstr "Gendan standard indstillinger" + +#: actions/designadminpanel.php:683 lib/designsettings.php:254 +msgid "Reset back to default" +msgstr "Nulstil til standard værdier" + +#. TRANS: Submit button title +#: actions/designadminpanel.php:685 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 +#: actions/subscriptions.php:226 actions/tagother.php:154 +#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Gem" + +#: actions/designadminpanel.php:686 lib/designsettings.php:257 +msgid "Save design" +msgstr "Gem design" + +#: actions/disfavor.php:81 +msgid "This notice is not a favorite!" +msgstr "Denne meddelelse er ikke en favorit!" + +#: actions/disfavor.php:94 +msgid "Add to favorites" +msgstr "Tilføj til favoritter" + +#: actions/doc.php:158 +#, php-format +msgid "No such document \"%s\"" +msgstr "Ingen sådan dokument \"%s\"" + +#: actions/editapplication.php:54 +msgid "Edit Application" +msgstr "Rediger program" + +#: actions/editapplication.php:66 +msgid "You must be logged in to edit an application." +msgstr "Du skal være logget ind for at redigere et program." + +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 +#: actions/showapplication.php:87 +msgid "No such application." +msgstr "Ingen sådan program" + +#: actions/editapplication.php:161 +msgid "Use this form to edit your application." +msgstr "Brug denne formular til at redigere dit program." + +#: actions/editapplication.php:177 actions/newapplication.php:159 +msgid "Name is required." +msgstr "Navn er påkrævet." + +#: actions/editapplication.php:180 actions/newapplication.php:165 +msgid "Name is too long (max 255 chars)." +msgstr "Navnet er for langt (max 255 tegn)." + +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Navn allerede i brug. Prøv et andet." + +#: actions/editapplication.php:186 actions/newapplication.php:168 +msgid "Description is required." +msgstr "Beskrivelse er påkrævet." + +#: actions/editapplication.php:194 +msgid "Source URL is too long." +msgstr "Kilde-URL er for lang." + +#: actions/editapplication.php:200 actions/newapplication.php:185 +msgid "Source URL is not valid." +msgstr "Kilde-URL er ikke gyldig." + +#: actions/editapplication.php:203 actions/newapplication.php:188 +msgid "Organization is required." +msgstr "Organisationen er påkrævet." + +#: actions/editapplication.php:206 actions/newapplication.php:191 +msgid "Organization is too long (max 255 chars)." +msgstr "Organisationen er for lang (max 255 tegn)." + +#: actions/editapplication.php:209 actions/newapplication.php:194 +msgid "Organization homepage is required." +msgstr "Organisationens hjemmeside er påkrævet." + +#: actions/editapplication.php:218 actions/newapplication.php:206 +msgid "Callback is too long." +msgstr "Callback er for lang." + +#: actions/editapplication.php:225 actions/newapplication.php:215 +msgid "Callback URL is not valid." +msgstr "Tilbagekaldswebadresse er ikke gyldig." + +#: actions/editapplication.php:258 +msgid "Could not update application." +msgstr "Kunne ikke opdatere programmet." + +#: actions/editgroup.php:56 +#, php-format +msgid "Edit %s group" +msgstr "Rediger %s gruppe" + +#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 +msgid "You must be logged in to create a group." +msgstr "Du skal være logget ind for at oprette en gruppe." + +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 +msgid "You must be an admin to edit the group." +msgstr "Du skal være administrator for at redigere gruppen." + +#: actions/editgroup.php:158 +msgid "Use this form to edit the group." +msgstr "Brug denne formular til at redigere gruppen." + +#: actions/editgroup.php:205 actions/newgroup.php:145 +#, php-format +msgid "description is too long (max %d chars)." +msgstr "Beskrivelsen er for lang (max %d tegn)." + +#: actions/editgroup.php:228 actions/newgroup.php:168 +#, php-format +msgid "Invalid alias: \"%s\"" +msgstr "Ugyldigt alias: \"%s\"." + +#: actions/editgroup.php:258 +msgid "Could not update group." +msgstr "Kunne ikke opdatere gruppe." + +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 +msgid "Could not create aliases." +msgstr "Kunne ikke oprette aliaser." + +#: actions/editgroup.php:280 +msgid "Options saved." +msgstr "Valg gemt." + +#. TRANS: Title for e-mail settings. +#: actions/emailsettings.php:61 +msgid "Email settings" +msgstr "Email indstillinger" + +#. TRANS: E-mail settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/emailsettings.php:76 +#, php-format +msgid "Manage how you get email from %%site.name%%." +msgstr "Administrer hvordan du får e-mail fra %%site.name%%." + +#. TRANS: Form legend for e-mail settings form. +#. TRANS: Field label for e-mail address input in e-mail settings form. +#: actions/emailsettings.php:106 actions/emailsettings.php:132 +msgid "Email address" +msgstr "E-mail adresse" + +#. TRANS: Form note in e-mail settings form. +#: actions/emailsettings.php:112 +msgid "Current confirmed email address." +msgstr "Nuværende bekræftet email-adresse." + +#. TRANS: Button label to remove a confirmed e-mail address. +#. TRANS: Button label for removing a set sender e-mail address to post notices from. +#. TRANS: Button label to remove a confirmed IM address. +#. TRANS: Button label to remove a confirmed SMS address. +#. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. +#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/imsettings.php:116 actions/smssettings.php:124 +#: actions/smssettings.php:180 +msgctxt "BUTTON" +msgid "Remove" +msgstr "Fjern" + +#: actions/emailsettings.php:122 +msgid "" +"Awaiting confirmation on this address. Check your inbox (and spam box!) for " +"a message with further instructions." +msgstr "" +"Afventer bekræftelse på denne adresse. Tjek din indbakke (og spam box!) for " +"en besked med yderligere instruktioner." + +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label +#: actions/emailsettings.php:127 actions/imsettings.php:131 +#: actions/smssettings.php:137 lib/applicationeditform.php:357 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Afbryd" + +#. TRANS: Instructions for e-mail address input form. +#: actions/emailsettings.php:135 +msgid "Email address, like \"UserName@example.org\"" +msgstr "E-mail adresse, som \"UserName@example.org\"" + +#. TRANS: Button label for adding an e-mail address in e-mail settings form. +#. TRANS: Button label for adding an IM address in IM settings form. +#. TRANS: Button label for adding a SMS phone number in SMS settings form. +#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/smssettings.php:162 +msgctxt "BUTTON" +msgid "Add" +msgstr "Tilføj" + +#. TRANS: Form legend for incoming e-mail settings form. +#. TRANS: Form legend for incoming SMS settings form. +#: actions/emailsettings.php:147 actions/smssettings.php:171 +msgid "Incoming email" +msgstr "Indgående e-mail" + +#. TRANS: Form instructions for incoming e-mail form in e-mail settings. +#. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. +#: actions/emailsettings.php:155 actions/smssettings.php:178 +msgid "Send email to this address to post new notices." +msgstr "Send e-mail til denne adresse for at skrive nye bekendtgørelser." + +#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:164 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "" +"Opret en ny e-mail adresse til postering af beskeder; annullerer den gamle." + +#. TRANS: Button label for adding an e-mail address to send notices from. +#. TRANS: Button label for adding an SMS e-mail address to send notices from. +#: actions/emailsettings.php:168 actions/smssettings.php:189 +msgctxt "BUTTON" +msgid "New" +msgstr "Ny" + +#. TRANS: Form legend for e-mail preferences form. +#: actions/emailsettings.php:174 +msgid "Email preferences" +msgstr "Email indstillinger" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:180 +msgid "Send me notices of new subscriptions through email." +msgstr "Send mig meddelelser om nye abonnementer via e-mail." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:186 +msgid "Send me email when someone adds my notice as a favorite." +msgstr "Send mig email, når nogen har tilføjet min meddelelse som en favorit." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:193 +msgid "Send me email when someone sends me a private message." +msgstr "Send mig email, når nogen sender mig en privat besked." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:199 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "Send mig email, når nogen sender mig et \"@-svar\"." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:205 +msgid "Allow friends to nudge me and send me an email." +msgstr "Tillad venner at puffe mig og at sende mig en e-mail." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:212 +msgid "I want to post notices by email." +msgstr "Jeg ønsker at sende meddelelser via e-mail." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:219 +msgid "Publish a MicroID for my email address." +msgstr "Udgiv et MicroID til min email adresse." + +#. TRANS: Confirmation message for successful e-mail preferences save. +#: actions/emailsettings.php:334 +msgid "Email preferences saved." +msgstr "Email indstillinger gemt." + +#. TRANS: Message given saving e-mail address without having provided one. +#: actions/emailsettings.php:353 +msgid "No email address." +msgstr "Ingen e-mail-adresse." + +#. TRANS: Message given saving e-mail address that cannot be normalised. +#: actions/emailsettings.php:361 +msgid "Cannot normalize that email address" +msgstr "Kan ikke normalisere denne e-mail adresse" + +#. TRANS: Message given saving e-mail address that not valid. +#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/siteadminpanel.php:144 +msgid "Not a valid email address." +msgstr "Ikke en gyldig e-mail adresse." + +#. TRANS: Message given saving e-mail address that is already set. +#: actions/emailsettings.php:370 +msgid "That is already your email address." +msgstr "Det er allerede din e-mail adresse." + +#. TRANS: Message given saving e-mail address that is already set for another user. +#: actions/emailsettings.php:374 +msgid "That email address already belongs to another user." +msgstr "Denne e-mail adresse tilhører allerede en anden bruger." + +#. TRANS: Server error thrown on database error adding e-mail confirmation code. +#. TRANS: Server error thrown on database error adding IM confirmation code. +#. TRANS: Server error thrown on database error adding SMS confirmation code. +#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/smssettings.php:373 +msgid "Couldn't insert confirmation code." +msgstr "Kunne ikke indsætte bekræftelseskode." + +#. TRANS: Message given saving valid e-mail address that is to be confirmed. +#: actions/emailsettings.php:398 +msgid "" +"A confirmation code was sent to the email address you added. Check your " +"inbox (and spam box!) for the code and instructions on how to use it." +msgstr "" +"En bekræftelse kode blev sendt til den e-mail adresse, du har tilføjet. Tjek " +"din indbakke (og spam box!) for koden og vejledning om, hvordan man bruger " +"den." + +#. TRANS: Message given canceling e-mail address confirmation that is not pending. +#. TRANS: Message given canceling IM address confirmation that is not pending. +#. TRANS: Message given canceling SMS phone number confirmation that is not pending. +#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/smssettings.php:408 +msgid "No pending confirmation to cancel." +msgstr "Ingen afventende bekræftelse at annullere." + +#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. +#: actions/emailsettings.php:424 +msgid "That is the wrong email address." +msgstr "Det er den forkerte e-mail adresse." + +#. TRANS: Message given after successfully canceling e-mail address confirmation. +#: actions/emailsettings.php:438 +msgid "Email confirmation cancelled." +msgstr "Email bekræftelse aflyst." + +#. TRANS: Message given trying to remove an e-mail address that is not +#. TRANS: registered for the active user. +#: actions/emailsettings.php:458 +msgid "That is not your email address." +msgstr "Det er ikke din e-mail adresse." + +#. TRANS: Message given after successfully removing a registered e-mail address. +#: actions/emailsettings.php:479 +msgid "The email address was removed." +msgstr "E-mail adressen blev fjernet." + +#: actions/emailsettings.php:493 actions/smssettings.php:568 +msgid "No incoming email address." +msgstr "Ingen indkommende e-mail adresse." + +#. TRANS: Server error thrown on database error removing incoming e-mail address. +#. TRANS: Server error thrown on database error adding incoming e-mail address. +#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/smssettings.php:578 actions/smssettings.php:602 +msgid "Couldn't update user record." +msgstr "Kunne ikke opdatere bruger oplysninger." + +#. TRANS: Message given after successfully removing an incoming e-mail address. +#: actions/emailsettings.php:508 actions/smssettings.php:581 +msgid "Incoming email address removed." +msgstr "Indgående e-mail adresse fjernet." + +#. TRANS: Message given after successfully adding an incoming e-mail address. +#: actions/emailsettings.php:532 actions/smssettings.php:605 +msgid "New incoming email address added." +msgstr "Ny indkommende e-mail adresse tilføjet." + +#: actions/favor.php:79 +msgid "This notice is already a favorite!" +msgstr "Denne meddelelse er allerede en favorit!" + +#: actions/favor.php:92 lib/disfavorform.php:140 +msgid "Disfavor favorite" +msgstr "Fjern markering som favorit" + +#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: lib/publicgroupnav.php:93 +msgid "Popular notices" +msgstr "Populære bekendtgørelser" + +#: actions/favorited.php:67 +#, php-format +msgid "Popular notices, page %d" +msgstr "Populære bekendtgørelser, side %d" + +#: actions/favorited.php:79 +msgid "The most popular notices on the site right now." +msgstr "De mest populære opslag på hjemmesiden lige nu." + +#: actions/favorited.php:150 +msgid "Favorite notices appear on this page but no one has favorited one yet." +msgstr "" +"Favorit bekendtgørelser vises på denne side, men ingen har markeret en " +"favorit endnu." + +#: actions/favorited.php:153 +msgid "" +"Be the first to add a notice to your favorites by clicking the fave button " +"next to any notice you like." +msgstr "" +"Vær den første til at tilføje en meddelelse til dine favoritter ved at " +"klikke på favorit knappen ved siden af en meddelelse, du syntes om." + +#: actions/favorited.php:156 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to add a " +"notice to your favorites!" +msgstr "" +"Hvorfor ikke [registrere en konto] (%%action.register%%), og vær den første " +"til at tilføje en meddelelse til dine favoritter!" + +#: actions/favoritesrss.php:111 actions/showfavorites.php:77 +#: lib/personalgroupnav.php:115 +#, php-format +msgid "%s's favorite notices" +msgstr "%s's favorit bekendtgørelser" + +#: actions/favoritesrss.php:115 +#, php-format +msgid "Updates favored by %1$s on %2$s!" +msgstr "Opdateringer markeret som favorit af %1$s på %2$s!" + +#: actions/featured.php:69 lib/featureduserssection.php:87 +#: lib/publicgroupnav.php:89 +msgid "Featured users" +msgstr "Udvalgte brugere" + +#: actions/featured.php:71 +#, php-format +msgid "Featured users, page %d" +msgstr "Udvalgte brugere, side %d" + +#: actions/featured.php:99 +#, php-format +msgid "A selection of some great users on %s" +msgstr "Et udvalg af nogle top brugere på %s" + +#: actions/file.php:34 +msgid "No notice ID." +msgstr "Ingen meddelelses ID." + +#: actions/file.php:38 +msgid "No notice." +msgstr "Ingen meddelelse." + +#: actions/file.php:42 +msgid "No attachments." +msgstr "Ingen vedhæftede filer." + +#: actions/file.php:51 +msgid "No uploaded attachments." +msgstr "Ingen uploaded vedhæftede filer." + +#: actions/finishremotesubscribe.php:69 +msgid "Not expecting this response!" +msgstr "Forventer ikke dette svar!" + +#: actions/finishremotesubscribe.php:80 +msgid "User being listened to does not exist." +msgstr "Brugeren som lyttes til, findes ikke." + +#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 +msgid "You can use the local subscription!" +msgstr "Du kan bruge det lokale abonnement!" + +#: actions/finishremotesubscribe.php:99 +msgid "That user has blocked you from subscribing." +msgstr "Denne bruger har blokeret dig fra at abonnere." + +#: actions/finishremotesubscribe.php:110 +msgid "You are not authorized." +msgstr "Du har ikke tilladelse." + +#: actions/finishremotesubscribe.php:113 +msgid "Could not convert request token to access token." +msgstr "Kunne ikke konvertere anmodnings-token til et adgangs-token." + +#: actions/finishremotesubscribe.php:118 +msgid "Remote service uses unknown version of OMB protocol." +msgstr "Fjerntjenesten bruger en ukendt version af 0MB protokol." + +#: actions/finishremotesubscribe.php:138 +msgid "Error updating remote profile." +msgstr "Fejl ved opdatering af fjernbetjeningsprofil." + +#: actions/getfile.php:79 +msgid "No such file." +msgstr "Ingen sådan fil." + +#: actions/getfile.php:83 +msgid "Cannot read file." +msgstr "Kan ikke læse filen." + +#: actions/grantrole.php:62 actions/revokerole.php:62 +msgid "Invalid role." +msgstr "Ugyldig rolle." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "Denne rolle er reserveret og kan ikke indstilles." + +#: actions/grantrole.php:75 +msgid "You cannot grant user roles on this site." +msgstr "Du kan ikke tildele brugerroller på dette site." + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "Bruger har allerede denne rolle." + +#: actions/groupblock.php:71 actions/groupunblock.php:71 +#: actions/makeadmin.php:71 actions/subedit.php:46 +#: lib/profileformaction.php:79 +msgid "No profile specified." +msgstr "Ingen profil specificeret." + +#: actions/groupblock.php:76 actions/groupunblock.php:76 +#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#: actions/unsubscribe.php:84 lib/profileformaction.php:86 +msgid "No profile with that ID." +msgstr "Ingen profil med det ID." + +#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/makeadmin.php:81 +msgid "No group specified." +msgstr "Ingen gruppe angivet." + +#: actions/groupblock.php:91 +msgid "Only an admin can block group members." +msgstr "Kun en administrator kan blokere gruppens medlemmer." + +#: actions/groupblock.php:95 +msgid "User is already blocked from group." +msgstr "Bruger er allerede blokeret fra gruppen." + +#: actions/groupblock.php:100 +msgid "User is not a member of group." +msgstr "Brugeren er ikke medlem af gruppen." + +#: actions/groupblock.php:134 actions/groupmembers.php:360 +msgid "Block user from group" +msgstr "Bloker bruger fra gruppe" + +#: actions/groupblock.php:160 +#, php-format +msgid "" +"Are you sure you want to block user \"%1$s\" from the group \"%2$s\"? They " +"will be removed from the group, unable to post, and unable to subscribe to " +"the group in the future." +msgstr "" +"Er du sikker på du vil blokere bruger \"%1$s\" fra gruppen \"%2$s\"? De vil " +"blive fjernet fra gruppen, ude af stand til at postere, og ude af stand til " +"at tilmelde sig gruppen i fremtiden." + +#. TRANS: Submit button title for 'No' when blocking a user from a group. +#: actions/groupblock.php:182 +msgid "Do not block this user from this group" +msgstr "Bloker ikke denne bruger fra denne gruppe" + +#. TRANS: Submit button title for 'Yes' when blocking a user from a group. +#: actions/groupblock.php:189 +msgid "Block this user from this group" +msgstr "Bloker denne bruger fra denne gruppe" + +#: actions/groupblock.php:206 +msgid "Database error blocking user from group." +msgstr "Database fejl ved blokering af bruger fra gruppen." + +#: actions/groupbyid.php:74 actions/userbyid.php:70 +msgid "No ID." +msgstr "Ingen ID." + +#: actions/groupdesignsettings.php:68 +msgid "You must be logged in to edit a group." +msgstr "Du skal være logget på for at redigere en gruppe." + +#: actions/groupdesignsettings.php:144 +msgid "Group design" +msgstr "Gruppe design" + +#: actions/groupdesignsettings.php:155 +msgid "" +"Customize the way your group looks with a background image and a colour " +"palette of your choice." +msgstr "" +"Tilpas den måde din gruppe vises på, med et baggrundsbillede og en " +"farvepalet efter dit valg." + +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 +#: lib/designsettings.php:391 lib/designsettings.php:413 +msgid "Couldn't update your design." +msgstr "Kunne ikke opdatere dit design." + +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +msgid "Design preferences saved." +msgstr "Design præferencer gemt." + +#: actions/grouplogo.php:142 actions/grouplogo.php:195 +msgid "Group logo" +msgstr "Gruppe logo" + +#: actions/grouplogo.php:153 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "" +"Du kan uploade et logo billede til din gruppe. Den maksimale filstørrelse er " +"%s." + +#: actions/grouplogo.php:365 +msgid "Pick a square area of the image to be the logo." +msgstr "Vælg en firkantet område af billedet, der skal logoet." + +#: actions/grouplogo.php:399 +msgid "Logo updated." +msgstr "Logo opdateret." + +#: actions/grouplogo.php:401 +msgid "Failed updating logo." +msgstr "Mislykket ajourføring af logo." + +#: actions/groupmembers.php:100 lib/groupnav.php:92 +#, php-format +msgid "%s group members" +msgstr "%s gruppe medlemmer" + +#: actions/groupmembers.php:103 +#, php-format +msgid "%1$s group members, page %2$d" +msgstr "" + +#: actions/groupmembers.php:118 +msgid "A list of the users in this group." +msgstr "" + +#: actions/groupmembers.php:182 lib/groupnav.php:107 +msgid "Admin" +msgstr "" + +#: actions/groupmembers.php:392 lib/blockform.php:69 +msgid "Block" +msgstr "" + +#: actions/groupmembers.php:487 +msgid "Make user an admin of the group" +msgstr "" + +#: actions/groupmembers.php:519 +msgid "Make Admin" +msgstr "" + +#: actions/groupmembers.php:519 +msgid "Make this user an admin" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/grouprss.php:139 actions/userrss.php:94 +#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 +#, php-format +msgid "%s timeline" +msgstr "" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#: actions/grouprss.php:142 +#, php-format +msgid "Updates from members of %1$s on %2$s!" +msgstr "" + +#: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 +#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 +msgid "Groups" +msgstr "" + +#: actions/groups.php:64 +#, php-format +msgid "Groups, page %d" +msgstr "" + +#: actions/groups.php:90 +#, php-format +msgid "" +"%%%%site.name%%%% groups let you find and talk with people of similar " +"interests. After you join a group you can send messages to all other members " +"using the syntax \"!groupname\". Don't see a group you like? Try [searching " +"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" +"%%%%)" +msgstr "" + +#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 +msgid "Create a new group" +msgstr "" + +#: actions/groupsearch.php:52 +#, php-format +msgid "" +"Search for groups on %%site.name%% by their name, location, or description. " +"Separate the terms by spaces; they must be 3 characters or more." +msgstr "" + +#: actions/groupsearch.php:58 +msgid "Group search" +msgstr "" + +#: actions/groupsearch.php:79 actions/noticesearch.php:117 +#: actions/peoplesearch.php:83 +msgid "No results." +msgstr "" + +#: actions/groupsearch.php:82 +#, php-format +msgid "" +"If you can't find the group you're looking for, you can [create it](%%action." +"newgroup%%) yourself." +msgstr "" + +#: actions/groupsearch.php:85 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and [create the group](%%" +"action.newgroup%%) yourself!" +msgstr "" + +#: actions/groupunblock.php:91 +msgid "Only an admin can unblock group members." +msgstr "" + +#: actions/groupunblock.php:95 +msgid "User is not blocked from group." +msgstr "" + +#: actions/groupunblock.php:128 actions/unblock.php:86 +msgid "Error removing the block." +msgstr "" + +#. TRANS: Title for instance messaging settings. +#: actions/imsettings.php:60 +msgid "IM settings" +msgstr "" + +#. TRANS: Instant messaging settings page instructions. +#. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. +#. TRANS: the order and formatting of link text and link should remain unchanged. +#: actions/imsettings.php:74 +#, php-format +msgid "" +"You can send and receive notices through Jabber/GTalk [instant messages](%%" +"doc.im%%). Configure your address and settings below." +msgstr "" + +#. TRANS: Message given in the IM settings if XMPP is not enabled on the site. +#: actions/imsettings.php:94 +msgid "IM is not available." +msgstr "" + +#. TRANS: Form legend for IM settings form. +#. TRANS: Field label for IM address input in IM settings form. +#: actions/imsettings.php:106 actions/imsettings.php:136 +msgid "IM address" +msgstr "" + +#: actions/imsettings.php:113 +msgid "Current confirmed Jabber/GTalk address." +msgstr "" + +#. TRANS: Form note in IM settings form. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:124 +#, php-format +msgid "" +"Awaiting confirmation on this address. Check your Jabber/GTalk account for a " +"message with further instructions. (Did you add %s to your buddy list?)" +msgstr "" + +#. TRANS: IM address input field instructions in IM settings form. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:140 +#, php-format +msgid "" +"Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " +"add %s to your buddy list in your IM client or on GTalk." +msgstr "" + +#. TRANS: Form legend for IM preferences form. +#: actions/imsettings.php:155 +msgid "IM preferences" +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:160 +msgid "Send me notices through Jabber/GTalk." +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:166 +msgid "Post a notice when my Jabber/GTalk status changes." +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:172 +msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:179 +msgid "Publish a MicroID for my Jabber/GTalk address." +msgstr "" + +#. TRANS: Confirmation message for successful IM preferences save. +#: actions/imsettings.php:287 actions/othersettings.php:180 +msgid "Preferences saved." +msgstr "" + +#. TRANS: Message given saving IM address without having provided one. +#: actions/imsettings.php:309 +msgid "No Jabber ID." +msgstr "" + +#. TRANS: Message given saving IM address that cannot be normalised. +#: actions/imsettings.php:317 +msgid "Cannot normalize that Jabber ID" +msgstr "" + +#. TRANS: Message given saving IM address that not valid. +#: actions/imsettings.php:322 +msgid "Not a valid Jabber ID" +msgstr "" + +#. TRANS: Message given saving IM address that is already set. +#: actions/imsettings.php:326 +msgid "That is already your Jabber ID." +msgstr "" + +#. TRANS: Message given saving IM address that is already set for another user. +#: actions/imsettings.php:330 +msgid "Jabber ID already belongs to another user." +msgstr "" + +#. TRANS: Message given saving valid IM address that is to be confirmed. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:358 +#, php-format +msgid "" +"A confirmation code was sent to the IM address you added. You must approve %" +"s for sending messages to you." +msgstr "" + +#. TRANS: Message given canceling IM address confirmation for the wrong IM address. +#: actions/imsettings.php:388 +msgid "That is the wrong IM address." +msgstr "" + +#. TRANS: Server error thrown on database error canceling IM address confirmation. +#: actions/imsettings.php:397 +msgid "Couldn't delete IM confirmation." +msgstr "" + +#. TRANS: Message given after successfully canceling IM address confirmation. +#: actions/imsettings.php:402 +msgid "IM confirmation cancelled." +msgstr "" + +#. TRANS: Message given trying to remove an IM address that is not +#. TRANS: registered for the active user. +#: actions/imsettings.php:424 +msgid "That is not your Jabber ID." +msgstr "" + +#. TRANS: Message given after successfully removing a registered IM address. +#: actions/imsettings.php:447 +msgid "The IM address was removed." +msgstr "" + +#: actions/inbox.php:59 +#, php-format +msgid "Inbox for %1$s - page %2$d" +msgstr "" + +#: actions/inbox.php:62 +#, php-format +msgid "Inbox for %s" +msgstr "" + +#: actions/inbox.php:115 +msgid "This is your inbox, which lists your incoming private messages." +msgstr "" + +#: actions/invite.php:39 +msgid "Invites have been disabled." +msgstr "" + +#: actions/invite.php:41 +#, php-format +msgid "You must be logged in to invite other users to use %s." +msgstr "" + +#: actions/invite.php:72 +#, php-format +msgid "Invalid email address: %s" +msgstr "" + +#: actions/invite.php:110 +msgid "Invitation(s) sent" +msgstr "" + +#: actions/invite.php:112 +msgid "Invite new users" +msgstr "" + +#: actions/invite.php:128 +msgid "You are already subscribed to these users:" +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#, php-format +msgid "%1$s (%2$s)" +msgstr "" + +#: actions/invite.php:136 +msgid "" +"These people are already users and you were automatically subscribed to them:" +msgstr "" + +#: actions/invite.php:144 +msgid "Invitation(s) sent to the following people:" +msgstr "" + +#: actions/invite.php:150 +msgid "" +"You will be notified when your invitees accept the invitation and register " +"on the site. Thanks for growing the community!" +msgstr "" + +#: actions/invite.php:162 +msgid "" +"Use this form to invite your friends and colleagues to use this service." +msgstr "" + +#: actions/invite.php:187 +msgid "Email addresses" +msgstr "" + +#: actions/invite.php:189 +msgid "Addresses of friends to invite (one per line)" +msgstr "" + +#: actions/invite.php:192 +msgid "Personal message" +msgstr "" + +#: actions/invite.php:194 +msgid "Optionally add a personal message to the invitation." +msgstr "" + +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +msgctxt "BUTTON" +msgid "Send" +msgstr "" + +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. +#: actions/invite.php:228 +#, php-format +msgid "%1$s has invited you to join them on %2$s" +msgstr "" + +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. +#: actions/invite.php:231 +#, php-format +msgid "" +"%1$s has invited you to join them on %2$s (%3$s).\n" +"\n" +"%2$s is a micro-blogging service that lets you keep up-to-date with people " +"you know and people who interest you.\n" +"\n" +"You can also share news about yourself, your thoughts, or your life online " +"with people who know about you. It's also great for meeting new people who " +"share your interests.\n" +"\n" +"%1$s said:\n" +"\n" +"%4$s\n" +"\n" +"You can see %1$s's profile page on %2$s here:\n" +"\n" +"%5$s\n" +"\n" +"If you'd like to try the service, click on the link below to accept the " +"invitation.\n" +"\n" +"%6$s\n" +"\n" +"If not, you can ignore this message. Thanks for your patience and your " +"time.\n" +"\n" +"Sincerely, %2$s\n" +msgstr "" + +#: actions/joingroup.php:60 +msgid "You must be logged in to join a group." +msgstr "" + +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "" + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/joingroup.php:141 lib/command.php:346 +#, php-format +msgid "%1$s joined group %2$s" +msgstr "" + +#: actions/leavegroup.php:60 +msgid "You must be logged in to leave a group." +msgstr "" + +#: actions/leavegroup.php:100 lib/command.php:373 +msgid "You are not a member of that group." +msgstr "" + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/leavegroup.php:137 lib/command.php:392 +#, php-format +msgid "%1$s left group %2$s" +msgstr "" + +#: actions/login.php:102 actions/otp.php:62 actions/register.php:144 +msgid "Already logged in." +msgstr "" + +#: actions/login.php:148 +msgid "Incorrect username or password." +msgstr "" + +#: actions/login.php:154 actions/otp.php:120 +msgid "Error setting user. You are probably not authorized." +msgstr "" + +#: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 +msgid "Login" +msgstr "" + +#: actions/login.php:249 +msgid "Login to site" +msgstr "" + +#: actions/login.php:258 actions/register.php:485 +msgid "Remember me" +msgstr "" + +#: actions/login.php:259 actions/register.php:487 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#: actions/login.php:269 +msgid "Lost or forgotten password?" +msgstr "" + +#: actions/login.php:288 +msgid "" +"For security reasons, please re-enter your user name and password before " +"changing your settings." +msgstr "" + +#: actions/login.php:292 +msgid "Login with your username and password." +msgstr "" + +#: actions/login.php:295 +#, php-format +msgid "" +"Don't have a username yet? [Register](%%action.register%%) a new account." +msgstr "" + +#: actions/makeadmin.php:92 +msgid "Only an admin can make another user an admin." +msgstr "" + +#: actions/makeadmin.php:96 +#, php-format +msgid "%1$s is already an admin for group \"%2$s\"." +msgstr "" + +#: actions/makeadmin.php:133 +#, php-format +msgid "Can't get membership record for %1$s in group %2$s." +msgstr "" + +#: actions/makeadmin.php:146 +#, php-format +msgid "Can't make %1$s an admin for group %2$s." +msgstr "" + +#: actions/microsummary.php:69 +msgid "No current status." +msgstr "" + +#: actions/newapplication.php:52 +msgid "New Application" +msgstr "" + +#: actions/newapplication.php:64 +msgid "You must be logged in to register an application." +msgstr "" + +#: actions/newapplication.php:143 +msgid "Use this form to register a new application." +msgstr "" + +#: actions/newapplication.php:176 +msgid "Source URL is required." +msgstr "" + +#: actions/newapplication.php:258 actions/newapplication.php:267 +msgid "Could not create application." +msgstr "" + +#: actions/newgroup.php:53 +msgid "New group" +msgstr "" + +#: actions/newgroup.php:110 +msgid "Use this form to create a new group." +msgstr "" + +#: actions/newmessage.php:71 actions/newmessage.php:231 +msgid "New message" +msgstr "" + +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +msgid "You can't send a message to this user." +msgstr "" + +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 +#: lib/command.php:555 +msgid "No content!" +msgstr "" + +#: actions/newmessage.php:158 +msgid "No recipient specified." +msgstr "" + +#: actions/newmessage.php:164 lib/command.php:484 +msgid "" +"Don't send a message to yourself; just say it to yourself quietly instead." +msgstr "" + +#: actions/newmessage.php:181 +msgid "Message sent" +msgstr "" + +#: actions/newmessage.php:185 +#, php-format +msgid "Direct message to %s sent." +msgstr "" + +#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +msgid "Ajax Error" +msgstr "" + +#: actions/newnotice.php:69 +msgid "New notice" +msgstr "" + +#: actions/newnotice.php:217 +msgid "Notice posted" +msgstr "" + +#: actions/noticesearch.php:68 +#, php-format +msgid "" +"Search for notices on %%site.name%% by their contents. Separate search terms " +"by spaces; they must be 3 characters or more." +msgstr "" + +#: actions/noticesearch.php:78 +msgid "Text search" +msgstr "" + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%1$s\" on %2$s" +msgstr "" + +#: actions/noticesearch.php:121 +#, php-format +msgid "" +"Be the first to [post on this topic](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" +msgstr "" + +#: actions/noticesearch.php:124 +#, php-format +msgid "" +"Why not [register an account](%%%%action.register%%%%) and be the first to " +"[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" +msgstr "" + +#: actions/noticesearchrss.php:96 +#, php-format +msgid "Updates with \"%s\"" +msgstr "" + +#: actions/noticesearchrss.php:98 +#, php-format +msgid "Updates matching search term \"%1$s\" on %2$s!" +msgstr "" + +#: actions/nudge.php:85 +msgid "" +"This user doesn't allow nudges or hasn't confirmed or set their email yet." +msgstr "" + +#: actions/nudge.php:94 +msgid "Nudge sent" +msgstr "" + +#: actions/nudge.php:97 +msgid "Nudge sent!" +msgstr "" + +#: actions/oauthappssettings.php:59 +msgid "You must be logged in to list your applications." +msgstr "" + +#: actions/oauthappssettings.php:74 +msgid "OAuth applications" +msgstr "" + +#: actions/oauthappssettings.php:85 +msgid "Applications you have registered" +msgstr "" + +#: actions/oauthappssettings.php:135 +#, php-format +msgid "You have not registered any applications yet." +msgstr "" + +#: actions/oauthconnectionssettings.php:72 +msgid "Connected applications" +msgstr "" + +#: actions/oauthconnectionssettings.php:83 +msgid "You have allowed the following applications to access you account." +msgstr "" + +#: actions/oauthconnectionssettings.php:175 +msgid "You are not a user of that application." +msgstr "" + +#: actions/oauthconnectionssettings.php:186 +#, php-format +msgid "Unable to revoke access for app: %s." +msgstr "" + +#: actions/oauthconnectionssettings.php:198 +msgid "You have not authorized any applications to use your account." +msgstr "" + +#: actions/oauthconnectionssettings.php:211 +msgid "Developers can edit the registration settings for their applications " +msgstr "" + +#: actions/oembed.php:80 actions/shownotice.php:100 +msgid "Notice has no profile." +msgstr "" + +#: actions/oembed.php:87 actions/shownotice.php:175 +#, php-format +msgid "%1$s's status on %2$s" +msgstr "" + +#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') +#: actions/oembed.php:159 +#, php-format +msgid "Content type %s not supported." +msgstr "" + +#. TRANS: Error message displaying attachments. %s is the site's base URL. +#: actions/oembed.php:163 +#, php-format +msgid "Only %s URLs over plain HTTP please." +msgstr "" + +#. TRANS: Client error on an API request with an unsupported data format. +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 +msgid "Not a supported data format." +msgstr "" + +#: actions/opensearch.php:64 +msgid "People Search" +msgstr "" + +#: actions/opensearch.php:67 +msgid "Notice Search" +msgstr "" + +#: actions/othersettings.php:60 +msgid "Other settings" +msgstr "" + +#: actions/othersettings.php:71 +msgid "Manage various other options." +msgstr "" + +#: actions/othersettings.php:108 +msgid " (free service)" +msgstr "" + +#: actions/othersettings.php:116 +msgid "Shorten URLs with" +msgstr "" + +#: actions/othersettings.php:117 +msgid "Automatic shortening service to use." +msgstr "" + +#: actions/othersettings.php:122 +msgid "View profile designs" +msgstr "" + +#: actions/othersettings.php:123 +msgid "Show or hide profile designs." +msgstr "" + +#: actions/othersettings.php:153 +msgid "URL shortening service is too long (max 50 chars)." +msgstr "" + +#: actions/otp.php:69 +msgid "No user ID specified." +msgstr "" + +#: actions/otp.php:83 +msgid "No login token specified." +msgstr "" + +#: actions/otp.php:90 +msgid "No login token requested." +msgstr "" + +#: actions/otp.php:95 +msgid "Invalid login token specified." +msgstr "" + +#: actions/otp.php:104 +msgid "Login token expired." +msgstr "" + +#: actions/outbox.php:58 +#, php-format +msgid "Outbox for %1$s - page %2$d" +msgstr "" + +#: actions/outbox.php:61 +#, php-format +msgid "Outbox for %s" +msgstr "" + +#: actions/outbox.php:116 +msgid "This is your outbox, which lists private messages you have sent." +msgstr "" + +#: actions/passwordsettings.php:58 +msgid "Change password" +msgstr "" + +#: actions/passwordsettings.php:69 +msgid "Change your password." +msgstr "" + +#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 +msgid "Password change" +msgstr "" + +#: actions/passwordsettings.php:104 +msgid "Old password" +msgstr "" + +#: actions/passwordsettings.php:108 actions/recoverpassword.php:235 +msgid "New password" +msgstr "" + +#: actions/passwordsettings.php:109 +msgid "6 or more characters" +msgstr "" + +#: actions/passwordsettings.php:112 actions/recoverpassword.php:239 +#: actions/register.php:440 +msgid "Confirm" +msgstr "" + +#: actions/passwordsettings.php:113 actions/recoverpassword.php:240 +msgid "Same as password above" +msgstr "" + +#: actions/passwordsettings.php:117 +msgid "Change" +msgstr "" + +#: actions/passwordsettings.php:154 actions/register.php:237 +msgid "Password must be 6 or more characters." +msgstr "" + +#: actions/passwordsettings.php:157 actions/register.php:240 +msgid "Passwords don't match." +msgstr "" + +#: actions/passwordsettings.php:165 +msgid "Incorrect old password" +msgstr "" + +#: actions/passwordsettings.php:181 +msgid "Error saving user; invalid." +msgstr "" + +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 +msgid "Can't save new password." +msgstr "" + +#: actions/passwordsettings.php:192 actions/recoverpassword.php:211 +msgid "Password saved." +msgstr "" + +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +msgid "Paths" +msgstr "" + +#: actions/pathsadminpanel.php:70 +msgid "Path and server settings for this StatusNet site." +msgstr "" + +#: actions/pathsadminpanel.php:157 +#, php-format +msgid "Theme directory not readable: %s." +msgstr "" + +#: actions/pathsadminpanel.php:163 +#, php-format +msgid "Avatar directory not writable: %s." +msgstr "" + +#: actions/pathsadminpanel.php:169 +#, php-format +msgid "Background directory not writable: %s." +msgstr "" + +#: actions/pathsadminpanel.php:177 +#, php-format +msgid "Locales directory not readable: %s." +msgstr "" + +#: actions/pathsadminpanel.php:183 +msgid "Invalid SSL server. The maximum length is 255 characters." +msgstr "" + +#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +msgid "Site" +msgstr "" + +#: actions/pathsadminpanel.php:238 +msgid "Server" +msgstr "" + +#: actions/pathsadminpanel.php:238 +msgid "Site's server hostname." +msgstr "" + +#: actions/pathsadminpanel.php:242 +msgid "Path" +msgstr "" + +#: actions/pathsadminpanel.php:242 +msgid "Site path" +msgstr "" + +#: actions/pathsadminpanel.php:246 +msgid "Path to locales" +msgstr "" + +#: actions/pathsadminpanel.php:246 +msgid "Directory path to locales" +msgstr "" + +#: actions/pathsadminpanel.php:250 +msgid "Fancy URLs" +msgstr "" + +#: actions/pathsadminpanel.php:252 +msgid "Use fancy (more readable and memorable) URLs?" +msgstr "" + +#: actions/pathsadminpanel.php:259 +msgid "Theme" +msgstr "" + +#: actions/pathsadminpanel.php:264 +msgid "Theme server" +msgstr "" + +#: actions/pathsadminpanel.php:268 +msgid "Theme path" +msgstr "" + +#: actions/pathsadminpanel.php:272 +msgid "Theme directory" +msgstr "" + +#: actions/pathsadminpanel.php:279 +msgid "Avatars" +msgstr "" + +#: actions/pathsadminpanel.php:284 +msgid "Avatar server" +msgstr "" + +#: actions/pathsadminpanel.php:288 +msgid "Avatar path" +msgstr "" + +#: actions/pathsadminpanel.php:292 +msgid "Avatar directory" +msgstr "" + +#: actions/pathsadminpanel.php:301 +msgid "Backgrounds" +msgstr "" + +#: actions/pathsadminpanel.php:305 +msgid "Background server" +msgstr "" + +#: actions/pathsadminpanel.php:309 +msgid "Background path" +msgstr "" + +#: actions/pathsadminpanel.php:313 +msgid "Background directory" +msgstr "" + +#: actions/pathsadminpanel.php:320 +msgid "SSL" +msgstr "" + +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "" + +#: actions/pathsadminpanel.php:324 +msgid "Sometimes" +msgstr "" + +#: actions/pathsadminpanel.php:325 +msgid "Always" +msgstr "" + +#: actions/pathsadminpanel.php:329 +msgid "Use SSL" +msgstr "" + +#: actions/pathsadminpanel.php:330 +msgid "When to use SSL" +msgstr "" + +#: actions/pathsadminpanel.php:335 +msgid "SSL server" +msgstr "" + +#: actions/pathsadminpanel.php:336 +msgid "Server to direct SSL requests to" +msgstr "" + +#: actions/pathsadminpanel.php:352 +msgid "Save paths" +msgstr "" + +#: actions/peoplesearch.php:52 +#, php-format +msgid "" +"Search for people on %%site.name%% by their name, location, or interests. " +"Separate the terms by spaces; they must be 3 characters or more." +msgstr "" + +#: actions/peoplesearch.php:58 +msgid "People search" +msgstr "" + +#: actions/peopletag.php:68 +#, php-format +msgid "Not a valid people tag: %s." +msgstr "" + +#: actions/peopletag.php:142 +#, php-format +msgid "Users self-tagged with %1$s - page %2$d" +msgstr "" + +#: actions/postnotice.php:95 +msgid "Invalid notice content." +msgstr "" + +#: actions/postnotice.php:101 +#, php-format +msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." +msgstr "" + +#: actions/profilesettings.php:60 +msgid "Profile settings" +msgstr "" + +#: actions/profilesettings.php:71 +msgid "" +"You can update your personal profile info here so people know more about you." +msgstr "" + +#: actions/profilesettings.php:99 +msgid "Profile information" +msgstr "" + +#: actions/profilesettings.php:108 lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#: actions/profilesettings.php:111 actions/register.php:455 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 +msgid "Full name" +msgstr "" + +#. TRANS: Form input field label. +#: actions/profilesettings.php:115 actions/register.php:460 +#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +msgid "Homepage" +msgstr "" + +#: actions/profilesettings.php:117 actions/register.php:462 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/profilesettings.php:122 actions/register.php:468 +#, php-format +msgid "Describe yourself and your interests in %d chars" +msgstr "" + +#: actions/profilesettings.php:125 actions/register.php:471 +msgid "Describe yourself and your interests" +msgstr "" + +#: actions/profilesettings.php:127 actions/register.php:473 +msgid "Bio" +msgstr "" + +#: actions/profilesettings.php:132 actions/register.php:478 +#: actions/showgroup.php:265 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:177 +#: lib/userprofile.php:165 +msgid "Location" +msgstr "" + +#: actions/profilesettings.php:134 actions/register.php:480 +msgid "Where you are, like \"City, State (or Region), Country\"" +msgstr "" + +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 +#: actions/tagother.php:209 lib/subscriptionlist.php:106 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +msgid "Tags" +msgstr "" + +#: actions/profilesettings.php:147 +msgid "" +"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" +msgstr "" + +#: actions/profilesettings.php:151 +msgid "Language" +msgstr "" + +#: actions/profilesettings.php:152 +msgid "Preferred language" +msgstr "" + +#: actions/profilesettings.php:161 +msgid "Timezone" +msgstr "" + +#: actions/profilesettings.php:162 +msgid "What timezone are you normally in?" +msgstr "" + +#: actions/profilesettings.php:167 +msgid "" +"Automatically subscribe to whoever subscribes to me (best for non-humans)" +msgstr "" + +#: actions/profilesettings.php:228 actions/register.php:230 +#, php-format +msgid "Bio is too long (max %d chars)." +msgstr "" + +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +msgid "Timezone not selected." +msgstr "" + +#: actions/profilesettings.php:241 +msgid "Language is too long (max 50 chars)." +msgstr "" + +#: actions/profilesettings.php:253 actions/tagother.php:178 +#, php-format +msgid "Invalid tag: \"%s\"" +msgstr "" + +#: actions/profilesettings.php:306 +msgid "Couldn't update user for autosubscribe." +msgstr "" + +#: actions/profilesettings.php:363 +msgid "Couldn't save location prefs." +msgstr "" + +#: actions/profilesettings.php:375 +msgid "Couldn't save profile." +msgstr "" + +#: actions/profilesettings.php:383 +msgid "Couldn't save tags." +msgstr "" + +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +msgid "Settings saved." +msgstr "" + +#: actions/public.php:83 +#, php-format +msgid "Beyond the page limit (%s)." +msgstr "" + +#: actions/public.php:92 +msgid "Could not retrieve public stream." +msgstr "" + +#: actions/public.php:130 +#, php-format +msgid "Public timeline, page %d" +msgstr "" + +#: actions/public.php:132 lib/publicgroupnav.php:79 +msgid "Public timeline" +msgstr "" + +#: actions/public.php:160 +msgid "Public Stream Feed (RSS 1.0)" +msgstr "" + +#: actions/public.php:164 +msgid "Public Stream Feed (RSS 2.0)" +msgstr "" + +#: actions/public.php:168 +msgid "Public Stream Feed (Atom)" +msgstr "" + +#: actions/public.php:188 +#, php-format +msgid "" +"This is the public timeline for %%site.name%% but no one has posted anything " +"yet." +msgstr "" + +#: actions/public.php:191 +msgid "Be the first to post!" +msgstr "" + +#: actions/public.php:195 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to post!" +msgstr "" + +#: actions/public.php:242 +#, php-format +msgid "" +"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" +"blogging) service based on the Free Software [StatusNet](http://status.net/) " +"tool. [Join now](%%action.register%%) to share notices about yourself with " +"friends, family, and colleagues! ([Read more](%%doc.help%%))" +msgstr "" + +#: actions/public.php:247 +#, php-format +msgid "" +"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" +"blogging) service based on the Free Software [StatusNet](http://status.net/) " +"tool." +msgstr "" + +#: actions/publictagcloud.php:57 +msgid "Public tag cloud" +msgstr "" + +#: actions/publictagcloud.php:63 +#, php-format +msgid "These are most popular recent tags on %s " +msgstr "" + +#: actions/publictagcloud.php:69 +#, php-format +msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." +msgstr "" + +#: actions/publictagcloud.php:72 +msgid "Be the first to post one!" +msgstr "" + +#: actions/publictagcloud.php:75 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to post " +"one!" +msgstr "" + +#: actions/publictagcloud.php:134 +msgid "Tag cloud" +msgstr "" + +#: actions/recoverpassword.php:36 +msgid "You are already logged in!" +msgstr "" + +#: actions/recoverpassword.php:62 +msgid "No such recovery code." +msgstr "" + +#: actions/recoverpassword.php:66 +msgid "Not a recovery code." +msgstr "" + +#: actions/recoverpassword.php:73 +msgid "Recovery code for unknown user." +msgstr "" + +#: actions/recoverpassword.php:86 +msgid "Error with confirmation code." +msgstr "" + +#: actions/recoverpassword.php:97 +msgid "This confirmation code is too old. Please start again." +msgstr "" + +#: actions/recoverpassword.php:111 +msgid "Could not update user with confirmed email address." +msgstr "" + +#: actions/recoverpassword.php:152 +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 "" + +#: actions/recoverpassword.php:158 +msgid "You have been identified. Enter a new password below. " +msgstr "" + +#: actions/recoverpassword.php:188 +msgid "Password recovery" +msgstr "" + +#: actions/recoverpassword.php:191 +msgid "Nickname or email address" +msgstr "" + +#: actions/recoverpassword.php:193 +msgid "Your nickname on this server, or your registered email address." +msgstr "" + +#: actions/recoverpassword.php:199 actions/recoverpassword.php:200 +msgid "Recover" +msgstr "" + +#: actions/recoverpassword.php:208 +msgid "Reset password" +msgstr "" + +#: actions/recoverpassword.php:209 +msgid "Recover password" +msgstr "" + +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 +msgid "Password recovery requested" +msgstr "" + +#: actions/recoverpassword.php:213 +msgid "Unknown action" +msgstr "" + +#: actions/recoverpassword.php:236 +msgid "6 or more characters, and don't forget it!" +msgstr "" + +#: actions/recoverpassword.php:243 +msgid "Reset" +msgstr "" + +#: actions/recoverpassword.php:252 +msgid "Enter a nickname or email address." +msgstr "" + +#: actions/recoverpassword.php:282 +msgid "No user with that email address or username." +msgstr "" + +#: actions/recoverpassword.php:299 +msgid "No registered email address for that user." +msgstr "" + +#: actions/recoverpassword.php:313 +msgid "Error saving address confirmation." +msgstr "" + +#: actions/recoverpassword.php:338 +msgid "" +"Instructions for recovering your password have been sent to the email " +"address registered to your account." +msgstr "" + +#: actions/recoverpassword.php:357 +msgid "Unexpected password reset." +msgstr "" + +#: actions/recoverpassword.php:365 +msgid "Password must be 6 chars or more." +msgstr "" + +#: actions/recoverpassword.php:369 +msgid "Password and confirmation do not match." +msgstr "" + +#: actions/recoverpassword.php:388 actions/register.php:255 +msgid "Error setting user." +msgstr "" + +#: actions/recoverpassword.php:395 +msgid "New password successfully saved. You are now logged in." +msgstr "" + +#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +msgid "Sorry, only invited people can register." +msgstr "" + +#: actions/register.php:99 +msgid "Sorry, invalid invitation code." +msgstr "" + +#: actions/register.php:119 +msgid "Registration successful" +msgstr "" + +#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +msgid "Register" +msgstr "" + +#: actions/register.php:142 +msgid "Registration not allowed." +msgstr "" + +#: actions/register.php:205 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: actions/register.php:219 +msgid "Email address already exists." +msgstr "" + +#: actions/register.php:250 actions/register.php:272 +msgid "Invalid username or password." +msgstr "" + +#: actions/register.php:350 +msgid "" +"With this form you can create a new account. You can then post notices and " +"link up to friends and colleagues. " +msgstr "" + +#: actions/register.php:432 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." +msgstr "" + +#: actions/register.php:437 +msgid "6 or more characters. Required." +msgstr "" + +#: actions/register.php:441 +msgid "Same as password above. Required." +msgstr "" + +#. TRANS: Link description in user account settings menu. +#: actions/register.php:445 actions/register.php:449 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +msgid "Email" +msgstr "" + +#: actions/register.php:446 actions/register.php:450 +msgid "Used only for updates, announcements, and password recovery" +msgstr "" + +#: actions/register.php:457 +msgid "Longer name, preferably your \"real\" name" +msgstr "" + +#: actions/register.php:518 +#, php-format +msgid "" +"I understand that content and data of %1$s are private and confidential." +msgstr "" + +#: actions/register.php:528 +#, php-format +msgid "My text and files are copyright by %1$s." +msgstr "" + +#. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. +#: actions/register.php:532 +msgid "My text and files remain under my own copyright." +msgstr "" + +#. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. +#: actions/register.php:535 +msgid "All rights reserved." +msgstr "" + +#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. +#: actions/register.php:540 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#: actions/register.php:583 +#, php-format +msgid "" +"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " +"want to...\n" +"\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" +"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell " +"others more about you. \n" +"* Read over the [online docs](%%%%doc.help%%%%) for features you may have " +"missed. \n" +"\n" +"Thanks for signing up and we hope you enjoy using this service." +msgstr "" + +#: actions/register.php:607 +msgid "" +"(You should receive a message by email momentarily, with instructions on how " +"to confirm your email address.)" +msgstr "" + +#: actions/remotesubscribe.php:98 +#, php-format +msgid "" +"To subscribe, you can [login](%%action.login%%), or [register](%%action." +"register%%) a new account. If you already have an account on a [compatible " +"microblogging site](%%doc.openmublog%%), enter your profile URL below." +msgstr "" + +#: actions/remotesubscribe.php:112 +msgid "Remote subscribe" +msgstr "" + +#: actions/remotesubscribe.php:124 +msgid "Subscribe to a remote user" +msgstr "" + +#: actions/remotesubscribe.php:129 +msgid "User nickname" +msgstr "" + +#: actions/remotesubscribe.php:130 +msgid "Nickname of the user you want to follow" +msgstr "" + +#: actions/remotesubscribe.php:133 +msgid "Profile URL" +msgstr "" + +#: actions/remotesubscribe.php:134 +msgid "URL of your profile on another compatible microblogging service" +msgstr "" + +#: actions/remotesubscribe.php:137 lib/subscribeform.php:139 +#: lib/userprofile.php:406 +msgid "Subscribe" +msgstr "" + +#: actions/remotesubscribe.php:159 +msgid "Invalid profile URL (bad format)" +msgstr "" + +#: actions/remotesubscribe.php:168 +msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." +msgstr "" + +#: actions/remotesubscribe.php:176 +msgid "That’s a local profile! Login to subscribe." +msgstr "" + +#: actions/remotesubscribe.php:183 +msgid "Couldn’t get a request token." +msgstr "" + +#: actions/repeat.php:57 +msgid "Only logged-in users can repeat notices." +msgstr "" + +#: actions/repeat.php:64 actions/repeat.php:71 +msgid "No notice specified." +msgstr "" + +#: actions/repeat.php:76 +msgid "You can't repeat your own notice." +msgstr "" + +#: actions/repeat.php:90 +msgid "You already repeated that notice." +msgstr "" + +#: actions/repeat.php:114 lib/noticelist.php:675 +msgid "Repeated" +msgstr "" + +#: actions/repeat.php:119 +msgid "Repeated!" +msgstr "" + +#: actions/replies.php:126 actions/repliesrss.php:68 +#: lib/personalgroupnav.php:105 +#, php-format +msgid "Replies to %s" +msgstr "" + +#: actions/replies.php:128 +#, php-format +msgid "Replies to %1$s, page %2$d" +msgstr "" + +#: actions/replies.php:145 +#, php-format +msgid "Replies feed for %s (RSS 1.0)" +msgstr "" + +#: actions/replies.php:152 +#, php-format +msgid "Replies feed for %s (RSS 2.0)" +msgstr "" + +#: actions/replies.php:159 +#, php-format +msgid "Replies feed for %s (Atom)" +msgstr "" + +#: actions/replies.php:199 +#, fuzzy, php-format +msgid "" +"This is the timeline showing replies to %1$s but %2$s hasn't received a " +"notice to them yet." +msgstr "" +"Dette er tidslinjen for %s og venner, men ingen har skrevet noget endnu." + +#: actions/replies.php:204 +#, php-format +msgid "" +"You can engage other users in a conversation, subscribe to more people or " +"[join groups](%%action.groups%%)." +msgstr "" + +#: actions/replies.php:206 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#: actions/repliesrss.php:72 +#, php-format +msgid "Replies to %1$s on %2$s!" +msgstr "" + +#: actions/revokerole.php:75 +msgid "You cannot revoke user roles on this site." +msgstr "" + +#: actions/revokerole.php:82 +msgid "User doesn't have this role." +msgstr "" + +#: actions/rsd.php:146 actions/version.php:159 +msgid "StatusNet" +msgstr "" + +#: 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 "" + +#. TRANS: Menu item for site administration +#: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:392 +msgid "Sessions" +msgstr "" + +#: actions/sessionsadminpanel.php:65 +msgid "Session settings for this StatusNet site." +msgstr "" + +#: actions/sessionsadminpanel.php:175 +msgid "Handle sessions" +msgstr "" + +#: actions/sessionsadminpanel.php:177 +msgid "Whether to handle sessions ourselves." +msgstr "" + +#: actions/sessionsadminpanel.php:181 +msgid "Session debugging" +msgstr "" + +#: actions/sessionsadminpanel.php:183 +msgid "Turn on debugging output for sessions." +msgstr "" + +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/useradminpanel.php:294 +msgid "Save site settings" +msgstr "" + +#: actions/showapplication.php:82 +msgid "You must be logged in to view an application." +msgstr "" + +#: actions/showapplication.php:157 +msgid "Application profile" +msgstr "" + +#. TRANS: Form input field label for application icon. +#: actions/showapplication.php:159 lib/applicationeditform.php:182 +msgid "Icon" +msgstr "" + +#. TRANS: Form input field label for application name. +#: actions/showapplication.php:169 actions/version.php:197 +#: lib/applicationeditform.php:199 +msgid "Name" +msgstr "" + +#. TRANS: Form input field label. +#: actions/showapplication.php:178 lib/applicationeditform.php:235 +msgid "Organization" +msgstr "" + +#. TRANS: Form input field label. +#: actions/showapplication.php:187 actions/version.php:200 +#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +msgid "Description" +msgstr "" + +#: actions/showapplication.php:192 actions/showgroup.php:436 +#: lib/profileaction.php:187 +msgid "Statistics" +msgstr "" + +#: actions/showapplication.php:203 +#, php-format +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "" + +#: actions/showapplication.php:213 +msgid "Application actions" +msgstr "" + +#: actions/showapplication.php:236 +msgid "Reset key & secret" +msgstr "" + +#: actions/showapplication.php:261 +msgid "Application info" +msgstr "" + +#: actions/showapplication.php:263 +msgid "Consumer key" +msgstr "" + +#: actions/showapplication.php:268 +msgid "Consumer secret" +msgstr "" + +#: actions/showapplication.php:273 +msgid "Request token URL" +msgstr "" + +#: actions/showapplication.php:278 +msgid "Access token URL" +msgstr "" + +#: actions/showapplication.php:283 +msgid "Authorize URL" +msgstr "" + +#: 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" +msgstr "" + +#: actions/showfavorites.php:132 +msgid "Could not retrieve favorite notices." +msgstr "" + +#: actions/showfavorites.php:171 +#, php-format +msgid "Feed for favorites of %s (RSS 1.0)" +msgstr "" + +#: actions/showfavorites.php:178 +#, php-format +msgid "Feed for favorites of %s (RSS 2.0)" +msgstr "" + +#: actions/showfavorites.php:185 +#, php-format +msgid "Feed for favorites of %s (Atom)" +msgstr "" + +#: actions/showfavorites.php:206 +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 "" + +#: actions/showfavorites.php:208 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" +msgstr "" + +#: actions/showfavorites.php:212 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" +msgstr "" + +#: actions/showfavorites.php:243 +msgid "This is a way to share what you like." +msgstr "" + +#: actions/showgroup.php:82 lib/groupnav.php:86 +#, php-format +msgid "%s group" +msgstr "" + +#: actions/showgroup.php:84 +#, php-format +msgid "%1$s group, page %2$d" +msgstr "" + +#: actions/showgroup.php:227 +msgid "Group profile" +msgstr "" + +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 +msgid "URL" +msgstr "" + +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 +msgid "Note" +msgstr "" + +#: actions/showgroup.php:293 lib/groupeditform.php:184 +msgid "Aliases" +msgstr "" + +#: actions/showgroup.php:302 +msgid "Group actions" +msgstr "" + +#: actions/showgroup.php:338 +#, php-format +msgid "Notice feed for %s group (RSS 1.0)" +msgstr "" + +#: actions/showgroup.php:344 +#, php-format +msgid "Notice feed for %s group (RSS 2.0)" +msgstr "" + +#: actions/showgroup.php:350 +#, php-format +msgid "Notice feed for %s group (Atom)" +msgstr "" + +#: actions/showgroup.php:355 +#, php-format +msgid "FOAF for %s group" +msgstr "" + +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +msgid "Members" +msgstr "" + +#: actions/showgroup.php:398 lib/profileaction.php:117 +#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 +#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 +msgid "(None)" +msgstr "" + +#: actions/showgroup.php:404 +msgid "All members" +msgstr "" + +#: actions/showgroup.php:439 +msgid "Created" +msgstr "" + +#: actions/showgroup.php:455 +#, php-format +msgid "" +"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[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%%%%))" +msgstr "" + +#: actions/showgroup.php:461 +#, php-format +msgid "" +"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[StatusNet](http://status.net/) tool. Its members share short messages about " +"their life and interests. " +msgstr "" + +#: actions/showgroup.php:489 +msgid "Admins" +msgstr "" + +#: actions/showmessage.php:81 +msgid "No such message." +msgstr "" + +#: actions/showmessage.php:98 +msgid "Only the sender and recipient may read this message." +msgstr "" + +#: actions/showmessage.php:108 +#, php-format +msgid "Message to %1$s on %2$s" +msgstr "" + +#: actions/showmessage.php:113 +#, php-format +msgid "Message from %1$s on %2$s" +msgstr "" + +#: actions/shownotice.php:90 +msgid "Notice deleted." +msgstr "" + +#: actions/showstream.php:73 +#, php-format +msgid " tagged %s" +msgstr "" + +#: actions/showstream.php:79 +#, php-format +msgid "%1$s, page %2$d" +msgstr "" + +#: actions/showstream.php:122 +#, php-format +msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" +msgstr "" + +#: actions/showstream.php:129 +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "" + +#: actions/showstream.php:136 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "" + +#: actions/showstream.php:143 +#, php-format +msgid "Notice feed for %s (Atom)" +msgstr "" + +#: actions/showstream.php:148 +#, php-format +msgid "FOAF for %s" +msgstr "" + +#: 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: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:207 +#, php-format +msgid "" +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." +msgstr "" + +#: actions/showstream.php:243 +#, php-format +msgid "" +"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " +"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" + +#: actions/showstream.php:248 +#, php-format +msgid "" +"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." +"wikipedia.org/wiki/Micro-blogging) service based on the Free Software " +"[StatusNet](http://status.net/) tool. " +msgstr "" + +#: actions/showstream.php:305 +#, php-format +msgid "Repeat of %s" +msgstr "" + +#: actions/silence.php:65 actions/unsilence.php:65 +msgid "You cannot silence users on this site." +msgstr "" + +#: actions/silence.php:72 +msgid "User is already silenced." +msgstr "" + +#: actions/siteadminpanel.php:69 +msgid "Basic settings for this StatusNet site" +msgstr "" + +#: actions/siteadminpanel.php:133 +msgid "Site name must have non-zero length." +msgstr "" + +#: actions/siteadminpanel.php:141 +msgid "You must have a valid contact email address." +msgstr "" + +#: actions/siteadminpanel.php:159 +#, php-format +msgid "Unknown language \"%s\"." +msgstr "" + +#: actions/siteadminpanel.php:165 +msgid "Minimum text limit is 0 (unlimited)." +msgstr "" + +#: actions/siteadminpanel.php:171 +msgid "Dupe limit must be one or more seconds." +msgstr "" + +#: actions/siteadminpanel.php:221 +msgid "General" +msgstr "" + +#: actions/siteadminpanel.php:224 +msgid "Site name" +msgstr "" + +#: actions/siteadminpanel.php:225 +msgid "The name of your site, like \"Yourcompany Microblog\"" +msgstr "" + +#: actions/siteadminpanel.php:229 +msgid "Brought by" +msgstr "" + +#: actions/siteadminpanel.php:230 +msgid "Text used for credits link in footer of each page" +msgstr "" + +#: actions/siteadminpanel.php:234 +msgid "Brought by URL" +msgstr "" + +#: actions/siteadminpanel.php:235 +msgid "URL used for credits link in footer of each page" +msgstr "" + +#: actions/siteadminpanel.php:239 +msgid "Contact email address for your site" +msgstr "" + +#: actions/siteadminpanel.php:245 +msgid "Local" +msgstr "" + +#: actions/siteadminpanel.php:256 +msgid "Default timezone" +msgstr "" + +#: actions/siteadminpanel.php:257 +msgid "Default timezone for the site; usually UTC." +msgstr "" + +#: actions/siteadminpanel.php:262 +msgid "Default language" +msgstr "" + +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" + +#: actions/siteadminpanel.php:271 +msgid "Limits" +msgstr "" + +#: actions/siteadminpanel.php:274 +msgid "Text limit" +msgstr "" + +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." +msgstr "" + +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" +msgstr "" + +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." +msgstr "" + +#: actions/sitenoticeadminpanel.php:56 +msgid "Site Notice" +msgstr "" + +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" +msgstr "" + +#: actions/sitenoticeadminpanel.php:103 +msgid "Unable to save site notice." +msgstr "" + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars." +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +msgid "Site notice text" +msgstr "" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +msgid "Save site notice" +msgstr "" + +#. TRANS: Title for SMS settings. +#: actions/smssettings.php:59 +msgid "SMS settings" +msgstr "" + +#. TRANS: SMS settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/smssettings.php:74 +#, php-format +msgid "You can receive SMS messages through email from %%site.name%%." +msgstr "" + +#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. +#: actions/smssettings.php:97 +msgid "SMS is not available." +msgstr "" + +#. TRANS: Form legend for SMS settings form. +#: actions/smssettings.php:111 +msgid "SMS address" +msgstr "" + +#. TRANS: Form guide in SMS settings form. +#: actions/smssettings.php:120 +msgid "Current confirmed SMS-enabled phone number." +msgstr "" + +#. TRANS: Form guide in IM settings form. +#: actions/smssettings.php:133 +msgid "Awaiting confirmation on this phone number." +msgstr "" + +#. TRANS: Field label for SMS address input in SMS settings form. +#: actions/smssettings.php:142 +msgid "Confirmation code" +msgstr "" + +#. TRANS: Form field instructions in SMS settings form. +#: actions/smssettings.php:144 +msgid "Enter the code you received on your phone." +msgstr "" + +#. TRANS: Button label to confirm SMS confirmation code in SMS settings. +#: actions/smssettings.php:148 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "" + +#. TRANS: Field label for SMS phone number input in SMS settings form. +#: actions/smssettings.php:153 +msgid "SMS phone number" +msgstr "" + +#. TRANS: SMS phone number input field instructions in SMS settings form. +#: actions/smssettings.php:156 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "" + +#. TRANS: Form legend for SMS preferences form. +#: actions/smssettings.php:195 +msgid "SMS preferences" +msgstr "" + +#. TRANS: Checkbox label in SMS preferences form. +#: actions/smssettings.php:201 +msgid "" +"Send me notices through SMS; I understand I may incur exorbitant charges " +"from my carrier." +msgstr "" + +#. TRANS: Confirmation message for successful SMS preferences save. +#: actions/smssettings.php:315 +msgid "SMS preferences saved." +msgstr "" + +#. TRANS: Message given saving SMS phone number without having provided one. +#: actions/smssettings.php:338 +msgid "No phone number." +msgstr "" + +#. TRANS: Message given saving SMS phone number without having selected a carrier. +#: actions/smssettings.php:344 +msgid "No carrier selected." +msgstr "" + +#. TRANS: Message given saving SMS phone number that is already set. +#: actions/smssettings.php:352 +msgid "That is already your phone number." +msgstr "" + +#. TRANS: Message given saving SMS phone number that is already set for another user. +#: actions/smssettings.php:356 +msgid "That phone number already belongs to another user." +msgstr "" + +#. TRANS: Message given saving valid SMS phone number that is to be confirmed. +#: actions/smssettings.php:384 +msgid "" +"A confirmation code was sent to the phone number you added. Check your phone " +"for the code and instructions on how to use it." +msgstr "" + +#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. +#: actions/smssettings.php:413 +msgid "That is the wrong confirmation number." +msgstr "" + +#. TRANS: Message given after successfully canceling SMS phone number confirmation. +#: actions/smssettings.php:427 +msgid "SMS confirmation cancelled." +msgstr "" + +#. TRANS: Message given trying to remove an SMS phone number that is not +#. TRANS: registered for the active user. +#: actions/smssettings.php:448 +msgid "That is not your phone number." +msgstr "" + +#. TRANS: Message given after successfully removing a registered SMS phone number. +#: actions/smssettings.php:470 +msgid "The SMS phone number was removed." +msgstr "" + +#. TRANS: Label for mobile carrier dropdown menu in SMS settings. +#: actions/smssettings.php:511 +msgid "Mobile carrier" +msgstr "" + +#. TRANS: Default option for mobile carrier dropdown menu in SMS settings. +#: actions/smssettings.php:516 +msgid "Select a carrier" +msgstr "" + +#. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. +#. TRANS: %s is an administrative contact's e-mail address. +#: actions/smssettings.php:525 +#, php-format +msgid "" +"Mobile carrier for your phone. If you know a carrier that accepts SMS over " +"email but isn't listed here, send email to let us know at %s." +msgstr "" + +#. TRANS: Message given saving SMS phone number confirmation code without having provided one. +#: actions/smssettings.php:548 +msgid "No code entered" +msgstr "" + +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:408 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +msgid "Manage snapshot configuration" +msgstr "" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "" + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "" + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "" + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during web hit" +msgstr "" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "" + +#: actions/snapshotadminpanel.php:248 +msgid "Save snapshot settings" +msgstr "" + +#: actions/subedit.php:70 +msgid "You are not subscribed to that profile." +msgstr "" + +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 +msgid "Could not save subscription." +msgstr "" + +#: actions/subscribe.php:77 +msgid "This action only accepts POST requests." +msgstr "" + +#: actions/subscribe.php:107 +msgid "No such profile." +msgstr "" + +#: actions/subscribe.php:117 +msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." +msgstr "" + +#: actions/subscribe.php:145 +msgid "Subscribed" +msgstr "" + +#: actions/subscribers.php:50 +#, php-format +msgid "%s subscribers" +msgstr "" + +#: actions/subscribers.php:52 +#, php-format +msgid "%1$s subscribers, page %2$d" +msgstr "" + +#: actions/subscribers.php:63 +msgid "These are the people who listen to your notices." +msgstr "" + +#: actions/subscribers.php:67 +#, php-format +msgid "These are the people who listen to %s's notices." +msgstr "" + +#: actions/subscribers.php:108 +msgid "" +"You have no subscribers. Try subscribing to people you know and they might " +"return the favor" +msgstr "" + +#: actions/subscribers.php:110 +#, php-format +msgid "%s has no subscribers. Want to be the first?" +msgstr "" + +#: actions/subscribers.php:114 +#, php-format +msgid "" +"%s has no subscribers. Why not [register an account](%%%%action.register%%%" +"%) and be the first?" +msgstr "" + +#: actions/subscriptions.php:52 +#, php-format +msgid "%s subscriptions" +msgstr "" + +#: actions/subscriptions.php:54 +#, php-format +msgid "%1$s subscriptions, page %2$d" +msgstr "" + +#: actions/subscriptions.php:65 +msgid "These are the people whose notices you listen to." +msgstr "" + +#: actions/subscriptions.php:69 +#, php-format +msgid "These are the people whose notices %s listens to." +msgstr "" + +#: actions/subscriptions.php:126 +#, php-format +msgid "" +"You're not listening to anyone's notices right now, try subscribing to " +"people you know. Try [people search](%%action.peoplesearch%%), look for " +"members in groups you're interested in and in our [featured users](%%action." +"featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " +"automatically subscribe to people you already follow there." +msgstr "" + +#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#, php-format +msgid "%s is not listening to anyone." +msgstr "" + +#: actions/subscriptions.php:208 +msgid "Jabber" +msgstr "" + +#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +msgid "SMS" +msgstr "" + +#: actions/tag.php:69 +#, php-format +msgid "Notices tagged with %1$s, page %2$d" +msgstr "" + +#: actions/tag.php:87 +#, php-format +msgid "Notice feed for tag %s (RSS 1.0)" +msgstr "" + +#: actions/tag.php:93 +#, php-format +msgid "Notice feed for tag %s (RSS 2.0)" +msgstr "" + +#: actions/tag.php:99 +#, php-format +msgid "Notice feed for tag %s (Atom)" +msgstr "" + +#: actions/tagother.php:39 +msgid "No ID argument." +msgstr "" + +#: actions/tagother.php:65 +#, php-format +msgid "Tag %s" +msgstr "" + +#: actions/tagother.php:77 lib/userprofile.php:76 +msgid "User profile" +msgstr "" + +#: actions/tagother.php:81 actions/userauthorization.php:132 +#: lib/userprofile.php:103 +msgid "Photo" +msgstr "" + +#: actions/tagother.php:141 +msgid "Tag user" +msgstr "" + +#: actions/tagother.php:151 +msgid "" +"Tags for this user (letters, numbers, -, ., and _), comma- or space- " +"separated" +msgstr "" + +#: actions/tagother.php:193 +msgid "" +"You can only tag people you are subscribed to or who are subscribed to you." +msgstr "" + +#: actions/tagother.php:200 +msgid "Could not save tags." +msgstr "" + +#: actions/tagother.php:236 +msgid "Use this form to add tags to your subscribers or subscriptions." +msgstr "" + +#: actions/tagrss.php:35 +msgid "No such tag." +msgstr "" + +#: actions/unblock.php:59 +msgid "You haven't blocked that user." +msgstr "" + +#: actions/unsandbox.php:72 +msgid "User is not sandboxed." +msgstr "" + +#: actions/unsilence.php:72 +msgid "User is not silenced." +msgstr "" + +#: actions/unsubscribe.php:77 +msgid "No profile ID in request." +msgstr "" + +#: actions/unsubscribe.php:98 +msgid "Unsubscribed" +msgstr "" + +#: actions/updateprofile.php:64 actions/userauthorization.php:337 +#, php-format +msgid "" +"Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." +msgstr "" + +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" +msgid "User" +msgstr "" + +#: actions/useradminpanel.php:70 +msgid "User settings for this StatusNet site." +msgstr "" + +#: actions/useradminpanel.php:149 +msgid "Invalid bio limit. Must be numeric." +msgstr "" + +#: actions/useradminpanel.php:155 +msgid "Invalid welcome text. Max length is 255 characters." +msgstr "" + +#: actions/useradminpanel.php:165 +#, php-format +msgid "Invalid default subscripton: '%1$s' is not user." +msgstr "" + +#. TRANS: Link description in user account settings menu. +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 +#: lib/personalgroupnav.php:109 +msgid "Profile" +msgstr "" + +#: actions/useradminpanel.php:222 +msgid "Bio Limit" +msgstr "" + +#: actions/useradminpanel.php:223 +msgid "Maximum length of a profile bio in characters." +msgstr "" + +#: actions/useradminpanel.php:231 +msgid "New users" +msgstr "" + +#: actions/useradminpanel.php:235 +msgid "New user welcome" +msgstr "" + +#: actions/useradminpanel.php:236 +msgid "Welcome text for new users (Max 255 chars)." +msgstr "" + +#: actions/useradminpanel.php:241 +msgid "Default subscription" +msgstr "" + +#: actions/useradminpanel.php:242 +msgid "Automatically subscribe new users to this user." +msgstr "" + +#: actions/useradminpanel.php:251 +msgid "Invitations" +msgstr "" + +#: actions/useradminpanel.php:256 +msgid "Invitations enabled" +msgstr "" + +#: actions/useradminpanel.php:258 +msgid "Whether to allow users to invite new users." +msgstr "" + +#: actions/userauthorization.php:105 +msgid "Authorize subscription" +msgstr "" + +#: actions/userauthorization.php:110 +msgid "" +"Please check these details to make sure that you want to subscribe to this " +"user’s notices. If you didn’t just ask to subscribe to someone’s notices, " +"click “Reject”." +msgstr "" + +#: actions/userauthorization.php:196 actions/version.php:167 +msgid "License" +msgstr "" + +#: actions/userauthorization.php:217 +msgid "Accept" +msgstr "" + +#: actions/userauthorization.php:218 lib/subscribeform.php:115 +#: lib/subscribeform.php:139 +msgid "Subscribe to this user" +msgstr "" + +#: actions/userauthorization.php:219 +msgid "Reject" +msgstr "" + +#: actions/userauthorization.php:220 +msgid "Reject this subscription" +msgstr "" + +#: actions/userauthorization.php:232 +msgid "No authorization request!" +msgstr "" + +#: actions/userauthorization.php:254 +msgid "Subscription authorized" +msgstr "" + +#: actions/userauthorization.php:256 +msgid "" +"The subscription has been authorized, but no callback URL was passed. Check " +"with the site’s instructions for details on how to authorize the " +"subscription. Your subscription token is:" +msgstr "" + +#: actions/userauthorization.php:266 +msgid "Subscription rejected" +msgstr "" + +#: actions/userauthorization.php:268 +msgid "" +"The subscription has been rejected, but no callback URL was passed. Check " +"with the site’s instructions for details on how to fully reject the " +"subscription." +msgstr "" + +#: actions/userauthorization.php:303 +#, php-format +msgid "Listener URI ‘%s’ not found here." +msgstr "" + +#: actions/userauthorization.php:308 +#, php-format +msgid "Listenee URI ‘%s’ is too long." +msgstr "" + +#: actions/userauthorization.php:314 +#, php-format +msgid "Listenee URI ‘%s’ is a local user." +msgstr "" + +#: actions/userauthorization.php:329 +#, php-format +msgid "Profile URL ‘%s’ is for a local user." +msgstr "" + +#: actions/userauthorization.php:345 +#, php-format +msgid "Avatar URL ‘%s’ is not valid." +msgstr "" + +#: actions/userauthorization.php:350 +#, php-format +msgid "Can’t read avatar URL ‘%s’." +msgstr "" + +#: actions/userauthorization.php:355 +#, php-format +msgid "Wrong image type for avatar URL ‘%s’." +msgstr "" + +#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +msgid "Profile design" +msgstr "" + +#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +msgid "" +"Customize the way your profile looks with a background image and a colour " +"palette of your choice." +msgstr "" + +#: actions/userdesignsettings.php:282 +msgid "Enjoy your hotdog!" +msgstr "" + +#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. +#: actions/usergroups.php:66 +#, php-format +msgid "%1$s groups, page %2$d" +msgstr "" + +#: actions/usergroups.php:132 +msgid "Search for more groups" +msgstr "" + +#: actions/usergroups.php:159 +#, php-format +msgid "%s is not a member of any group." +msgstr "" + +#: actions/usergroups.php:164 +#, php-format +msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." +msgstr "" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#. TRANS: Message is used as a subtitle in atom group notice feed. +#. TRANS: %1$s is a group name, %2$s is a site name. +#. TRANS: Message is used as a subtitle in atom user notice feed. +#. TRANS: %1$s is a user name, %2$s is a site name. +#: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 +#: lib/atomusernoticefeed.php:76 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + +#: actions/version.php:75 +#, php-format +msgid "StatusNet %s" +msgstr "" + +#: actions/version.php:155 +#, php-format +msgid "" +"This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " +"Inc. and contributors." +msgstr "" + +#: actions/version.php:163 +msgid "Contributors" +msgstr "" + +#: actions/version.php:170 +msgid "" +"StatusNet 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. " +msgstr "" + +#: actions/version.php:176 +msgid "" +"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. " +msgstr "" + +#: actions/version.php:182 +#, php-format +msgid "" +"You should have received a copy of the GNU Affero General Public License " +"along with this program. If not, see %s." +msgstr "" + +#: actions/version.php:191 +msgid "Plugins" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. +#: actions/version.php:198 lib/action.php:789 +msgid "Version" +msgstr "" + +#: actions/version.php:199 +msgid "Author(s)" +msgstr "" + +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 +#, php-format +msgid "A file this large would exceed your user quota of %d bytes." +msgstr "" + +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 +#, php-format +msgid "A file this large would exceed your monthly quota of %d bytes." +msgstr "" + +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 +msgid "Group join failed." +msgstr "" + +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 +msgid "Not part of group." +msgstr "" + +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 +msgid "Group leave failed." +msgstr "" + +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 +msgid "Could not update local group." +msgstr "" + +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 +#, php-format +msgid "Could not create login token for %s" +msgstr "" + +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 +msgid "You are banned from sending direct messages." +msgstr "" + +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 +msgid "Could not insert message." +msgstr "" + +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 +msgid "Could not update message with new URI." +msgstr "" + +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + +#. TRANS: Server exception. %s are the error details. +#: classes/Notice.php:190 +#, php-format +msgid "Database error inserting hashtag: %s" +msgstr "" + +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 +msgid "Problem saving notice. Too long." +msgstr "" + +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 +msgid "Problem saving notice. Unknown user." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 +msgid "" +"Too many notices too fast; take a breather and post again in a few minutes." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 +msgid "" +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 +msgid "You are banned from posting notices on this site." +msgstr "" + +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 +msgid "Problem saving notice." +msgstr "" + +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 +msgid "Problem saving group inbox." +msgstr "" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: classes/Notice.php:1614 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "" + +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 +msgid "You have been banned from subscribing." +msgstr "" + +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 +msgid "Already subscribed!" +msgstr "" + +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 +msgid "User has blocked you." +msgstr "" + +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 +msgid "Not subscribed!" +msgstr "" + +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." +msgstr "" + +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "" + +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." +msgstr "" + +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 +#, php-format +msgid "Welcome to %1$s, @%2$s!" +msgstr "" + +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 +msgid "Could not create group." +msgstr "" + +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 +msgid "Could not set group URI." +msgstr "" + +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 +msgid "Could not set group membership." +msgstr "" + +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 +msgid "Could not save local group info." +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:109 +msgid "Change your profile settings" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:116 +msgid "Upload an avatar" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:123 +msgid "Change your password" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:130 +msgid "Change email handling" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:137 +msgid "Design your profile" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:144 +msgid "Other options" +msgstr "" + +#. TRANS: Link description in user account settings menu. +#: lib/accountsettingsaction.php:146 +msgid "Other" +msgstr "" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: lib/action.php:145 +#, php-format +msgid "%1$s - %2$s" +msgstr "" + +#. TRANS: Page title for a page without a title set. +#: lib/action.php:161 +msgid "Untitled page" +msgstr "" + +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:436 +msgid "Primary site navigation" +msgstr "" + +#. TRANS: Tooltip for main menu option "Personal" +#: lib/action.php:442 +msgctxt "TOOLTIP" +msgid "Personal profile and friends timeline" +msgstr "" + +#. TRANS: Main menu option when logged in for access to personal profile and friends timeline +#: lib/action.php:445 +msgctxt "MENU" +msgid "Personal" +msgstr "" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:447 +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:452 +msgctxt "TOOLTIP" +msgid "Connect to services" +msgstr "" + +#. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services +#: lib/action.php:455 +msgid "Connect" +msgstr "" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:458 +msgctxt "TOOLTIP" +msgid "Change site configuration" +msgstr "" + +#. TRANS: Main menu option when logged in and site admin for access to site configuration +#: lib/action.php:461 +msgctxt "MENU" +msgid "Admin" +msgstr "" + +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:465 +#, php-format +msgctxt "TOOLTIP" +msgid "Invite friends and colleagues to join you on %s" +msgstr "" + +#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users +#: lib/action.php:468 +msgctxt "MENU" +msgid "Invite" +msgstr "" + +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:474 +msgctxt "TOOLTIP" +msgid "Logout from the site" +msgstr "" + +#. TRANS: Main menu option when logged in to log out the current user +#: lib/action.php:477 +msgctxt "MENU" +msgid "Logout" +msgstr "" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:482 +msgctxt "TOOLTIP" +msgid "Create an account" +msgstr "" + +#. TRANS: Main menu option when not logged in to register a new account +#: lib/action.php:485 +msgctxt "MENU" +msgid "Register" +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:488 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#: lib/action.php:491 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:494 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "" + +#: lib/action.php:497 +msgctxt "MENU" +msgid "Help" +msgstr "" + +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:500 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#: lib/action.php:503 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#. TRANS: Menu item for site administration +#: lib/action.php:525 lib/adminpanelaction.php:400 +msgid "Site notice" +msgstr "" + +#. TRANS: DT element for local views block. String is hidden in default CSS. +#: lib/action.php:592 +msgid "Local views" +msgstr "" + +#. TRANS: DT element for page notice. String is hidden in default CSS. +#: lib/action.php:659 +msgid "Page notice" +msgstr "" + +#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. +#: lib/action.php:762 +msgid "Secondary site navigation" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to help on StatusNet. +#: lib/action.php:768 +msgid "Help" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to text about StatusNet site. +#: lib/action.php:771 +msgid "About" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. +#: lib/action.php:774 +msgid "FAQ" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to Terms of Service. +#: lib/action.php:779 +msgid "TOS" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to privacy policy. +#: lib/action.php:783 +msgid "Privacy" +msgstr "" + +#. TRANS: Secondary navigation menu option. +#: lib/action.php:786 +msgid "Source" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. +#: lib/action.php:792 +msgid "Contact" +msgstr "" + +#: lib/action.php:794 +msgid "Badge" +msgstr "" + +#. TRANS: DT element for StatusNet software license. +#: lib/action.php:823 +msgid "StatusNet software license" +msgstr "" + +#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. +#: lib/action.php:827 +#, php-format +msgid "" +"**%%site.name%%** is a microblogging service brought to you by [%%site." +"broughtby%%](%%site.broughtbyurl%%)." +msgstr "" + +#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. +#: lib/action.php:830 +#, php-format +msgid "**%%site.name%%** is a microblogging service." +msgstr "" + +#. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. +#: lib/action.php:834 +#, php-format +msgid "" +"It runs the [StatusNet](http://status.net/) microblogging software, version %" +"s, available under the [GNU Affero General Public License](http://www.fsf." +"org/licensing/licenses/agpl-3.0.html)." +msgstr "" + +#. TRANS: DT element for StatusNet site content license. +#: lib/action.php:850 +msgid "Site content license" +msgstr "" + +#. TRANS: Content license displayed when license is set to 'private'. +#. TRANS: %1$s is the site name. +#: lib/action.php:857 +#, php-format +msgid "Content and data of %1$s are private and confidential." +msgstr "" + +#. TRANS: Content license displayed when license is set to 'allrightsreserved'. +#. TRANS: %1$s is the copyright owner. +#: lib/action.php:864 +#, php-format +msgid "Content and data copyright by %1$s. All rights reserved." +msgstr "" + +#. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. +#: lib/action.php:868 +msgid "Content and data copyright by contributors. All rights reserved." +msgstr "" + +#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:881 +#, php-format +msgid "All %1$s content and data are available under the %2$s license." +msgstr "" + +#. TRANS: DT element for pagination (previous/next, etc.). +#: lib/action.php:1192 +msgid "Pagination" +msgstr "" + +#. TRANS: Pagination message to go to a page displaying information more in the +#. TRANS: present than the currently displayed information. +#: lib/action.php:1203 +msgid "After" +msgstr "" + +#. TRANS: Pagination message to go to a page displaying information more in the +#. TRANS: past than the currently displayed information. +#: lib/action.php:1213 +msgid "Before" +msgstr "" + +#. TRANS: Client exception thrown when a feed instance is a DOMDocument. +#: lib/activity.php:122 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "" + +#: lib/activityutils.php:208 +msgid "Can't handle remote content yet." +msgstr "" + +#: lib/activityutils.php:244 +msgid "Can't handle embedded XML content yet." +msgstr "" + +#: lib/activityutils.php:248 +msgid "Can't handle embedded Base64 content yet." +msgstr "" + +#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. +#: lib/adminpanelaction.php:98 +msgid "You cannot make changes to this site." +msgstr "" + +#. TRANS: Client error message throw when a certain panel's settings cannot be changed. +#: lib/adminpanelaction.php:110 +msgid "Changes to that panel are not allowed." +msgstr "" + +#. TRANS: Client error message. +#: lib/adminpanelaction.php:229 +msgid "showForm() not implemented." +msgstr "" + +#. TRANS: Client error message +#: lib/adminpanelaction.php:259 +msgid "saveSettings() not implemented." +msgstr "" + +#. TRANS: Client error message thrown if design settings could not be deleted in +#. TRANS: the admin panel Design. +#: lib/adminpanelaction.php:284 +msgid "Unable to delete design setting." +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:350 +msgid "Basic site configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:352 +msgctxt "MENU" +msgid "Site" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:358 +msgid "Design configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:360 +msgctxt "MENU" +msgid "Design" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:366 +msgid "User configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:374 +msgid "Access configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:382 +msgid "Paths configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:390 +msgid "Sessions configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:398 +msgid "Edit site notice" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:406 +msgid "Snapshots configuration" +msgstr "" + +#. TRANS: Client error 401. +#: lib/apiauth.php:113 +msgid "API resource requires read-write access, but you only have read access." +msgstr "" + +#. TRANS: Form legend. +#: lib/applicationeditform.php:137 +msgid "Edit application" +msgstr "" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:187 +msgid "Icon for this application" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:209 +#, php-format +msgid "Describe your application in %d characters" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:213 +msgid "Describe your application" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:224 +msgid "URL of the homepage of this application" +msgstr "" + +#. TRANS: Form input field label. +#: lib/applicationeditform.php:226 +msgid "Source URL" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:233 +msgid "Organization responsible for this application" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:242 +msgid "URL for the homepage of the organization" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:251 +msgid "URL to redirect to after authentication" +msgstr "" + +#. TRANS: Radio button label for application type +#: lib/applicationeditform.php:278 +msgid "Browser" +msgstr "" + +#. TRANS: Radio button label for application type +#: lib/applicationeditform.php:295 +msgid "Desktop" +msgstr "" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:297 +msgid "Type of application, browser or desktop" +msgstr "" + +#. TRANS: Radio button label for access type. +#: lib/applicationeditform.php:320 +msgid "Read-only" +msgstr "" + +#. TRANS: Radio button label for access type. +#: lib/applicationeditform.php:339 +msgid "Read-write" +msgstr "" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:341 +msgid "Default access for this application: read-only, or read-write" +msgstr "" + +#. TRANS: Submit button title +#: lib/applicationeditform.php:359 +msgid "Cancel" +msgstr "" + +#. TRANS: Application access type +#: lib/applicationlist.php:136 +msgid "read-write" +msgstr "" + +#. TRANS: Application access type +#: lib/applicationlist.php:138 +msgid "read-only" +msgstr "" + +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) +#: lib/applicationlist.php:144 +#, php-format +msgid "Approved %1$s - \"%2$s\" access." +msgstr "" + +#. TRANS: Button label +#: lib/applicationlist.php:159 +msgctxt "BUTTON" +msgid "Revoke" +msgstr "" + +#. TRANS: DT element label in attachment list. +#: lib/attachmentlist.php:88 +msgid "Attachments" +msgstr "" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:265 +msgid "Author" +msgstr "" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:279 +msgid "Provider" +msgstr "" + +#: lib/attachmentnoticesection.php:67 +msgid "Notices where this attachment appears" +msgstr "" + +#: lib/attachmenttagcloudsection.php:48 +msgid "Tags for this attachment" +msgstr "" + +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +msgid "Password changing failed" +msgstr "" + +#: lib/authenticationplugin.php:236 +msgid "Password changing is not allowed" +msgstr "" + +#: lib/channel.php:157 lib/channel.php:177 +msgid "Command results" +msgstr "" + +#: lib/channel.php:229 lib/mailhandler.php:142 +msgid "Command complete" +msgstr "" + +#: lib/channel.php:240 +msgid "Command failed" +msgstr "" + +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "" + +#: lib/command.php:99 lib/command.php:596 +msgid "User has no last notice" +msgstr "" + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:127 +#, php-format +msgid "Could not find a user with nickname %s" +msgstr "" + +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:147 +#, php-format +msgid "Could not find a local user with nickname %s" +msgstr "" + +#: lib/command.php:180 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:225 +msgid "It does not make a lot of sense to nudge yourself!" +msgstr "" + +#. TRANS: Message given having nudged another user. +#. TRANS: %s is the nickname of the user that was nudged. +#: lib/command.php:234 +#, php-format +msgid "Nudge sent to %s" +msgstr "" + +#: lib/command.php:260 +#, php-format +msgid "" +"Subscriptions: %1$s\n" +"Subscribers: %2$s\n" +"Notices: %3$s" +msgstr "" + +#: lib/command.php:302 +msgid "Notice marked as fave." +msgstr "" + +#: lib/command.php:323 +msgid "You are already a member of that group" +msgstr "" + +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:339 +#, php-format +msgid "Could not join user %1$s to group %2$s" +msgstr "" + +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:385 +#, php-format +msgid "Could not remove user %1$s from group %2$s" +msgstr "" + +#. TRANS: Whois output. %s is the full name of the queried user. +#: lib/command.php:418 +#, php-format +msgid "Fullname: %s" +msgstr "" + +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/command.php:422 lib/mail.php:268 +#, php-format +msgid "Location: %s" +msgstr "" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/command.php:426 lib/mail.php:271 +#, php-format +msgid "Homepage: %s" +msgstr "" + +#. TRANS: Whois output. %s is the bio information of the queried user. +#: lib/command.php:430 +#, php-format +msgid "About: %s" +msgstr "" + +#: lib/command.php:457 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#. TRANS: Message given if content is too long. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:472 +#, php-format +msgid "Message too long - maximum is %1$d characters, you sent %2$d" +msgstr "" + +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: lib/command.php:492 +#, php-format +msgid "Direct message to %s sent" +msgstr "" + +#: lib/command.php:494 +msgid "Error sending direct message." +msgstr "" + +#: lib/command.php:514 +msgid "Cannot repeat your own notice" +msgstr "" + +#: lib/command.php:519 +msgid "Already repeated that notice" +msgstr "" + +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:529 +#, php-format +msgid "Notice from %s repeated" +msgstr "" + +#: lib/command.php:531 +msgid "Error repeating notice." +msgstr "" + +#: lib/command.php:562 +#, php-format +msgid "Notice too long - maximum is %d characters, you sent %d" +msgstr "" + +#: lib/command.php:571 +#, php-format +msgid "Reply to %s sent" +msgstr "" + +#: lib/command.php:573 +msgid "Error saving notice." +msgstr "" + +#: lib/command.php:620 +msgid "Specify the name of the user to subscribe to" +msgstr "" + +#: lib/command.php:628 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" + +#: lib/command.php:634 +#, php-format +msgid "Subscribed to %s" +msgstr "" + +#: lib/command.php:655 lib/command.php:754 +msgid "Specify the name of the user to unsubscribe from" +msgstr "" + +#: lib/command.php:664 +#, php-format +msgid "Unsubscribed from %s" +msgstr "" + +#: lib/command.php:682 lib/command.php:705 +msgid "Command not yet implemented." +msgstr "" + +#: lib/command.php:685 +msgid "Notification off." +msgstr "" + +#: lib/command.php:687 +msgid "Can't turn off notification." +msgstr "" + +#: lib/command.php:708 +msgid "Notification on." +msgstr "" + +#: lib/command.php:710 +msgid "Can't turn on notification." +msgstr "" + +#: lib/command.php:723 +msgid "Login command is disabled" +msgstr "" + +#: lib/command.php:734 +#, php-format +msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgstr "" + +#: lib/command.php:761 +#, php-format +msgid "Unsubscribed %s" +msgstr "" + +#: lib/command.php:778 +msgid "You are not subscribed to anyone." +msgstr "" + +#: lib/command.php:780 +#, fuzzy +msgid "You are subscribed to this person:" +msgid_plural "You are subscribed to these people:" +msgstr[0] "You are subscribed to this person:" +msgstr[1] "You are subscribed to these people:" + +#: lib/command.php:800 +msgid "No one is subscribed to you." +msgstr "" + +#: lib/command.php:802 +#, fuzzy +msgid "This person is subscribed to you:" +msgid_plural "These people are subscribed to you:" +msgstr[0] "This person is subscribed to you:" +msgstr[1] "These people are subscribed to you:" + +#: lib/command.php:822 +msgid "You are not a member of any groups." +msgstr "" + +#: lib/command.php:824 +#, fuzzy +msgid "You are a member of this group:" +msgid_plural "You are a member of these groups:" +msgstr[0] "You are a member of this group:" +msgstr[1] "You are a member of these groups:" + +#: lib/command.php:838 +msgid "" +"Commands:\n" +"on - turn on notifications\n" +"off - turn off notifications\n" +"help - show this help\n" +"follow <nickname> - subscribe to user\n" +"groups - lists the groups you have joined\n" +"subscriptions - list the people you follow\n" +"subscribers - list the people that follow you\n" +"leave <nickname> - unsubscribe from user\n" +"d <nickname> <text> - direct message to user\n" +"get <nickname> - get last notice from user\n" +"whois <nickname> - get profile info on user\n" +"lose <nickname> - force user to stop following you\n" +"fav <nickname> - add user's last notice as a 'fave'\n" +"fav #<notice_id> - add notice with the given id as a 'fave'\n" +"repeat #<notice_id> - repeat a notice with a given id\n" +"repeat <nickname> - repeat the last notice from user\n" +"reply #<notice_id> - reply to notice with a given id\n" +"reply <nickname> - reply to the last notice from user\n" +"join <group> - join group\n" +"login - Get a link to login to the web interface\n" +"drop <group> - leave group\n" +"stats - get your stats\n" +"stop - same as 'off'\n" +"quit - same as 'off'\n" +"sub <nickname> - same as 'follow'\n" +"unsub <nickname> - same as 'leave'\n" +"last <nickname> - same as 'get'\n" +"on <nickname> - not yet implemented.\n" +"off <nickname> - not yet implemented.\n" +"nudge <nickname> - remind a user to update.\n" +"invite <phone number> - not yet implemented.\n" +"track <word> - not yet implemented.\n" +"untrack <word> - not yet implemented.\n" +"track off - not yet implemented.\n" +"untrack all - not yet implemented.\n" +"tracks - not yet implemented.\n" +"tracking - not yet implemented.\n" +msgstr "" + +#: lib/common.php:135 +msgid "No configuration file found. " +msgstr "" + +#: lib/common.php:136 +msgid "I looked for configuration files in the following places: " +msgstr "" + +#: lib/common.php:138 +msgid "You may wish to run the installer to fix this." +msgstr "" + +#: lib/common.php:139 +msgid "Go to the installer." +msgstr "" + +#: lib/connectsettingsaction.php:110 +msgid "IM" +msgstr "" + +#: lib/connectsettingsaction.php:111 +msgid "Updates by instant messenger (IM)" +msgstr "" + +#: lib/connectsettingsaction.php:116 +msgid "Updates by SMS" +msgstr "" + +#: lib/connectsettingsaction.php:120 +msgid "Connections" +msgstr "" + +#: lib/connectsettingsaction.php:121 +msgid "Authorized connected applications" +msgstr "" + +#: lib/dberroraction.php:60 +msgid "Database error" +msgstr "" + +#: lib/designsettings.php:105 +msgid "Upload file" +msgstr "" + +#: lib/designsettings.php:109 +msgid "" +"You can upload your personal background image. The maximum file size is 2MB." +msgstr "" + +#: lib/designsettings.php:418 +msgid "Design defaults restored." +msgstr "" + +#: lib/disfavorform.php:114 lib/disfavorform.php:140 +msgid "Disfavor this notice" +msgstr "" + +#: lib/favorform.php:114 lib/favorform.php:140 +msgid "Favor this notice" +msgstr "" + +#: lib/favorform.php:140 +msgid "Favor" +msgstr "" + +#: lib/feed.php:85 +msgid "RSS 1.0" +msgstr "" + +#: lib/feed.php:87 +msgid "RSS 2.0" +msgstr "" + +#: lib/feed.php:89 +msgid "Atom" +msgstr "" + +#: lib/feed.php:91 +msgid "FOAF" +msgstr "" + +#: lib/feedlist.php:64 +msgid "Export data" +msgstr "" + +#: lib/galleryaction.php:121 +msgid "Filter tags" +msgstr "" + +#: lib/galleryaction.php:131 +msgid "All" +msgstr "" + +#: lib/galleryaction.php:139 +msgid "Select tag to filter" +msgstr "" + +#: lib/galleryaction.php:140 +msgid "Tag" +msgstr "" + +#: lib/galleryaction.php:141 +msgid "Choose a tag to narrow list" +msgstr "" + +#: lib/galleryaction.php:143 +msgid "Go" +msgstr "" + +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + +#: lib/groupeditform.php:163 +msgid "URL of the homepage or blog of the group or topic" +msgstr "" + +#: lib/groupeditform.php:168 +msgid "Describe the group or topic" +msgstr "" + +#: lib/groupeditform.php:170 +#, php-format +msgid "Describe the group or topic in %d characters" +msgstr "" + +#: lib/groupeditform.php:179 +msgid "" +"Location for the group, if any, like \"City, State (or Region), Country\"" +msgstr "" + +#: lib/groupeditform.php:187 +#, php-format +msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgstr "" + +#: lib/groupnav.php:85 +msgid "Group" +msgstr "" + +#: lib/groupnav.php:101 +msgid "Blocked" +msgstr "" + +#: lib/groupnav.php:102 +#, php-format +msgid "%s blocked users" +msgstr "" + +#: lib/groupnav.php:108 +#, php-format +msgid "Edit %s group properties" +msgstr "" + +#: lib/groupnav.php:113 +msgid "Logo" +msgstr "" + +#: lib/groupnav.php:114 +#, php-format +msgid "Add or edit %s logo" +msgstr "" + +#: lib/groupnav.php:120 +#, php-format +msgid "Add or edit %s design" +msgstr "" + +#: lib/groupsbymemberssection.php:71 +msgid "Groups with most members" +msgstr "" + +#: lib/groupsbypostssection.php:71 +msgid "Groups with most posts" +msgstr "" + +#: lib/grouptagcloudsection.php:56 +#, php-format +msgid "Tags in %s group's notices" +msgstr "" + +#. TRANS: Client exception 406 +#: lib/htmloutputter.php:104 +msgid "This page is not available in a media type you accept" +msgstr "" + +#: lib/imagefile.php:72 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:88 +#, php-format +msgid "That file is too big. The maximum file size is %s." +msgstr "" + +#: lib/imagefile.php:93 +msgid "Partial upload." +msgstr "" + +#: lib/imagefile.php:101 lib/mediafile.php:170 +msgid "System error uploading file." +msgstr "" + +#: lib/imagefile.php:109 +msgid "Not an image or corrupt file." +msgstr "" + +#: lib/imagefile.php:122 +msgid "Lost our file." +msgstr "" + +#: lib/imagefile.php:163 lib/imagefile.php:224 +msgid "Unknown file type" +msgstr "" + +#: lib/imagefile.php:244 +msgid "MB" +msgstr "" + +#: lib/imagefile.php:246 +msgid "kB" +msgstr "" + +#: lib/jabber.php:387 +#, php-format +msgid "[%s]" +msgstr "" + +#: lib/jabber.php:567 +#, php-format +msgid "Unknown inbox source %d." +msgstr "" + +#: lib/joinform.php:114 +msgid "Join" +msgstr "" + +#: lib/leaveform.php:114 +msgid "Leave" +msgstr "" + +#: lib/logingroupnav.php:80 +msgid "Login with a username and password" +msgstr "" + +#: lib/logingroupnav.php:86 +msgid "Sign up for a new account" +msgstr "" + +#. TRANS: Subject for address confirmation email +#: lib/mail.php:174 +msgid "Email address confirmation" +msgstr "" + +#. TRANS: Body for address confirmation email. +#: lib/mail.php:177 +#, php-format +msgid "" +"Hey, %s.\n" +"\n" +"Someone just entered this email address on %s.\n" +"\n" +"If it was you, and you want to confirm your entry, use the URL below:\n" +"\n" +"\t%s\n" +"\n" +"If not, just ignore this message.\n" +"\n" +"Thanks for your time, \n" +"%s\n" +msgstr "" + +#. TRANS: Subject of new-subscriber notification e-mail +#: lib/mail.php:243 +#, php-format +msgid "%1$s is now listening to your notices on %2$s." +msgstr "" + +#: lib/mail.php:248 +#, php-format +msgid "" +"If you believe this account is being used abusively, you can block them from " +"your subscribers list and report as spam to site administrators at %s" +msgstr "" + +#. TRANS: Main body of new-subscriber notification e-mail +#: lib/mail.php:254 +#, php-format +msgid "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Faithfully yours,\n" +"%7$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %8$s\n" +msgstr "" + +#. TRANS: Profile info line in new-subscriber notification e-mail +#: lib/mail.php:274 +#, php-format +msgid "Bio: %s" +msgstr "" + +#. TRANS: Subject of notification mail for new posting email address +#: lib/mail.php:304 +#, php-format +msgid "New email address for posting to %s" +msgstr "" + +#. TRANS: Body of notification mail for new posting email address +#: lib/mail.php:308 +#, php-format +msgid "" +"You have a new posting address on %1$s.\n" +"\n" +"Send email to %2$s to post new messages.\n" +"\n" +"More email instructions at %3$s.\n" +"\n" +"Faithfully yours,\n" +"%4$s" +msgstr "" + +#. TRANS: Subject line for SMS-by-email notification messages +#: lib/mail.php:433 +#, php-format +msgid "%s status" +msgstr "" + +#. TRANS: Subject line for SMS-by-email address confirmation message +#: lib/mail.php:460 +msgid "SMS confirmation" +msgstr "" + +#. TRANS: Main body heading for SMS-by-email address confirmation message +#: lib/mail.php:463 +#, php-format +msgid "%s: confirm you own this phone number with this code:" +msgstr "" + +#. TRANS: Subject for 'nudge' notification email +#: lib/mail.php:484 +#, php-format +msgid "You've been nudged by %s" +msgstr "" + +#. TRANS: Body for 'nudge' notification email +#: lib/mail.php:489 +#, php-format +msgid "" +"%1$s (%2$s) is wondering what you are up to these days and is inviting you " +"to post some news.\n" +"\n" +"So let's hear from you :)\n" +"\n" +"%3$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%4$s\n" +msgstr "" + +#. TRANS: Subject for direct-message notification email +#: lib/mail.php:536 +#, php-format +msgid "New private message from %s" +msgstr "" + +#. TRANS: Body for direct-message notification email +#: lib/mail.php:541 +#, php-format +msgid "" +"%1$s (%2$s) sent you a private message:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"You can reply to their message here:\n" +"\n" +"%4$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%5$s\n" +msgstr "" + +#. TRANS: Subject for favorite notification email +#: lib/mail.php:589 +#, php-format +msgid "%s (@%s) added your notice as a favorite" +msgstr "" + +#. TRANS: Body for favorite notification email +#: lib/mail.php:592 +#, php-format +msgid "" +"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" +"\n" +"The URL of your notice is:\n" +"\n" +"%3$s\n" +"\n" +"The text of your notice is:\n" +"\n" +"%4$s\n" +"\n" +"You can see the list of %1$s's favorites here:\n" +"\n" +"%5$s\n" +"\n" +"Faithfully yours,\n" +"%6$s\n" +msgstr "" + +#. TRANS: Line in @-reply notification e-mail. %s is conversation URL. +#: lib/mail.php:651 +#, php-format +msgid "" +"The full conversation can be read here:\n" +"\n" +"\t%s" +msgstr "" + +#: lib/mail.php:657 +#, php-format +msgid "%s (@%s) sent a notice to your attention" +msgstr "" + +#. TRANS: Body of @-reply notification e-mail. +#: lib/mail.php:660 +#, php-format +msgid "" +"%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" +"\n" +"The notice is here:\n" +"\n" +"\t%3$s\n" +"\n" +"It reads:\n" +"\n" +"\t%4$s\n" +"\n" +"%5$sYou can reply back here:\n" +"\n" +"\t%6$s\n" +"\n" +"The list of all @-replies for you here:\n" +"\n" +"%7$s\n" +"\n" +"Faithfully yours,\n" +"%2$s\n" +"\n" +"P.S. You can turn off these email notifications here: %8$s\n" +msgstr "" + +#: lib/mailbox.php:89 +msgid "Only the user can read their own mailboxes." +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 "" + +#: lib/mailbox.php:227 lib/noticelist.php:505 +msgid "from" +msgstr "" + +#: lib/mailhandler.php:37 +msgid "Could not parse message." +msgstr "" + +#: lib/mailhandler.php:42 +msgid "Not a registered user." +msgstr "" + +#: lib/mailhandler.php:46 +msgid "Sorry, that is not your incoming email address." +msgstr "" + +#: lib/mailhandler.php:50 +msgid "Sorry, no incoming email allowed." +msgstr "" + +#: lib/mailhandler.php:228 +#, php-format +msgid "Unsupported message type: %s" +msgstr "" + +#: lib/mediafile.php:98 lib/mediafile.php:123 +msgid "There was a database error while saving your file. Please try again." +msgstr "" + +#: lib/mediafile.php:142 +msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." +msgstr "" + +#: lib/mediafile.php:147 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form." +msgstr "" + +#: lib/mediafile.php:152 +msgid "The uploaded file was only partially uploaded." +msgstr "" + +#: lib/mediafile.php:159 +msgid "Missing a temporary folder." +msgstr "" + +#: lib/mediafile.php:162 +msgid "Failed to write file to disk." +msgstr "" + +#: lib/mediafile.php:165 +msgid "File upload stopped by extension." +msgstr "" + +#: lib/mediafile.php:179 lib/mediafile.php:217 +msgid "File exceeds user's quota." +msgstr "" + +#: lib/mediafile.php:197 lib/mediafile.php:234 +msgid "File could not be moved to destination directory." +msgstr "" + +#: lib/mediafile.php:202 lib/mediafile.php:238 +msgid "Could not determine file's MIME type." +msgstr "" + +#: lib/mediafile.php:318 +#, php-format +msgid " Try using another %s format." +msgstr "" + +#: lib/mediafile.php:323 +#, php-format +msgid "%s is not a supported file type on this server." +msgstr "" + +#: lib/messageform.php:120 +msgid "Send a direct notice" +msgstr "" + +#: lib/messageform.php:146 +msgid "To" +msgstr "" + +#: lib/messageform.php:159 lib/noticeform.php:185 +msgid "Available characters" +msgstr "" + +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "" + +#: lib/noticeform.php:173 +#, php-format +msgid "What's up, %s?" +msgstr "" + +#: lib/noticeform.php:192 +msgid "Attach" +msgstr "" + +#: lib/noticeform.php:196 +msgid "Attach a file" +msgstr "" + +#: lib/noticeform.php:212 +msgid "Share my location" +msgstr "" + +#: lib/noticeform.php:215 +msgid "Do not share my location" +msgstr "" + +#: lib/noticeform.php:216 +msgid "" +"Sorry, retrieving your geo location is taking longer than expected, please " +"try again later" +msgstr "" + +#. TRANS: Used in coordinates as abbreviation of north +#: lib/noticelist.php:436 +msgid "N" +msgstr "" + +#. TRANS: Used in coordinates as abbreviation of south +#: lib/noticelist.php:438 +msgid "S" +msgstr "" + +#. TRANS: Used in coordinates as abbreviation of east +#: lib/noticelist.php:440 +msgid "E" +msgstr "" + +#. TRANS: Used in coordinates as abbreviation of west +#: lib/noticelist.php:442 +msgid "W" +msgstr "" + +#: lib/noticelist.php:444 +#, php-format +msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" +msgstr "" + +#: lib/noticelist.php:453 +msgid "at" +msgstr "" + +#: lib/noticelist.php:567 +msgid "in context" +msgstr "" + +#: lib/noticelist.php:602 +msgid "Repeated by" +msgstr "" + +#: lib/noticelist.php:629 +msgid "Reply to this notice" +msgstr "" + +#: lib/noticelist.php:630 +msgid "Reply" +msgstr "" + +#: lib/noticelist.php:674 +msgid "Notice repeated" +msgstr "" + +#: lib/nudgeform.php:116 +msgid "Nudge this user" +msgstr "" + +#: lib/nudgeform.php:128 +msgid "Nudge" +msgstr "" + +#: lib/nudgeform.php:128 +msgid "Send a nudge to this user" +msgstr "" + +#: lib/oauthstore.php:283 +msgid "Error inserting new profile" +msgstr "" + +#: lib/oauthstore.php:291 +msgid "Error inserting avatar" +msgstr "" + +#: lib/oauthstore.php:306 +msgid "Error updating remote profile" +msgstr "" + +#: lib/oauthstore.php:311 +msgid "Error inserting remote profile" +msgstr "" + +#: lib/oauthstore.php:345 +msgid "Duplicate notice" +msgstr "" + +#: lib/oauthstore.php:490 +msgid "Couldn't insert new subscription." +msgstr "" + +#: lib/personalgroupnav.php:99 +msgid "Personal" +msgstr "" + +#: lib/personalgroupnav.php:104 +msgid "Replies" +msgstr "" + +#: lib/personalgroupnav.php:114 +msgid "Favorites" +msgstr "" + +#: lib/personalgroupnav.php:125 +msgid "Inbox" +msgstr "" + +#: lib/personalgroupnav.php:126 +msgid "Your incoming messages" +msgstr "" + +#: lib/personalgroupnav.php:130 +msgid "Outbox" +msgstr "" + +#: lib/personalgroupnav.php:131 +msgid "Your sent messages" +msgstr "" + +#: lib/personaltagcloudsection.php:56 +#, php-format +msgid "Tags in %s's notices" +msgstr "" + +#: lib/plugin.php:115 +msgid "Unknown" +msgstr "" + +#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 +msgid "Subscriptions" +msgstr "" + +#: lib/profileaction.php:126 +msgid "All subscriptions" +msgstr "" + +#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 +msgid "Subscribers" +msgstr "" + +#: lib/profileaction.php:161 +msgid "All subscribers" +msgstr "" + +#: lib/profileaction.php:191 +msgid "User ID" +msgstr "" + +#: lib/profileaction.php:196 +msgid "Member since" +msgstr "" + +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:235 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:264 +msgid "All groups" +msgstr "" + +#: lib/profileformaction.php:123 +msgid "Unimplemented method." +msgstr "" + +#: lib/publicgroupnav.php:78 +msgid "Public" +msgstr "" + +#: lib/publicgroupnav.php:82 +msgid "User groups" +msgstr "" + +#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 +msgid "Recent tags" +msgstr "" + +#: lib/publicgroupnav.php:88 +msgid "Featured" +msgstr "" + +#: lib/publicgroupnav.php:92 +msgid "Popular" +msgstr "" + +#: lib/redirectingaction.php:95 +msgid "No return-to arguments." +msgstr "" + +#: lib/repeatform.php:107 +msgid "Repeat this notice?" +msgstr "" + +#: lib/repeatform.php:132 +msgid "Yes" +msgstr "" + +#: lib/repeatform.php:132 +msgid "Repeat this notice" +msgstr "" + +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#: lib/router.php:709 +msgid "No single user defined for single-user mode." +msgstr "" + +#: lib/sandboxform.php:67 +msgid "Sandbox" +msgstr "" + +#: lib/sandboxform.php:78 +msgid "Sandbox this user" +msgstr "" + +#: lib/searchaction.php:120 +msgid "Search site" +msgstr "" + +#: lib/searchaction.php:126 +msgid "Keyword(s)" +msgstr "" + +#: lib/searchaction.php:127 +msgid "Search" +msgstr "" + +#: lib/searchaction.php:162 +msgid "Search help" +msgstr "" + +#: lib/searchgroupnav.php:80 +msgid "People" +msgstr "" + +#: lib/searchgroupnav.php:81 +msgid "Find people on this site" +msgstr "" + +#: lib/searchgroupnav.php:83 +msgid "Find content of notices" +msgstr "" + +#: lib/searchgroupnav.php:85 +msgid "Find groups on this site" +msgstr "" + +#: lib/section.php:89 +msgid "Untitled section" +msgstr "" + +#: lib/section.php:106 +msgid "More..." +msgstr "" + +#: lib/silenceform.php:67 +msgid "Silence" +msgstr "" + +#: lib/silenceform.php:78 +msgid "Silence this user" +msgstr "" + +#: lib/subgroupnav.php:83 +#, php-format +msgid "People %s subscribes to" +msgstr "" + +#: lib/subgroupnav.php:91 +#, php-format +msgid "People subscribed to %s" +msgstr "" + +#: lib/subgroupnav.php:99 +#, php-format +msgid "Groups %s is a member of" +msgstr "" + +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "" + +#: lib/subscriberspeopleselftagcloudsection.php:48 +#: lib/subscriptionspeopleselftagcloudsection.php:48 +msgid "People Tagcloud as self-tagged" +msgstr "" + +#: lib/subscriberspeopletagcloudsection.php:48 +#: lib/subscriptionspeopletagcloudsection.php:48 +msgid "People Tagcloud as tagged" +msgstr "" + +#: lib/tagcloudsection.php:56 +msgid "None" +msgstr "" + +#: lib/themeuploader.php:50 +msgid "This server cannot handle theme uploads without ZIP support." +msgstr "" + +#: lib/themeuploader.php:58 lib/themeuploader.php:61 +msgid "The theme file is missing or the upload failed." +msgstr "" + +#: lib/themeuploader.php:91 lib/themeuploader.php:102 +#: lib/themeuploader.php:253 lib/themeuploader.php:257 +#: lib/themeuploader.php:265 lib/themeuploader.php:272 +msgid "Failed saving theme." +msgstr "" + +#: lib/themeuploader.php:139 +msgid "Invalid theme: bad directory structure." +msgstr "" + +#: lib/themeuploader.php:166 +#, php-format +msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr "" + +#: lib/themeuploader.php:178 +msgid "Invalid theme archive: missing file css/display.css" +msgstr "" + +#: lib/themeuploader.php:205 +msgid "" +"Theme contains invalid file or folder name. Stick with ASCII letters, " +"digits, underscore, and minus sign." +msgstr "" + +#: lib/themeuploader.php:216 +#, php-format +msgid "Theme contains file of type '.%s', which is not allowed." +msgstr "" + +#: lib/themeuploader.php:234 +msgid "Error opening theme archive." +msgstr "" + +#: lib/topposterssection.php:74 +msgid "Top posters" +msgstr "" + +#: lib/unsandboxform.php:69 +msgid "Unsandbox" +msgstr "" + +#: lib/unsandboxform.php:80 +msgid "Unsandbox this user" +msgstr "" + +#: lib/unsilenceform.php:67 +msgid "Unsilence" +msgstr "" + +#: lib/unsilenceform.php:78 +msgid "Unsilence this user" +msgstr "" + +#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +msgid "Unsubscribe from this user" +msgstr "" + +#: lib/unsubscribeform.php:137 +msgid "Unsubscribe" +msgstr "" + +#: lib/usernoprofileexception.php:58 +#, php-format +msgid "User %s (%d) has no profile record." +msgstr "" + +#: lib/userprofile.php:117 +msgid "Edit Avatar" +msgstr "" + +#: lib/userprofile.php:234 lib/userprofile.php:248 +msgid "User actions" +msgstr "" + +#: lib/userprofile.php:237 +msgid "User deletion in progress..." +msgstr "" + +#: lib/userprofile.php:263 +msgid "Edit profile settings" +msgstr "" + +#: lib/userprofile.php:264 +msgid "Edit" +msgstr "" + +#: lib/userprofile.php:287 +msgid "Send a direct message to this user" +msgstr "" + +#: lib/userprofile.php:288 +msgid "Message" +msgstr "" + +#: lib/userprofile.php:326 +msgid "Moderate" +msgstr "" + +#: lib/userprofile.php:364 +msgid "User role" +msgstr "" + +#: lib/userprofile.php:366 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:367 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1100 +msgid "a few seconds ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1103 +msgid "about a minute ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1107 +#, php-format +msgid "about %d minutes ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1110 +msgid "about an hour ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1114 +#, php-format +msgid "about %d hours ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1117 +msgid "about a day ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1121 +#, php-format +msgid "about %d days ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1124 +msgid "about a month ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1128 +#, php-format +msgid "about %d months ago" +msgstr "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1131 +msgid "about a year ago" +msgstr "" + +#: lib/webcolor.php:82 +#, php-format +msgid "%s is not a valid color!" +msgstr "" + +#: lib/webcolor.php:123 +#, php-format +msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgstr "" + +#: lib/xmppmanager.php:403 +#, php-format +msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr "" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 3f16402f20..8154220b72 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -7,7 +7,6 @@ # Author@translatewiki.net: McDutchie # Author@translatewiki.net: Michael # Author@translatewiki.net: Michi -# Author@translatewiki.net: Pill # Author@translatewiki.net: The Evil IP address # Author@translatewiki.net: Umherirrender # -- @@ -17,12 +16,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:12+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:49+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +106,7 @@ msgstr "Seite nicht vorhanden" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -178,22 +177,20 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kannst [%1$s in seinem Profil einen Stups geben](../%2$s) oder [ihm etwas " -"posten](%%%%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit " -"zu erregen." +"Du kannst versuchen, [%1$s in seinem Profil einen Stups zu geben](../%2$s) " +"oder [ihm etwas posten](%%%%action.newnotice%%%%?status_textarea=%s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " -"gibst %s dann einen Stups oder postest ihm etwas, um seine Aufmerksamkeit zu " -"erregen?" +"gibst %s dann einen Stups oder postest ihm etwas." #. TRANS: H1 text #: actions/all.php:182 @@ -225,7 +222,7 @@ msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -275,7 +272,7 @@ msgstr "Konnte Profil nicht speichern." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -376,8 +373,8 @@ msgid "Could not delete favorite." msgstr "Konnte Favoriten nicht löschen." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Konnte Nutzer nicht folgen: Nutzer nicht gefunden" +msgid "Could not follow user: profile not found." +msgstr "Konnte Nutzer nicht folgen: Profil nicht gefunden" #: actions/apifriendshipscreate.php:118 #, php-format @@ -392,9 +389,9 @@ msgstr "Kann Benutzer nicht entfolgen: Benutzer nicht gefunden." msgid "You cannot unfollow yourself." msgstr "Du kannst dich nicht selbst entfolgen!" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Zwei IDs oder Benutzernamen müssen angegeben werden." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Zwei gültige IDs oder Benutzernamen müssen angegeben werden." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -524,6 +521,10 @@ msgstr "%s Gruppen" msgid "groups on %s" msgstr "Gruppen von %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Hochladen fehlgeschlagen." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Kein oauth_token Parameter angegeben." @@ -667,25 +668,31 @@ msgstr "Status gelöscht." msgid "No status with that ID found." msgstr "Keine Nachricht mit dieser ID gefunden." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" +"Der Client muss einen „status“-Parameter mit einen Wert zur Verfügung " +"stellen." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" "Das war zu lang. Die Länge einer Nachricht ist auf %d Zeichen beschränkt." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Nicht gefunden." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "Die maximale Größe von Nachrichten ist %d Zeichen, inklusive der URL der " "Anhänge" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Bildformat wird nicht unterstützt." @@ -739,6 +746,10 @@ msgstr "Nachrichten, die mit %s getagt sind" msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualisierungen mit %1$s getagt auf %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API-Methode im Aufbau." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Kein solcher Anhang." @@ -792,7 +803,7 @@ msgid "Preview" msgstr "Vorschau" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Löschen" @@ -1073,7 +1084,7 @@ msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -1143,13 +1154,12 @@ msgid "Theme for the site." msgstr "Theme dieser Seite." #: actions/designadminpanel.php:467 -#, fuzzy msgid "Custom theme" -msgstr "Seitentheme" +msgstr "Angepasster Skin" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Du kannst ein angepasstes StatusNet-Theme als .ZIP-Archiv hochladen." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1353,7 +1363,8 @@ msgstr "Ungültiges Stichwort: „%s“" msgid "Could not update group." msgstr "Konnte Gruppe nicht aktualisieren." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Konnte keinen Favoriten erstellen." @@ -2519,10 +2530,10 @@ msgstr "Alle Aktualisierungen, die den Suchbegriff „%s“ enthalten" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Dieser Benutzer erlaubt keine Stupser oder hat seine E-Mail-Adresse noch " -"nicht bestätigt." +"nicht bestätigt oder eingestellt." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2600,8 +2611,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Bitte nur %s URLs über einfaches HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Kein unterstütztes Datenformat." @@ -3519,7 +3530,7 @@ msgstr "Du kannst deine eigene Nachricht nicht wiederholen." msgid "You already repeated that notice." msgstr "Nachricht bereits wiederholt" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Wiederholt" @@ -3557,10 +3568,10 @@ msgstr "Feed der Nachrichten von %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" -"Dies ist die Zeitleiste für %1$s und Freunde aber bisher hat niemand etwas " -"gepostet." +"Dies ist die Zeitleiste für %1$s, aber %2$s hat noch keine Notiz dazu " +"erhalten." #: actions/replies.php:204 #, php-format @@ -3574,12 +3585,11 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kannst [%1$s in seinem Profil einen Stups geben](../%s) oder [ihm etwas " -"posten](%%%%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit " -"zu erregen." +"Du kannst versuchen [%1$s einen Stups zu geben](../%s) oder [ihm etwas " +"posten](%%%%action.newnotice%%%%?status_textarea=%s)." #: actions/repliesrss.php:72 #, php-format @@ -3667,7 +3677,7 @@ msgstr "Organisation" msgid "Description" msgstr "Beschreibung" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiken" @@ -3757,8 +3767,8 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s hat noch keine Nachricht zu den Favoriten hinzugefügt. Sende du doch " "einfach eine interessante Nachricht, damit sich daran etwas ändert :)" @@ -3766,13 +3776,13 @@ msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s hat noch keine Nachrichten zu seinen Favoriten hinzugefügt. Warum meldest " -"du dich nicht an ( [anmelden](%%%%action.register%%%%) ) und schreibst " -"etwas, was %s hinzufügen kann!" +"%s hat noch keine Nachrichten zu seinen Favoriten hinzugefügt. Warum " +"[meldest du dich nicht an](%%%%action.register%%%%) und schreibst etwas, was " +"%s hinzufügen kann!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." @@ -3830,7 +3840,7 @@ msgstr "Nachrichtenfeed der Gruppe %s (Atom)" msgid "FOAF for %s group" msgstr "Postausgang von %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Mitglieder" @@ -3844,11 +3854,11 @@ msgstr "(Kein)" msgid "All members" msgstr "Alle Mitglieder" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Erstellt" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3863,7 +3873,7 @@ msgstr "" "und werde Teil der Gruppe und vielen anderen! ([Mehr Informationen](%%%%doc." "help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3876,7 +3886,7 @@ msgstr "" "Freien Software [StatusNet](http://status.net/). Seine Mitglieder erstellen " "kurze Nachrichten über Ihr Leben und Interessen. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administratoren" @@ -3955,11 +3965,11 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Du kannst %1$s in seinem Profil einen Stups geben oder [ihm etwas posten](%%%" -"%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit zu erregen." +"%action.newnotice%%%%?status_textarea=%s)." #: actions/showstream.php:243 #, php-format @@ -4347,7 +4357,8 @@ msgstr "Snapshot-Einstellungen speichern" msgid "You are not subscribed to that profile." msgstr "Du hast dieses Profil nicht abonniert." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Konnte Abonnement nicht erstellen." @@ -4526,10 +4537,6 @@ msgstr "" msgid "No such tag." msgstr "Stichwort nicht vorhanden." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API-Methode im Aufbau." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Du hast diesen Benutzer nicht blockiert." @@ -4841,82 +4848,129 @@ msgstr "Version" msgid "Author(s)" msgstr "Autor(en)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Die URL „%s“ konnte nicht verarbeitet werden" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Robin denkt, dass etwas unmöglich ist." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Keine Datei darf größer als %d Bytes sein und die Datei die du verschicken " -"wolltest ist %d Bytes groß. Bitte eine kleinere Datei hoch laden." +"wolltest war %d Bytes groß. Bitte eine kleinere Version hochladen." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Eine Datei dieser Größe überschreitet deine User Quota von %d Byte." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "Eine Datei dieser Größe würde deine monatliche Quota von %d Byte " "überschreiten." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Ungültiger Dateiname." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Konnte Gruppe nicht beitreten" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Nicht Mitglied der Gruppe" -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Konnte Gruppe nicht verlassen" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Konnte Gruppe nicht aktualisieren." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Konnte keinen Login-Token für %s erstellen" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Nirgedwo einen Datenbanknamen oder DSN gefunden." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Direktes senden von Nachrichten wurde blockiert" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Konnte Nachricht nicht einfügen." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Konnte Nachricht nicht mit neuer URI versehen." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Kein Profil (%1$d) für eine Notiz gefunden (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Datenbankfehler beim Einfügen des Hashtags: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problem bei Speichern der Nachricht. Sie ist zu lang." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problem bei Speichern der Nachricht. Unbekannter Benutzer." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Zu schnell zu viele Nachrichten; atme kurz durch und schicke sie erneut in " "ein paar Minuten ab." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4924,73 +4978,124 @@ msgstr "" "Zu schnell zu viele Nachrichten; atme kurz durch und schicke sie erneut in " "ein paar Minuten ab." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" "Du wurdest für das Schreiben von Nachrichten auf dieser Seite gesperrt." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" +"Der Methode saveKnownGroups wurde ein schlechter Wert zur Verfügung gestellt" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"Die Rolle „%1$s“ kann nicht für Benutzer #%2$d widerrufen werden. Benutzer " +"existiert nicht." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Die Rolle „%1$s“ kann nicht für Benutzer #%2$d widerrufen werden. " +"Datenbankfehler." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Benutzer hat kein Profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Konnte Seitenbenachrichtigung nicht speichern." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Dieser Benutzer erlaubt dir nicht ihn zu abonnieren." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Bereits abonniert!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Dieser Benutzer hat dich blockiert." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Nicht abonniert!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." +msgstr "Konnte Selbst-Abonnement nicht löschen." + +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "Konnte OMB-Abonnement-Token nicht löschen." + +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "Konnte Abonnement nicht löschen." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." -msgstr "Konnte OMB-Abonnement nicht löschen." - -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." -msgstr "Konnte Abonnement nicht löschen." - -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Konnte Gruppe nicht erstellen." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Konnte die Gruppen URI nicht setzen." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Konnte Gruppenmitgliedschaft nicht setzen." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Konnte die lokale Gruppen Information nicht speichern." @@ -6457,7 +6562,7 @@ msgstr "" "schicken, um sie in eine Konversation zu verwickeln. Andere Leute können Dir " "Nachrichten schicken, die nur Du sehen kannst." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "von" @@ -6518,24 +6623,24 @@ msgstr "Konnte die Datei nicht auf die Festplatte schreiben." msgid "File upload stopped by extension." msgstr "Upload der Datei wurde wegen der Dateiendung gestoppt." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Dateigröße liegt über dem Benutzerlimit" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Datei konnte nicht in das Zielverzeichnis verschoben werden." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Konnte den MIME-Typ nicht feststellen." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Versuche ein anderes %s Format." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s ist kein unterstütztes Dateiformat auf diesem Server." @@ -6591,51 +6696,51 @@ msgstr "" "Bitte versuche es später wieder." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "O" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "W" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "in" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Wiederholt von" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Nachricht wiederholt" @@ -6890,48 +6995,47 @@ msgstr "Nichts" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "Dieser Server kann nicht mit Theme-Uploads ohne ZIP-Support umgehen." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Systemfehler beim hochladen der Datei." +msgid "The theme file is missing or the upload failed." +msgstr "Die Theme-Datei fehlt oder das Hochladen ist fehlgeschlagen." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 #: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy msgid "Failed saving theme." -msgstr "Aktualisierung des Avatars fehlgeschlagen." +msgstr "Speicherung des Themes fehlgeschlagen." #: lib/themeuploader.php:139 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Ungültiger Theme: schlechte Ordner-Struktur." #: lib/themeuploader.php:166 #, php-format msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgstr "Der hochgeladene Theme ist zu groß; er muss unter %d Bytes sein." #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Ungültigges Theme-Archiv: fehlende Datei css/display.css" #: lib/themeuploader.php:205 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"Der Theme enthält einen ungültigen Datei- oder Ordnernamen. Bleib bei ASCII-" +"Buchstaben, Zahlen, Unterstrichen und Minuszeichen." #: lib/themeuploader.php:216 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "Das Theme enthält Dateien des Types „.%s“, die nicht erlaubt sind." #: lib/themeuploader.php:234 -#, fuzzy msgid "Error opening theme archive." -msgstr "Fehler beim Aktualisieren des entfernten Profils." +msgstr "Fehler beim Öffnen des Theme-Archives." #: lib/topposterssection.php:74 msgid "Top posters" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 803c3b34b4..704ae6c2a7 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:17+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:51+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -172,15 +172,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -213,7 +213,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -264,7 +264,7 @@ msgstr "Απέτυχε η αποθήκευση του προφίλ." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -361,7 +361,8 @@ msgid "Could not delete favorite." msgstr "" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης δε βρέθηκε." #: actions/apifriendshipscreate.php:118 @@ -380,8 +381,8 @@ msgstr "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήσ msgid "You cannot unfollow yourself." msgstr "Δεν μπορείτε να εμποδίσετε τον εαυτό σας!" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -512,6 +513,11 @@ msgstr "" msgid "groups on %s" msgstr "ομάδες του χρήστη %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Αδύνατη η αποθήκευση του προφίλ." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -655,22 +661,26 @@ msgstr "Η κατάσταση διεγράφη." msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "" @@ -724,6 +734,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Η μέθοδος του ΑΡΙ είναι υπό κατασκευή." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "" @@ -776,7 +790,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Διαγραφή" @@ -1064,7 +1078,7 @@ msgid "Do not delete this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "" @@ -1352,7 +1366,8 @@ msgstr "" msgid "Could not update group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -2471,7 +2486,7 @@ msgstr "Όλες οι ενημερώσεις που ταιριάζουν με τ #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2548,8 +2563,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3450,7 +3465,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Δημιουργία" @@ -3487,11 +3502,13 @@ msgid "Replies feed for %s (Atom)" msgstr "Ροή φίλων του/της %s" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" +"Αυτό είναι το χρονοδιάγραμμα για %s και φίλους, αλλά κανείς δεν έχει κάνει " +"καμία αποστολή ακόμα." #: actions/replies.php:204 #, php-format @@ -3503,8 +3520,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3598,7 +3615,7 @@ msgstr "Προσκλήσεις" msgid "Description" msgstr "Περιγραφή" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "" @@ -3684,16 +3701,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3753,7 +3770,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Μέλη" @@ -3767,11 +3784,11 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Δημιουργημένος" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3781,7 +3798,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3790,7 +3807,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Διαχειριστές" @@ -3866,8 +3883,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4252,7 +4269,8 @@ msgstr "Ρυθμίσεις OpenID" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" @@ -4419,10 +4437,6 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Η μέθοδος του ΑΡΙ είναι υπό κατασκευή." - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4715,155 +4729,252 @@ msgstr "Προσωπικά" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Μήνυμα" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Προφίλ χρήστη" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Αδύνατη η αποθήκευση του προφίλ." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Απέτυχε η συνδρομή." -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" @@ -6207,7 +6318,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "από" @@ -6262,25 +6373,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Απέτυχε η ενημέρωση του χρήστη." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6336,51 +6447,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Ρυθμίσεις OpenID" @@ -6644,7 +6755,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 96dc69be6f..d4d793a362 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:21+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:52+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "No such page." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -168,19 +168,19 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." 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:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to his or her attention." @@ -215,7 +215,7 @@ msgstr "Updates from %1$s and friends on %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -267,7 +267,7 @@ msgstr "Couldn't save profile." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -365,7 +365,8 @@ msgid "Could not delete favorite." msgstr "Could not delete favourite." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Could not follow user: User not found." #: actions/apifriendshipscreate.php:118 @@ -381,8 +382,9 @@ msgstr "Could not unfollow user: User not found." msgid "You cannot unfollow yourself." msgstr "You cannot unfollow yourself." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Two user ids or screen_names must be supplied." #: actions/apifriendshipsshow.php:134 @@ -510,6 +512,11 @@ msgstr "%s groups" msgid "groups on %s" msgstr "groups on %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Upload file" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "No oauth_token parameter provided." @@ -653,22 +660,26 @@ msgstr "Status deleted." msgid "No status with that ID found." msgstr "No status with that ID found." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "That's too long. Max notice size is %d chars." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Not found." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Max notice size is %d chars, including attachment URL." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Unsupported format." @@ -722,6 +733,10 @@ msgstr "Notices tagged with %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates tagged with %1$s on %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API method under construction." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "No such attachment." @@ -774,7 +789,7 @@ msgid "Preview" msgstr "Preview" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Delete" @@ -1055,7 +1070,7 @@ msgid "Do not delete this notice" msgstr "Do not delete this notice" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Delete this notice" @@ -1334,7 +1349,8 @@ msgstr "Invalid alias: \"%s\"" msgid "Could not update group." msgstr "Could not update group." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Could not create aliases" @@ -2477,8 +2493,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Updates matching search term \"%1$s\" on %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "This user doesn't allow nudges or hasn't confirmed or set his e-mail yet." @@ -2554,8 +2571,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Not a supported data format." @@ -3446,7 +3463,7 @@ msgstr "You can't repeat your own notice." msgid "You already repeated that notice." msgstr "You already repeated that notice." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repeated" @@ -3481,10 +3498,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Notice feed for %s" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to his attention yet." @@ -3497,10 +3514,10 @@ msgid "" msgstr "" #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " "attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3591,7 +3608,7 @@ msgstr "Organization" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistics" @@ -3676,20 +3693,20 @@ msgstr "" "notices you like to bookmark them for later or shed a spotlight on them." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices 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:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an 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 " @@ -3751,7 +3768,7 @@ msgstr "Notice feed for %s group (Atom)" msgid "FOAF for %s group" msgstr "Outbox for %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Members" @@ -3765,11 +3782,11 @@ msgstr "(None)" msgid "All members" msgstr "All members" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Created" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3784,7 +3801,7 @@ msgstr "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3797,7 +3814,7 @@ msgstr "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Admins" @@ -3870,10 +3887,10 @@ msgid "" msgstr "" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." @@ -4251,7 +4268,8 @@ msgstr "Save snapshot settings" msgid "You are not subscribed to that profile." msgstr "You are not subscribed to that profile." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Could not save subscription." @@ -4420,10 +4438,6 @@ msgstr "Use this form to add tags to your subscribers or subscriptions." msgid "No such tag." msgstr "No such tag." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API method under construction." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "You haven't blocked that user." @@ -4731,77 +4745,125 @@ msgstr "Version" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Invalid size." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Group join failed." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Not part of group." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Group leave failed." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Could not update local group." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Could not create login token for %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "You are banned from sending direct messages." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Could not insert message." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Could not update message with new URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Database error inserting hashtag: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problem saving notice. Too long." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problem saving notice. Unknown user." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Too many notices too fast; take a breather and post again in a few minutes." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4809,72 +4871,123 @@ msgstr "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "You are banned from posting notices on this site." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problem saving notice." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problem saving group inbox." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "User has no profile." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Unable to save site notice." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "You have been banned from subscribing." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "User has blocked you." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Not subscribed!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "Couldn't delete self-subscription." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "Couldn't delete subscription OMB token." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Couldn't delete subscription." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Could not create group." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Could not set group URI." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Could not set group membership." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Could not save local group info." @@ -6242,7 +6355,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "from" @@ -6297,24 +6410,24 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Could not determine file's MIME type." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6368,51 +6481,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "in context" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repeated by" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Notice repeated" @@ -6670,9 +6783,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "System error uploading file." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 56f866af8c..ae6f2929a8 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -15,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:25+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:54+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -104,7 +104,7 @@ msgstr "No existe tal página." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -175,20 +175,20 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Puedes intentar [darle un toque a %1$s](../%2$s) desde su perfil o [publicar " -"algo a su atención](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Puedes intentar [zarandear a %1$s](../%2$s) desde su perfil o [publicar algo " +"a ellos](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" -"¿Por qué no [registrar una cuenta](%%%%action.register%%%%) y luego darle un " -"toque a %s o publicar algo a su atención?" +"Por qué no [registrar una cuenta](%%%%action.register%%%%) y luego zarandear " +"a %s o publicar una nota a ellos?" #. TRANS: H1 text #: actions/all.php:182 @@ -220,7 +220,7 @@ msgstr "¡Actualizaciones de %1$s y sus amistades en %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -270,7 +270,7 @@ msgstr "No se pudo guardar el perfil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -368,8 +368,8 @@ msgid "Could not delete favorite." msgstr "No se pudo borrar favorito." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "No puede seguir al usuario. Usuario no encontrado" +msgid "Could not follow user: profile not found." +msgstr "No se pudo seguir al usuario: Perfil no encontrado." #: actions/apifriendshipscreate.php:118 #, php-format @@ -384,9 +384,9 @@ msgstr "No se pudo dejar de seguir al usuario. Usuario no encontrado" msgid "You cannot unfollow yourself." msgstr "No puedes dejar de seguirte a ti mismo." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Deben proveerse dos identificaciones de usuario o nombres en pantalla." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Deben proveerse dos IDs válidos o nombres en pantalla." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -515,6 +515,10 @@ msgstr "Grupos %s" msgid "groups on %s" msgstr "Grupos en %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Carga falló." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "No se ha provisto de un parámetro oauth_token." @@ -661,24 +665,28 @@ msgstr "Status borrado." msgid "No status with that ID found." msgstr "No hay estado para ese ID" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "El cliente debe proveer un parámetro de 'status' con un valor." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "La entrada es muy larga. El tamaño máximo es de %d caracteres." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "No encontrado." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "El tamaño máximo de la notificación es %d caracteres, incluyendo el URL " "adjunto." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formato no soportado." @@ -732,6 +740,10 @@ msgstr "Avisos etiquetados con %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizaciones etiquetadas con %1$s en %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Método API en construcción." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "No existe tal archivo adjunto." @@ -784,7 +796,7 @@ msgid "Preview" msgstr "Vista previa" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Borrar" @@ -1066,7 +1078,7 @@ msgid "Do not delete this notice" msgstr "No eliminar este mensaje" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Borrar este aviso" @@ -1344,7 +1356,8 @@ msgstr "Alias inválido: \"%s\"" msgid "Could not update group." msgstr "No se pudo actualizar el grupo." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "No fue posible crear alias." @@ -2289,7 +2302,7 @@ msgstr "Ningún nombre de usuario o ID." #: actions/joingroup.php:141 lib/command.php:346 #, php-format msgid "%1$s joined group %2$s" -msgstr "%1$s se ha unido al grupo %2$" +msgstr "%1$s se ha unido al grupo %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." @@ -2505,10 +2518,10 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" -"Este usuario no permite toques o todavía no confirma o configura su correo " -"electrónico." +"Este usuario no permite zarandeos o todavía no confirma o configura su " +"correo electrónico." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2584,8 +2597,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Solamente %s URLs sobre HTTP simples por favor." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "No es un formato de dato soportado" @@ -3508,7 +3521,7 @@ msgstr "No puedes repetir tus propios mensajes." msgid "You already repeated that notice." msgstr "Ya has repetido este mensaje." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repetido" @@ -3546,10 +3559,10 @@ msgstr "Feed de avisos de %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Esta es la línea temporal que muestra las respuestas a a %1$s, pero %2$s aún " -"no ha recibido ningún aviso a su atención." +"no ha recibido ningún aviso." #: actions/replies.php:204 #, php-format @@ -3563,11 +3576,11 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Puedes intentar [darle un toque a %1$s](../%2$s) o [publicar algo en su " -"atención](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Puedes intentar [zarandear a %1$s](../%2$s) o [publicar algo a ellos](%%%%" +"action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3655,7 +3668,7 @@ msgstr "Organización" msgid "Description" msgstr "Descripción" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estadísticas" @@ -3744,22 +3757,22 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" -"%s aún no ha añadido ningún aviso a sus favoritos. ¡Publica algo interesante " -"que pueda añadir a sus favoritos! :)" +"%s aún no ha agregado ningún aviso a sus favoritos. Publica algo interesante " +"que pueda añadir a sus favoritos :)" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s aún no ha añadido ningún aviso a sus favoritos. ¿Por qué no [registras " -"una cuenta] (%%%%action.register%%%%) y publicas algo interesante que pueda " -"añadir a sus favoritos? :)" +"%s aún no ha añadido ningún aviso a sus favoritos. Por qué no [registras una " +"cuenta] (%%%%action.register%%%%) y publicas algo interesante que puedan " +"añadir a sus favoritos :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." @@ -3817,7 +3830,7 @@ msgstr "Canal de avisos del grupo %s (Atom)" msgid "FOAF for %s group" msgstr "Amistades de amistades del grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Miembros" @@ -3831,11 +3844,11 @@ msgstr "(Ninguno)" msgid "All members" msgstr "Todos los miembros" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Creado" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3851,7 +3864,7 @@ msgstr "" "action.register%%%%) para formar parte de este y muchos más grupos! ([Más " "información](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3864,7 +3877,7 @@ msgstr "" "herramienta de software libre [StatusNet](http://status.net/). Sus miembros " "comparten mensajes cortos acerca de su vida e intereses. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administradores" @@ -3941,11 +3954,11 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"Puedes intentar darle un toque a %1$s o [publicar algo a su atención](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"Puedes intentar zarandear a %1$s o [publicar algo a ellos](%%%%action." +"newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -4334,7 +4347,8 @@ msgstr "Guardar la configuración de instantáneas" msgid "You are not subscribed to that profile." msgstr "No te has suscrito a ese perfil." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "No se ha podido guardar la suscripción." @@ -4514,10 +4528,6 @@ msgstr "" msgid "No such tag." msgstr "No existe tal etiqueta." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Método API en construcción." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "No has bloqueado ese usuario." @@ -4828,81 +4838,128 @@ msgstr "Versión" msgid "Author(s)" msgstr "Autor(es)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "No se puede procesar URL '%s'" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr " Robin piensa que algo es imposible." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"No puede haber un archivo de tamaño mayor a %d bytes y el archivo subido es " -"de %d bytes. Por favor, intenta subir una versión más ligera." +"Ningún archivopuede ser de tamaño mayor a %1$d bytes y el archivo que " +"enviaste es de %2$d bytes. Trata de subir una versión más pequeña." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Un archivo tan grande podría sobrepasar tu cuota de usuario de %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Un archivo tan grande podría sobrepasar tu cuota mensual de %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Nombre de archivo inválido." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Ha fallado la acción de unirse el grupo" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "No es parte del grupo." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Ha fallado la acción de abandonar el grupo" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "No se pudo actualizar el grupo local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "No se pudo crear el token de acceso para %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Ningún nombre de base de datos o DSN encontrado." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Se te ha inhabilitado para enviar mensajes directos." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "No se pudo insertar mensaje." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "No se pudo actualizar mensaje con nuevo URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "No existe tal perfil (%1$d) para notificar (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Error de la BD al insertar la etiqueta clave: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Ha habido un problema al guardar el mensaje. Es muy largo." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Ha habido un problema al guardar el mensaje. Usuario desconocido." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Demasiados avisos demasiado rápido; para y publicar nuevamente en unos " "minutos." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4910,72 +4967,119 @@ msgstr "" "Muchos mensajes, enviados muy rápido; espera un poco e intenta publicar " "pasados unos minutos." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Tienes prohibido publicar avisos en este sitio." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "Mal tipo proveído a saveKnownGroups" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Hubo un problema al guarda la bandeja de entrada del grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "No se puede revocar rol \"%1$s\" para usuario #%2$d; no existe." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"No se puede revocar rol \"%1$s\" para usuario #%2$d; error de base de datos." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Perfil ausente." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Incapaz de grabar etiqueta." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Se te ha prohibido la suscripción." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "¡Ya te has suscrito!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "El usuario te ha bloqueado." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "¡No estás suscrito!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "No se pudo eliminar la auto-suscripción." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." -msgstr "No se pudo eliminar el token OMB de suscripción." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "No se pudo eliminar la ficha OMB de suscripción." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "No se pudo eliminar la suscripción." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "No se pudo crear grupo." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "No se pudo configurar el URI del grupo." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "No se pudo configurar la membresía del grupo." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "No se ha podido guardar la información del grupo local." @@ -6453,7 +6557,7 @@ msgstr "" "otros usuarios partícipes de la conversación. La gente puede enviarte " "mensajes que sólo puedas leer tú." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "desde" @@ -6513,24 +6617,24 @@ msgstr "No se pudo escribir el archivo en el disco." msgid "File upload stopped by extension." msgstr "La subida de archivos se detuvo por extensión." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Archivo sobrepasa la cuota del usuario." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "El archivo no se pudo mover al directorio de destino." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "No se pudo determinar tipo MIME del archivo" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Pruebe a usar otro formato %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s no es un tipo de archivo soportado en este servidor." @@ -6586,51 +6690,51 @@ msgstr "" "favor, inténtalo más tarde." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "W" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "en" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetido por" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Responder este aviso." -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Aviso repetido" @@ -6888,8 +6992,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "Este servidor no puede manejar cargas de temas sin soporte ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Sudida del tema perdido o errado." +msgid "The theme file is missing or the upload failed." +msgstr "El archivo de tema está perdido o la carga falló." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 22997fc917..685d96e4af 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:35+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:57+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -22,7 +22,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -103,7 +103,7 @@ msgstr "چنین صفحه‌ای وجود ندارد." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,19 +170,19 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "شما می‌توانید [یادآوری‌کردن %1$s](../%2$s) را از نمایه‌اش امتحان کنید یا [به " "توجه او چیزی بفرستید](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "چرا [ثبت‌نام](%%%%action.register%%%%) نمی‌کنید و سپس به %s یادآوری کنید یا یک " "پیام به توجه‌اش بفرستید." @@ -217,7 +217,7 @@ msgstr "به روز رسانی از %1$s و دوستان در %2$s" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +266,7 @@ msgstr "نمی‌توان نمایه را ذخیره کرد." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -363,7 +363,8 @@ msgid "Could not delete favorite." msgstr "نمی‌توان پیام برگزیده را حذف کرد." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "نمی‌توان کاربر را دنبال کرد: کاربر یافت نشد." #: actions/apifriendshipscreate.php:118 @@ -379,8 +380,9 @@ msgstr "نمی‌توان کاربر را دنبال نکرد: کاربر یاف msgid "You cannot unfollow yourself." msgstr "نمی‌توانید خودتان را دنبال کنید." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "باید ۲ شناسه‌ی کاربر یا نام ظاهری وارد کنید." #: actions/apifriendshipsshow.php:134 @@ -508,6 +510,11 @@ msgstr "%s گروه" msgid "groups on %s" msgstr "گروه‌ها در %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "بارگذاری پرونده" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "هیچ پارامتر oauth_token آماده نشده است." @@ -651,22 +658,26 @@ msgstr "وضعیت حذف شد." msgid "No status with that ID found." msgstr "هیچ وضعیتی با آن شناسه یافت نشد." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "این خیلی طولانی است. بیشینهٔ طول پیام %d نویسه است." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "یافت نشد." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "بیشینهٔ طول پیام %d نویسه که شامل نشانی اینترنتی پیوست هم هست." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "قالب پشتیبانی نشده." @@ -720,6 +731,10 @@ msgstr "پیام‌هایی که با %s نشانه گزاری شده اند." msgid "Updates tagged with %1$s on %2$s!" msgstr "پیام‌های نشانه گزاری شده با %1$s در %2$s" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "روش API در دست ساخت." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "چنین پیوستی وجود ندارد." @@ -773,7 +788,7 @@ msgid "Preview" msgstr "پیش‌نمایش" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "حذف" @@ -1055,7 +1070,7 @@ msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -1334,7 +1349,8 @@ msgstr "نام‌مستعار غیر مجاز: «%s»" msgid "Could not update group." msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "نمی‌توان نام‌های مستعار را ساخت." @@ -2476,8 +2492,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "پیام‌هایی که با جست‌و‌جوی عبارت »%1$s« در %s یافت شدند." #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "این کاربر اجازه‌ی یادآوری‌کردن را نداده است یا پست‌الکترونیک خود را تایید یا " "تعیین نکرده است." @@ -2555,8 +2572,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "لطفا تنها از نشانی‌های اینترنتی %s از راه HTTP ساده استفاده کنید." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست." @@ -3460,7 +3477,7 @@ msgstr "شما نمی‌توانید پیام خودتان را تکرار کن msgid "You already repeated that notice." msgstr "شما قبلا آن پیام را تکرار کرده‌اید." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "تکرار شده" @@ -3495,10 +3512,10 @@ msgid "Replies feed for %s (Atom)" msgstr "خوراک پاسخ‌ها برای %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "این خط‌زمانی است که پاسخ‌ها به %1$s را نشان می‌دهد، اما %2$s هنوز یک پیام به " "توجه‌اش دریافت نکرده است." @@ -3513,10 +3530,10 @@ msgstr "" "شوید یا [به گروه‌ها بپیوندید](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "شما می‌توانید [یادآوری %1$s](../%2$s) را امتحان کنید یا [به توجه او چیزی " "بفرستید](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3608,7 +3625,7 @@ msgstr "سازمان" msgid "Description" msgstr "توصیف" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "آمار" @@ -3696,20 +3713,20 @@ msgstr "" "آن‌ها بگذارید." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s تاکنون هیچ پیامی را به برگزیده‌هایش اضافه نکرده است. چیز جالبی بفرستید که " "ممکن است به برگزیده‌هایشان اضافه کنند :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s تاکنون هیچ پیامی را به برگزیده‌هایش اضافه نکرده است. چرا به [ثبت کردن یک " "حساب](%%%%action.register%%%%) اقدام نمی‌کنید و سپس چیز جالبی را که ممکن است " @@ -3771,7 +3788,7 @@ msgstr "خوراک پیام برای گروه %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF برای گروه %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "اعضا" @@ -3785,11 +3802,11 @@ msgstr "هیچ" msgid "All members" msgstr "همهٔ اعضا" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "ساخته شد" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3805,7 +3822,7 @@ msgstr "" "می‌گذارند. [اکنون بپیوندید ](%%%%action.register%%%%) تا یکی از اعضای این " "گروه و بلکه بیش‌تر بشوید! ([بیش‌تر بخوانید](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3819,7 +3836,7 @@ msgstr "" "است. کاربران آن پیام‌های کوتاهی را دربارهٔ زندگی و علاقه‌مندی‌هایشان به اشتراک " "می‌گذارند. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "مدیران" @@ -3894,10 +3911,10 @@ msgstr "" "زمان خوبی برای شروع باشد :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "شما می‌توانید یادآوری %1$s را امتحان کنید یا [به توجه او چیزی بفرستید](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." @@ -4283,7 +4300,8 @@ msgstr "ذخیرهٔ تنظیمات تصویر لحظه‌ای" msgid "You are not subscribed to that profile." msgstr "شما مشترک آن نمایه نیستید." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "نمی‌توان اشتراک را ذخیره کرد." @@ -4460,10 +4478,6 @@ msgstr "از این روش برای افزودن برچسب به مشترک‌ه msgid "No such tag." msgstr "چنین برچسبی وجود ندارد." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "روش API در دست ساخت." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "شما آن کاربر را مسدود نکرده اید." @@ -4765,83 +4779,131 @@ msgstr "نسخه" msgid "Author(s)" msgstr "مؤلف(ها)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "هیچ پرونده‌ای نباید بزرگ‌تر از %d بایت باشد و پرونده‌ای که شما فرستادید %d بایت " "بود. بارگذاری یک نسخهٔ کوچک‌تر را امتحان کنید." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "یک پرونده با این حجم زیاد می‌تواند از سهمیهٔ کاربری شما از %d بایت بگذرد." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "یک پرونده با این حجم زیاد می‌تواند از سهمیهٔ کاربری ماهانهٔ شما از %d بایت " "بگذرد." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "اندازه‌ی نادرست" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "پیوستن به گروه شکست خورد." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "بخشی از گروه نیست." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "ترک کردن گروه شکست خورد." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "نمی‌توان گروه محلی را به‌هنگام‌سازی کرد." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "نمی‌توان رمز ورود را برای %s ایجاد کرد" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "شما از فرستادن پیام مستقیم مردود شده اید." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "پیغام نمی تواند درج گردد" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "هنگام افزودن برچسب خطا در پایگاه داده رخ داد: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "مشکل در ذخیره کردن پیام. بسیار طولانی." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "مشکل در ذخیره کردن پیام. کاربر نا شناخته." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "تعداد زیادی پیام و خیلی سریع فرستاده شده‌اند؛ استراحت کنید و دقایقی دیگر " "دوباره بفرستید." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4849,72 +4911,123 @@ msgstr "" "تعداد زیاد پیام های دو نسخه ای و بسرعت؛ استراحت کنید و دقایقی دیگر مجددا " "ارسال کنید." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "شما از فرستادن پیام در این وب‌گاه منع شده‌اید." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "هنگام ذخیرهٔ پیام مشکلی ایجاد شد." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "هنگام ذخیرهٔ صندوق ورودی گروه مشکلی رخ داد." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "کاربر هیچ نمایه‌ای ندارد." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "نمی‌توان پیام وب‌گاه را ذخیره کرد." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "شما از اشتراک منع شده‌اید." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "قبلا اشتراک انجام شده است!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "کاربر شما را مسدود کرده است." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "تایید نشده!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "نمی‌توان خود-اشتراکی را حذف کرد." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "نمی‌توان رمز اشتراک OMB را حذف کرد." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "نمی‌توان اشتراک را لغو کرد." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s، به %1$s خوش آمدید!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "نمی‌توان عضویت گروه را تعیین کرد." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "نمی‌توان اطلاعات گروه محلی را ذخیره کرد." @@ -6375,7 +6488,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "از" @@ -6431,24 +6544,24 @@ msgstr "شکست خوردن در نوشتن فایل روی دیسک." msgid "File upload stopped by extension." msgstr "بارگذاری پرونده توسط افزونه متوقف شد." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "پرونده از سهمیهٔ کاربر می‌گذرد." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "فایل نتوانست به دایرکتوری مقصد منتقل شود." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "نمی‌توان فرمت پرونده را تعیین کرد." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "تلاش برای امتحان نوع دیگر %s" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s یک گونهٔ پروندهٔ پیشتیبانی شده روی این کارگزار نیست." @@ -6504,51 +6617,51 @@ msgstr "" "دوباره تلاش کنید." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "در" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "به این پیام پاسخ دهید" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "پاسخ" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "پیام تکرار شد" @@ -6806,9 +6919,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "هنگام بارگذاری پرونده خطای سیستمی رخ داد." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 2b5f91e410..a087c57775 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:30+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:55+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +107,7 @@ msgstr "Sivua ei ole." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -178,8 +178,8 @@ msgstr "" #: actions/all.php:146 #, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." "newnotice%%%%?status_textarea=%s)!" @@ -188,7 +188,7 @@ msgstr "" #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -221,7 +221,7 @@ msgstr "Käyttäjän %1$s ja kavereiden päivitykset palvelussa %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -272,7 +272,7 @@ msgstr "Ei voitu tallentaa profiilia." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -374,7 +374,8 @@ msgid "Could not delete favorite." msgstr "Ei voitu poistaa suosikkia." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Ei voitu tilata käyttäjää: Käyttäjää ei löytynyt." #: actions/apifriendshipscreate.php:118 @@ -391,8 +392,9 @@ msgstr "Ei voitu lopettaa tilausta: Käyttäjää ei löytynyt." msgid "You cannot unfollow yourself." msgstr "Et voi lopettaa itsesi tilausta!" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Kaksi käyttäjätunnusta tai nimeä täytyy antaa." #: actions/apifriendshipsshow.php:134 @@ -525,6 +527,11 @@ msgstr "Käyttäjän %s ryhmät" msgid "groups on %s" msgstr "Ryhmän toiminnot" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Lataa" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -673,22 +680,26 @@ msgstr "Päivitys poistettu." msgid "No status with that ID found." msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Päivitys on liian pitkä. Maksimipituus on %d merkkiä." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Ei löytynyt." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maksimikoko päivitykselle on %d merkkiä, mukaan lukien URL-osoite." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formaattia ei ole tuettu." @@ -743,6 +754,10 @@ msgstr "Päivitykset joilla on tagi %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API-metodi on työn alla!" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Liitettä ei ole." @@ -796,7 +811,7 @@ msgid "Preview" msgstr "Esikatselu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Poista" @@ -1083,7 +1098,7 @@ msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -1380,7 +1395,8 @@ msgstr "Virheellinen alias: \"%s\"" msgid "Could not update group." msgstr "Ei voitu päivittää ryhmää." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Ei voitu lisätä aliasta." @@ -1421,7 +1437,6 @@ msgstr "Tämän hetken vahvistettu sähköpostiosoite." #: actions/emailsettings.php:115 actions/emailsettings.php:158 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" msgstr "Poista" @@ -2555,8 +2570,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Kaikki päivitykset hakuehdolla \"%s\"" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Käyttäjä ei ole sallinut tönäisyjä tai ei ole vahvistanut " "sähköpostiosoitettaan." @@ -2638,8 +2654,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Tuo ei ole tuettu tietomuoto." @@ -3568,7 +3584,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -3608,7 +3624,7 @@ msgstr "Päivityksien syöte käyttäjälle %s" #, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Tämä on käyttäjän %s aikajana, mutta %s ei ole lähettänyt vielä yhtään " "päivitystä." @@ -3623,8 +3639,8 @@ msgstr "" #: actions/replies.php:206 #, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." "newnotice%%%%?status_textarea=%s)!" @@ -3726,7 +3742,7 @@ msgstr "Sivutus" msgid "Description" msgstr "Kuvaus" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Tilastot" @@ -3812,16 +3828,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3880,7 +3896,7 @@ msgstr "Syöte ryhmän %s päivityksille (Atom)" msgid "FOAF for %s group" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Jäsenet" @@ -3894,11 +3910,11 @@ msgstr "(Tyhjä)" msgid "All members" msgstr "Kaikki jäsenet" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Luotu" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3908,7 +3924,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3919,7 +3935,7 @@ msgstr "" "**%s** on ryhmä palvelussa %%%%site.name%%%%, joka on [mikroblogauspalvelu]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Ylläpitäjät" @@ -3996,8 +4012,8 @@ msgstr "" #: actions/showstream.php:207 #, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." "newnotice%%%%?status_textarea=%s)!" @@ -4399,7 +4415,8 @@ msgstr "Profiilikuva-asetukset" msgid "You are not subscribed to that profile." msgstr "Et ole tilannut tämän käyttäjän päivityksiä." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Tilausta ei onnistuttu tallentamaan." @@ -4572,10 +4589,6 @@ msgstr "" msgid "No such tag." msgstr "Tuota tagia ei ole." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API-metodi on työn alla!" - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4887,84 +4900,132 @@ msgstr "Omat" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Koko ei kelpaa." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Ryhmän profiili" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Ei voitu päivittää ryhmää." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Ryhmän profiili" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Ei voitu päivittää ryhmää." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Ei voitu lisätä aliasta." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Tapahtui virhe suoran viestin lähetyksessä." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Viestin tallennus ei onnistunut." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Viestin päivittäminen uudella URI-osoitteella ei onnistunut." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Virhe tapahtui päivityksen tallennuksessa. Tuntematon käyttäjä." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Liian monta päivitystä liian nopeasti; pidä pieni hengähdystauko ja jatka " "päivityksien lähettämista muutaman minuutin päästä." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4972,77 +5033,126 @@ msgstr "" "Liian monta päivitystä liian nopeasti; pidä pieni hengähdystauko ja jatka " "päivityksien lähettämista muutaman minuutin päästä." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Päivityksesi tähän palveluun on estetty." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Ongelma päivityksen tallentamisessa." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Käyttäjällä ei ole profiilia." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Twitter-asetuksia ei voitu tallentaa!" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Käyttäjä on estänyt sinua tilaamasta päivityksiä." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Käyttäjä on asettanut eston sinulle." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Ei ole tilattu!." -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Ei voitu poistaa tilausta." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Ryhmän luonti ei onnistunut." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Tilausta ei onnistuttu tallentamaan." @@ -6435,7 +6545,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr " lähteestä " @@ -6491,25 +6601,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Julkista päivitysvirtaa ei saatu." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6566,54 +6676,54 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "Ei" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." @@ -6884,9 +6994,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 5adb8b3607..3246555e1a 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -15,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:40+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:21:58+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -104,7 +104,7 @@ msgstr "Page non trouvée." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -175,8 +175,8 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Vous pouvez essayer de [faire un clin d’œil à %1$s](../%2$s) depuis son " "profil ou [poster quelque chose à son intention](%%%%action.newnotice%%%%?" @@ -186,9 +186,9 @@ msgstr "" #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" -"Pourquoi ne pas [créer un compte](%%%%action.register%%%%) et ensuite faire " +"Pourquoi ne pas [créer un compte](%%%%action.register%%%%) et faire ensuite " "un clin d’œil à %s ou poster un avis à son intention." #. TRANS: H1 text @@ -221,7 +221,7 @@ msgstr "Statuts de %1$s et ses amis dans %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -271,7 +271,7 @@ msgstr "Impossible d’enregistrer le profil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -371,8 +371,8 @@ msgid "Could not delete favorite." msgstr "Impossible de supprimer le favori." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Impossible de suivre l’utilisateur : Utilisateur non trouvé." +msgid "Could not follow user: profile not found." +msgstr "Impossible de suivre l’utilisateur : profil non trouvé." #: actions/apifriendshipscreate.php:118 #, php-format @@ -387,9 +387,9 @@ msgstr "Impossible de ne plus suivre l’utilisateur : utilisateur non trouvé." msgid "You cannot unfollow yourself." msgstr "Vous ne pouvez pas ne plus vous suivre vous-même." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Vous devez fournir 2 identifiants ou pseudos." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Vous devez fournir deux identifiants ou pseudonymes." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -518,6 +518,10 @@ msgstr "Groupes de %s" msgid "groups on %s" msgstr "groupes sur %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Échec du téléversement." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Paramètre oauth_token non fourni." @@ -668,24 +672,28 @@ msgstr "Statut supprimé." msgid "No status with that ID found." msgstr "Aucun statut trouvé avec cet identifiant." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Le client doit fournir un paramètre « statut » avec une valeur." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "C’est trop long ! La taille maximale de l’avis est de %d caractères." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Non trouvé." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "La taille maximale de l’avis est de %d caractères, en incluant l’URL de la " "pièce jointe." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Format non supporté." @@ -739,6 +747,10 @@ msgstr "Avis marqués avec %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Mises à jour marquées avec %1$s dans %2$s !" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Méthode API en construction." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Pièce jointe non trouvée." @@ -793,7 +805,7 @@ msgid "Preview" msgstr "Aperçu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Supprimer" @@ -1074,7 +1086,7 @@ msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -1353,7 +1365,8 @@ msgstr "Alias invalide : « %s »" msgid "Could not update group." msgstr "Impossible de mettre à jour le groupe." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Impossible de créer les alias." @@ -1503,7 +1516,7 @@ msgstr "Préférences de courrier électronique enregistrées." #. TRANS: Message given saving e-mail address without having provided one. #: actions/emailsettings.php:353 msgid "No email address." -msgstr "Aucune adresse courriel." +msgstr "Aucune adresse électronique." #. TRANS: Message given saving e-mail address that cannot be normalised. #: actions/emailsettings.php:361 @@ -2524,7 +2537,7 @@ msgstr "mises à jour correspondant au(x) terme(s) « %1$s » sur %2$s !" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Cet utilisateur n’accepte pas les clins d’œil ou n’a pas encore validé son " "adresse électronique." @@ -2604,8 +2617,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Veuillez n'utiliser que des URL HTTP complètes en %s." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Format de données non supporté." @@ -3525,7 +3538,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repris" @@ -3563,7 +3576,7 @@ msgstr "Flux des réponses pour %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Ceci est la chronologie des réponses à %1$s mais %2$s n’a encore reçu aucun " "avis à son intention." @@ -3581,8 +3594,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Vous pouvez essayer de [faire un clin d’œil à %1$s](../%2$s) ou de [poster " "quelque chose à son intention](%%%%action.newnotice%%%%?status_textarea=%3" @@ -3675,7 +3688,7 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiques" @@ -3765,8 +3778,8 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s n’a pas ajouté d’avis à ses favoris pour le moment. Publiez quelque chose " "d’intéressant, et cela pourrait être ajouté à ses favoris :)" @@ -3774,13 +3787,13 @@ msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s n’a pas ajouté d’avis à ses favoris pour le moment. Vous pourriez [créer " "un compte](%%%%action.register%%%%), puis poster quelque chose " -"d’intéressant, qui serait ajouté à ses favoris :)" +"d’intéressant, qu’il pourrait ajouter à ses favoris :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." @@ -3838,7 +3851,7 @@ msgstr "Fil des avis du groupe %s (Atom)" msgid "FOAF for %s group" msgstr "ami d’un ami pour le groupe %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membres" @@ -3852,11 +3865,11 @@ msgstr "(aucun)" msgid "All members" msgstr "Tous les membres" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Créé" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3872,7 +3885,7 @@ msgstr "" "action.register%%%%) pour devenir membre de ce groupe et bien plus ! ([En " "lire plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3885,7 +3898,7 @@ msgstr "" "logiciel libre [StatusNet](http://status.net/). Ses membres partagent des " "messages courts à propos de leur vie et leurs intérêts. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administrateurs" @@ -3965,8 +3978,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." 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)." @@ -4359,7 +4372,8 @@ msgstr "Sauvegarder les paramètres des instantanés" msgid "You are not subscribed to that profile." msgstr "Vous n’êtes pas abonné(e) à ce profil." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Impossible d’enregistrer l’abonnement." @@ -4540,10 +4554,6 @@ msgstr "" msgid "No such tag." msgstr "Cette marque n’existe pas." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Méthode API en construction." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Vous n’avez pas bloqué cet utilisateur." @@ -4859,80 +4869,127 @@ msgstr "Version" msgid "Author(s)" msgstr "Auteur(s)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Impossible de traiter l’URL « %s »" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Robin pense que quelque chose est impossible." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Un fichier ne peut pas être plus gros que %d octets et le fichier que vous " -"avez envoyé pesait %d octets. Essayez d’importer une version moins grosse." +"Un fichier ne peut pas peser plus de %1$d octets et le fichier que vous avez " +"envoyé pesait %2$d octets. Essayez d’importer une version moins lourde." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Un fichier aussi gros dépasserai votre quota utilisateur de %d octets." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Un fichier aussi gros dépasserai votre quota mensuel de %d octets." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Nom de fichier non valide." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "L’inscription au groupe a échoué." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "N’appartient pas au groupe." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "La désinscription du groupe a échoué." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Impossible de mettre à jour le groupe local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Impossible de créer le jeton d’identification pour %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Aucune base de données de nom ou DSN trouvée nulle part." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Il vous est interdit d’envoyer des messages directs." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Impossible d’insérer le message." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Impossible de mettre à jour le message avec un nouvel URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Impossible de trouver le profil (%1$d) pour l’avis (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Erreur de base de donnée en insérant la marque (hashtag) : %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problème lors de l’enregistrement de l’avis ; trop long." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Erreur lors de l’enregistrement de l’avis. Utilisateur inconnu." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Trop d’avis, trop vite ! Faites une pause et publiez à nouveau dans quelques " "minutes." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4940,71 +4997,121 @@ msgstr "" "Trop de messages en double trop vite ! Prenez une pause et publiez à nouveau " "dans quelques minutes." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Il vous est interdit de poster des avis sur ce site." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "Le type renseigné pour saveKnownGroups n’est pas valable" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"Impossible de révoquer le rôle de « %1$s » pour l’utilisateur #%2$d : " +"l’utilisateur n’existe pas." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Impossible de révoquer le rôle de « %1$s » pour l’utilisateur #%2$d : erreur " +"dans la base de données." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Profil manquant." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Impossible d’enregistrer l’étiquette." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Il vous a été interdit de vous abonner." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Déjà abonné !" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Cet utilisateur vous a bloqué." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Pas abonné !" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "Impossible de supprimer l’abonnement à soi-même." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." -msgstr "Impossible de supprimer le jeton OMB de l'abonnement ." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "Impossible de supprimer le jeton OMB de l'abonnement." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." -msgstr "Impossible de cesser l’abonnement" +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." +msgstr "Impossible de supprimer l’abonnement" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Impossible de créer le groupe." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Impossible de définir l'URI du groupe." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Impossible d’établir l’inscription au groupe." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Impossible d’enregistrer les informations du groupe local." @@ -6487,7 +6594,7 @@ msgstr "" "pour démarrer des conversations avec d’autres utilisateurs. Ceux-ci peuvent " "vous envoyer des messages destinés à vous seul(e)." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "de" @@ -6546,24 +6653,24 @@ msgstr "Impossible d’écrire sur le disque." msgid "File upload stopped by extension." msgstr "Import de fichier stoppé par une extension." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Le fichier dépasse le quota de l’utilisateur." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Le fichier n’a pas pu être déplacé dans le dossier de destination." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Impossible de déterminer le type MIME du fichier." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Essayez d’utiliser un autre %s format." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s n’est pas un type de fichier supporté sur ce serveur." @@ -6619,51 +6726,51 @@ msgstr "" "Veuillez réessayer plus tard." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "O" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u° %2$u' %3$u\" %4$s %5$u° %6$u' %7$u\" %8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "chez" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Avis repris" @@ -6923,8 +7030,8 @@ msgstr "" "ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Le thème est manquant ou son import a échoué." +msgid "The theme file is missing or the upload failed." +msgstr "Le fichier de thème est manquant ou le téléversement a échoué." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index ac7ad1b5f6..dc3c53286d 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:45+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:00+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +107,7 @@ msgstr "Non existe a etiqueta." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -174,15 +174,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -216,7 +216,7 @@ msgstr "Actualizacións dende %1$s e amigos en %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -267,7 +267,7 @@ msgstr "Non se puido gardar o perfil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -370,7 +370,8 @@ msgid "Could not delete favorite." msgstr "Non se puido eliminar o favorito." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Non podes seguir a este usuario: o Usuario non se atopa." #: actions/apifriendshipscreate.php:118 @@ -388,8 +389,9 @@ msgstr "Non podes seguir a este usuario: o Usuario non se atopa." msgid "You cannot unfollow yourself." msgstr "Non se puido actualizar o usuario." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "" "Dous identificadores de usuario ou nomes_en_pantalla deben ser " "proporcionados." @@ -522,6 +524,11 @@ msgstr "" msgid "groups on %s" msgstr "Outras opcions" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Subir" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -669,23 +676,27 @@ msgstr "Avatar actualizado." msgid "No status with that ID found." msgstr "Non existe ningún estado con esa ID atopada." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" "Iso é demasiado longo. O tamaño máximo para un chío é de 140 caracteres." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Non atopado" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "Formato de ficheiro de imaxe non soportado." @@ -740,6 +751,10 @@ msgstr "Chíos tagueados con %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Método da API en contrución." + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -795,7 +810,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 #, fuzzy msgid "Delete" msgstr "eliminar" @@ -1095,7 +1110,7 @@ msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -1400,7 +1415,8 @@ msgstr "Etiqueta inválida: '%s'" msgid "Could not update group." msgstr "Non se puido actualizar o usuario." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Non se puido crear o favorito." @@ -2586,8 +2602,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Tódalas actualizacións que coinciden co termo de procura \"%s\"" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Este usuario non permite toques, ou non confirmou ainda o seu correo " "electrónico." @@ -2668,8 +2685,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Non é un formato de datos soportado." @@ -3608,7 +3625,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -3648,7 +3665,7 @@ msgstr "Fonte de chíos para %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3661,8 +3678,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3762,7 +3779,7 @@ msgstr "Invitación(s) enviada(s)." msgid "Description" msgstr "Subscricións" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3848,16 +3865,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3919,7 +3936,7 @@ msgstr "Fonte de chíos para %s" msgid "FOAF for %s group" msgstr "Band. Saída para %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Membro dende" @@ -3935,12 +3952,12 @@ msgstr "(nada)" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "Crear" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3954,7 +3971,7 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3967,7 +3984,7 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -4043,8 +4060,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4450,7 +4467,8 @@ msgstr "Configuracións de Twitter" msgid "You are not subscribed to that profile." msgstr "Non estás suscrito a ese perfil" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Non se pode gardar a subscrición." @@ -4625,10 +4643,6 @@ msgstr "" msgid "No such tag." msgstr "Non existe a etiqueta." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Método da API en contrución." - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4942,84 +4956,132 @@ msgstr "Persoal" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Tamaño inválido." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Non existe o perfil." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Non se puido actualizar o usuario." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Non existe o perfil." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Non se puido actualizar o usuario." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Non se puido crear o favorito." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Erro ó enviar a mensaxe directa." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Non se pode inserir unha mensaxe." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Non se puido actualizar a mensaxe coa nova URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Erro ó inserir o hashtag na BD: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Aconteceu un erro ó gardar o chío. Usuario descoñecido." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Demasiados chíos en pouco tempo; tomate un respiro e envíao de novo dentro " "duns minutos." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -5028,79 +5090,128 @@ msgstr "" "Demasiados chíos en pouco tempo; tomate un respiro e envíao de novo dentro " "duns minutos." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Tes restrinxido o envio de chíos neste sitio." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Aconteceu un erro ó gardar o chío." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "O usuario non ten perfil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Non se puideron gardar os teus axustes de Twitter!" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Este usuario non che permite suscribirte a el." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "O usuario bloqueoute." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Non está suscrito!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Non se pode eliminar a subscrición." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 #, fuzzy msgid "Could not create group." msgstr "Non se puido crear o favorito." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Non se pode gardar a subscrición." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "Non se pode gardar a subscrición." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Non se pode gardar a subscrición." @@ -6585,7 +6696,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr " dende " @@ -6641,25 +6752,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Non se pudo recuperar a liña de tempo publica." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6719,56 +6830,56 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "No" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply" msgstr "contestar" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" @@ -7049,9 +7160,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Aconteceu un erro no sistema namentras se estaba cargando o ficheiro." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/gl/LC_MESSAGES/statusnet.po b/locale/gl/LC_MESSAGES/statusnet.po index 14cbd03c7d..40e79f7822 100644 --- a/locale/gl/LC_MESSAGES/statusnet.po +++ b/locale/gl/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:49+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:01+0000\n" "Language-Team: Galician\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "Esa páxina non existe." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -166,20 +166,20 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Pode probar a [facerlle un aceno a %1$s](../%2$s) dende o seu perfil ou " "[publicar algo dirixido a el ou ela](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Por que non [rexistrar unha conta](%%%%action.register%%%%) e entón facerlle " "un aceno a %s ou publicar unha nota dirixida a el ou ela?" @@ -214,7 +214,7 @@ msgstr "Actualizacións de %1$s e amigos en %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -264,7 +264,7 @@ msgstr "Non se puido gardar o perfil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -364,7 +364,7 @@ msgid "Could not delete favorite." msgstr "Non se puido eliminar o favorito." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +msgid "Could not follow user: profile not found." msgstr "Non se puido seguir o usuario: non se atopou." #: actions/apifriendshipscreate.php:118 @@ -380,8 +380,8 @@ msgstr "Non se puido deixar de seguir o usuario: non se atopou." msgid "You cannot unfollow yourself." msgstr "Non pode deixar de seguirse a si mesmo." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "Deben fornecerse dúas identificacións ou nomes de usuario." #: actions/apifriendshipsshow.php:134 @@ -511,6 +511,11 @@ msgstr "grupos %s" msgid "groups on %s" msgstr "grupos en %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Cargar un ficheiro" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Non se forneceu o parámetro oauth_token." @@ -656,24 +661,28 @@ msgstr "Borrouse o estado." msgid "No status with that ID found." msgstr "Non se atopou ningún estado con esa ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Iso é longo de máis. A nota non pode exceder os %d caracteres." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Non se atopou." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "A lonxitude máxima das notas é de %d caracteres, incluído o URL do dato " "adxunto." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formato non soportado." @@ -727,6 +736,10 @@ msgstr "Notas etiquetadas con %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizacións etiquetadas con %1$s en %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Método API en desenvolvemento." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Non existe tal dato adxunto." @@ -781,7 +794,7 @@ msgid "Preview" msgstr "Vista previa" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Borrar" @@ -1062,7 +1075,7 @@ msgid "Do not delete this notice" msgstr "Non borrar esta nota" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Borrar esta nota" @@ -1341,7 +1354,8 @@ msgstr "Pseudónimo inválido: \"%s\"" msgid "Could not update group." msgstr "Non se puido actualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Non se puideron crear os pseudónimos." @@ -2501,9 +2515,9 @@ msgstr "Actualizacións que conteñen o termo \"%1$s\" en %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" -"Este usuario non permite acenos ou aínda non corfirmou ou configurou o seu " +"Este usuario non permite acenos ou aínda non confirmou ou configurou o seu " "enderezo de correo electrónico." #: actions/nudge.php:94 @@ -2580,8 +2594,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Só %s enderezos URL sobre HTTP simple." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Non se soporta ese formato de datos." @@ -3506,7 +3520,7 @@ msgstr "Non pode repetir a súa propia nota." msgid "You already repeated that notice." msgstr "Xa repetiu esa nota." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repetida" @@ -3541,10 +3555,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Fonte de novas coas respostas a %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Esta é a liña do tempo coas respostas a %1$s, pero a %2$s aínda non lle " "mandaron ningunha nota." @@ -3559,10 +3573,10 @@ msgstr "" "grupos](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Pode probar a [facerlle un aceno a %1$s](../%2$s) ou [publicar algo dirixido " "a el ou ela](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3653,7 +3667,7 @@ msgstr "Organización" msgid "Description" msgstr "Descrición" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3744,8 +3758,8 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s aínda non marcou ningunha nota como favorita. Publique algo interesante " "que poida querer engadir aos seus favoritos :)" @@ -3753,9 +3767,9 @@ msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s aínda non marcou ningunha nota como favorita. Por que non [rexistrar unha " "conta](%%%%action.register%%%%) e publicar algo interesante que puidese " @@ -3817,7 +3831,7 @@ msgstr "Fonte de novas das notas do grupo %s (Atom)" msgid "FOAF for %s group" msgstr "Amigo dun amigo para o grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membros" @@ -3831,11 +3845,11 @@ msgstr "(Ningún)" msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Creado" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3851,7 +3865,7 @@ msgstr "" "[Únase agora](%%%%action.register%%%%) para pasar a formar parte deste grupo " "e de moitos máis! ([Máis información](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3864,7 +3878,7 @@ msgstr "" "baseado na ferramenta de software libre [StatusNet](http://status.net/). Os " "seus membros comparten mensaxes curtas sobre as súas vidas e intereses. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administradores" @@ -3939,10 +3953,10 @@ msgstr "" "bo momento para comezar :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Pode probar a facerlle un aceno a %1$s ou [publicar algo dirixido a el ou " "ela](%%%%action.newnotice%%%%?status_textarea=%2$s)." @@ -4335,7 +4349,8 @@ msgstr "Gardar a configuración das instantáneas" msgid "You are not subscribed to that profile." msgstr "Non está subscrito a ese perfil." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Non se puido gardar a subscrición." @@ -4514,10 +4529,6 @@ msgstr "" msgid "No such tag." msgstr "Esa etiqueta non existe." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Método API en desenvolvemento." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Non bloqueou a ese usuario." @@ -4828,81 +4839,129 @@ msgstr "Versión" msgid "Author(s)" msgstr "Autores" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Ningún ficheiro pode superar os %d bytes e o que enviou ocupaba %d. Probe a " -"subir un ficheiro máis pequeno." +"Ningún ficheiro pode superar os %1$d bytes e o que enviou ocupaba %2$d. " +"Probe a subir un ficheiro máis pequeno." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Un ficheiro deste tamaño excedería a súa cota de usuario, que é de %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Un ficheiro deste tamaño excedería a súa cota mensual de %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Tamaño non válido." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Non se puido unir ao grupo." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Non forma parte do grupo." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Non se puido deixar o grupo." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Non se puido actualizar o grupo local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Non se puido crear un pase de sesión para %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Prohibíuselle enviar mensaxes directas de momento." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Non se puido inserir a mensaxe." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Non se puido actualizar a mensaxe co novo URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, fuzzy, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Non existe tal perfil (%d) para a nota (%d)" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Houbo un erro na base de datos ao intentar inserir a etiqueta: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Houbo un problema ao gardar a nota. É longa de máis." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Houbo un problema ao gardar a nota. Descoñécese o usuario." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Escribiu demasiadas notas en moi pouco tempo. Tómese un respiro e volva " "publicar nuns minutos." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4910,71 +4969,121 @@ msgstr "" "Repetiu demasiadas mensaxes en moi pouco tempo. Tómese un respiro e volva " "publicar nuns minutos." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Prohibíuselle publicar notas neste sitio de momento." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Houbo un problema ao gardar a nota." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Houbo un problema ao gardar a caixa de entrada do grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "♻ @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "O usuario non ten perfil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Non se puido gardar a nota do sitio." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Prohibíuselle realizar subscricións de momento." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Xa está subscrito!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "O usuario bloqueouno." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Non está subscrito!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "Non se puido borrar a subscrición a si mesmo." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "Non se puido borrar o pase de subscrición OMB." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Non se puido borrar a subscrición." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvido a %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Non se puido crear o grupo." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Non se puido establecer o URI do grupo." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Non se puido establecer a pertenza ao grupo." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Non se puido gardar a información do grupo local." @@ -6447,7 +6556,7 @@ msgstr "" "Non ten mensaxes privadas. Pode enviar mensaxes privadas para conversar con " "outros usuarios. A xente pode enviarlle mensaxes para que só as lea vostede." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "de" @@ -6505,24 +6614,24 @@ msgstr "Non se puido escribir o ficheiro no disco." msgid "File upload stopped by extension." msgstr "Interrompeuse a carga do ficheiro por mor da extensión." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "O ficheiro supera a cota do usuario." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Non se puido mover o ficheiro ao directorio de destino." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Non se puido determinar o tipo MIME do ficheiro." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Inténteo utilizando outro formato %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "Neste servidor non se soporta o tipo de ficheiro %s." @@ -6578,51 +6687,51 @@ msgstr "" "intentar máis tarde" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "L" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "O" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "en" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Repetiuse a nota" @@ -6882,8 +6991,8 @@ msgstr "" "formato ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Houbo un erro no sistema ao cargar o tema visual." +msgid "The theme file is missing or the upload failed." +msgstr "O ficheiro do tema visual non existe ou a subida fallou." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index d1b13a29ad..d8d60e7296 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:54+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:03+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -104,7 +104,7 @@ msgstr "אין הודעה כזו." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -171,15 +171,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -213,7 +213,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -264,7 +264,7 @@ msgstr "שמירת הפרופיל נכשלה." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -363,8 +363,9 @@ msgid "Could not delete favorite." msgstr "" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +#, fuzzy +msgid "Could not follow user: profile not found." +msgstr "נכשלה ההפניה לשרת: %s" #: actions/apifriendshipscreate.php:118 #, php-format @@ -381,8 +382,8 @@ msgstr "נכשלה ההפניה לשרת: %s" msgid "You cannot unfollow yourself." msgstr "עידכון המשתמש נכשל." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -515,6 +516,11 @@ msgstr "" msgid "groups on %s" msgstr "" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "ההעלה" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -661,23 +667,27 @@ msgstr "התמונה עודכנה." msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 #, fuzzy msgid "Not found." msgstr "לא נמצא" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "פורמט התמונה אינו נתמך." @@ -732,6 +742,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "מיקרובלוג מאת %s" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -787,7 +801,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 #, fuzzy msgid "Delete" msgstr "מחק" @@ -1081,7 +1095,7 @@ msgid "Do not delete this notice" msgstr "אין הודעה כזו." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "" @@ -1379,7 +1393,8 @@ msgstr "כתובת אתר הבית '%s' אינה חוקית" msgid "Could not update group." msgstr "עידכון המשתמש נכשל." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "שמירת מידע התמונה נכשל" @@ -2523,7 +2538,7 @@ msgstr "כל העידכונים התואמים את החיפוש אחרי \"%s\" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2600,8 +2615,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3496,7 +3511,7 @@ msgstr "לא ניתן להירשם ללא הסכמה לרשיון" msgid "You already repeated that notice." msgstr "כבר נכנסת למערכת!" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "צור" @@ -3536,7 +3551,7 @@ msgstr "הזנת הודעות של %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3549,8 +3564,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3649,7 +3664,7 @@ msgstr "מיקום" msgid "Description" msgstr "הרשמות" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "סטטיסטיקה" @@ -3734,16 +3749,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3804,7 +3819,7 @@ msgstr "הזנת הודעות של %s" msgid "FOAF for %s group" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "חבר מאז" @@ -3819,12 +3834,12 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "צור" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3834,7 +3849,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3843,7 +3858,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -3919,8 +3934,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4307,7 +4322,8 @@ msgstr "הגדרות" msgid "You are not subscribed to that profile." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "יצירת המנוי נכשלה." @@ -4480,10 +4496,6 @@ msgstr "" msgid "No such tag." msgstr "אין הודעה כזו." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4792,160 +4804,257 @@ msgstr "אישי" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "גודל לא חוקי." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "אין הודעה כזו." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "עידכון המשתמש נכשל." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "אין הודעה כזו." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "עידכון המשתמש נכשל." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "שמירת מידע התמונה נכשל" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "שגיאת מסד נתונים בהכנסת התגובה: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "בעיה בשמירת ההודעה." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "למשתמש אין פרופיל." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "בעיה בשמירת ההודעה." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 #, fuzzy msgid "User has blocked you." msgstr "למשתמש אין פרופיל." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "לא מנוי!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "מחיקת המנוי לא הצליחה." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 #, fuzzy msgid "Could not create group." msgstr "שמירת מידע התמונה נכשל" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "יצירת המנוי נכשלה." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "יצירת המנוי נכשלה." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "יצירת המנוי נכשלה." @@ -6324,7 +6433,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "" @@ -6379,25 +6488,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "עידכון המשתמש נכשל." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6456,55 +6565,55 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "לא" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "אין תוכן!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "צור" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply" msgstr "הגב" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "הודעות" @@ -6776,9 +6885,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "שגיאת מערכת בהעלאת הקובץ." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 1c5781d511..e0cc3dc431 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Upper Sorbian # +# Author@translatewiki.net: Brion # Author@translatewiki.net: McDutchie # Author@translatewiki.net: Michawiki # -- @@ -9,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:03:58+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:04+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +100,7 @@ msgstr "Strona njeeksistuje." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -166,15 +167,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -207,7 +208,7 @@ msgstr "Aktualizacije wot %1$s a přećelow na %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -255,7 +256,7 @@ msgstr "Profil njeje so składować dał." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -353,8 +354,8 @@ msgid "Could not delete favorite." msgstr "Faworit njeda so zhašeć." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +msgid "Could not follow user: profile not found." +msgstr "Njebě móžno wužiwarja słědować: profil njenamakany." #: actions/apifriendshipscreate.php:118 #, php-format @@ -369,9 +370,9 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "Njemóžeš slědowanje swójskich aktiwitow blokować." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Dwaj wužiwarskej ID abo wužiwarskej mjenje dyrbitej so podać." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Dyrbitej so dwaj płaćiwej wužiwarskej ID abo wužiwarskej mjenje podać." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -386,6 +387,7 @@ msgstr "Cilowy wužiwar njeda so namakać." #: actions/register.php:212 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" +"Přimjeno smě jenož małe pismiki a cyfry wobsahować. Mjezery njejsu dowolene." #: actions/apigroupcreate.php:176 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 @@ -498,6 +500,10 @@ msgstr "%s skupinow" msgid "groups on %s" msgstr "skupiny na %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Nahraće je so njeporadźiło." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -636,22 +642,26 @@ msgstr "Status zničeny." msgid "No status with that ID found." msgstr "Žadyn status z tym ID namakany." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješkow." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Njenamakany." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Njepodpěrany format." @@ -705,6 +715,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Přiwěšk njeeksistuje." @@ -758,7 +772,7 @@ msgid "Preview" msgstr "Přehlad" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Zničić" @@ -1031,7 +1045,7 @@ msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -1104,7 +1118,7 @@ msgstr "Swójski šat" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Móžeš swójski šat StatusNet jako .ZIP-archiw nahrać." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1306,7 +1320,8 @@ msgstr "Njepłaćiwy alias: \"%s\"" msgid "Could not update group." msgstr "Skupina njeje so dała aktualizować." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Aliasy njejsu so dali wutworić." @@ -2263,12 +2278,12 @@ msgstr "%1$s je hižo administrator za skupinu \"%2$s\"." #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "Přistup na datowu sadźbu čłona %1$S w skupinje %2$s móžno njeje." +msgstr "Přistup na datowu sadźbu čłona %1$s w skupinje %2$s móžno njeje." #: actions/makeadmin.php:146 #, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Njeje móžno %1$S k administratorej w skupinje %2$s činić." +msgstr "Njeje móžno %1$s k administratorej w skupinje %2$s činić." #: actions/microsummary.php:69 msgid "No current status." @@ -2387,7 +2402,7 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2462,8 +2477,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Njeje podpěrany datowy format." @@ -3321,7 +3336,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Wospjetowany" @@ -3359,7 +3374,7 @@ msgstr "" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3372,8 +3387,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3462,7 +3477,7 @@ msgstr "Organizacija" msgid "Description" msgstr "Wopisanje" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistika" @@ -3547,16 +3562,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3615,7 +3630,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Čłonojo" @@ -3629,11 +3644,11 @@ msgstr "(Žadyn)" msgid "All members" msgstr "Wšitcy čłonojo" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Wutworjeny" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3643,7 +3658,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3652,7 +3667,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administratorojo" @@ -3727,8 +3742,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4095,7 +4110,8 @@ msgstr "Nastajenja wobrazowkoweho fota składować" msgid "You are not subscribed to that profile." msgstr "Njejsy tón profil abonował." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Abonement njeda so składować." @@ -4259,10 +4275,6 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Njejsy toho wužiwarja zablokował." @@ -4548,146 +4560,239 @@ msgstr "Wersija" msgid "Author(s)" msgstr "Awtorojo" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Njepłaćiwe datajowe mjeno." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Přizamknjenje k skupinje je so njeporadźiło." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Njeje dźěl skupiny." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Wopušćenje skupiny je so njeporadźiło." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Lokalna skupina njeda so aktualizować." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Njeje móžno było, přizjewjenske znamješko za %s wutworić" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Powěsć njeda so zasunyć." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Zmylk datoweje banki při zasunjenju hašeje taflički: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Falowacy profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Njeje móžno, tafličku składować." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Hižo abonowany!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Wužiwar je će zablokował." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Njeje abonowany!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." -msgstr "Sebjeabonement njeje so dał zničić." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." +msgstr "Sebjeabonement njeda so zhašeć." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." msgstr "Znamjo OMB-abonementa njeda so zhašeć." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." -msgstr "Abonoment njeje so dał zničić." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." +msgstr "Abonoment njeda so zhašeć ." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj do %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Skupina njeda so wutowrić." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "URI skupiny njeda so nastajić." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Skupinske čłonstwo njeda so stajić." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Informacije wo lokalnej skupinje njedachu so składować." @@ -4980,13 +5085,13 @@ msgstr "" #. TRANS: present than the currently displayed information. #: lib/action.php:1203 msgid "After" -msgstr "" +msgstr "Po" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. #: lib/action.php:1213 msgid "Before" -msgstr "" +msgstr "Před" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. #: lib/activity.php:122 @@ -6008,7 +6113,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "wot" @@ -6065,24 +6170,24 @@ msgstr "Dataju njeda so na tačel pisać." msgid "File upload stopped by extension." msgstr "Datajowe nahraće přez rozšěrjenje zastajene." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Dataja njeda so do ciloweho zapisa přesunyć." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "MIME-typ dataje njeda so zwěsćić." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Spytaj druhi format %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s njeje podpěrany datajowy typ na tutym serwerje." @@ -6136,51 +6241,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "S" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "J" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "W" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "Z" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "w konteksće" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" @@ -6438,8 +6543,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Nahraće šata faluje abo je so njeporadźiło." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index cc699cef48..e0961e4475 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:03+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:07+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Pagina non existe." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -168,8 +168,8 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Tu pote tentar [dar un pulsata a %1$s](../%2$s) in su profilo o [publicar un " "message a su attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -178,7 +178,7 @@ msgstr "" #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Proque non [registrar un conto](%%%%action.register%%%%) e postea dar un " "pulsata a %s o publicar un message a su attention." @@ -213,7 +213,7 @@ msgstr "Actualisationes de %1$s e su amicos in %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -263,7 +263,7 @@ msgstr "Non poteva salveguardar le profilo." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -361,8 +361,8 @@ msgid "Could not delete favorite." msgstr "Non poteva deler le favorite." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Non poteva sequer le usator: Usator non trovate." +msgid "Could not follow user: profile not found." +msgstr "Non poteva sequer le usator: profilo non trovate." #: actions/apifriendshipscreate.php:118 #, php-format @@ -377,9 +377,9 @@ msgstr "Non poteva cessar de sequer le usator: Usator non trovate." msgid "You cannot unfollow yourself." msgstr "Tu non pote cessar de sequer te mesme." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Duo IDs de usator o pseudonymos debe esser fornite." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Duo IDs o pseudonymos valide debe esser fornite." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -506,6 +506,10 @@ msgstr "Gruppos de %s" msgid "groups on %s" msgstr "gruppos in %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Le incargamento ha fallite." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Nulle parametro oauth_token fornite." @@ -652,25 +656,29 @@ msgstr "Stato delite." msgid "No status with that ID found." msgstr "Nulle stato trovate con iste ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Le cliente debe fornir un parametro 'status' con un valor." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" "Isto es troppo longe. Le longitude maximal del notas es %d characteres." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Non trovate." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "Le longitude maximal del notas es %d characteres, includente le URL " "adjungite." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formato non supportate." @@ -725,6 +733,10 @@ msgstr "Notas con etiquetta %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualisationes con etiquetta %1$s in %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Methodo API in construction." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Annexo non existe." @@ -778,7 +790,7 @@ msgid "Preview" msgstr "Previsualisation" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Deler" @@ -1031,7 +1043,7 @@ msgstr "Deler iste application" #: lib/adminpanelaction.php:73 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Non identificate." +msgstr "Tu non ha aperite un session." #: actions/deletenotice.php:71 msgid "Can't delete this notice." @@ -1059,7 +1071,7 @@ msgid "Do not delete this notice" msgstr "Non deler iste nota" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Deler iste nota" @@ -1339,7 +1351,8 @@ msgstr "Alias invalide: \"%s\"" msgid "Could not update group." msgstr "Non poteva actualisar gruppo." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Non poteva crear aliases." @@ -2299,7 +2312,7 @@ msgstr "%1$s quitava le gruppo %2$s" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." -msgstr "Tu es ja identificate." +msgstr "Tu es jam authenticate." #: actions/login.php:148 msgid "Incorrect username or password." @@ -2316,7 +2329,7 @@ msgstr "Aperir session" #: actions/login.php:249 msgid "Login to site" -msgstr "Identificar te a iste sito" +msgstr "Authenticar te a iste sito" #: actions/login.php:258 actions/register.php:485 msgid "Remember me" @@ -2496,7 +2509,7 @@ msgstr "Actualisationes correspondente al termino de recerca \"%1$s\" in %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Iste usator non accepta pulsatas o non ha ancora confirmate o fornite su " "adresse de e-mail." @@ -2575,8 +2588,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Solmente le URLs %s es permittite super HTTP simple." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Formato de datos non supportate." @@ -3148,7 +3161,7 @@ msgstr "Etiquettario" #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "Tu es ja identificate!" +msgstr "Tu es jam authenticate!" #: actions/recoverpassword.php:62 msgid "No such recovery code." @@ -3472,7 +3485,7 @@ msgstr "Non poteva obtener un indicio de requesta." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "Solmente usatores identificate pote repeter notas." +msgstr "Solmente usatores authenticate pote repeter notas." #: actions/repeat.php:64 actions/repeat.php:71 msgid "No notice specified." @@ -3486,7 +3499,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repetite" @@ -3524,10 +3537,10 @@ msgstr "Syndication de responsas pro %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Isto es le chronologia de responsas a %1$s, ma %2$s non ha ancora recipite " -"alcun nota a su attention." +"un nota a su attention." #: actions/replies.php:204 #, php-format @@ -3541,8 +3554,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Tu pote tentar [pulsar %1$s](../%2$s) o [publicar alique a su attention](%%%%" "action.newnotice%%%%?status_textarea=%3$s)." @@ -3633,7 +3646,7 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statisticas" @@ -3721,20 +3734,20 @@ msgstr "" "mitter los in evidentia." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s non ha ancora addite alcun nota a su favorites. Publica alique " "interessante que ille favoritisarea :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s non ha ancora addite alcun nota a su favorites. Proque non [registrar un " "conto](%%%%action.register%%%%) e postea publicar alique interessante que " @@ -3796,7 +3809,7 @@ msgstr "Syndication de notas pro le gruppo %s (Atom)" msgid "FOAF for %s group" msgstr "Amico de un amico pro le gruppo %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membros" @@ -3810,11 +3823,11 @@ msgstr "(Nulle)" msgid "All members" msgstr "Tote le membros" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Create" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3829,7 +3842,7 @@ msgstr "" "lor vita e interesses. [Crea un conto](%%%%action.register%%%%) pro devenir " "parte de iste gruppo e multe alteres! ([Lege plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3842,7 +3855,7 @@ msgstr "" "[StatusNet](http://status.net/). Su membros condivide breve messages super " "lor vita e interesses. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administratores" @@ -3918,10 +3931,10 @@ msgstr "" "alcun nota, dunque iste es un bon momento pro comenciar :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Tu pote tentar pulsar %1$s o [publicar un nota a su attention](%%%%action." "newnotice%%%%?status_textarea=%2$s)." @@ -4053,7 +4066,7 @@ msgstr "Limite de texto" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "Numero maximal de characteres pro notas." +msgstr "Numero maxime de characteres pro notas." #: actions/siteadminpanel.php:278 msgid "Dupe limit" @@ -4310,7 +4323,8 @@ msgstr "Salveguardar configuration de instantaneos" msgid "You are not subscribed to that profile." msgstr "Tu non es subscribite a iste profilo." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Non poteva salveguardar le subscription." @@ -4489,10 +4503,6 @@ msgstr "" msgid "No such tag." msgstr "Etiquetta non existe." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Methodo API in construction." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Tu non ha blocate iste usator." @@ -4803,80 +4813,128 @@ msgstr "Version" msgid "Author(s)" msgstr "Autor(es)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Nulle file pote esser plus grande que %d bytes e le file que tu inviava ha %" "d bytes. Tenta incargar un version minus grande." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Un file de iste dimension excederea tu quota de usator de %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Un file de iste dimension excederea tu quota mensual de %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Dimension invalide." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Le inscription al gruppo ha fallite." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Non es membro del gruppo." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Le cancellation del membrato del gruppo ha fallite." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Non poteva actualisar gruppo local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Non poteva crear indicio de identification pro %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Il te es prohibite inviar messages directe." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Non poteva inserer message." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Non poteva actualisar message con nove URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Error in base de datos durante insertion del marca (hashtag): %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problema salveguardar nota. Troppo longe." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problema salveguardar nota. Usator incognite." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Troppo de notas troppo rapidemente; face un pausa e publica de novo post " "alcun minutas." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4884,71 +4942,122 @@ msgstr "" "Troppo de messages duplicate troppo rapidemente; face un pausa e publica de " "novo post alcun minutas." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Il te es prohibite publicar notas in iste sito." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problema salveguardar nota." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problema salveguardar le cassa de entrata del gruppo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Le usator non ha un profilo." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Impossibile salveguardar le aviso del sito." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Tu ha essite blocate del subscription." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Ja subscribite!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Le usator te ha blocate." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Non subscribite!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "Non poteva deler auto-subscription." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "Non poteva deler le indicio OMB del subscription." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Non poteva deler subscription." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenite a %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Non poteva crear gruppo." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Non poteva definir le URL del gruppo." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Non poteva configurar le membrato del gruppo." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Non poteva salveguardar le informationes del gruppo local." @@ -5085,7 +5194,7 @@ msgstr "Crear conto" #: lib/action.php:488 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "Identificar te a iste sito" +msgstr "Authenticar te a iste sito" #: lib/action.php:491 msgctxt "MENU" @@ -6417,7 +6526,7 @@ msgstr "" "altere usatores in conversation. Altere personas pote inviar te messages que " "solmente tu pote leger." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "de" @@ -6476,24 +6585,24 @@ msgstr "Falleva de scriber le file in disco." msgid "File upload stopped by extension." msgstr "Incargamento de file stoppate per un extension." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "File excede quota del usator." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "File non poteva esser displaciate in le directorio de destination." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Non poteva determinar le typo MIME del file." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Tenta usar un altere formato %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s non es un typo de file supportate in iste servitor." @@ -6549,51 +6658,51 @@ msgstr "" "previste. Per favor reproba plus tarde." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "W" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "a" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "in contexto" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Responder a iste nota" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Nota repetite" @@ -6853,7 +6962,7 @@ msgstr "" "ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "Le file del apparentia manca o le incargamento ha fallite." #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index c76c4e95f5..963d214244 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:07+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:08+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +107,7 @@ msgstr "Ekkert þannig merki." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -174,15 +174,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -215,7 +215,7 @@ msgstr "Færslur frá %1$s og vinum á %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +266,7 @@ msgstr "Gat ekki vistað persónulega síðu." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -366,7 +366,8 @@ msgid "Could not delete favorite." msgstr "Gat ekki eytt uppáhaldi." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Get ekki fylgst með notanda: Notandinn finnst ekki." #: actions/apifriendshipscreate.php:118 @@ -385,8 +386,9 @@ msgstr "Get ekki fylgst með notanda: Notandinn finnst ekki." msgid "You cannot unfollow yourself." msgstr "Gat ekki uppfært notanda." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Tvo notendakenni eða skjáarnöfn verða að vera uppgefin." #: actions/apifriendshipsshow.php:134 @@ -517,6 +519,11 @@ msgstr "Hópar %s" msgid "groups on %s" msgstr "Hópsaðgerðir" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Misheppnuð skipun" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -662,22 +669,26 @@ msgstr "" msgid "No status with that ID found." msgstr "Engin staða með þessu kenni fannst." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Fannst ekki." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "Skráarsnið myndar ekki stutt." @@ -732,6 +743,10 @@ msgstr "Babl merkt með %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Aðferð í forritsskilum er í þróun." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "" @@ -785,7 +800,7 @@ msgid "Preview" msgstr "Forsýn" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Eyða" @@ -1072,7 +1087,7 @@ msgid "Do not delete this notice" msgstr "" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -1369,7 +1384,8 @@ msgstr "" msgid "Could not update group." msgstr "Gat ekki uppfært hóp." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "" @@ -2538,8 +2554,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Allar færslur sem passa við \"%s\"" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Þessi notandi leyfir ekki að ýta við sér eða hefur ekki staðfest eða skráð " "tölvupóstinn sinn." @@ -2620,8 +2637,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Enginn stuðningur við gagnasnið." @@ -3542,7 +3559,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -3581,7 +3598,7 @@ msgstr "Bablveita fyrir hópinn %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3594,8 +3611,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3693,7 +3710,7 @@ msgstr "Uppröðun" msgid "Description" msgstr "Lýsing" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Tölfræði" @@ -3779,16 +3796,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3847,7 +3864,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "%s hópurinn" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Meðlimir" @@ -3861,11 +3878,11 @@ msgstr "(Ekkert)" msgid "All members" msgstr "Allir meðlimir" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3875,7 +3892,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3884,7 +3901,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -3960,8 +3977,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4355,7 +4372,8 @@ msgstr "Stillingar fyrir mynd" msgid "You are not subscribed to that profile." msgstr "Þú ert ekki áskrifandi." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Gat ekki vistað áskrift." @@ -4528,10 +4546,6 @@ msgstr "" msgid "No such tag." msgstr "Ekkert þannig merki." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Aðferð í forritsskilum er í þróun." - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4841,159 +4855,256 @@ msgstr "Persónulegt" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Ótæk stærð." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Hópssíðan" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Gat ekki uppfært hóp." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Hópssíðan" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Gat ekki uppfært hóp." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Gat ekki búið til uppáhald." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Villa kom upp við að senda bein skilaboð" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Gat ekki skeytt skilaboðum inn í." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Gat ekki uppfært skilaboð með nýju veffangi." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Gat ekki vistað babl. Óþekktur notandi." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Of mikið babl í einu; slakaðu aðeins á og haltu svo áfram eftir nokkrar " "mínútur." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Það hefur verið lagt bann við babli frá þér á þessari síðu." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Vandamál komu upp við að vista babl." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Notandi hefur enga persónulega síðu." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Vandamál komu upp við að vista babl." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Þessi notandi hefur bannað þér að gerast áskrifandi" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Notandinn hefur lokað á þig." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Ekki í áskrift!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Gat ekki eytt áskrift." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Gat ekki eytt áskrift." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Gat ekki eytt áskrift." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Gat ekki búið til hóp." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Gat ekki skráð hópmeðlimi." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Gat ekki skráð hópmeðlimi." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Gat ekki vistað áskrift." @@ -6371,7 +6482,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr "frá" @@ -6427,25 +6538,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Gat ekki eytt uppáhaldi." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6502,53 +6613,53 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "Nei" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" @@ -6816,9 +6927,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Kerfisvilla kom upp við upphal skráar." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 1b6b39f032..401889a5cf 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:12+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:10+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Pagina inesistente." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,20 +170,20 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Puoi provare a [richiamare %1$s](../%2$s) dal suo profilo o [scrivere " "qualche cosa alla sua attenzione](%%%%action.newnotice%%%%?status_textarea=%3" "$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Perché non [crei un account](%%%%action.register%%%%) e richiami %s o scrivi " "un messaggio alla sua attenzione." @@ -218,7 +218,7 @@ msgstr "Messaggi da %1$s e amici su %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -268,7 +268,7 @@ msgstr "Impossibile salvare il profilo." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -366,7 +366,8 @@ msgid "Could not delete favorite." msgstr "Impossibile eliminare un preferito." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Impossibile seguire l'utente: utente non trovato." #: actions/apifriendshipscreate.php:118 @@ -382,8 +383,9 @@ msgstr "Impossibile non seguire l'utente: utente non trovato." msgid "You cannot unfollow yourself." msgstr "Non puoi non seguirti." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Devono essere forniti due ID utente o nominativi." #: actions/apifriendshipsshow.php:134 @@ -513,6 +515,11 @@ msgstr "Gruppi di %s" msgid "groups on %s" msgstr "Gruppi su %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Carica file" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Nessun parametro oauth_token fornito." @@ -657,23 +664,27 @@ msgstr "Messaggio eliminato." msgid "No status with that ID found." msgstr "Nessuno stato trovato con quel ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Troppo lungo. Lunghezza massima %d caratteri." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Non trovato." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "La dimensione massima di un messaggio è di %d caratteri, compreso l'URL." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formato non supportato." @@ -727,6 +738,10 @@ msgstr "Messaggi etichettati con %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Messaggi etichettati con %1$s su %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Metodo delle API in lavorazione." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Nessun allegato." @@ -780,7 +795,7 @@ msgid "Preview" msgstr "Anteprima" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Elimina" @@ -1060,7 +1075,7 @@ msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -1338,7 +1353,8 @@ msgstr "Alias non valido: \"%s\"" msgid "Could not update group." msgstr "Impossibile aggiornare il gruppo." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Impossibile creare gli alias." @@ -2492,8 +2508,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Messaggi che corrispondono al termine \"%1$s\" su %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Questo utente non consente i richiami oppure non ha confermato o impostato " "ancora il suo indirizzo email." @@ -2572,8 +2589,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Solo URL %s attraverso HTTP semplice." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Non è un formato di dati supportato." @@ -3485,7 +3502,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Ripetuti" @@ -3520,10 +3537,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Feed delle risposte di %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Questa è l'attività delle risposte a %1$s, ma %2$s non ha ricevuto ancora " "alcun messaggio." @@ -3538,10 +3555,10 @@ msgstr "" "[entrare in qualche gruppo](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Puoi provare a [richiamare %1$s](../%2$s) o [scrivere qualche cosa alla sua " "attenzione](%%%%action.newnotice%%%%?status_textarea=%s)." @@ -3632,7 +3649,7 @@ msgstr "Organizzazione" msgid "Description" msgstr "Descrizione" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiche" @@ -3719,20 +3736,20 @@ msgstr "" "forma di cuore per salvare i messaggi e rileggerli in un altro momento." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s non ha aggiunto alcun messaggio tra i suoi preferiti. Scrivi qualche cosa " "di interessante in modo che lo inserisca tra i suoi preferiti. :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s non ha aggiunto alcun messaggio tra i suoi preferiti. Perché non [crei un " "account](%%%%action.register%%%%) e quindi scrivi qualche cosa di " @@ -3794,7 +3811,7 @@ msgstr "Feed dei messaggi per il gruppo %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF per il gruppo %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membri" @@ -3808,11 +3825,11 @@ msgstr "(nessuno)" msgid "All members" msgstr "Tutti i membri" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Creato" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3828,7 +3845,7 @@ msgstr "" "stesso](%%%%action.register%%%%) per far parte di questo gruppo e di molti " "altri! ([Maggiori informazioni](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3840,7 +3857,7 @@ msgstr "" "(http://it.wikipedia.org/wiki/Microblogging) basato sul software libero " "[StatusNet](http://status.net/)." -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Amministratori" @@ -3915,10 +3932,10 @@ msgstr "" "potrebbe essere un buon momento per iniziare! :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Puoi provare a richiamare %1$s o [scrivere qualche cosa che attiri la sua " "attenzione](%%%%action.newnotice%%%%?status_textarea=%2$s)." @@ -4306,7 +4323,8 @@ msgstr "Salva impostazioni snapshot" msgid "You are not subscribed to that profile." msgstr "Non hai una abbonamento a quel profilo." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Impossibile salvare l'abbonamento." @@ -4486,10 +4504,6 @@ msgstr "" msgid "No such tag." msgstr "Nessuna etichetta." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Metodo delle API in lavorazione." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Non hai bloccato quell'utente." @@ -4800,82 +4814,130 @@ msgstr "Versione" msgid "Author(s)" msgstr "Autori" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Nessun file può superare %d byte e il file inviato era di %d byte. Prova a " "caricarne una versione più piccola." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Un file di questa dimensione supererebbe la tua quota utente di %d byte." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "Un file di questa dimensione supererebbe la tua quota mensile di %d byte." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Dimensione non valida." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Ingresso nel gruppo non riuscito." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Non si fa parte del gruppo." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Uscita dal gruppo non riuscita." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Impossibile aggiornare il gruppo locale." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Impossibile creare il token di accesso per %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Ti è proibito inviare messaggi diretti." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Impossibile inserire il messaggio." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Impossibile aggiornare il messaggio con il nuovo URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Errore del database nell'inserire un hashtag: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problema nel salvare il messaggio. Troppo lungo." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problema nel salvare il messaggio. Utente sconosciuto." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Troppi messaggi troppo velocemente; fai una pausa e scrivi di nuovo tra " "qualche minuto." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4883,71 +4945,122 @@ msgstr "" "Troppi messaggi duplicati troppo velocemente; fai una pausa e scrivi di " "nuovo tra qualche minuto." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Ti è proibito inviare messaggi su questo sito." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problema nel salvare la casella della posta del gruppo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "L'utente non ha un profilo." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Impossibile salvare il messaggio del sito." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Non ti è possibile abbonarti." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Hai già l'abbonamento!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "L'utente non ti consente di seguirlo." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Non hai l'abbonamento!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "Impossibile eliminare l'auto-abbonamento." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "Impossibile eliminare il token di abbonamento OMB." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Impossibile eliminare l'abbonamento." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Impossibile creare il gruppo." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Impossibile impostare l'URI del gruppo." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Impossibile impostare la membership al gruppo." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Impossibile salvare le informazioni del gruppo locale." @@ -6423,7 +6536,7 @@ msgstr "" "iniziare una conversazione con altri utenti. Altre persone possono mandare " "messaggi riservati solamente a te." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "via" @@ -6481,24 +6594,24 @@ msgstr "Scrittura del file su disco non riuscita." msgid "File upload stopped by extension." msgstr "Caricamento del file bloccato dall'estensione." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Il file supera la quota dell'utente." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Impossibile spostare il file nella directory di destinazione." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Impossibile determinare il tipo MIME del file." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Prova a usare un altro formato per %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s non è un tipo di file supportato su server." @@ -6554,51 +6667,51 @@ msgstr "" "previsto. Riprova più tardi." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "O" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "presso" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "in una discussione" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Messaggio ripetuto" @@ -6857,8 +6970,8 @@ msgstr "" "Questo server non è in grado di gestire caricamenti senza il supporto ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Tema caricato mancante o caricamento non riuscito." +msgid "The theme file is missing or the upload failed." +msgstr "Manca il file del tema o il caricamento non è riuscito." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index e0e1ef0210..1141b34279 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:16+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:11+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "そのようなページはありません。" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,19 +170,19 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "プロフィールから [%1$s さんに合図](../%2$s) したり、[知らせたいことについて投" "稿](%%%%action.newnotice%%%%?status_textarea=%3$s) したりできます。" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "[アカウントを登録](%%%%action.register%%%%) して %s さんに合図したり、お知ら" "せを送ってみませんか。" @@ -217,7 +217,7 @@ msgstr "%2$s に %1$s と友人からの更新があります!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -268,7 +268,7 @@ msgstr "プロフィールを保存できませんでした。" #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -366,7 +366,8 @@ msgid "Could not delete favorite." msgstr "お気に入りを取り消すことができません。" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "ユーザをフォローできませんでした: ユーザが見つかりません。" #: actions/apifriendshipscreate.php:118 @@ -383,8 +384,9 @@ msgstr "ユーザのフォローを停止できませんでした: ユーザが msgid "You cannot unfollow yourself." msgstr "自分自身をフォロー停止することはできません。" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "ふたつのIDかスクリーンネームが必要です。" #: actions/apifriendshipsshow.php:134 @@ -515,6 +517,11 @@ msgstr "%s グループ" msgid "groups on %s" msgstr "%s 上のグループ" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "ファイルアップロード" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "oauth_token パラメータは提供されませんでした。" @@ -655,22 +662,26 @@ msgstr "ステータスを削除しました。" msgid "No status with that ID found." msgstr "そのIDでのステータスはありません。" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "長すぎます。つぶやきは最大 140 字までです。" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "見つかりません。" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "つぶやきは URL を含めて最大 %d 字までです。" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "サポート外の形式です。" @@ -724,6 +735,10 @@ msgstr "%s とタグ付けされたつぶやき" msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s に %1$s による更新があります!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API メソッドが工事中です。" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "そのような添付はありません。" @@ -776,7 +791,7 @@ msgid "Preview" msgstr "プレビュー" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "削除" @@ -1061,7 +1076,7 @@ msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "このつぶやきを削除" @@ -1340,7 +1355,8 @@ msgstr "不正な別名: \"%s\"" msgid "Could not update group." msgstr "グループを更新できません。" -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "別名を作成できません。" @@ -2513,8 +2529,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "\"%2$s\" 上の検索語 \"$1$s\" に一致するすべての更新" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "このユーザは、合図を許可していないか、確認されていた状態でないか、メール設定" "をしていません。" @@ -2594,8 +2611,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "サポートされていないデータ形式。" @@ -3503,7 +3520,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "繰り返された" @@ -3538,10 +3555,10 @@ msgid "Replies feed for %s (Atom)" msgstr "%s の返信フィード (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "これは %1$s への返信を表示したタイムラインです、しかし %2$s はまだつぶやきを" "受け取っていません。" @@ -3556,10 +3573,10 @@ msgstr "" "ループに加わる](%%action.groups%%)ことができます。" #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "あなたは [%1$s に合図](../%2$s) するか、[その人宛てに何かを投稿](%%%%action." "newnotice%%%%?status_textarea=%3$s)することができます。" @@ -3652,7 +3669,7 @@ msgstr "組織" msgid "Description" msgstr "概要" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "統計データ" @@ -3741,20 +3758,20 @@ msgstr "" "するか、またはそれらの上でスポットライトをはじいてください。" #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s はまだ彼のお気に入りに少しのつぶやきも加えていません。 彼らがお気に入りに" "加えることおもしろいものを投稿してください:)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s はまだお気に入りに少しのつぶやきも加えていません。 なぜ [アカウント登録](%" "%%%action.register%%%%) しないのですか。そして、彼らがお気に入りに加えるおも" @@ -3816,7 +3833,7 @@ msgstr "%s グループのつぶやきフィード (Atom)" msgid "FOAF for %s group" msgstr "%s グループの FOAF" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "メンバー" @@ -3830,11 +3847,11 @@ msgstr "(なし)" msgid "All members" msgstr "全てのメンバー" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "作成日" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3849,7 +3866,7 @@ msgstr "" "する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" "のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3862,7 +3879,7 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "管理者" @@ -3937,10 +3954,10 @@ msgstr "" "いまは始める良い時でしょう:)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "あなたは、%1$s に合図するか、[またはその人宛に何かを投稿](%%%%action." "newnotice%%%%?status_textarea=%2$s) することができます。" @@ -4347,7 +4364,8 @@ msgstr "サイト設定の保存" msgid "You are not subscribed to that profile." msgstr "あなたはそのプロファイルにフォローされていません。" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "フォローを保存できません。" @@ -4526,10 +4544,6 @@ msgstr "このフォームを使用して、フォロー者かフォローにタ msgid "No such tag." msgstr "そのようなタグはありません。" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API メソッドが工事中です。" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "あなたはそのユーザをブロックしていません。" @@ -4832,83 +4846,131 @@ msgstr "バージョン" msgid "Author(s)" msgstr "作者" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "どんなファイルも %d バイトより大きくてはいけません、そして、あなたが送った" "ファイルは %d バイトでした。より小さいバージョンをアップロードするようにして" "ください。" -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "これほど大きいファイルはあなたの%dバイトのユーザ割当てを超えているでしょう。" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "これほど大きいファイルはあなたの%dバイトの毎月の割当てを超えているでしょう。" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "不正なサイズ。" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "グループ参加に失敗しました。" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "グループの一部ではありません。" -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "グループ脱退に失敗しました。" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "グループを更新できません。" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "%s 用のログイン・トークンを作成できませんでした" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "あなたはダイレクトメッセージを送るのが禁止されています。" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "メッセージを追加できません。" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "新しいURIでメッセージをアップデートできませんでした。" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "ハッシュタグ追加 DB エラー: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "つぶやきを保存する際に問題が発生しました。長すぎです。" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "つぶやきを保存する際に問題が発生しました。不明なユーザです。" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "多すぎるつぶやきが速すぎます; 数分間の休みを取ってから再投稿してください。" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4916,73 +4978,123 @@ msgstr "" "多すぎる重複メッセージが速すぎます; 数分間休みを取ってから再度投稿してくださ" "い。" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "あなたはこのサイトでつぶやきを投稿するのが禁止されています。" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "ユーザはプロフィールをもっていません。" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "あなたのデザイン設定を保存できません。" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "あなたはフォローが禁止されました。" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "すでにフォローしています!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "ユーザはあなたをブロックしました。" -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "フォローしていません!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "自己フォローを削除できません。" -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "フォローを削除できません" -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "フォローを削除できません" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "グループを作成できません。" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "グループメンバーシップをセットできません。" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "グループメンバーシップをセットできません。" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "フォローを保存できません。" @@ -6401,7 +6513,7 @@ msgstr "" "に引き込むプライベートメッセージを送ることができます。人々はあなただけへの" "メッセージを送ることができます。" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "from" @@ -6462,24 +6574,24 @@ msgstr "ディスクへのファイル書き込みに失敗しました。" msgid "File upload stopped by extension." msgstr "エクステンションによってファイルアップロードを中止しました。" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "ファイルはユーザの割当てを超えています。" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "ファイルを目的ディレクトリに動かすことができませんでした。" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "ファイルのMIMEタイプを決定できません。" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "別の %s フォーマットを試してください。" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s はこのサーバのサポートしているファイルタイプではありません。" @@ -6536,55 +6648,55 @@ msgstr "" "度試みてください" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "北" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 #, fuzzy msgid "S" msgstr "南" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 #, fuzzy msgid "E" msgstr "東" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 #, fuzzy msgid "W" msgstr "西" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "at" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "つぶやきを繰り返しました" @@ -6842,9 +6954,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "ファイルのアップロードでシステムエラー" +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index ce2db363a0..c40002fc53 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Korean # +# Author@translatewiki.net: Brion # Author@translatewiki.net: Twkang # -- # This file is distributed under the same license as the StatusNet package. @@ -8,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:21+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:13+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +98,7 @@ msgstr "해당하는 페이지 없음" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -166,15 +167,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -207,7 +208,7 @@ msgstr "%2$s에 있는 %1$s 및 친구들의 업데이트!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -255,7 +256,7 @@ msgstr "프로필을 저장 할 수 없습니다." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -353,7 +354,8 @@ msgid "Could not delete favorite." msgstr "관심소식을 삭제할 수 없습니다." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "팔로우할 수 없습니다: 이용자 없음." #: actions/apifriendshipscreate.php:118 @@ -369,8 +371,9 @@ msgstr "언팔로우할 수 없습니다: 이용자 없음." msgid "You cannot unfollow yourself." msgstr "자기 자신을 언팔로우할 수 없습니다." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "두 개의 사용자 ID나 대화명을 입력해야 합니다." #: actions/apifriendshipsshow.php:134 @@ -501,6 +504,11 @@ msgstr "%s 그룹" msgid "groups on %s" msgstr "%s 상의 그룹들" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "올리기" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -644,22 +652,26 @@ msgstr "삭제된 소식입니다." msgid "No status with that ID found." msgstr "발견된 ID의 상태가 없습니다." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "너무 깁니다. 통지의 최대 길이는 %d 글자 입니다." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "찾을 수가 없습니다." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "소식의 최대 길이는 첨부 URL을 포함하여 %d 글자입니다." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "지원하지 않는 형식입니다." @@ -713,6 +725,10 @@ msgstr "%s 태그된 통지" msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API 메서드를 구성중 입니다." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "해당하는 첨부파일이 없습니다." @@ -766,7 +782,7 @@ msgid "Preview" msgstr "미리보기" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "삭제" @@ -1054,7 +1070,7 @@ msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "이 게시글 삭제하기" @@ -1344,7 +1360,8 @@ msgstr "사용할 수 없는 별명 : \"%s\"" msgid "Could not update group." msgstr "그룹을 업데이트 할 수 없습니다." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "좋아하는 게시글을 생성할 수 없습니다." @@ -2508,8 +2525,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "\"%s\" 에 일치하는 모든 업데이트" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "이 사용자는 nudge를 허용하지 않았고, 아직 그의 이메일을 인증하지 않았습니다." @@ -2589,8 +2607,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "지원하는 형식의 데이터가 아닙니다." @@ -3506,7 +3524,7 @@ msgstr "자신의 글은 재전송할 수 없습니다." msgid "You already repeated that notice." msgstr "당신은 이미 이 사용자를 차단하고 있습니다." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "재전송됨" @@ -3541,11 +3559,11 @@ msgid "Replies feed for %s (Atom)" msgstr "%s의 통지 피드" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." -msgstr "" +"notice to them yet." +msgstr "%s 및 친구들의 타임라인이지만, 아직 아무도 글을 작성하지 않았습니다." #: actions/replies.php:204 #, php-format @@ -3557,8 +3575,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3656,7 +3674,7 @@ msgstr "페이지수" msgid "Description" msgstr "설명" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "통계" @@ -3742,16 +3760,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3810,7 +3828,7 @@ msgstr "%s 그룹을 위한 공지피드 (Atom)" msgid "FOAF for %s group" msgstr "%s의 보낸쪽지함" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "회원" @@ -3824,12 +3842,12 @@ msgstr "(없습니다.)" msgid "All members" msgstr "모든 회원" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "생성" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3839,7 +3857,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3850,7 +3868,7 @@ msgstr "" "**%s** 는 %%%%site.name%%%% [마이크로블로깅)(http://en.wikipedia.org/wiki/" "Micro-blogging)의 사용자 그룹입니다. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 #, fuzzy msgid "Admins" msgstr "관리자" @@ -3929,8 +3947,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4328,7 +4346,8 @@ msgstr "아바타 설정" msgid "You are not subscribed to that profile." msgstr "당신은 이 프로필에 구독되지 않고있습니다." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "구독을 저장할 수 없습니다." @@ -4498,10 +4517,6 @@ msgstr "당신의 구독자나 구독하는 사람에 태깅을 위해 이 양 msgid "No such tag." msgstr "그러한 태그가 없습니다." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API 메서드를 구성중 입니다." - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4810,83 +4825,131 @@ msgstr "버젼" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "옳지 않은 크기" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "그룹에 가입하지 못했습니다." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "그룹을 업데이트 할 수 없습니다." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "그룹 프로필" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "그룹을 업데이트 할 수 없습니다." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "%s 에 대한 로그인 토큰을 만들 수 없습니다." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "직접 메시지 보내기 오류." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "메시지를 삽입할 수 없습니다." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "새 URI와 함께 메시지를 업데이트할 수 없습니다." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "해쉬테그를 추가 할 때에 데이타베이스 에러 : %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "게시글 저장문제. 알려지지않은 회원" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "너무 많은 게시글이 너무 빠르게 올라옵니다. 한숨고르고 몇분후에 다시 포스트를 " "해보세요." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4895,77 +4958,126 @@ msgstr "" "너무 많은 게시글이 너무 빠르게 올라옵니다. 한숨고르고 몇분후에 다시 포스트를 " "해보세요." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "이 사이트에 게시글 포스팅으로부터 당신은 금지되었습니다." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "통지를 저장하는데 문제가 발생했습니다." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "이용자가 프로필을 가지고 있지 않습니다." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "트위터 환경설정을 저장할 수 없습니다." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "이 회원은 구독으로부터 당신을 차단해왔다." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "회원이 당신을 차단해왔습니다." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "구독하고 있지 않습니다!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%2$s에서 %1$s까지 메시지" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "새 그룹을 만들 수 없습니다." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "그룹 맴버십을 세팅할 수 없습니다." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "그룹 맴버십을 세팅할 수 없습니다." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "구독을 저장할 수 없습니다." @@ -6190,7 +6302,7 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" -"포스팅 주소는 %1$s입니다.새 메시지를 등록하려면 %2$ 주소로 이메일을 보내십시" +"포스팅 주소는 %1$s입니다.새 메시지를 등록하려면 %2$s 주소로 이메일을 보내십시" "오.이메일 사용법은 %3$s 페이지를 보십시오.안녕히,%4$s" #. TRANS: Subject line for SMS-by-email notification messages @@ -6339,7 +6451,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr "다음에서:" @@ -6395,25 +6507,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "공개 stream을 불러올 수 없습니다." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6470,54 +6582,54 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "아니오" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "내용이 없습니다!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "생성" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." @@ -6788,9 +6900,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "파일을 올리는데 시스템 오류 발생" +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 09836ffa57..383d7a91a9 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:26+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:14+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Нема таква страница." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,22 +170,20 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Можете да се обидете да го [подбуцнете корисникот %1$s](../%2$s) од профилот " -"на корисникот или да [објавите нешто што сакате тој да го прочита](%%%%" -"action.newnotice%%%%?status_textarea=%3$s)." +"Можете да го [подбуцнете корисникот %1$s](../%2$s) од неговиот профил или да " +"[му испратите нешто](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" -"А зошто не [регистрирате сметка](%%%%action.register%%%%), за да можете да " -"го подбуцнете корисникот %s или да објавите забелешка што сакате тој да ја " -"прочита." +"А зошто не се [регистрирате](%%%%action.register%%%%), и потоа да го " +"подбуцнете корисникот %s или да му испратите забелешка." #. TRANS: H1 text #: actions/all.php:182 @@ -217,7 +215,7 @@ msgstr "Подновувања од %1$s и пријатели на %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -267,7 +265,7 @@ msgstr "Не може да се зачува профил." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -366,8 +364,8 @@ msgid "Could not delete favorite." msgstr "Не можам да ја избришам омилената забелешка." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Не можам да го следам корисникот: Корисникот не е пронајден." +msgid "Could not follow user: profile not found." +msgstr "Не можам да го следам корисникот: профилот не е пронајден." #: actions/apifriendshipscreate.php:118 #, php-format @@ -383,10 +381,11 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "Не можете да престанете да се следите самите себеси." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" -"Мора да бидат наведени два кориснички идентификатора (ID) или две имиња." +"Мора да се наведат две кориснички назнаки (ID) или screen_names (имиња за " +"приказ)." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -513,6 +512,10 @@ msgstr "%s групи" msgid "groups on %s" msgstr "групи на %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Подигањето не успеа." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Нема наведено oauth_token параметар." @@ -656,24 +659,28 @@ msgstr "Статусот е избришан." msgid "No status with that ID found." msgstr "Нема пронајдено статус со тој ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Клиентот мора да укаже вредност за параметарот „статус“" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Ова е предолго. Максималната дозволена должина изнесува %d знаци." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Не е пронајдено." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "Максималната големина на забелешката е %d знаци, вклучувајќи ја URL-адресата " "на прилогот." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Неподдржан формат." @@ -727,6 +734,10 @@ msgstr "Забелешки означени со %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Подновувањата се означени со %1$s на %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API-методот е во изработка." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Нема таков прилог." @@ -781,7 +792,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Бриши" @@ -1063,7 +1074,7 @@ msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1341,7 +1352,8 @@ msgstr "Неважечки алијас: „%s“" msgid "Could not update group." msgstr "Не можев да ја подновам групата." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Не можеше да се создадат алијаси." @@ -2332,8 +2344,7 @@ msgstr "Запамети ме" #: actions/login.php:259 actions/register.php:487 msgid "Automatically login in the future; not for shared computers!" msgstr "" -"Следниот пат најавете се автоматски; не е за компјутери кои ги делите со " -"други!" +"Отсега врши автоматска најава. Не треба да се користи за јавни сметачи!" #: actions/login.php:269 msgid "Lost or forgotten password?" @@ -2503,7 +2514,7 @@ msgstr "Подновувања кои се совпаѓаат со пребар #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Овој корисник не дозволува подбуцнувања или сè уште нема потврдено или " "поставено своја е-пошта." @@ -2581,8 +2592,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Ве молиме користете само %s URL-адреси врз прост HTTP-код." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Ова не е поддржан формат на податотека." @@ -3499,7 +3510,7 @@ msgstr "Не можете да повторувате сопствена заб msgid "You already repeated that notice." msgstr "Веќе ја имате повторено таа забелешка." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Повторено" @@ -3537,10 +3548,10 @@ msgstr "Канал со одговори за %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Ова е историјата на која се прикажани одговорите на %1$s, но %2$s сè уште " -"нема добиено порака од некој што сака да ја прочита." +"нема добиено забелешка за нив." #: actions/replies.php:204 #, php-format @@ -3554,11 +3565,11 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Можете да го [подбуцнете корисникот 1$s](../%2$s) или да [објавите нешто што " -"сакате тој да го прочита](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Можете да го [подбуцнете корисникот 1$s](../%2$s) или да [му испратите нешто]" +"(%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3646,7 +3657,7 @@ msgstr "Организација" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистики" @@ -3738,21 +3749,21 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" -"%s сè уште нема додадено забелешки како омилени. Објавете нешто интересно, " -"што корисникот би го обележал како омилено :)" +"%s сè уште нема додадено омилени забелешки. Објавете нешто интересно, што " +"корисникот би го обележал како омилено :)" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s сè уште нема додадено омилени забелешки. Зошто не [регистрирате сметка](%%" -"%%action.register%%%%) и потоа објавите нешто интересно што корисникот би го " +"%s сè уште нема додадено омилени забелешки. Зошто не се [регистрирате](%%%%" +"action.register%%%%) и потоа објавите нешто интересно што корисникот би го " "додал како омилено :)" #: actions/showfavorites.php:243 @@ -3811,7 +3822,7 @@ msgstr "Канал со забелешки за групата%s (Atom)" msgid "FOAF for %s group" msgstr "FOAF за групата %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Членови" @@ -3825,11 +3836,11 @@ msgstr "(Нема)" msgid "All members" msgstr "Сите членови" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Создадено" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3845,7 +3856,7 @@ msgstr "" "се](%%%%action.register%%%%) за да станете дел од оваа група и многу повеќе! " "([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3858,7 +3869,7 @@ msgstr "" "слободната програмска алатка [StatusNet](http://status.net/). Нејзините " "членови си разменуваат кратки пораки за нивниот живот и интереси. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Администратори" @@ -3935,11 +3946,11 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"Можете да го подбуцнете корисникот %1$s или [да објавите нешто што сакате да " -"го прочита](%%%%action.newnotice%%%%?status_textarea=%2$s)." +"Можете да го подбуцнете корисникот %1$s или [му испратите нешто](%%%%action." +"newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -4329,7 +4340,8 @@ msgstr "Зачувај поставки за снимки" msgid "You are not subscribed to that profile." msgstr "Не сте претплатени на тој профил." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Не можев да ја зачувам претплатата." @@ -4507,10 +4519,6 @@ msgstr "Со овој образец додавајте ознаки во Ваш msgid "No such tag." msgstr "Нема таква ознака." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API-методот е во изработка." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Го немате блокирано тој корисник." @@ -4823,81 +4831,128 @@ msgstr "Верзија" msgid "Author(s)" msgstr "Автор(и)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Не можам да ја обработам URL-адресата „%s“" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Робин мисли дека нешто е невозможно." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Ниедна податотека не смее да биде поголема од %d бајти, а подаотеката што ја " +"Податотеките не смеат да бидат поголеми од %d бајти, а податотеката што ја " "испративте содржи %d бајти. Подигнете помала верзија." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Волку голема податотека ќе ја надмине Вашата корисничка квота од %d бајти." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "ВОлку голема податотека ќе ја надмине Вашата месечна квота од %d бајти" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Погрешно податотечно име." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Зачленувањето во групата не успеа." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Не е дел од групата." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Напуштањето на групата не успеа." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Не можев да ја подновам локалната група." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Не можам да создадам најавен жетон за" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Никаде не е пронајдено име на базата или DSN." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Забрането Ви е испраќање на директни пораки." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Не можев да ја испратам пораката." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Не можев да ја подновам пораката со нов URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Нема таков профил (%1$d) за забелешката (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Грешка во базата на податоци при вметнувањето на хеш-ознаката: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Проблем со зачувувањето на белешката. Премногу долго." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Проблем со зачувувањето на белешката. Непознат корисник." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Премногу забелњшки за прекратко време; здивнете малку и продолжете за " "неколку минути." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4905,72 +4960,122 @@ msgstr "" "Премногу дуплирани пораки во прекратко време; здивнете малку и продолжете за " "неколку минути." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Забрането Ви е да објавувате забелешки на ова мрежно место." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Проблем во зачувувањето на белешката." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "На saveKnownGroups му е уакажан грешен тип" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"Не можам да му ја одземам улогата „%1$s“ на корисникот #%2$s. Таква улога не " +"постои." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Не можам да му ја одземам улогата „%1$s“ на корисникот #%2$d. Има грешка во " +"базата на податоци." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Недостасува профил." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Не можам да ја зачувам ознаката." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Блокирани сте од претплаќање." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Веќе претплатено!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Корисникот Ве има блокирано." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Не сте претплатени!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "Не можам да ја избришам самопретплатата." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." -msgstr "Не можете да го избришете OMB-жетонот за претплата." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "Не можам да го избришам OMB-жетонот за претплата." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." -msgstr "Претплата не може да се избрише." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." +msgstr "Не можам да ја избришам претплатата." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Не можев да ја создадам групата." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Не можев да поставам URI на групата." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Не можев да назначам членство во групата." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Не можев да ги зачувам информациите за локалните групи." @@ -6442,7 +6547,7 @@ msgstr "" "впуштите во разговор со други корисници. Луѓето можат да ви испраќаат пораки " "што ќе можете да ги видите само Вие." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "од" @@ -6503,24 +6608,24 @@ msgstr "Податотеката не може да се запише на ди msgid "File upload stopped by extension." msgstr "Подигањето на податотеката е запрено од проширувањето." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Податотеката ја надминува квотата на корисникот." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Податотеката не може да се премести во целниот директориум." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Не можев да го утврдам mime-типот на податотеката." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Обидете се со друг формат на %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s не е поддржан тип на податотека на овој опслужувач." @@ -6576,51 +6681,51 @@ msgstr "" "Обидете се подоцна." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "С" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "Ј" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "И" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "З" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "во" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "во контекст" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Одговори на забелешкава" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Забелешката е повторена" @@ -6879,8 +6984,8 @@ msgstr "" "Опслужувачот не може да се справи со подигања на изгледи без ZIP-поддршка." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Подигањето на мотивот недостасува или не успеа." +msgid "The theme file is missing or the upload failed." +msgstr "Податотеката за изгледот недостасува или подигањето не успеало." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 112ca76c8e..6616a6a6b6 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:30+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:16+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.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "Ingen slik side." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -165,20 +165,20 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "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:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Hvorfor ikke [opprette en konto](%%%%action.register%%%%) og så knuff %s " "eller post en notis for å få hans eller hennes oppmerksomhet." @@ -213,7 +213,7 @@ msgstr "Oppdateringer fra %1$s og venner på %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -264,7 +264,7 @@ msgstr "Klarte ikke å lagre profil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -363,8 +363,8 @@ msgid "Could not delete favorite." msgstr "Kunne ikke slette favoritt." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Kunne ikke følge brukeren: Fant ikke brukeren." +msgid "Could not follow user: profile not found." +msgstr "Kunne ikke følge brukeren: fant ikke profilen." #: actions/apifriendshipscreate.php:118 #, php-format @@ -379,9 +379,9 @@ msgstr "Kunne ikke slutte å følge brukeren: Fant ikke brukeren." msgid "You cannot unfollow yourself." 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/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "To gyldige ID-er eller screen_names må oppgis." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -508,6 +508,11 @@ msgstr "%s grupper" msgid "groups on %s" msgstr "grupper på %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Last opp fil" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Ingen verdi for oauth_token er oppgitt." @@ -649,22 +654,26 @@ msgstr "Status slettet." msgid "No status with that ID found." msgstr "Ingen status med den ID-en funnet." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Det er for langt. Maks notisstørrelse er %d tegn." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Ikke funnet." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formatet støttes ikke." @@ -718,6 +727,10 @@ msgstr "Notiser merket med %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringer merket med %1$s på %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API-metode under utvikling." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Ingen slike vedlegg." @@ -770,7 +783,7 @@ msgid "Preview" msgstr "Forhåndsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Slett" @@ -1051,7 +1064,7 @@ msgid "Do not delete this notice" msgstr "Ikke slett denne notisen" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1121,13 +1134,12 @@ msgid "Theme for the site." msgstr "Tema for nettstedet." #: actions/designadminpanel.php:467 -#, fuzzy msgid "Custom theme" -msgstr "Nettstedstema" +msgstr "Egendefinert tema" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Du kan laste opp et egendefinert StatusNet-tema som et .ZIP-arkiv." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1186,11 +1198,11 @@ msgstr "Lenker" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "Avansert" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "Egendefinert CSS" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -1329,7 +1341,8 @@ msgstr "Ugyldig alias: «%s»" msgid "Could not update group." msgstr "Kunne ikke oppdatere gruppe." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Kunne ikke opprette alias." @@ -2471,7 +2484,7 @@ msgstr "Oppdateringer som samsvarer søkestrengen «%1$s» på %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Denne brukeren tillater ikke knuffing eller har ikke bekreftet eller angitt " "sin e-post ennå." @@ -2548,8 +2561,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Bare %s-nettadresser over vanlig HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Ikke et støttet dataformat." @@ -3457,7 +3470,7 @@ msgstr "Du kan ikke gjenta din egen notis." msgid "You already repeated that notice." msgstr "Du har allerede gjentatt den notisen." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Gjentatt" @@ -3492,10 +3505,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Svarstrøm for %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Dette er tidslinjen som viser svar til %1$s men %2$s har ikke mottat en " "notis for hans oppmerksomhet ennå." @@ -3510,10 +3523,10 @@ msgstr "" "eller [bli med i grupper](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Du kan prøve å [knuffe %1$s](../%2$s) eller [post noe for å få hans eller " "hennes oppmerksomhet](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3604,7 +3617,7 @@ msgstr "Organisasjon" msgid "Description" msgstr "Beskrivelse" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistikk" @@ -3694,22 +3707,22 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" -"%s har ikke lagt til noen notiser til sine favoritter ennå. Post noe " -"interessant som de vil legge til sine favoritter :)" +"%s har ikke lagt til noen favorittnotiser ennå. Post noe interessant som de " +"vil legge til sine favoritter :)" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s har ikke lagt noen notiser til sine favoritter ennå. Hvorfor ikke " -"[registrere en konto](%%%%action.register%%%%) og post noe interessant som " -"de vil legge til sine favoritter :)" +"%s har ikke lagt til noen favorittnotiser ennå. Hvorfor ikke [registrere en " +"konto](%%%%action.register%%%%) og post noe interessant som de vil legge til " +"sine favoritter :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." @@ -3767,7 +3780,7 @@ msgstr "Notismating for %s gruppe (Atom)" msgid "FOAF for %s group" msgstr "FOAF for gruppen %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmer" @@ -3781,11 +3794,11 @@ msgstr "(Ingen)" msgid "All members" msgstr "Alle medlemmer" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Opprettet" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3801,7 +3814,7 @@ msgstr "" "%%%) for å bli medlem av denne gruppen og mange fler. ([Les mer](%%%%doc.help" "%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3814,7 +3827,7 @@ msgstr "" "programvareverktøyet [StatusNet](http://status.net/). Dets medlemmer deler " "korte meldinger om deres liv og interesser. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administratorer" @@ -3889,10 +3902,10 @@ msgstr "" "ikke begynne nå? :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Du kan prøve å knuffe %1$s eller [poste noe for å få hans eller hennes " "oppmerksomhet](%%%%action.newnotice%%%%?status_textarea=%2$s)." @@ -4042,9 +4055,8 @@ msgid "Edit site-wide message" msgstr "" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Kunne ikke lagre dine innstillinger for utseende." +msgstr "Kunne ikke lagre nettstedsnotis." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars." @@ -4118,7 +4130,7 @@ msgstr "Telefonnummer for SMS" #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" +msgstr "Telefonnummer, ingen tegnsetting eller mellomrom, med retningsnummer" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 @@ -4279,7 +4291,8 @@ msgstr "Innstillinger for IM" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "Klarte ikke å lagre avatar-informasjonen" @@ -4404,9 +4417,9 @@ msgid "No ID argument." msgstr "" #: actions/tagother.php:65 -#, fuzzy, php-format +#, php-format msgid "Tag %s" -msgstr "Tagger" +msgstr "Merk %s" #: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" @@ -4418,9 +4431,8 @@ msgid "Photo" msgstr "Foto" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" -msgstr "Tagger" +msgstr "Merk bruker" #: actions/tagother.php:151 msgid "" @@ -4445,10 +4457,6 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API-metode under utvikling." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Du har ikke blokkert den brukeren." @@ -4738,153 +4746,249 @@ msgstr "Versjon" msgid "Author(s)" msgstr "Forfatter(e)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Ugyldig filnavn." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Klarte ikke å lagre profil." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Klarte ikke å oppdatere bruker." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Klarte ikke å lagre profil." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Kunne ikke oppdatere gruppe." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Kunne ikke sette inn melding." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Kunne ikke oppdatere melding med ny nettadresse." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Databasefeil ved innsetting av bruker i programmet OAuth." -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problem ved lagring av notis. For lang." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problem ved lagring av notis. Ukjent bruker." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problem ved lagring av notis." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problem ved lagring av gruppeinnboks." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Brukeren har ingen profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Kunne ikke lagre nettstedsnotis." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Bruker har blokkert deg." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Alle abonnementer" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." -msgstr "" +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." +msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Velkommen til %1$s, @%2$s." -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Kunne ikke opprette gruppe." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Kunne ikke stille inn gruppe-URI." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Kunne ikke stille inn gruppemedlemskap." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Kunne ikke lagre lokal gruppeinformasjon." @@ -6304,7 +6408,7 @@ msgstr "" "engasjere andre brukere i en samtale. Personer kan sende deg meldinger som " "bare du kan se." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "fra" @@ -6359,24 +6463,24 @@ msgstr "" msgid "File upload stopped by extension." msgstr "Filopplasting stoppet grunnet filendelse." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Fil overgår brukers kvote." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Filen kunne ikke flyttes til målmappen." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Kunne ikke avgjøre filens MIME-type." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Prøv å bruke et annet %s-format." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "filtypen %s støttes ikke på denne tjeneren." @@ -6432,51 +6536,51 @@ msgstr "" "igjen senere" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "Ø" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "V" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "på" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetert av" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Notis repetert" @@ -6737,9 +6841,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Systemfeil ved opplasting av fil." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index a69a7c7ea6..c98e1d84ac 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Dutch # +# Author@translatewiki.net: Brion # Author@translatewiki.net: Itavero # Author@translatewiki.net: McDutchie # Author@translatewiki.net: Siebrand @@ -10,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:39+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:19+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +100,7 @@ msgstr "Deze pagina bestaat niet." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,10 +171,10 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"U kunt proberen [%1$s te porren](../%2$s) op de eigen profielpagina of [een " +"U kunt proberen [%1$s te porren](../%2$s) op de eigen profielpagina of [een " "bericht voor die gebruiker plaatsen](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." @@ -181,7 +182,7 @@ msgstr "" #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "U kunt een [gebruiker aanmaken](%%%%action.register%%%%) en %s dan porren of " "een bericht sturen." @@ -216,7 +217,7 @@ msgstr "Updates van %1$s en vrienden op %2$s." #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +267,7 @@ msgstr "Het was niet mogelijk het profiel op te slaan." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -367,7 +368,7 @@ msgstr "" "Het was niet mogelijk deze mededeling van uw favorietenlijst te verwijderen." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +msgid "Could not follow user: profile not found." msgstr "U kunt deze gebruiker niet volgen, omdat deze niet bestaat." #: actions/apifriendshipscreate.php:118 @@ -385,9 +386,10 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "U kunt het abonnement op uzelf niet opzeggen." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Er moeten twee gebruikersnamen of ID's opgegeven worden." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "" +"Er moeten twee gebruikersnamen (screen_names) of ID's opgegeven worden." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -517,6 +519,10 @@ msgstr "%s groepen" msgid "groups on %s" msgstr "groepen op %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Uploaden is mislukt." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Er is geen oauth_token parameter opgegeven." @@ -666,24 +672,28 @@ msgstr "De status is verwijderd." msgid "No status with that ID found." msgstr "Er is geen status gevonden met dit ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "De client moet een parameter \"status\" met een waarde opgeven." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "De mededeling is te lang. Gebruik maximaal %d tekens." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Niet aangetroffen." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "De maximale mededelingenlengte is %d tekens, inclusief de URL voor de " "bijlage." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Niet-ondersteund bestandsformaat." @@ -737,6 +747,10 @@ msgstr "Mededelingen met het label %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates met het label %1$s op %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "De API-functie is in bewerking." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Deze bijlage bestaat niet." @@ -790,7 +804,7 @@ msgid "Preview" msgstr "Voorvertoning" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Verwijderen" @@ -1072,7 +1086,7 @@ msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -1351,7 +1365,8 @@ msgstr "Ongeldige alias: \"%s\"" msgid "Could not update group." msgstr "Het was niet mogelijk de groep bij te werken." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Het was niet mogelijk de aliassen aan te maken." @@ -2519,10 +2534,9 @@ msgstr "Updates die overeenkomen met de zoekterm \"%1$s\" op %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" -"Deze gebruiker is niet te porren of heeft zijn e-mailadres nog niet " -"bevestigd." +"Deze gebruiker is niet te porren of heeft nog geen bevestigd e-mailadres." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2603,8 +2617,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Alleen URL's voor %s via normale HTTP alstublieft." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Geen ondersteund gegevensformaat." @@ -3523,7 +3537,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Herhaald" @@ -3561,9 +3575,9 @@ msgstr "Antwoordenfeed voor %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" -"Dit is de tijdlijn met de antwoorden aan %1$s, maar %2$s heeft nog geen " +"Dit is de tijdlijn met antwoorden aan %1$s, maar %2$s heeft nog geen " "antwoorden ontvangen." #: actions/replies.php:204 @@ -3578,8 +3592,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "U kunt proberen [%1$s te porren](../%2$s) of [een bericht voor die gebruiker " "plaatsen](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3670,7 +3684,7 @@ msgstr "Organisatie" msgid "Description" msgstr "Beschrijving" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistieken" @@ -3761,22 +3775,22 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" -"%s heeff nog geen mededelingen op de eigen favorietenlijst geplaatst. Plaats " +"%s heeft nog geen mededelingen op de eigen favorietenlijst geplaatst. Plaats " "een interessant bericht, en dan komt u misschien wel op de " "favorietenlijst. :)" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s heeft nog geen favorietenlijst. U kunt een [gebruiker registeren](%%%%" -"action.register%%%%) en dan interessante mededelingen plaatsten die " +"%s heeft nog geen favoriete mededelingen. U kunt een [gebruiker registeren](%" +"%%%action.register%%%%) en dan interessante mededelingen plaatsten die " "misschien aan favorietenlijsten zijn toe te voegen. :)" #: actions/showfavorites.php:243 @@ -3835,7 +3849,7 @@ msgstr "Mededelingenfeed voor groep %s (Atom)" msgid "FOAF for %s group" msgstr "Vriend van een vriend voor de groep %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Leden" @@ -3849,11 +3863,11 @@ msgstr "(geen)" msgid "All members" msgstr "Alle leden" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Aangemaakt" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3869,7 +3883,7 @@ msgstr "" "lid te worden van deze groep en nog veel meer! [Meer lezen...](%%%%doc.help%%" "%%)" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3882,7 +3896,7 @@ msgstr "" "[StatusNet](http://status.net/). De leden wisselen korte mededelingen uit " "over hun ervaringen en interesses. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Beheerders" @@ -3960,11 +3974,11 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"U kunt proberen %1$s te porren of [een bericht voor die gebruiker plaatsen](%" -"%%%action.newnotice%%%%?status_textarea=%2$s)." +"U kunt proberen %1$s te porren of [een bericht aan die gebruiker sturen](%%%%" +"action.newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -4357,7 +4371,8 @@ msgstr "Snapshotinstellingen opslaan" msgid "You are not subscribed to that profile." msgstr "U bent niet geabonneerd op dat profiel." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Het was niet mogelijk het abonnement op te slaan." @@ -4539,10 +4554,6 @@ msgstr "" msgid "No such tag." msgstr "Onbekend label." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "De API-functie is in bewerking." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "U hebt deze gebruiker niet geblokkeerd." @@ -4802,7 +4813,7 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" -"Deze website wordt aangedreven door %1$2 versie %2$s. Auteursrechten " +"Deze website wordt aangedreven door %1$s versie %2$s. Auteursrechten " "voorbehouden 2008-2010 Statusnet, Inc. en medewerkers." #: actions/version.php:163 @@ -4855,86 +4866,133 @@ msgstr "Versie" msgid "Author(s)" msgstr "Auteur(s)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Het was niet mogelijk de URL \"%s\" te verwerken." + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Robin denkt dat iets onmogelijk is." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Bestanden mogen niet groter zijn dan %d bytes, en uw bestand was %d bytes. " -"Probeer een kleinere versie te uploaden." +"Bestanden mogen niet groter zijn dan %1$d bytes, en uw bestand was %2$d " +"bytes. Probeer een kleinere versie te uploaden." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Een bestand van deze grootte overschijdt uw gebruikersquota van %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "Een bestand van deze grootte overschijdt uw maandelijkse quota van %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Ongeldig bestandsnaam." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Groepslidmaatschap toevoegen is mislukt." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Geen lid van groep." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Groepslidmaatschap opzeggen is mislukt." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Het was niet mogelijk de lokale groep bij te werken." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Het was niet mogelijk een aanmeldtoken aan te maken voor %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Geen databasenaam of DSN gevonden." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "U mag geen directe berichten verzenden." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Het was niet mogelijk het bericht in te voegen." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Het was niet mogelijk het bericht bij te werken met de nieuwe URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Er is geen profiel (%1$d) te vinden bij de mededeling (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Er is een databasefout opgetreden bij de invoer van de hashtag: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" "Er is een probleem opgetreden bij het opslaan van de mededeling. Deze is te " "lang." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "" "Er was een probleem bij het opslaan van de mededeling. De gebruiker is " "onbekend." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "U hebt te snel te veel mededelingen verstuurd. Kom even op adem en probeer " "het over enige tijd weer." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4942,16 +5000,25 @@ msgstr "" "Te veel duplicaatberichten te snel achter elkaar. Neem een adempauze en " "plaats over een aantal minuten pas weer een bericht." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" "U bent geblokkeerd en mag geen mededelingen meer achterlaten op deze site." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "Het gegevenstype dat is opgegeven aan saveKnownGroups is onjuist" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " @@ -4959,58 +5026,99 @@ msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"De rol \"%1$s\" voor gebruiker #%2$d kan niet ingetrokken worden. Deze " +"gebruiker bestaat niet." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"De rol \"%1$s\" voor gebruiker #%2$d kan niet ingetrokken worden. " +"Databasefout." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Ontbrekend profiel." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Het was niet mogelijk om het label op te slaan." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "U mag zich niet abonneren." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "U bent al gebonneerd!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Deze gebruiker negeert u." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Niet geabonneerd!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." -msgstr "Het was niet mogelijk het abonnement op uzelf te verwijderen." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." +msgstr "Kon abonnement op eigen gebruiker niet verwijderen." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." msgstr "" "Het was niet mogelijk om het OMB-token voor het abonnement te verwijderen." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "Kon abonnement niet verwijderen." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Het was niet mogelijk de groep aan te maken." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Het was niet mogelijk de groeps-URI in te stellen." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Het was niet mogelijk het groepslidmaatschap in te stellen." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Het was niet mogelijk de lokale groepsinformatie op te slaan." @@ -6491,7 +6599,7 @@ msgstr "" "U hebt geen privéberichten. U kunt privéberichten verzenden aan andere " "gebruikers. Mensen kunnen u privéberichten sturen die alleen u kunt lezen." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "van" @@ -6552,24 +6660,24 @@ msgstr "Het was niet mogelijk naar schijf te schrijven." msgid "File upload stopped by extension." msgstr "Het uploaden van het bestand is tegengehouden door een uitbreiding." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Met dit bestand wordt het quotum van de gebruiker overschreden." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Het bestand kon niet verplaatst worden naar de doelmap." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Het was niet mogelijk het MIME-type van het bestand te bepalen." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Probeer een ander %s-formaat te gebruiken." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "Het bestandstype %s wordt door deze server niet ondersteund." @@ -6625,51 +6733,51 @@ msgstr "" "nog eens" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "Z" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "O" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "W" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "op" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "in context" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Mededeling herhaald" @@ -6931,8 +7039,8 @@ msgstr "" "ondersteuning." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Het uploaden van het bestand met de vormgeving is mislukt." +msgid "The theme file is missing or the upload failed." +msgstr "Het vormgevingsbestand ontbreekt of is de upload mislukt." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 @@ -6954,7 +7062,7 @@ msgstr "" #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -"Ongeldig bestand met vormgeving: het bestand display.css is niet aanwezig" +"Ongeldig bestand met vormgeving: het bestand css/display.css is niet aanwezig" #: lib/themeuploader.php:205 msgid "" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index dc166d820d..9d1c47205f 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:35+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:17+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "Dette emneord finst ikkje." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -173,15 +173,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -215,7 +215,7 @@ msgstr "Oppdateringar frå %1$s og vener på %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +266,7 @@ msgstr "Kan ikkje lagra profil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -367,7 +367,8 @@ msgid "Could not delete favorite." msgstr "Kunne ikkje slette favoritt." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" #: actions/apifriendshipscreate.php:118 @@ -385,8 +386,9 @@ msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" msgid "You cannot unfollow yourself." msgstr "Kan ikkje oppdatera brukar." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "To brukar IDer eller kallenamn er naudsynte." #: actions/apifriendshipsshow.php:134 @@ -519,6 +521,11 @@ msgstr "%s grupper" msgid "groups on %s" msgstr "Gruppe handlingar" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Last opp fil" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -665,22 +672,26 @@ msgstr "Lasta opp brukarbilete." msgid "No status with that ID found." msgstr "Fann ingen status med den ID-en." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Det er for langt! Ein notis kan berre innehalde 140 teikn." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Finst ikkje." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "Støttar ikkje bileteformatet." @@ -735,6 +746,10 @@ msgstr "Notisar merka med %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API-metoden er ikkje ferdig enno." + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -789,7 +804,7 @@ msgid "Preview" msgstr "Forhandsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Slett" @@ -1082,7 +1097,7 @@ msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1382,7 +1397,8 @@ msgstr "Ugyldig merkelapp: %s" msgid "Could not update group." msgstr "Kann ikkje oppdatera gruppa." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Kunne ikkje lagre favoritt." @@ -2560,8 +2576,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Alle oppdateringer frå søket «%s»" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Denne brukaren tillét ikkje å bli dytta, eller har ikkje stadfasta eller sat " "e-postadressa si enno." @@ -2642,8 +2659,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Ikkje eit støtta dataformat." @@ -3566,7 +3583,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Lag" @@ -3606,7 +3623,7 @@ msgstr "Notisstraum for %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3619,8 +3636,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3719,7 +3736,7 @@ msgstr "Paginering" msgid "Description" msgstr "Beskriving" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistikk" @@ -3805,16 +3822,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3873,7 +3890,7 @@ msgstr "Notisstraum for %s gruppa" msgid "FOAF for %s group" msgstr "Utboks for %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" @@ -3887,12 +3904,12 @@ msgstr "(Ingen)" msgid "All members" msgstr "Alle medlemmar" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "Lag" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3902,7 +3919,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3913,7 +3930,7 @@ msgstr "" "**%s** er ei brukargruppe på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 #, fuzzy msgid "Admins" msgstr "Administrator" @@ -3990,8 +4007,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4390,7 +4407,8 @@ msgstr "Avatar-innstillingar" msgid "You are not subscribed to that profile." msgstr "Du tingar ikkje oppdateringar til den profilen." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Kunne ikkje lagra abonnement." @@ -4563,10 +4581,6 @@ msgstr "" msgid "No such tag." msgstr "Dette emneord finst ikkje." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API-metoden er ikkje ferdig enno." - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4878,83 +4892,130 @@ msgstr "Personleg" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Ugyldig filnamn." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Gruppe profil" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Kann ikkje oppdatera gruppa." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Gruppe profil" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Kann ikkje oppdatera gruppa." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Kunne ikkje lagre favoritt." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Ein feil oppstod ved sending av direkte melding." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Kunne ikkje lagre melding." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Kunne ikkje oppdatere melding med ny URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Feil ved lagring av notis. Ukjend brukar." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4962,77 +5023,126 @@ msgid "" msgstr "" "For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Du kan ikkje lengre legge inn notisar på denne sida." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Eit problem oppstod ved lagring av notis." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Brukaren har inga profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Brukaren tillet deg ikkje å tinga meldingane sine." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Brukar har blokkert deg." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Ikkje tinga." -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Kan ikkje sletta tinging." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Kan ikkje sletta tinging." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Kan ikkje sletta tinging." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Kunne ikkje laga gruppa." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Kunne ikkje bli med i gruppa." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Kunne ikkje bli med i gruppa." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Kunne ikkje lagra abonnement." @@ -6417,7 +6527,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr " frå " @@ -6473,25 +6583,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Kan ikkje hente offentleg straum." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6548,54 +6658,54 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "Nei" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" @@ -6866,9 +6976,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Systemfeil ved opplasting av fil." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 95146156b2..fe0581a69b 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:44+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:20+0000\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Language-Team: Polish <pl@li.org>\n" "MIME-Version: 1.0\n" @@ -20,7 +20,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.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Nie ma takiej strony." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -174,21 +174,20 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Można spróbować [szturchnąć użytkownika %1$s](../%2$s) z jego profilu lub " -"[wysłać coś wymagającego jego uwagi](%%%%action.newnotice%%%%?" -"status_textarea=%3$s)." +"[wysłać mu coś](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Dlaczego nie [zarejestrujesz konta](%%%%action.register%%%%) i wtedy " -"szturchniesz użytkownika %s lub wyślesz wpis wymagającego jego uwagi." +"szturchniesz użytkownika %s lub wyślesz mu wpis." #. TRANS: H1 text #: actions/all.php:182 @@ -220,7 +219,7 @@ msgstr "Aktualizacje z %1$s i przyjaciół na %2$s." #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -269,7 +268,7 @@ msgstr "Nie można zapisać profilu." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -369,8 +368,8 @@ msgid "Could not delete favorite." msgstr "Nie można usunąć ulubionego wpisu." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Nie można obserwować użytkownika: nie odnaleziono użytkownika." +msgid "Could not follow user: profile not found." +msgstr "Nie można obserwować użytkownika: nie odnaleziono profilu." #: actions/apifriendshipscreate.php:118 #, php-format @@ -386,9 +385,10 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "Nie można zrezygnować z obserwacji samego siebie." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Należy dostarczyć dwa identyfikatory lub nazwy użytkowników." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "" +"Należy dostarczyć dwa prawidłowe identyfikatory lub nazwy użytkowników." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -515,6 +515,10 @@ msgstr "Grupy %s" msgid "groups on %s" msgstr "grupy na %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Wysłanie nie powiodło się." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Nie podano parametru oauth_token." @@ -657,22 +661,26 @@ msgstr "Usunięto stan." msgid "No status with that ID found." msgstr "Nie odnaleziono stanów z tym identyfikatorem." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Klient musi dostarczać parametr \"stan\" z wartością." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Wpis jest za długi. Maksymalna długość wynosi %d znaków." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Nie odnaleziono." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maksymalny rozmiar wpisu wynosi %d znaków, w tym adres URL załącznika." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Nieobsługiwany format." @@ -726,6 +734,10 @@ msgstr "Wpisy ze znacznikiem %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualizacje ze znacznikiem %1$s na %2$s." +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Metoda API jest w trakcie tworzenia." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Nie ma takiego załącznika." @@ -778,7 +790,7 @@ msgid "Preview" msgstr "Podgląd" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Usuń" @@ -1058,7 +1070,7 @@ msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -1334,7 +1346,8 @@ msgstr "Nieprawidłowy alias: \"%s\"" msgid "Could not update group." msgstr "Nie można zaktualizować grupy." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Nie można utworzyć aliasów." @@ -2485,7 +2498,7 @@ msgstr "Aktualizacje pasujące do wyszukiwanego terminu \"%1$s\" na %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Ten użytkownik nie pozwala na szturchnięcia albo nie potwierdził lub nie " "ustawił jeszcze swojego adresu e-mail." @@ -2562,8 +2575,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Dozwolone są tylko adresy URL %s przez zwykły protokół HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "To nie jest obsługiwany format danych." @@ -3472,7 +3485,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Powtórzono" @@ -3510,10 +3523,10 @@ msgstr "Kanał odpowiedzi dla użytkownika %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "To jest oś czasu wyświetlająca odpowiedzi na wpisy użytkownika %1$s, ale %2" -"$s nie otrzymał jeszcze wpisów wymagających jego uwagi." +"$s nie otrzymał jeszcze wpisów." #: actions/replies.php:204 #, php-format @@ -3527,11 +3540,11 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Można spróbować [szturchnąć użytkownika %1$s](../%2$s) lub [wysłać coś " -"wymagającego jego uwagi](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Można spróbować [szturchnąć użytkownika %1$s](../%2$s) lub [wysłać mu coś](%%" +"%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3619,7 +3632,7 @@ msgstr "Organizacja" msgid "Description" msgstr "Opis" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statystyki" @@ -3709,8 +3722,8 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "Użytkownik %s nie dodał jeszcze żadnych wpisów do ulubionych. Wyślij coś " "interesującego, aby chcieli dodać to do swoich ulubionych. :)" @@ -3718,9 +3731,9 @@ msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "Użytkownik %s nie dodał jeszcze żadnych wpisów do ulubionych. Dlaczego nie " "[zarejestrujesz konta](%%%%action.register%%%%) i wyślesz coś " @@ -3782,7 +3795,7 @@ msgstr "Kanał wpisów dla grupy %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF dla grupy %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Członkowie" @@ -3796,11 +3809,11 @@ msgstr "(Brak)" msgid "All members" msgstr "Wszyscy członkowie" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Utworzono" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3816,7 +3829,7 @@ msgstr "" "action.register%%%%), aby stać się częścią tej grupy i wiele więcej. " "([Przeczytaj więcej](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3829,7 +3842,7 @@ msgstr "" "narzędziu [StatusNet](http://status.net/). Jej członkowie dzielą się " "krótkimi wiadomościami o swoim życiu i zainteresowaniach. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administratorzy" @@ -3907,11 +3920,11 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"Można spróbować szturchnąć użytkownika %1$s lub [wysłać coś, co wymaga jego " -"uwagi](%%%%action.newnotice%%%%?status_textarea=%2$s)." +"Można spróbować szturchnąć użytkownika %1$s lub [wysłać mu coś](%%%%action." +"newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -4297,7 +4310,8 @@ msgstr "Zapisz ustawienia migawki" msgid "You are not subscribed to that profile." msgstr "Nie jesteś subskrybowany do tego profilu." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Nie można zapisać subskrypcji." @@ -4478,10 +4492,6 @@ msgstr "" msgid "No such tag." msgstr "Nie ma takiego znacznika." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Metoda API jest w trakcie tworzenia." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Ten użytkownik nie został zablokowany." @@ -4791,83 +4801,130 @@ msgstr "Wersja" msgid "Author(s)" msgstr "Autorzy" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Nie można przetworzyć adresu URL \"%s\"" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Robin sądzi, że coś jest niemożliwe." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Żaden plik nie może być większy niż %d bajty, a wysłany plik miał %d bajty. " -"Spróbuj wysłać mniejszą wersję." +"Żaden plik nie może być większy niż %1$d bajty, a wysłany plik miał %2$d " +"bajty. Proszę spróbować wysłać mniejszą wersję." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Plik tej wielkości przekroczyłby przydział użytkownika wynoszący %d bajty." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" "Plik tej wielkości przekroczyłby miesięczny przydział użytkownika wynoszący %" "d bajty." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Nieprawidłowa nazwa pliku." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Dołączenie do grupy nie powiodło się." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Nie jest częścią grupy." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Opuszczenie grupy nie powiodło się." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Nie można zaktualizować lokalnej grupy." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Nie można utworzyć tokenów loginów dla %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Nigdzie nie odnaleziono nazwy lub DSN bazy danych." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Zablokowano wysyłanie bezpośrednich wiadomości." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Nie można wprowadzić wiadomości." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Nie można zaktualizować wiadomości za pomocą nowego adresu URL." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Brak profilu (%1$d) dla wpisu (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Błąd bazy danych podczas wprowadzania znacznika mieszania: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problem podczas zapisywania wpisu. Za długi." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problem podczas zapisywania wpisu. Nieznany użytkownik." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Za dużo wpisów w za krótkim czasie, weź głęboki oddech i wyślij ponownie za " "kilka minut." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4875,71 +4932,118 @@ msgstr "" "Za dużo takich samych wiadomości w za krótkim czasie, weź głęboki oddech i " "wyślij ponownie za kilka minut." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Zabroniono ci wysyłania wpisów na tej witrynie." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "Podano błędne dane do saveKnownGroups" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "Nie można unieważnić roli \"\"%1$s\" użytkownika #%2$d; nie istnieje." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Nie można unieważnić roli \"%1$s\" użytkownika #%2$d; błąd bazy danych." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Brak profilu." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Nie można zapisać etykiety." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Zablokowano subskrybowanie." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Już subskrybowane." -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Użytkownik zablokował cię." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Niesubskrybowane." -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "Nie można usunąć autosubskrypcji." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." msgstr "Nie można usunąć tokenu subskrypcji OMB." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "Nie można usunąć subskrypcji." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Nie można utworzyć grupy." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Nie można ustawić adresu URI grupy." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Nie można ustawić członkostwa w grupie." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Nie można zapisać informacji o lokalnej grupie." @@ -6417,7 +6521,7 @@ msgstr "" "rozmowę z innymi użytkownikami. Inni mogą wysyłać ci wiadomości tylko dla " "twoich oczu." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "z" @@ -6473,24 +6577,24 @@ msgstr "Zapisanie pliku na dysku nie powiodło się." msgid "File upload stopped by extension." msgstr "Wysłanie pliku zostało zatrzymane przez rozszerzenie." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Plik przekracza przydział użytkownika." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Nie można przenieść pliku do katalogu docelowego." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Nie można określić typu MIME pliku." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Spróbuj innego formatu %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s nie jest obsługiwanym typem pliku na tym serwerze." @@ -6546,51 +6650,51 @@ msgstr "" "ponownie później" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "Północ" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "Południe" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "Wschód" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "Zachód" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "w" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Powtórzono wpis" @@ -6850,8 +6954,8 @@ msgstr "" "Ten serwer nie może obsługiwać wysyłania motywu bez obsługi archiwów zip." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Brak wysłania motywu lub nie powiodło się." +msgid "The theme file is missing or the upload failed." +msgstr "Brak pliku motywu lub wysłanie nie powiodło się." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index d2b2720bbd..f7e4791546 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:48+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:22+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Página não foi encontrada." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,20 +170,20 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." 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)." +"Pode tentar [dar um toque em %1$s](../%2$s) a partir do perfil ou [endereçar-" +"lhe uma nota](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" -"Podia [registar uma conta](%%action.register%%) e depois tocar %s ou " -"publicar uma nota à sua atenção." +"Podia [registar uma conta](%%%%action.register%%%%) e depois dar um toque em " +"%s ou endereçar-lhe uma nota." #. TRANS: H1 text #: actions/all.php:182 @@ -215,7 +215,7 @@ msgstr "Actualizações de %1$s e amigos no %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -264,7 +264,7 @@ msgstr "Não foi possível gravar o perfil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -363,8 +363,8 @@ msgid "Could not delete favorite." msgstr "Não foi possível eliminar o favorito." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "Não foi possível seguir utilizador: Utilizador não encontrado." +msgid "Could not follow user: profile not found." +msgstr "Não foi possível seguir o utilizador: o perfil não foi encontrado." #: actions/apifriendshipscreate.php:118 #, php-format @@ -380,9 +380,9 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "Não pode deixar de seguir-se a si próprio." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Devem ser fornecidos dois nomes de utilizador ou utilizadors." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Têm de ser fornecidos dois IDs ou nomes de utilizador válidos." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -509,6 +509,10 @@ msgstr "Grupos de %s" msgid "groups on %s" msgstr "Grupos em %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "O upload falhou." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Não foi fornecido o parâmetro oauth_token." @@ -650,22 +654,26 @@ msgstr "Estado apagado." msgid "No status with that ID found." msgstr "Não foi encontrado um estado com esse ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "O cliente tem de fornecer um parâmetro 'status' com um valor." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Demasiado longo. Tamanho máx. das notas é %d caracteres." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Não encontrado." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Tamanho máx. das notas é %d caracteres, incluíndo a URL do anexo." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formato não suportado." @@ -719,6 +727,10 @@ msgstr "Notas categorizadas com %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizações categorizadas com %1$s em %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Método da API em desenvolvimento." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Anexo não foi encontrado." @@ -771,7 +783,7 @@ msgid "Preview" msgstr "Antevisão" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Apagar" @@ -1052,7 +1064,7 @@ msgid "Do not delete this notice" msgstr "Não apagar esta nota" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -1122,13 +1134,14 @@ msgid "Theme for the site." msgstr "O tema para o site." #: actions/designadminpanel.php:467 -#, fuzzy msgid "Custom theme" -msgstr "Tema do site" +msgstr "Tema personalizado" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" +"Pode fazer o upload de um tema personalizado para o StatusNet, na forma de " +"um arquivo .ZIP." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1188,11 +1201,11 @@ msgstr "Links" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "Avançado" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "CSS personalizado" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -1331,7 +1344,8 @@ msgstr "Nome alternativo inválido: \"%s\"" msgid "Could not update group." msgstr "Não foi possível actualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Não foi possível criar os nomes alternativos." @@ -2486,10 +2500,10 @@ msgstr "Actualizações que contêm o termo \"%1$s\" em %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" -"Este utilizador não aceita toques ou ainda não confirmou ou forneceu o " -"endereço electrónico." +"Este utilizador não aceita toques ou ainda não confirmou ou forneceu um " +"correio electrónico." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2564,8 +2578,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Só URLs %s sobre HTTP simples, por favor." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Formato de dados não suportado." @@ -2732,7 +2746,7 @@ msgstr "Sem acesso de escrita no directório do fundo: %s." #: actions/pathsadminpanel.php:177 #, php-format msgid "Locales directory not readable: %s." -msgstr "Sem acesso de leitura ao directório de idiomas: %s." +msgstr "Sem acesso de leitura ao directório das línguas: %s." #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." @@ -2760,11 +2774,11 @@ msgstr "Localização do site" #: actions/pathsadminpanel.php:246 msgid "Path to locales" -msgstr "Localização de idiomas" +msgstr "Localização das línguas" #: actions/pathsadminpanel.php:246 msgid "Directory path to locales" -msgstr "Localização do directório de idiomas" +msgstr "Localização do directório das línguas" #: actions/pathsadminpanel.php:250 msgid "Fancy URLs" @@ -3481,7 +3495,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repetida" @@ -3519,10 +3533,9 @@ msgstr "Fonte de respostas a %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" -"Estas são as notas de resposta a %1$s, mas %2$s ainda não recebeu nenhuma " -"resposta." +"Estas são as respostas a %1$s, mas ainda nenhuma nota foi endereçada a %2$s." #: actions/replies.php:204 #, php-format @@ -3536,11 +3549,11 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Pode tentar [dar um toque em %1$s](../%2$s) ou [publicar algo à sua atenção]" -"(%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Pode tentar [dar um toque em %1$s](../%2$s) ou [endereçar-lhe uma nota](%%%%" +"action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3628,7 +3641,7 @@ msgstr "Organização" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3719,8 +3732,8 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s ainda não adicionou nenhuma nota às favoritas. Publique algo interessante " "que mude este estado de coisas :)" @@ -3728,13 +3741,13 @@ msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s ainda não adicionou nenhuma nota às favoritas. Que tal [registar uma " -"conta](%%action.register%%) e publicar algo interessante que mude este " -"estado de coisas :)" +"conta](%%%%action.register%%%%) e publicar algo tão interessante que mude " +"este estado de coisas :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." @@ -3792,7 +3805,7 @@ msgstr "Fonte de notas do grupo %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF do grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membros" @@ -3806,11 +3819,11 @@ msgstr "(Nenhum)" msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3826,7 +3839,7 @@ msgstr "" "[Registe-se agora](%%action.register%%) para se juntar a este grupo e a " "muitos mais! ([Saber mais](%%doc.help%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3839,7 +3852,7 @@ msgstr "" "programa de Software Livre [StatusNet](http://status.net/). Os membros deste " "grupo partilham mensagens curtas acerca das suas vidas e interesses. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Gestores" @@ -3916,10 +3929,10 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"Pode tentar dar um toque em %1$s ou [publicar algo à sua atenção](%%%%action." +"Pode tentar dar um toque em %1$s ou [endereçar-lhe uma nota](%%%%action." "newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 @@ -4306,7 +4319,8 @@ msgstr "Gravar configurações do instantâneo" msgid "You are not subscribed to that profile." msgstr "Não subscreveu esse perfil." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Não foi possível gravar a subscrição." @@ -4484,10 +4498,6 @@ msgstr "" msgid "No such tag." msgstr "Categoria não foi encontrada." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Método da API em desenvolvimento." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Não bloqueou esse utilizador." @@ -4797,81 +4807,128 @@ msgstr "Versão" msgid "Author(s)" msgstr "Autores" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Não é possível processar a URL '$s'" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "o Robin acha que algo é impossível." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Nenhum ficheiro pode ter mais de %d bytes e o que enviou tinha %d bytes. " -"Tente carregar uma versão menor." +"Nenhum ficheiro pode ter mais de %1$d bytes e o que enviou tinha %2$d bytes. " +"Tente enviar uma versão mais pequena." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Um ficheiro desta dimensão excederia a sua quota de utilizador de %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Um ficheiro desta dimensão excederia a sua quota mensal de %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Nome de ficheiro inválido." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Entrada no grupo falhou." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Não faz parte do grupo." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Saída do grupo falhou." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Não foi possível actualizar o grupo local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Não foi possível criar a chave de entrada para %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Não foi encontrado nenhum nome de base de dados ou DSN." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Está proibido de enviar mensagens directas." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Não foi possível inserir a mensagem." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Não foi possível actualizar a mensagem com a nova URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Não existe o perfil (%1$d) para a nota (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" -msgstr "Erro na base de dados ao inserir a marca: %s" +msgstr "Erro na base de dados ao inserir o elemento criptográfico: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problema na gravação da nota. Demasiado longa." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problema na gravação da nota. Utilizador desconhecido." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Demasiadas notas, demasiado rápido; descanse e volte a publicar daqui a " "alguns minutos." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4879,71 +4936,120 @@ msgstr "" "Demasiadas mensagens duplicadas, demasiado rápido; descanse e volte a " "publicar daqui a alguns minutos." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Está proibido de publicar notas neste site." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problema na gravação da nota." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "O tipo fornecido ao método saveKnownGroups é incorrecto" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problema na gravação da caixa de entrada do grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"Não é possível revogar a função \"%1$s\" do utilizador #%2$d; não existe." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Não é possível revogar a função \"%1$s\" do utilizador #%2$d; erro na base " +"de dados." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Perfil não existe." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Não foi possível gravar a categoria." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Foi bloqueado de fazer subscrições" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Já subscrito!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "O utilizador bloqueou-o." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Não subscrito!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "Não foi possível apagar a auto-subscrição." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." -msgstr "Não foi possível apagar a chave de subscrição OMB." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." +msgstr "Não foi possível apagar a chave OMB da subscrição." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "Não foi possível apagar a subscrição." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Não foi possível configurar a URI do grupo." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Não foi possível configurar membros do grupo." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Não foi possível gravar a informação do grupo local." @@ -6413,7 +6519,7 @@ msgstr "" "conversa com outros utilizadores. Outros podem enviar-lhe mensagens, a que " "só você terá acesso." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "de" @@ -6472,24 +6578,24 @@ msgstr "Não foi possível gravar o ficheiro no disco." msgid "File upload stopped by extension." msgstr "Transferência do ficheiro interrompida pela extensão." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Ficheiro excede quota do utilizador." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Não foi possível mover o ficheiro para o directório de destino." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Não foi possível determinar o tipo MIME do ficheiro." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Tente usar outro tipo de %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s não é um tipo de ficheiro suportado neste servidor." @@ -6545,51 +6651,51 @@ msgstr "" "tente novamente mais tarde" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "O" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "coords." -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Nota repetida" @@ -6845,47 +6951,49 @@ msgstr "Nenhum" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" +"Este servidor não pode processar uploads de temas sem suporte do formato ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Ocorreu um erro de sistema ao transferir o ficheiro." +msgid "The theme file is missing or the upload failed." +msgstr "O ficheiro do tema não foi localizado ou o upload falhou." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 #: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy msgid "Failed saving theme." -msgstr "Falha ao actualizar avatar." +msgstr "Não foi possível gravar o tema." #: lib/themeuploader.php:139 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Tema inválido: estrutura de directórios incorrecta." #: lib/themeuploader.php:166 #, php-format msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." msgstr "" +"O tema carregado é demasiado grande; tem de ter menos de %d bytes " +"descomprimido." #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Arquivo do tema inválido: falta o ficheiro css/display.css" #: lib/themeuploader.php:205 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"Tema contém um nome de ficheiro ou de directório inválido. Use somente " +"letras ASCII, algarismos, sublinhados e o sinal de menos." #: lib/themeuploader.php:216 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "Tema contém um ficheiro do tipo '.%s', o que não é permitido." #: lib/themeuploader.php:234 -#, fuzzy msgid "Error opening theme archive." -msgstr "Erro ao actualizar o perfil remoto." +msgstr "Ocorreu um erro ao abrir o arquivo do tema." #: lib/topposterssection.php:74 msgid "Top posters" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index a12a309f34..cb77836d45 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -2,6 +2,7 @@ # # Author@translatewiki.net: Aracnus # Author@translatewiki.net: Ewout +# Author@translatewiki.net: Giro720 # Author@translatewiki.net: Luckas Blade # Author@translatewiki.net: McDutchie # Author@translatewiki.net: Vuln @@ -12,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:52+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:23+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +102,7 @@ msgstr "Esta página não existe." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -170,20 +171,20 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Você pode tentar [chamar a atenção de %1$s](../%2$s) em seu perfil ou " "[publicar alguma coisa que desperte seu interesse](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Por que não [registrar uma conta](%%%%action.register%%%%) e então chamar a " "atenção de %s ou publicar uma mensagem para sua atenção." @@ -218,7 +219,7 @@ msgstr "Atualizações de %1$s e amigos no %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -268,7 +269,7 @@ msgstr "Não foi possível salvar o perfil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -368,7 +369,8 @@ msgid "Could not delete favorite." msgstr "Não foi possível excluir a favorita." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Não é possível seguir o usuário: Usuário não encontrado." #: actions/apifriendshipscreate.php:118 @@ -384,8 +386,9 @@ msgstr "Não é possível deixar de seguir o usuário: Usuário não encontrado. msgid "You cannot unfollow yourself." msgstr "Você não pode deixar de seguir você mesmo!" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Duas IDs de usuário ou screen_names devem ser informados." #: actions/apifriendshipsshow.php:134 @@ -515,6 +518,11 @@ msgstr "Grupos de %s" msgid "groups on %s" msgstr "grupos no %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Enviar arquivo" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Não foi fornecido nenhum parâmetro oauth_token" @@ -662,22 +670,26 @@ msgstr "A mensagem foi excluída." msgid "No status with that ID found." msgstr "Não foi encontrada nenhuma mensagem com esse ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Está muito extenso. O tamanho máximo é de %s caracteres." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Não encontrado." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "O tamanho máximo da mensagem é de %s caracteres" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Formato não suportado." @@ -731,6 +743,10 @@ msgstr "Mensagens etiquetadas como %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Mensagens etiquetadas como %1$s no %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "O método da API está em construção." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Este anexo não existe." @@ -784,7 +800,7 @@ msgid "Preview" msgstr "Visualização" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Excluir" @@ -1066,7 +1082,7 @@ msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -1346,7 +1362,8 @@ msgstr "Apelido inválido: \"%s\"" msgid "Could not update group." msgstr "Não foi possível atualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Não foi possível criar os apelidos." @@ -2511,8 +2528,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Mensagens correspondentes aos termos \"%1$s\" no %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Esse usuário não permite ser chamado à atenção ou ainda não confirmou ou " "configurou seu e-mail." @@ -2591,8 +2609,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Por favor, somente URLs %s sobre HTTP puro." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Não é um formato de dados suportado." @@ -3508,7 +3526,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Repetida" @@ -3543,10 +3561,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Fonte de respostas para %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Esse é o fluxo de mensagens de resposta para %1$s, mas %2$s ainda não " "recebeu nenhuma mensagem direcionada a ele(a)." @@ -3561,10 +3579,10 @@ msgstr "" "pessoas ou [associe-se a grupos](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Você pode tentar [chamar a atenção de %1$s](../%2$s) ou [publicar alguma " "coisa que desperte seu interesse](%%%%action.newnotice%%%%?status_textarea=%3" @@ -3656,7 +3674,7 @@ msgstr "Organização" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3744,20 +3762,20 @@ msgstr "" "para destacar." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s não adicionou nenhuma mensagem às suas favoritas. Publique alguma coisa " "interessante para para as pessoas marcarem como favorita. :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s não adicionou nenhuma mensagem às suas favoritas. Por que você não " "[registra uma conta](%%%%action.register%%%%) e publica alguma coisa " @@ -3819,7 +3837,7 @@ msgstr "Fonte de mensagens do grupo %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF para o grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Membros" @@ -3833,11 +3851,11 @@ msgstr "(Nenhum)" msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3853,7 +3871,7 @@ msgstr "" "para se tornar parte deste grupo e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3866,7 +3884,7 @@ msgstr "" "[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " "sobre suas vidas e interesses. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administradores" @@ -3943,10 +3961,10 @@ msgstr "" "mensagem. Que tal começar agora? :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." 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)." @@ -4333,7 +4351,8 @@ msgstr "Salvar as configurações de estatísticas" msgid "You are not subscribed to that profile." msgstr "Você não está assinando esse perfil." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Não foi possível salvar a assinatura." @@ -4511,10 +4530,6 @@ msgstr "" msgid "No such tag." msgstr "Esta etiqueta não existe." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "O método da API está em construção." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Você não bloqueou esse usuário." @@ -4828,80 +4843,128 @@ msgstr "Versão" msgid "Author(s)" msgstr "Autor(es)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Nenhum arquivo pode ser maior que %d bytes e o arquivo que você enviou " "possui %d bytes. Experimente enviar uma versão menor." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Um arquivo deste tamanho excederá a sua conta de %d bytes." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Um arquivo deste tamanho excederá a sua conta mensal de %d bytes." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Tamanho inválido." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Não foi possível se unir ao grupo." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Não é parte de um grupo." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Não foi possível deixar o grupo." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Não foi possível atualizar o grupo local." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Não foi possível criar o token de autenticação para %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Você está proibido de enviar mensagens diretas." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Não foi possível inserir a mensagem." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Não foi possível atualizar a mensagem com a nova URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Erro no banco de dados durante a inserção da hashtag: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problema no salvamento da mensagem. Ela é muito extensa." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problema no salvamento da mensagem. Usuário desconhecido." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Muitas mensagens em um período curto de tempo; dê uma respirada e publique " "novamente daqui a alguns minutos." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4909,71 +4972,122 @@ msgstr "" "Muitas mensagens duplicadas em um período curto de tempo; dê uma respirada e " "publique novamente daqui a alguns minutos." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Você está proibido de publicar mensagens neste site." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problema no salvamento da mensagem." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problema no salvamento das mensagens recebidas do grupo." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "O usuário não tem perfil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Não foi possível salvar os avisos do site." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Você está proibido de assinar." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Já assinado!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "O usuário bloqueou você." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Não assinado!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "Não foi possível excluir a auto-assinatura." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "Não foi possível excluir o token de assinatura OMB." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Não foi possível excluir a assinatura." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Não foi possível definir a URI do grupo." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Não foi possível configurar a associação ao grupo." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Não foi possível salvar a informação do grupo local." @@ -6447,7 +6561,7 @@ msgstr "" "privadas para envolver outras pessoas em uma conversa. Você também pode " "receber mensagens privadas." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "de" @@ -6508,24 +6622,24 @@ msgstr "Erro ao salvar o arquivo no disco." msgid "File upload stopped by extension." msgstr "O arquivo a ser enviado foi barrado por causa de sua extensão." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "O arquivo excede a quota do usuário." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Não foi possível mover o arquivo para o diretório de destino." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Não foi possível determinar o tipo MIME do arquivo." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Tente usar outro formato %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s não é um tipo de arquivo suportado neste servidor." @@ -6581,51 +6695,51 @@ msgstr "" "esperado. Por favor, tente novamente mais tarde." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "L" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "O" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "em" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Mensagem repetida" @@ -6675,7 +6789,7 @@ msgstr "Respostas" #: lib/personalgroupnav.php:114 msgid "Favorites" -msgstr "Favoritas" +msgstr "Favoritos" #: lib/personalgroupnav.php:125 msgid "Inbox" @@ -6881,47 +6995,48 @@ msgstr "Nenhuma" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" +"Este servidor não pode processar o envio de temas sem suporte ao formato ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Erro no sistema durante o envio do arquivo." +msgid "The theme file is missing or the upload failed." +msgstr "O arquivo do tema não foi localizado ou ocorreu uma erro no envio." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 #: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy msgid "Failed saving theme." -msgstr "Não foi possível atualizar o avatar." +msgstr "Não foi possível salvar o tema." #: lib/themeuploader.php:139 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Tema inválido: estrutura de diretórios incorreta." #: lib/themeuploader.php:166 #, php-format msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." msgstr "" +"O tema enviado é muito grande; ele deve ter menos de %d bytes descomprimido." #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Arquivo de tema inválido: está faltando o arquivo css/display.css" #: lib/themeuploader.php:205 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"O tema contém um nome de arquivo ou de diretório inválido. Use somente " +"caracteres ASCII, números e os sinais de sublinhado e hífen." #: lib/themeuploader.php:216 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "O tema contém um arquivo do tipo '.%s', que não é permitido." #: lib/themeuploader.php:234 -#, fuzzy msgid "Error opening theme archive." -msgstr "Ocorreu um erro durante a atualização do perfil remoto." +msgstr "Ocorreu um erro ao abrir o arquivo do tema." #: lib/topposterssection.php:74 msgid "Top posters" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index d276b197a7..8692129457 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -12,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:04:57+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:25+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Нет такой страницы." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -172,21 +172,20 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Вы можете попробовать [«подтолкнуть» %1$s](../%2$s) из профиля или [написать " -"что-нибудь для привлечения его или её внимания](%%%%action.newnotice%%%%?" -"status_textarea=%3$s)." +"Вы можете попробовать «[подтолкнуть %1$s](../%2$s)» из их профиля или " +"[написать им что-нибудь](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" -"Почему бы не [зарегистрироваться](%%action.register%%), чтобы «подтолкнуть» %" -"s или отправить запись для привлечения его или её внимания?" +"Почему бы не [зарегистрироваться](%%%%action.register%%%%), чтобы " +"«подтолкнуть» %s или оставить запись для них?" #. TRANS: H1 text #: actions/all.php:182 @@ -218,7 +217,7 @@ msgstr "Обновлено от %1$s и его друзей на %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -268,7 +267,7 @@ msgstr "Не удаётся сохранить профиль." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -368,10 +367,8 @@ msgid "Could not delete favorite." msgstr "Не удаётся удалить любимую запись." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" -"Не удаётся следовать за пользователем, т. к. такого пользователя не " -"существует." +msgid "Could not follow user: profile not found." +msgstr "Не удаётся следовать за пользователем: профиль не найден." #: actions/apifriendshipscreate.php:118 #, php-format @@ -388,9 +385,9 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "Вы не можете перестать следовать за собой." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Надо представить два имени пользователя или кода." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Необходимо задать два идентификатора или screen_names." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -518,6 +515,10 @@ msgstr "Группы %s" msgid "groups on %s" msgstr "группы на %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Загрузка не удалась." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Не задан параметр oauth_token." @@ -661,22 +662,26 @@ msgstr "Статус удалён." msgid "No status with that ID found." msgstr "Не найдено статуса с таким ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Клиент должен предоставить параметр «status» со значением." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Слишком длинная запись. Максимальная длина — %d знаков." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Не найдено." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Максимальная длина записи — %d символов, включая URL вложения." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Неподдерживаемый формат." @@ -730,6 +735,10 @@ msgstr "Записи с тегом %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Обновления с тегом %1$s на %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Метод API реконструируется." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Нет такого вложения." @@ -783,7 +792,7 @@ msgid "Preview" msgstr "Просмотр" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Удалить" @@ -1064,7 +1073,7 @@ msgid "Do not delete this notice" msgstr "Не удалять эту запись" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -1342,7 +1351,8 @@ msgstr "Неверный алиас: «%s»" msgid "Could not update group." msgstr "Не удаётся обновить информацию о группе." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Не удаётся создать алиасы." @@ -2506,10 +2516,10 @@ msgstr "Все обновления, соответствующие поиско #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" -"Этот пользователь не разрешает \"подталкивать\" его, или ещё не подтверждён " -"или ещё не представил свой электронный адрес." +"Этот пользователь не разрешает «подталкивать» его или ещё не указал свой " +"email-адрес." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2583,8 +2593,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Только %s URL в простом HTTP, пожалуйста." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Неподдерживаемый формат данных." @@ -3018,7 +3028,7 @@ msgstr "Часовой пояс не выбран." #: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." -msgstr "Слишком длинный язык (более 50 символов). " +msgstr "Слишком длинный язык (не может быть более 50 символов)." #: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format @@ -3491,7 +3501,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Повторено" @@ -3529,9 +3539,10 @@ msgstr "Лента записей для %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" -"Эта лента содержит ответы на записи %1$s, однако %2$s пока не получал их." +"Эта лента содержит ответы для %1$s, однако %2$s пока не получил уведомление " +"о них." #: actions/replies.php:204 #, php-format @@ -3545,12 +3556,11 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Вы можете попробовать [«подтолкнуть» %1$s](../%2$s) или [написать что-нибудь " -"для привлечения его или её внимания](%%%%action.newnotice%%%%?" -"status_textarea=%3$s)." +"Вы можете попробовать «[подтолкнуть %1$s](../%2$s)» или [написать им что-" +"нибудь](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3639,7 +3649,7 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистика" @@ -3729,8 +3739,8 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s пока не выбрал ни одной любимой записи. Напишите такую интересную запись, " "которую он добавит её в число любимых :)" @@ -3738,11 +3748,11 @@ msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s пока не добавил ни одноз записи в любимые. Почему бы не " +"%s пока не добавил ни одной записи в любимые. Почему бы не " "[зарегистрироваться](%%%%action.register%%%%) и не написать что-нибудь " "интересное, что понравилось бы этому пользователю? :)" @@ -3802,7 +3812,7 @@ msgstr "Лента записей группы %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF для группы %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Участники" @@ -3816,11 +3826,11 @@ msgstr "(пока ничего нет)" msgid "All members" msgstr "Все участники" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Создано" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3836,7 +3846,7 @@ msgstr "" "action.register%%%%), чтобы стать участником группы и получить множество " "других возможностей! ([Читать далее](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3849,7 +3859,7 @@ msgstr "" "обеспечении [StatusNet](http://status.net/). Участники обмениваются " "короткими сообщениями о своей жизни и интересах. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Администраторы" @@ -3926,12 +3936,11 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" -"Вы можете попробовать «подтолкнуть» %1$s или [написать что-нибудь для " -"привлечения его или её внимания](%%%%action.newnotice%%%%?status_textarea=%2" -"$s)." +"Вы можете попробовать «подтолкнуть» %1$s или [написать что-нибудь для них](%%%" +"%action.newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -3955,10 +3964,10 @@ msgid "" "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " msgstr "" -"**%s** является зарегистрированным участником %%%%site.name%%%% - сайта для " +"**%s** является зарегистрированным участником %%%%site.name%%%% — сайта для " "[микроблогинга](http://ru.wikipedia.org/wiki/Микроблоггинг), созданного с " "использованием свободного программного обеспечения [StatusNet](http://status." -"net/)." +"net/). " #: actions/showstream.php:305 #, php-format @@ -4320,7 +4329,8 @@ msgstr "Сохранить настройки снимка" msgid "You are not subscribed to that profile." msgstr "Вы не подписаны на этот профиль." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Не удаётся сохранить подписку." @@ -4501,10 +4511,6 @@ msgstr "" msgid "No such tag." msgstr "Нет такого тега." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Метод API реконструируется." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Вы не заблокировали этого пользователя." @@ -4814,80 +4820,127 @@ msgstr "Версия" msgid "Author(s)" msgstr "Автор(ы)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Невозможно обработать URL «%s»" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Робин считает, что это невозможно." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" -"Файл не может быть больше %d байт, тогда как отправленный вами файл содержал " -"%d байт. Попробуйте загрузить меньшую версию." +"Файл не может быть больше %1$d байт, тогда как отправленный вами файл " +"содержал %2$d байт. Попробуйте загрузить меньшую версию." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Файл такого размера превысит вашу пользовательскую квоту в %d байта." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Файл такого размера превысит вашу месячную квоту в %d байта." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Неверное имя файла." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Не удаётся присоединиться к группе." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Не является частью группы." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Не удаётся покинуть группу." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Не удаётся обновить локальную группу." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Не удаётся создать токен входа для %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Имя базы данных или DSN не найдено." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Вы заблокированы от отправки прямых сообщений." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Не удаётся вставить сообщение." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Не удаётся обновить сообщение с новым URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Нет такого профиля (%1$d) для записи (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Ошибка баз данных при вставке хеш-тегов: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Проблемы с сохранением записи. Слишком длинно." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Проблема при сохранении записи. Неизвестный пользователь." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Слишком много записей за столь короткий срок; передохните немного и " "попробуйте вновь через пару минут." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4895,71 +4948,120 @@ msgstr "" "Слишком много одинаковых записей за столь короткий срок; передохните немного " "и попробуйте вновь через пару минут." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Вам запрещено поститься на этом сайте (бан)" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "Для saveKnownGroups указан неверный тип" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"Не удаётся отозвать право «%1%s» для пользователя #%2$d; пользователь не " +"существует." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Не удаётся отозвать право «%1$s» для пользователя #%2$d; ошибка базы данных." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Отсутствующий профиль." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Не удаётся сохранить тег." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Вы заблокированы от подписки." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Уже подписаны!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Пользователь заблокировал Вас." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Не подписаны!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." -msgstr "Невозможно удалить самоподписку." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." +msgstr "Невозможно удалить подписку на самого себя." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." msgstr "Не удаётся удалить подписочный жетон OMB." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "Не удаётся удалить подписку." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Не удаётся создать группу." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Не удаётся назначить URI группы." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Не удаётся назначить членство в группе." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Не удаётся сохранить информацию о локальной группе." @@ -6431,9 +6533,9 @@ msgstr "" "вовлечения других пользователей в разговор. Сообщения, получаемые от других " "людей, видите только вы." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" -msgstr "от " +msgstr "от" #: lib/mailhandler.php:37 msgid "Could not parse message." @@ -6489,24 +6591,24 @@ msgstr "Не удаётся записать файл на диск." msgid "File upload stopped by extension." msgstr "Загрузка файла остановлена по расширению." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Файл превышает пользовательскую квоту." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Файл не может быть перемещён в целевую директорию." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Не удаётся определить mime-тип файла." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Попробуйте использовать другой формат %s." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "Тип файла %s не поддерживается не этом сервере." @@ -6562,51 +6664,51 @@ msgstr "" "времени, чем ожидалось; повторите попытку позже" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "с. ш." #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "ю. ш." #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "в. д." #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "з. д." -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\" %4$s %5$u°%6$u'%7$u\" %8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" -msgstr "на" +msgstr "из" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" -msgstr "в контексте" +msgstr "переписка" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Запись повторена" @@ -6864,8 +6966,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "Этот сервер не может обработать загруженные темы без поддержки ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Ошибка при загрузке файла темы." +msgid "The theme file is missing or the upload failed." +msgstr "Файл темы отсутствует или произошёл сбой при загрузке." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/statusnet.pot b/locale/statusnet.pot index c811492881..9618100557 100644 --- a/locale/statusnet.pot +++ b/locale/statusnet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-21 18:15+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+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" @@ -95,7 +95,7 @@ msgstr "" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -162,15 +162,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -203,7 +203,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -251,7 +251,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -347,7 +347,7 @@ msgid "Could not delete favorite." msgstr "" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +msgid "Could not follow user: profile not found." msgstr "" #: actions/apifriendshipscreate.php:118 @@ -363,8 +363,8 @@ msgstr "" msgid "You cannot unfollow yourself." msgstr "" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -492,6 +492,10 @@ msgstr "" msgid "groups on %s" msgstr "" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -630,22 +634,26 @@ msgstr "" msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "" @@ -699,6 +707,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "" @@ -751,7 +763,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "" @@ -1024,7 +1036,7 @@ msgid "Do not delete this notice" msgstr "" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "" @@ -1298,7 +1310,8 @@ msgstr "" msgid "Could not update group." msgstr "" -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "" @@ -2367,7 +2380,7 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2442,8 +2455,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3297,7 +3310,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "" @@ -3335,7 +3348,7 @@ msgstr "" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3348,8 +3361,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3438,7 +3451,7 @@ msgstr "" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "" @@ -3523,16 +3536,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3591,7 +3604,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "" @@ -3605,11 +3618,11 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3619,7 +3632,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3628,7 +3641,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -3703,8 +3716,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4071,7 +4084,8 @@ msgstr "" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "" @@ -4235,10 +4249,6 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "" @@ -4524,146 +4534,239 @@ msgstr "" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "" -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "" -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." msgstr "" -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "" @@ -5968,7 +6071,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "" @@ -6023,24 +6126,24 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6094,51 +6197,51 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index 5d8461ca00..68ba9a6a9a 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -1,6 +1,7 @@ # Translation of StatusNet to Swedish # # Author@translatewiki.net: Jamminjohn +# Author@translatewiki.net: Kjell # Author@translatewiki.net: McDutchie # -- # This file is distributed under the same license as the StatusNet package. @@ -9,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:03+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:26+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +100,7 @@ msgstr "Ingen sådan sida" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -166,20 +167,20 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Du kan prova att [knuffa %1$s](../%2$s) från dennes profil eller [skriva " "någonting för hans eller hennes uppmärksamhet](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Varför inte [registrera ett konto](%%%%action.register%%%%) och sedan knuffa " "%s eller skriva en notis för hans eller hennes uppmärksamhet." @@ -214,7 +215,7 @@ msgstr "Uppdateringar från %1$s och vänner på %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -262,7 +263,7 @@ msgstr "Kunde inte spara profil." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -360,7 +361,8 @@ msgid "Could not delete favorite." msgstr "Kunde inte ta bort favoriten." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "Kunde inte följa användare: användare hittades inte." #: actions/apifriendshipscreate.php:118 @@ -376,8 +378,9 @@ msgstr "Kunde inte sluta följa användaren: användaren hittades inte." msgid "You cannot unfollow yourself." msgstr "Du kan inte sluta följa dig själv." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "Två användar-ID:n eller screen_names måste tillhandahållas." #: actions/apifriendshipsshow.php:134 @@ -506,6 +509,11 @@ msgstr "%s grupper" msgid "groups on %s" msgstr "grupper på %s" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Ladda upp fil" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Ingen oauth_token-parameter angiven." @@ -647,22 +655,26 @@ msgstr "Status borttagen." msgid "No status with that ID found." msgstr "Ingen status med det ID:t hittades." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Det är för långt. Maximal notisstorlek är %d tecken." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Hittades inte." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maximal notisstorlek är %d tecken, inklusive webbadress för bilaga." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Format som inte stödjs." @@ -716,6 +728,10 @@ msgstr "Notiser taggade med %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Uppdateringar taggade med %1$s på %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API-metoden är under uppbyggnad." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Ingen sådan bilaga." @@ -769,7 +785,7 @@ msgid "Preview" msgstr "Förhandsgranska" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Ta bort" @@ -1051,7 +1067,7 @@ msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -1121,13 +1137,12 @@ msgid "Theme for the site." msgstr "Tema för webbplatsen." #: actions/designadminpanel.php:467 -#, fuzzy msgid "Custom theme" -msgstr "Webbplatstema" +msgstr "Anpassat tema" #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Du kan ladda upp ett eget StatusNet-tema som ett .ZIP-arkiv." #: actions/designadminpanel.php:486 lib/designsettings.php:101 msgid "Change background image" @@ -1187,11 +1202,11 @@ msgstr "Länkar" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "Avancerat" #: actions/designadminpanel.php:655 msgid "Custom CSS" -msgstr "" +msgstr "Anpassad CSS" #: actions/designadminpanel.php:676 lib/designsettings.php:247 msgid "Use defaults" @@ -1330,7 +1345,8 @@ msgstr "Ogiltigt alias: \"%s\"" msgid "Could not update group." msgstr "Kunde inte uppdatera grupp." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Kunde inte skapa alias." @@ -2483,8 +2499,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Uppdateringar som matchar söksträngen \"%1$s\" på %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Denna användare har inte tillåtit knuffar eller har inte bekräftat eller " "angett sitt e-post än." @@ -2562,8 +2579,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "Endast %s-webbadresser över vanlig HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Ett dataformat som inte stödjs" @@ -3475,7 +3492,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Upprepad" @@ -3510,10 +3527,10 @@ msgid "Replies feed for %s (Atom)" msgstr "Flöde med svar för %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Detta är tidslinjen som visar svar till %s1$ men %2$s har inte tagit emot en " "notis för dennes uppmärksamhet än." @@ -3528,10 +3545,10 @@ msgstr "" "personer eller [gå med i grupper](%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Du kan prova att [knuffa %1$s](../%2$s) eller [posta någonting för hans " "eller hennes uppmärksamhet](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3622,7 +3639,7 @@ msgstr "Organisation" msgid "Description" msgstr "Beskrivning" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistik" @@ -3711,20 +3728,20 @@ msgstr "" "att sätta strålkastarljuset på." #: actions/showfavorites.php:208 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" "%s har inte lagt till några notiser till sina favoriter ännu. Posta något " "intressant de skulle lägga till sina favoriter :)" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" "%s har inte lagt till några notiser till sina favoriter ännu. Varför inte " "[registrera ett konto](%%%%action.register%%%%) och posta något intressant " @@ -3786,7 +3803,7 @@ msgstr "Flöde av notiser för %s grupp (Atom)" msgid "FOAF for %s group" msgstr "FOAF för %s grupp" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" @@ -3800,11 +3817,11 @@ msgstr "(Ingen)" msgid "All members" msgstr "Alla medlemmar" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Skapad" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3819,7 +3836,7 @@ msgstr "" "sina liv och intressen. [Gå med nu](%%%%action.register%%%%) för att bli en " "del av denna grupp och många fler! ([Läs mer](%%%%doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3832,7 +3849,7 @@ msgstr "" "[StatusNet](http://status.net/). Dess medlemmar delar korta meddelande om " "sina liv och intressen. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Administratörer" @@ -3907,10 +3924,10 @@ msgstr "" "inte börja nu?" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." 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)." @@ -4296,7 +4313,8 @@ msgstr "Spara inställningar för ögonblicksbild" msgid "You are not subscribed to that profile." msgstr "Du är inte prenumerat hos den profilen." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Kunde inte spara prenumeration." @@ -4475,10 +4493,6 @@ msgstr "" msgid "No such tag." msgstr "Ingen sådan tagg." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API-metoden är under uppbyggnad." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Du har inte blockerat denna användared." @@ -4791,80 +4805,128 @@ msgstr "Version" msgid "Author(s)" msgstr "Författare" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format +msgid "Cannot process URL '%s'" +msgstr "Webbadressen '%s' kan inte bearbeta" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Robin tycker att något är omöjligt" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, fuzzy, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Inga filer får vara större än %d byte och filen du skickade var %d byte. " "Prova att ladda upp en mindre version." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "En så här stor fil skulle överskrida din användarkvot på %d byte." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "En sådan här stor fil skulle överskrida din månatliga kvot på %d byte." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Ogiltig storlek." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Gruppanslutning misslyckades." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Inte med i grupp." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Grupputträde misslyckades." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Kunde inte uppdatera lokal grupp." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Kunde inte skapa inloggnings-token för %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Du är utestängd från att skicka direktmeddelanden." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Kunde inte infoga meddelande." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Kunde inte uppdatera meddelande med ny URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Databasfel vid infogning av hashtag: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Problem vid sparande av notis. För långt." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Problem vid sparande av notis. Okänd användare." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "För många notiser för snabbt; ta en vilopaus och posta igen om ett par " "minuter." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4872,71 +4934,122 @@ msgstr "" "För många duplicerade meddelanden för snabbt; ta en vilopaus och posta igen " "om ett par minuter." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Du är utestängd från att posta notiser på denna webbplats." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Problem med att spara notis." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Användaren har ingen profil." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Kunde inte spara webbplatsnotis." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Du har blivit utestängd från att prenumerera." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Redan prenumerant!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Användaren har blockerat dig." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Inte prenumerant!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +#, fuzzy +msgid "Could not delete self-subscription." msgstr "Kunde inte ta bort själv-prenumeration." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +#, fuzzy +msgid "Could not delete subscription OMB token." msgstr "Kunde inte radera OMB prenumerations-token." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Kunde inte ta bort prenumeration." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Kunde inte skapa grupp." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Kunde inte ställa in grupp-URI." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Kunde inte ställa in gruppmedlemskap." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Kunde inte spara lokal gruppinformation." @@ -6118,6 +6231,9 @@ msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" +"Om du anser att kontot används oriktigt kan du blockera det från listan över " +"dina prenumeranter och rapportera det som skräppost till administratörer på %" +"s" #. TRANS: Main body of new-subscriber notification e-mail #: lib/mail.php:254 @@ -6394,7 +6510,7 @@ msgstr "" "engagera andra användare i konversationen. Folk kan skicka meddelanden till " "dig som bara du ser." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "från" @@ -6453,24 +6569,24 @@ msgstr "Misslyckades att skriva fil till disk." msgid "File upload stopped by extension." msgstr "Filuppladdningen stoppad pga filändelse" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Fil överstiger användaren kvot." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Fil kunde inte flyttas till destinationskatalog." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Kunde inte fastställa filens MIME-typ." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "Försök använda ett annat %s-format." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s är en filtyp som saknar stöd på denna server." @@ -6526,51 +6642,51 @@ msgstr "" "god försök igen senare" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "Ö" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "V" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "på" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Svara på denna notis" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Notis upprepad" @@ -6825,48 +6941,48 @@ msgstr "Ingen" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "Denna server kan inte hantera temauppladdningar utan ZIP-stöd." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Systemfel vid uppladdning av fil." +msgid "The theme file is missing or the upload failed." +msgstr "Temafilen saknas eller uppladdningen misslyckades." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 #: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy msgid "Failed saving theme." -msgstr "Misslyckades uppdatera avatar." +msgstr "Kunde inte spara tema." #: lib/themeuploader.php:139 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Ogiltigt tema: dålig katalogstruktur." #: lib/themeuploader.php:166 #, php-format msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." msgstr "" +"Uppladdat tema är för stort, måste vara mindre än %d byte okomprimerat." #: lib/themeuploader.php:178 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Ogiltigt temaarkiv: filen css/display.css saknas" #: lib/themeuploader.php:205 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"Tema innehåller ogiltigt fil- eller mappnamn. Använd bara ASCII-bokstäver, " +"siffror, understreck och minustecken." #: lib/themeuploader.php:216 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "Tema innehåller fil av typen '.%s', vilket inte är tillåtet." #: lib/themeuploader.php:234 -#, fuzzy msgid "Error opening theme archive." -msgstr "Fel vid uppdatering av fjärrprofil." +msgstr "Fel vid öppning temaarkiv." #: lib/topposterssection.php:74 msgid "Top posters" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index c5d30c58a5..e83ab4a304 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:08+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:28+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "అటువంటి పేజీ లేదు." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -163,18 +163,19 @@ msgstr "ఇతరులకి చందా చేరండి, [ఏదైనా #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:146 -#, php-format +#, fuzzy, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" +"[ఈ విషయంపై](%%%%action.newnotice%%%%?status_textarea=%s) వ్రాసే మొదటివారు మీరే అవ్వండి!" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." -msgstr "" +"post a notice to them." +msgstr "[ఒక ఖాతాని నమోదుచేసుకుని](%%action.register%%) మీరే మొదట వ్రాసేవారు ఎందుకు కాకూడదు!" #. TRANS: H1 text #: actions/all.php:182 @@ -206,7 +207,7 @@ msgstr "%2$sలో %1$s మరియు స్నేహితుల నుండ #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -257,7 +258,7 @@ msgstr "ప్రొఫైలుని భద్రపరచలేకున్ #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -354,7 +355,8 @@ msgid "Could not delete favorite." msgstr "ఇష్టాంశాన్ని తొలగించలేకపోయాం." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "వాడుకరిని అనుసరించలేకపోయాం: వాడుకరి కనబడలేదు." #: actions/apifriendshipscreate.php:118 @@ -371,8 +373,8 @@ msgstr "ఓపెన్ఐడీ ఫారమును సృష్టించ msgid "You cannot unfollow yourself." msgstr "మిమ్మల్ని మీరే అననుసరించలేరు." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -501,6 +503,11 @@ msgstr "%s గుంపులు" msgid "groups on %s" msgstr "%s పై గుంపులు" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "ఫైలుని ఎక్కించు" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -642,22 +649,26 @@ msgstr "స్థితిని తొలగించాం." msgid "No status with that ID found." msgstr "ఆ IDతో ఏ నోటీసు కనబడలేదు." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "అది చాలా పొడవుంది. గరిష్ఠ నోటీసు పరిమాణం %d అక్షరాలు." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "కనబడలేదు." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "గరిష్ఠ నోటీసు పొడవు %d అక్షరాలు, జోడింపు URLని కలుపుకుని." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "" @@ -711,6 +722,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 msgid "No such attachment." msgstr "అటువంటి జోడింపు లేదు." @@ -765,7 +780,7 @@ msgid "Preview" msgstr "మునుజూపు" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "తొలగించు" @@ -1044,7 +1059,7 @@ msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -1178,7 +1193,7 @@ msgstr "లంకెలు" #: actions/designadminpanel.php:651 msgid "Advanced" -msgstr "" +msgstr "ఉన్నత" #: actions/designadminpanel.php:655 msgid "Custom CSS" @@ -1322,7 +1337,8 @@ msgstr "తప్పుడు మారుపేరు: \"%s\"" msgid "Could not update group." msgstr "గుంపుని తాజాకరించలేకున్నాం." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "మారుపేర్లని సృష్టించలేకపోయాం." @@ -2442,7 +2458,7 @@ msgstr "\"%s\"తో సరిపోలే అన్ని తాజాకరణ #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2517,8 +2533,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3414,7 +3430,7 @@ msgstr "మీ నోటీసుని మీరే పునరావృతి msgid "You already repeated that notice." msgstr "మీరు ఇప్పటికే ఆ నోటీసుని పునరావృతించారు." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" @@ -3451,10 +3467,10 @@ msgid "Replies feed for %s (Atom)" msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "ఇది %1$sకి వచ్చిన స్పందనలని చూపించే కాలరేఖ కానీ %2$s దృష్టికి ఇంకా ఎవరూ ఏమీ పంపించలేదు." #: actions/replies.php:204 @@ -3467,11 +3483,12 @@ msgstr "" "(%%action.groups%%)." #: actions/replies.php:206 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" +"[ఈ విషయంపై](%%%%action.newnotice%%%%?status_textarea=%s) వ్రాసే మొదటివారు మీరే అవ్వండి!" #: actions/repliesrss.php:72 #, php-format @@ -3563,7 +3580,7 @@ msgstr "సంస్ధ" msgid "Description" msgstr "వివరణ" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "గణాంకాలు" @@ -3650,17 +3667,19 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" +"%sకి చందాదార్లు ఎవరూ లేరు. [ఒక ఖాతాని నమోదు చేసుకుని](%%%%action.register%%%%) మీరు " +"ఎందుకు మొదటి చందాదారు కాకూడదు?" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." @@ -3718,7 +3737,7 @@ msgstr "%s యొక్క సందేశముల ఫీడు" msgid "FOAF for %s group" msgstr "%s గుంపు" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "సభ్యులు" @@ -3732,11 +3751,11 @@ msgstr "(ఏమీలేదు)" msgid "All members" msgstr "అందరు సభ్యులూ" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "సృష్టితం" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3752,7 +3771,7 @@ msgstr "" "చాల వాటిలో భాగస్తులవ్వడానికి [ఇప్పుడే చేరండి](%%%%action.register%%%%)! ([మరింత చదవండి](%%%%" "doc.help%%%%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3761,7 +3780,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "నిర్వాహకులు" @@ -3835,11 +3854,12 @@ msgstr "" "ఈమధ్యే ఏదైనా ఆసక్తికరమైనది చూసారా? మీరు ఇంకా నోటీసులేమీ వ్రాయలేదు, మొదలుపెట్టడానికి ఇదే మంచి సమయం :)" #: actions/showstream.php:207 -#, php-format +#, fuzzy, php-format msgid "" -"You can try to nudge %1$s or [post something to his or her attention](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" +"[ఈ విషయంపై](%%%%action.newnotice%%%%?status_textarea=%s) వ్రాసే మొదటివారు మీరే అవ్వండి!" #: actions/showstream.php:243 #, php-format @@ -4215,7 +4235,8 @@ msgstr "సైటు అమరికలను భద్రపరచు" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "చందాని సృష్టించలేకపోయాం." @@ -4385,10 +4406,6 @@ msgstr "" msgid "No such tag." msgstr "అటువంటి ట్యాగు లేదు." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "మీరు ఆ వాడుకరిని నిరోధించలేదు." @@ -4679,151 +4696,247 @@ msgstr "సంచిక" msgid "Author(s)" msgstr "రచయిత(లు)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "తప్పుడు దస్త్రపుపేరు.." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "గుంపులో చేరడం విఫలమైంది." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "గుంపులో భాగం కాదు." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "గుంపు నుండి వైదొలగడం విఫలమైంది." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "స్థానిక గుంపుని తాజాకరించలేకున్నాం." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "మారుపేర్లని సృష్టించలేకపోయాం." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "నేరుగా సందేశాలు పంపడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "నోటీసుని భద్రపరచడంలో పొరపాటు. చాలా పొడవుగా ఉంది." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "నోటీసుని భద్రపరచడంలో పొరపాటు. గుర్తుతెలియని వాడుకరి." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "చాలా ఎక్కువ నోటీసులు అంత వేగంగా; కాస్త ఊపిరి తీసుకుని మళ్ళీ కొన్ని నిమిషాల తర్వాత వ్రాయండి." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "ఈ సైటులో నోటీసులు రాయడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "వాడుకరికి ప్రొఫైలు లేదు." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "చందాచేరడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "ఇప్పటికే చందాచేరారు!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "వాడుకరి మిమ్మల్ని నిరోధించారు." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "చందాదార్లు" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "గుంపుని సృష్టించలేకపోయాం." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "చందాని సృష్టించలేకపోయాం." @@ -6245,7 +6358,7 @@ msgstr "" "మీకు అంతరంగిక సందేశాలు లేవు. ఇతర వాడుకరులతో సంభాషణకై మీరు వారికి అంతరంగిక సందేశాలు " "పంపించవచ్చు. మీ కంటికి మాత్రమే కనబడేలా వారు మీకు సందేశాలు పంపవచ్చు." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "నుండి" @@ -6300,25 +6413,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "వాడుకరిని తాజాకరించలేకున్నాం." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6375,52 +6488,52 @@ msgstr "" "కాసేపాగి ప్రయత్నించండి" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "ఉ" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "ద" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "తూ" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "ప" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "సృష్టితం" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "నోటీసుని పునరావృతించారు" @@ -6684,7 +6797,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 8f59d84765..18140c3e02 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:12+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:29+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "Böyle bir durum mesajı yok." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -173,15 +173,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -215,7 +215,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +266,7 @@ msgstr "Profil kaydedilemedi." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -366,8 +366,9 @@ msgid "Could not delete favorite." msgstr "" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +#, fuzzy +msgid "Could not follow user: profile not found." +msgstr "Sunucuya yönlendirme yapılamadı: %s" #: actions/apifriendshipscreate.php:118 #, php-format @@ -384,8 +385,8 @@ msgstr "Sunucuya yönlendirme yapılamadı: %s" msgid "You cannot unfollow yourself." msgstr "Kullanıcı güncellenemedi." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -520,6 +521,11 @@ msgstr "" msgid "groups on %s" msgstr "" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Yükle" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -666,24 +672,28 @@ msgstr "Avatar güncellendi." msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" "Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 #, fuzzy msgid "Not found." msgstr "İstek bulunamadı!" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "Desteklenmeyen görüntü dosyası biçemi." @@ -738,6 +748,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -793,7 +807,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "" @@ -1085,7 +1099,7 @@ msgid "Do not delete this notice" msgstr "Böyle bir durum mesajı yok." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "" @@ -1382,7 +1396,8 @@ msgstr "%s Geçersiz başlangıç sayfası" msgid "Could not update group." msgstr "Kullanıcı güncellenemedi." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Avatar bilgisi kaydedilemedi" @@ -2527,7 +2542,7 @@ msgstr "\"%s\" kelimesinin geçtiği tüm güncellemeler" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2604,8 +2619,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3505,7 +3520,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Yarat" @@ -3545,7 +3560,7 @@ msgstr "%s için durum RSS beslemesi" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3558,8 +3573,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3658,7 +3673,7 @@ msgstr "Yer" msgid "Description" msgstr "Abonelikler" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "İstatistikler" @@ -3743,16 +3758,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3813,7 +3828,7 @@ msgstr "%s için durum RSS beslemesi" msgid "FOAF for %s group" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Üyelik başlangıcı" @@ -3828,12 +3843,12 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "Yarat" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3843,7 +3858,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3852,7 +3867,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -3928,8 +3943,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4317,7 +4332,8 @@ msgstr "Ayarlar" msgid "You are not subscribed to that profile." msgstr "Bize o profili yollamadınız" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "Abonelik oluşturulamadı." @@ -4490,10 +4506,6 @@ msgstr "" msgid "No such tag." msgstr "Böyle bir durum mesajı yok." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4795,160 +4807,257 @@ msgstr "Kişisel" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Geçersiz büyüklük." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Böyle bir durum mesajı yok." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Kullanıcı güncellenemedi." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Böyle bir durum mesajı yok." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Kullanıcı güncellenemedi." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Avatar bilgisi kaydedilemedi" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Cevap eklenirken veritabanı hatası: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Durum mesajını kaydederken hata oluştu." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Kullanıcının profili yok." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Durum mesajını kaydederken hata oluştu." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 #, fuzzy msgid "User has blocked you." msgstr "Kullanıcının profili yok." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Bu kullanıcıyı zaten takip etmiyorsunuz!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Abonelik silinemedi." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Abonelik silinemedi." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Abonelik silinemedi." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 #, fuzzy msgid "Could not create group." msgstr "Avatar bilgisi kaydedilemedi" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Abonelik oluşturulamadı." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "Abonelik oluşturulamadı." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Abonelik oluşturulamadı." @@ -6330,7 +6439,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "" @@ -6385,25 +6494,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Kullanıcı güncellenemedi." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6462,54 +6571,54 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply" msgstr "cevapla" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" @@ -6779,9 +6888,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Dosya yüklemede sistem hatası." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 93ef6b48a1..73ae721663 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:17+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:31+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Немає такої сторінки." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -172,8 +172,8 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" "Ви можете [«розштовхати» %1$s](../%2$s) зі сторінки його профілю або [щось " "йому написати](%%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -182,7 +182,7 @@ msgstr "" #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" "Чому б не [зареєструватись](%%%%action.register%%%%) і не спробувати " "«розштовхати» %s або щось йому написати." @@ -217,7 +217,7 @@ msgstr "Оновлення від %1$s та друзів на %2$s!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -266,7 +266,7 @@ msgstr "Не вдалося зберегти профіль." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -365,7 +365,7 @@ msgid "Could not delete favorite." msgstr "Не можна видалити зі списку обраних." #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +msgid "Could not follow user: profile not found." msgstr "Не вдалося додати користувача: користувача не знайдено." #: actions/apifriendshipscreate.php:118 @@ -381,9 +381,9 @@ msgstr "Не вдалося відмінити підписку: користу msgid "You cannot unfollow yourself." msgstr "Ви не можете відписатись від самого себе." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." -msgstr "Два ID або імені_у_мережі повинні підтримуватись." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." +msgstr "Два ID або імені у мережі мають бути представлені." #: actions/apifriendshipsshow.php:134 msgid "Could not determine source user." @@ -512,6 +512,10 @@ msgstr "%s групи" msgid "groups on %s" msgstr "групи на %s" +#: actions/apimediaupload.php:99 +msgid "Upload failed." +msgstr "Збій при завантаженні." + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "Жодного параметру oauth_token не забезпечено." @@ -657,24 +661,28 @@ msgstr "Статус видалено." msgid "No status with that ID found." msgstr "Не знайдено жодних статусів з таким ID." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Клієнт мусить надати параметр «статус» зі значенням." + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Надто довго. Максимальний розмір допису — %d знаків." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." msgstr "Не знайдено." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" "Максимальна довжина допису становить %d знаків, включно з URL-адресою " "вкладення." -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "Формат не підтримується." @@ -728,6 +736,10 @@ msgstr "Дописи позначені з %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Оновлення позначені з %1$s на %2$s!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API метод наразі знаходиться у розробці." + #: actions/attachment.php:73 msgid "No such attachment." msgstr "Такого вкладення немає." @@ -780,7 +792,7 @@ msgid "Preview" msgstr "Перегляд" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "Видалити" @@ -1059,7 +1071,7 @@ msgid "Do not delete this notice" msgstr "Не видаляти цей допис" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "Видалити допис" @@ -1337,7 +1349,8 @@ msgstr "Помилкове додаткове ім’я: «%s»" msgid "Could not update group." msgstr "Не вдалося оновити групу." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 msgid "Could not create aliases." msgstr "Неможна призначити додаткові імена." @@ -2493,7 +2506,7 @@ msgstr "Всі оновлення за збігом з «%s» на %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" "Цей користувач не дозволив себе «розштовхувати», або не підтвердив чи не " "налаштував преференції електронної пошти." @@ -2571,8 +2584,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "URL-адреса %s лише в простому HTTP, будь ласка." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Такий формат даних не підтримується." @@ -2598,7 +2611,7 @@ msgstr " (вільний сервіс)" #: actions/othersettings.php:116 msgid "Shorten URLs with" -msgstr "Скорочення URL-адрес" +msgstr "Скорочення URL" #: actions/othersettings.php:117 msgid "Automatic shortening service to use." @@ -3481,7 +3494,7 @@ msgstr "Ви не можете повторювати свої власні до msgid "You already repeated that notice." msgstr "Ви вже повторили цей допис." -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 msgid "Repeated" msgstr "Повторено" @@ -3519,7 +3532,7 @@ msgstr "Стрічка відповідей до %s (Atom)" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" "Ця стрічка дописів містить відповіді для %1$s, але %2$s поки що нічого не " "отримав у відповідь." @@ -3536,8 +3549,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" "Ви можете [«розштовхати» %1$s](../%2$s) або [написати дещо варте його уваги](%" "%%%action.newnotice%%%%?status_textarea=%3$s)." @@ -3628,7 +3641,7 @@ msgstr "Організація" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистика" @@ -3718,20 +3731,20 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" -"%s поки що не вподобав жодних дописів. Може Ви б написали йому щось " +"%s поки що не вподобав жодного допису. Може Ви б написали йому щось " "цікаве? :)" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" -"%s поки що не вподобав жодних дописів. Чому б не [зареєструватись](%%%%" +"%s поки що не вподобав жодного допису. Чому б не [зареєструватись](%%%%" "action.register%%%%) і не написати щось цікаве, що мало б сподобатись цьому " "користувачеві :)" @@ -3791,7 +3804,7 @@ msgstr "Стрічка дописів групи %s (Atom)" msgid "FOAF for %s group" msgstr "FOAF для групи %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Учасники" @@ -3805,11 +3818,11 @@ msgstr "(Пусто)" msgid "All members" msgstr "Всі учасники" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 msgid "Created" msgstr "Створено" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3825,7 +3838,7 @@ msgstr "" "%%%%) зараз і долучіться до спілкування! ([Дізнатися більше](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3838,7 +3851,7 @@ msgstr "" "програмному забезпеченні [StatusNet](http://status.net/). Члени цієї групи " "роблять короткі дописи про своє життя та інтереси. " -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "Адміни" @@ -3915,8 +3928,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" "Ви можете «розштовхати» %1$s або [щось йому написати](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." @@ -4307,7 +4320,8 @@ msgstr "Зберегти налаштування знімку" msgid "You are not subscribed to that profile." msgstr "Ви не підписані до цього профілю." -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 msgid "Could not save subscription." msgstr "Не вдалося зберегти підписку." @@ -4485,10 +4499,6 @@ msgstr "Скористайтесь цією формою, щоб додати т msgid "No such tag." msgstr "Такого теґу немає." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API метод наразі знаходиться у розробці." - #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Цього користувача блокувати неможливо." @@ -4799,80 +4809,127 @@ msgstr "Версія" msgid "Author(s)" msgstr "Автор(и)" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "Неможливо обробити URL «%s»" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "Робін вважає, що це неможливо." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 #, php-format msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." msgstr "" "Ні, файл не може бути більшим за %d байтів, а те, що Ви хочете надіслати, " -"важить %d байтів. Спробуйте меншу версію." +"важить %d байтів. Спробуйте завантажити меншу версію." -#: classes/File.php:195 +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Розміри цього файлу перевищують Вашу квоту на %d байтів." -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Розміри цього файлу перевищують Вашу місячну квоту на %d байтів." -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +msgid "Invalid filename." +msgstr "Невірне ім’я файлу." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 msgid "Group join failed." msgstr "Не вдалося приєднатись до групи." -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 msgid "Not part of group." msgstr "Не є частиною групи." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 msgid "Group leave failed." msgstr "Не вдалося залишити групу." -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 msgid "Could not update local group." msgstr "Не вдається оновити локальну групу." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" msgstr "Не вдалося створити токен входу для %s" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "Немає імені бази даних або DSN ніде не знайдено" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "Вам заборонено надсилати прямі повідомлення." -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "Не можна долучити повідомлення." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "Не можна оновити повідомлення з новим URI." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "Немає такого профілю (%1$d) для повідомлення (%2$d)." + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Помилка бази даних при додаванні хеш-теґу: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 msgid "Problem saving notice. Too long." msgstr "Проблема при збереженні допису. Надто довге." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 msgid "Problem saving notice. Unknown user." msgstr "Проблема при збереженні допису. Невідомий користувач." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Дуже багато дописів за короткий термін; ходіть подихайте повітрям і " "повертайтесь за кілька хвилин." -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4880,71 +4937,118 @@ msgstr "" "Дуже багато повідомлень за короткий термін; ходіть подихайте повітрям і " "повертайтесь за кілька хвилин." -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "Вам заборонено надсилати дописи до цього сайту." -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Проблема при збереженні допису." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "Задається невірний тип для saveKnownGroups" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 msgid "Problem saving group inbox." msgstr "Проблема при збереженні вхідних дописів для групи." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "Не вдалося скасувати роль «%s» для користувача #%2$s; не існує." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"Не вдалося скасувати роль «%1$s» для користувача #%2$s; помилка бази даних." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "Загублений профіль." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +msgid "Unable to save tag." +msgstr "Не вдається зберегти теґ." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Вас позбавлено можливості підписатись." -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "Вже підписаний!" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "Користувач заблокував Вас." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 msgid "Not subscribed!" msgstr "Не підписано!" -#: classes/Subscription.php:173 -msgid "Couldn't delete self-subscription." +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 +msgid "Could not delete self-subscription." msgstr "Не можу видалити самопідписку." -#: classes/Subscription.php:200 -msgid "Couldn't delete subscription OMB token." +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 +msgid "Could not delete subscription OMB token." msgstr "Не вдається видалити токен підписки OMB." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +msgid "Could not delete subscription." msgstr "Не вдалося видалити підписку." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "Не вдалося створити нову групу." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 msgid "Could not set group URI." msgstr "Не вдалося встановити URI групи." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 msgid "Could not set group membership." msgstr "Не вдалося встановити членство." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 msgid "Could not save local group info." msgstr "Не вдалося зберегти інформацію про локальну групу." @@ -6413,7 +6517,7 @@ msgstr "" "повідомлення аби долучити користувачів до розмови. Такі повідомлення бачите " "лише Ви." -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "від" @@ -6471,24 +6575,24 @@ msgstr "Запис файлу на диск скасовано." msgid "File upload stopped by extension." msgstr "Завантаження файлу зупинено розширенням." -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "Файл перевищив квоту користувача." -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "Файл не може бути переміщений у директорію призначення." -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 msgid "Could not determine file's MIME type." msgstr "Не вдається визначити MIME-тип файлу." -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr " Спробуйте використати інший %s формат." -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "%s не підтримується як тип файлів на цьому сервері." @@ -6544,51 +6648,51 @@ msgstr "" "часу, ніж очікувалось; будь ласка, спробуйте пізніше" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "Півн." #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "Півд." #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "Сх." #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "Зах." -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "в" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 msgid "in context" msgstr "в контексті" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 msgid "Notice repeated" msgstr "Допис повторили" @@ -6692,7 +6796,7 @@ msgstr "Реєстрація" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "Середньодобове" +msgstr "За добу" #: lib/profileaction.php:264 msgid "All groups" @@ -6846,8 +6950,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "Цей сервер не може опрацювати завантаження теми без підтримки ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." -msgstr "Завантажити тему не вдалося або процес завантаження перервано." +msgid "The theme file is missing or the upload failed." +msgstr "Файл теми відсутній, або стався збій при завантаженні." #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index cc5899b9ed..60164da4d2 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Vietnamese # +# Author@translatewiki.net: Minh Nguyen # -- # This file is distributed under the same license as the StatusNet package. # @@ -7,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:22+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:32+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -21,9 +22,8 @@ msgstr "" #. TRANS: Page title #. TRANS: Menu item for site administration #: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 -#, fuzzy msgid "Access" -msgstr "Chấp nhận" +msgstr "Truy cập" #. TRANS: Page notice #: actions/accessadminpanel.php:67 @@ -33,7 +33,6 @@ msgstr "Thay đổi hình đại diện" #. TRANS: Form legend for registration form. #: actions/accessadminpanel.php:161 -#, fuzzy msgid "Registration" msgstr "Đăng ký" @@ -44,7 +43,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Riêng tư" @@ -67,9 +65,8 @@ msgstr "" #. TRANS: Checkbox label for disabling new user registrations. #: actions/accessadminpanel.php:185 -#, fuzzy msgid "Closed" -msgstr "Ban user" +msgstr "Đóng" #. TRANS: Title / tooltip for button to save access settings in site admin panel #: actions/accessadminpanel.php:202 @@ -84,7 +81,6 @@ msgstr "Thay đổi hình đại diện" #: actions/accessadminpanel.php:203 actions/emailsettings.php:224 #: actions/imsettings.php:184 actions/smssettings.php:209 #: lib/applicationeditform.php:361 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Lưu" @@ -105,7 +101,7 @@ msgstr "Không có tin nhắn nào." #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -172,22 +168,21 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text #: actions/all.php:182 -#, fuzzy msgid "You and friends" -msgstr "%s và bạn bè" +msgstr "Bạn và bạn bè" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. @@ -214,7 +209,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -265,7 +260,7 @@ msgstr "Không thể lưu hồ sơ cá nhân." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -370,7 +365,7 @@ msgstr "Không thể tạo favorite." #: actions/apifriendshipscreate.php:109 #, fuzzy -msgid "Could not follow user: User not found." +msgid "Could not follow user: profile not found." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." #: actions/apifriendshipscreate.php:118 @@ -388,8 +383,8 @@ msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè c msgid "You cannot unfollow yourself." msgstr "Không thể cập nhật thành viên." -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -470,9 +465,8 @@ msgstr "" #: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 #: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy msgid "Group not found." -msgstr "Phương thức API không tìm thấy!" +msgstr "Không tìm thấy nhóm." #: actions/apigroupjoin.php:111 actions/joingroup.php:100 #, fuzzy @@ -522,6 +516,11 @@ msgstr "%s và nhóm" msgid "groups on %s" msgstr "Mã nhóm" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "Tải file" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -606,9 +605,8 @@ msgstr "" #. TRANS: Main menu option when logged in for access to user settings #: actions/apioauthauthorize.php:310 lib/action.php:450 -#, fuzzy msgid "Account" -msgstr "Giới thiệu" +msgstr "Tài khoản" #: actions/apioauthauthorize.php:313 actions/login.php:252 #: actions/profilesettings.php:106 actions/register.php:431 @@ -668,23 +666,26 @@ msgstr "Hình đại diện đã được cập nhật." msgid "No status with that ID found." msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "Quá dài. Tối đa là 140 ký tự." -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 -#, fuzzy +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 msgid "Not found." -msgstr "Không tìm thấy" +msgstr "Không tìm thấy." -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "Không hỗ trợ kiểu file ảnh này." @@ -739,6 +740,10 @@ msgstr "Thông báo được gắn thẻ %s" msgid "Updates tagged with %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "Phương thức API dưới cấu trúc có sẵn." + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -795,10 +800,9 @@ msgid "Preview" msgstr "Xem trước" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 -#, fuzzy +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" -msgstr "Xóa tin nhắn" +msgstr "Xóa" #: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" @@ -841,9 +845,8 @@ msgid "You already blocked that user." msgstr "Bạn đã theo những người này:" #: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -#, fuzzy msgid "Block user" -msgstr "Ban user" +msgstr "Chặn người dùng" #: actions/block.php:138 msgid "" @@ -1091,7 +1094,7 @@ msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -1401,7 +1404,8 @@ msgstr "Trang chủ '%s' không hợp lệ" msgid "Could not update group." msgstr "Không thể cập nhật thành viên." -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "Không thể tạo favorite." @@ -2614,7 +2618,7 @@ msgstr "Các thay đổi phù hợp với từ \"%s\"" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2694,8 +2698,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "Không hỗ trợ định dạng dữ liệu này." @@ -3625,7 +3629,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:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "Tạo" @@ -3665,7 +3669,7 @@ msgstr "Dòng tin nhắn cho %s" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3678,8 +3682,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3778,7 +3782,7 @@ msgstr "Thư mời đã gửi" msgid "Description" msgstr "Mô tả" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Số liệu thống kê" @@ -3864,16 +3868,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3935,7 +3939,7 @@ msgstr "Dòng tin nhắn cho %s" msgid "FOAF for %s group" msgstr "Hộp thư đi của %s" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 msgid "Members" msgstr "Thành viên" @@ -3950,12 +3954,12 @@ msgstr "" msgid "All members" msgstr "Thành viên" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "Tạo" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3965,7 +3969,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3974,7 +3978,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -4051,8 +4055,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4458,7 +4462,8 @@ msgstr "Thay đổi hình đại diện" msgid "You are not subscribed to that profile." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "Không thể tạo đăng nhận." @@ -4632,10 +4637,6 @@ msgstr "" msgid "No such tag." msgstr "Không có tin nhắn nào." -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "Phương thức API dưới cấu trúc có sẵn." - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4946,163 +4947,260 @@ msgstr "Cá nhân" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "Kích thước không hợp lệ." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "Thông tin nhóm" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "Không thể cập nhật thành viên." -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "Thông tin nhóm" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "Không thể cập nhật thành viên." -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "Không thể tạo favorite." -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Thư bạn đã gửi" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 #, fuzzy msgid "Could not insert message." msgstr "Không thể chèn thêm vào đăng nhận." -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 #, fuzzy msgid "Could not update message with new URI." msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "Có lỗi xảy ra khi lưu tin nhắn." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%s (%s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "Người dùng không có thông tin." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "Không thể lưu thông tin Twitter của bạn!" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 #, fuzzy msgid "User has blocked you." msgstr "Người dùng không có thông tin." -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "Chưa đăng nhận!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "Không thể xóa đăng nhận." -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "Không thể xóa đăng nhận." -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "Không thể xóa đăng nhận." -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 #, fuzzy msgid "Could not create group." msgstr "Không thể tạo favorite." -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "Không thể tạo đăng nhận." -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "Không thể tạo đăng nhận." -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "Không thể tạo đăng nhận." @@ -6553,7 +6651,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr " từ " @@ -6610,25 +6708,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Không thể lấy lại các tin nhắn ưa thích" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6688,55 +6786,55 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "Không" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply to this notice" msgstr "Trả lời tin nhắn này" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "Tin đã gửi" @@ -7018,9 +7116,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "Hệ thống xảy ra lỗi trong khi tải file." +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index d9afdf9e97..bd331de651 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Simplified Chinese # +# Author@translatewiki.net: Chenxiaoqino # Author@translatewiki.net: Shizhao # -- # Messages of identi.ca @@ -10,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:26+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:34+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -108,7 +109,7 @@ msgstr "没有该页面" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -175,15 +176,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -216,7 +217,7 @@ msgstr "来自%2$s 上 %1$s 和好友的更新!" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -267,7 +268,7 @@ msgstr "无法保存个人信息。" #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -368,7 +369,8 @@ msgid "Could not delete favorite." msgstr "无法删除收藏。" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." +#, fuzzy +msgid "Could not follow user: profile not found." msgstr "无法订阅用户:未找到。" #: actions/apifriendshipscreate.php:118 @@ -386,8 +388,9 @@ msgstr "无法订阅用户:未找到。" msgid "You cannot unfollow yourself." msgstr "无法更新用户。" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +#, fuzzy +msgid "Two valid IDs or screen_names must be supplied." msgstr "必须提供两个用户帐号或昵称。" #: actions/apifriendshipsshow.php:134 @@ -435,7 +438,7 @@ msgstr "全名过长(不能超过 255 个字符)。" #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." -msgstr "描述过长(不能超过140字符)。" +msgstr "描述过长(不能超过%d 个字符)。" #: actions/apigroupcreate.php:227 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 @@ -447,7 +450,7 @@ msgstr "位置过长(不能超过255个字符)。" #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." -msgstr "" +msgstr "太多化名了!最多%d 个。" #: actions/apigroupcreate.php:267 #, fuzzy, php-format @@ -458,19 +461,18 @@ msgstr "主页'%s'不正确" #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "昵称已被使用,换一个吧。" +msgstr "昵称%s已被使用,换一个吧。" #: actions/apigroupcreate.php:289 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "昵称不能和化名相同。" #: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 #: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy msgid "Group not found." -msgstr "API 方法未实现!" +msgstr "小组未找到。" #: actions/apigroupjoin.php:111 actions/joingroup.php:100 #, fuzzy @@ -520,6 +522,11 @@ msgstr "%s 群组" msgid "groups on %s" msgstr "组动作" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "上传" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -666,23 +673,27 @@ msgstr "头像已更新。" msgid "No status with that ID found." msgstr "没有找到此ID的信息。" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, fuzzy, php-format msgid "That's too long. Max notice size is %d chars." msgstr "超出长度限制。不能超过 140 个字符。" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 #, fuzzy msgid "Not found." msgstr "未找到" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 #, fuzzy msgid "Unsupported format." msgstr "不支持这种图像格式。" @@ -737,6 +748,10 @@ msgstr "带 %s 标签的通告" msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "API 方法尚未实现。" + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -791,7 +806,7 @@ msgid "Preview" msgstr "预览" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 #, fuzzy msgid "Delete" msgstr "删除" @@ -1089,7 +1104,7 @@ msgid "Do not delete this notice" msgstr "无法删除通告。" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 #, fuzzy msgid "Delete this notice" msgstr "删除通告" @@ -1391,7 +1406,8 @@ msgstr "主页'%s'不正确" msgid "Could not update group." msgstr "无法更新组" -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "无法创建收藏。" @@ -2566,8 +2582,9 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "所有匹配搜索条件\"%s\"的消息" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "此用户不允许振铃呼叫或者还没有确认或设置TA的电子邮件。" #: actions/nudge.php:94 @@ -2646,8 +2663,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "不支持的数据格式。" @@ -3561,7 +3578,7 @@ msgstr "您必须同意此授权方可注册。" msgid "You already repeated that notice." msgstr "您已成功阻止该用户:" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "创建" @@ -3601,7 +3618,7 @@ msgstr "%s 的通告聚合" #, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" #: actions/replies.php:204 @@ -3614,8 +3631,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3715,7 +3732,7 @@ msgstr "分页" msgid "Description" msgstr "描述" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "统计" @@ -3801,16 +3818,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3871,7 +3888,7 @@ msgstr "%s 的通告聚合" msgid "FOAF for %s group" msgstr "%s 的发件箱" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "注册于" @@ -3886,12 +3903,12 @@ msgstr "(没有)" msgid "All members" msgstr "所有成员" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "创建" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3901,7 +3918,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3912,7 +3929,7 @@ msgstr "" "**%s** 是一个 %%%%site.name%%%% 的用户组,一个微博客服务 [micro-blogging]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 #, fuzzy msgid "Admins" msgstr "admin管理员" @@ -3989,8 +4006,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4389,7 +4406,8 @@ msgstr "头像设置" msgid "You are not subscribed to that profile." msgstr "您未告知此个人信息" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "无法删除订阅。" @@ -4564,10 +4582,6 @@ msgstr "使用这个表格给你的关注者或你的订阅加注标签。" msgid "No such tag." msgstr "未找到此消息。" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "API 方法尚未实现。" - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4876,162 +4890,259 @@ msgstr "个人" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "大小不正确。" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "组资料" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "无法更新组" -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "组资料" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "无法更新组" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "无法创建收藏。" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 #, fuzzy msgid "You are banned from sending direct messages." msgstr "发送消息出错。" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "无法添加信息。" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "无法添加新URI的信息。" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "添加标签时数据库出错:%s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "保存通告时出错。" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "保存通告时出错。" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "在这个网站你被禁止发布消息。" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "保存通告时出错。" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "保存通告时出错。" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "用户没有个人信息。" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "无法保存 Twitter 设置!" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "那个用户阻止了你的订阅。" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 #, fuzzy msgid "User has blocked you." msgstr "用户没有个人信息。" -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "未订阅!" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "无法删除订阅。" -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "无法删除订阅。" -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "无法删除订阅。" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "发送给 %1$s 的 %2$s 消息" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 msgid "Could not create group." msgstr "无法创建组。" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "无法删除订阅。" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "无法删除订阅。" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "无法删除订阅。" @@ -6430,7 +6541,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 #, fuzzy msgid "from" msgstr " 从 " @@ -6486,25 +6597,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "无法获取收藏的通告。" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6564,56 +6675,56 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 #, fuzzy msgid "N" msgstr "否" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "没有内容!" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "创建" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply to this notice" msgstr "无法删除通告。" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply" msgstr "回复" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "消息已发布。" @@ -6890,9 +7001,8 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -#, fuzzy -msgid "Theme upload missing or failed." -msgstr "上传文件时出错。" +msgid "The theme file is missing or the upload failed." +msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 #: lib/themeuploader.php:253 lib/themeuploader.php:257 diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index e002fd55d5..1e5b44ae63 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-06-16 22:18+0000\n" -"PO-Revision-Date: 2010-06-21 18:05:30+0000\n" +"POT-Creation-Date: 2010-08-03 13:21+0000\n" +"PO-Revision-Date: 2010-08-03 13:22:35+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r68367); Translate extension (2010-06-12)\n" +"X-Generator: MediaWiki 1.17alpha (r70381); Translate extension (2010-07-21)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "無此通知" #: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 #: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 #: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:228 actions/apisubscriptions.php:87 +#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -169,15 +169,15 @@ msgstr "" #: actions/all.php:146 #, 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)." +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " -"post a notice to his or her attention." +"post a notice to them." msgstr "" #. TRANS: H1 text @@ -211,7 +211,7 @@ msgstr "" #: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:152 actions/apitimelinehome.php:175 +#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 #: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 @@ -262,7 +262,7 @@ msgstr "無法儲存個人資料" #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:211 actions/avatarsettings.php:257 +#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -360,8 +360,9 @@ msgid "Could not delete favorite." msgstr "" #: actions/apifriendshipscreate.php:109 -msgid "Could not follow user: User not found." -msgstr "" +#, fuzzy +msgid "Could not follow user: profile not found." +msgstr "無法連結到伺服器:%s" #: actions/apifriendshipscreate.php:118 #, php-format @@ -378,8 +379,8 @@ msgstr "無法連結到伺服器:%s" msgid "You cannot unfollow yourself." msgstr "無法更新使用者" -#: actions/apifriendshipsexists.php:94 -msgid "Two user ids or screen_names must be supplied." +#: actions/apifriendshipsexists.php:91 +msgid "Two valid IDs or screen_names must be supplied." msgstr "" #: actions/apifriendshipsshow.php:134 @@ -511,6 +512,11 @@ msgstr "" msgid "groups on %s" msgstr "" +#: actions/apimediaupload.php:99 +#, fuzzy +msgid "Upload failed." +msgstr "無此通知" + #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" @@ -657,23 +663,27 @@ msgstr "更新個人圖像" msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:241 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: actions/apistatusesupdate.php:282 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 #, fuzzy msgid "Not found." msgstr "目前無請求" -#: actions/apistatusesupdate.php:305 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 +#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 msgid "Unsupported format." msgstr "" @@ -727,6 +737,10 @@ msgstr "" msgid "Updates tagged with %1$s on %2$s!" msgstr "&s的微型部落格" +#: actions/apitrends.php:87 +msgid "API method under construction." +msgstr "" + #: actions/attachment.php:73 #, fuzzy msgid "No such attachment." @@ -781,7 +795,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:648 +#: lib/deleteuserform.php:66 lib/noticelist.php:656 msgid "Delete" msgstr "" @@ -1071,7 +1085,7 @@ msgid "Do not delete this notice" msgstr "無此通知" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:648 +#: actions/deletenotice.php:158 lib/noticelist.php:656 msgid "Delete this notice" msgstr "" @@ -1366,7 +1380,8 @@ msgstr "個人首頁連結%s無效" msgid "Could not update group." msgstr "無法更新使用者" -#: actions/editgroup.php:264 classes/User_group.php:496 +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:264 classes/User_group.php:514 #, fuzzy msgid "Could not create aliases." msgstr "無法存取個人圖像資料" @@ -2477,7 +2492,7 @@ msgstr "所有符合 \"%s\"的更新" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set his email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email yet." msgstr "" #: actions/nudge.php:94 @@ -2554,8 +2569,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1179 -#: lib/apiaction.php:1208 lib/apiaction.php:1325 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 +#: lib/apiaction.php:1232 lib/apiaction.php:1355 msgid "Not a supported data format." msgstr "" @@ -3432,7 +3447,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "無此使用者" -#: actions/repeat.php:114 lib/noticelist.php:667 +#: actions/repeat.php:114 lib/noticelist.php:675 #, fuzzy msgid "Repeated" msgstr "新增" @@ -3472,7 +3487,7 @@ msgstr "發送給%s好友的訂閱" #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to his attention yet." +"notice to them yet." msgstr "" #: actions/replies.php:204 @@ -3485,8 +3500,8 @@ msgstr "" #: actions/replies.php:206 #, php-format msgid "" -"You can try to [nudge %1$s](../%2$s) or [post something to his or her " -"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." msgstr "" #: actions/repliesrss.php:72 @@ -3582,7 +3597,7 @@ msgstr "地點" msgid "Description" msgstr "所有訂閱" -#: actions/showapplication.php:192 actions/showgroup.php:444 +#: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" msgstr "" @@ -3667,16 +3682,16 @@ msgstr "" #: actions/showfavorites.php:208 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Post something interesting " -"they would add to their favorites :)" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" msgstr "" #: actions/showfavorites.php:212 #, php-format msgid "" -"%s hasn't added any notices to his favorites yet. Why not [register an " -"account](%%%%action.register%%%%) and then post something interesting they " -"would add to their favorites :)" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" msgstr "" #: actions/showfavorites.php:243 @@ -3736,7 +3751,7 @@ msgstr "" msgid "FOAF for %s group" msgstr "無此通知" -#: actions/showgroup.php:393 actions/showgroup.php:453 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "何時加入會員的呢?" @@ -3751,12 +3766,12 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:447 +#: actions/showgroup.php:439 #, fuzzy msgid "Created" msgstr "新增" -#: actions/showgroup.php:463 +#: actions/showgroup.php:455 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3766,7 +3781,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:469 +#: actions/showgroup.php:461 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3775,7 +3790,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:497 +#: actions/showgroup.php:489 msgid "Admins" msgstr "" @@ -3851,8 +3866,8 @@ msgstr "" #: 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)." +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." msgstr "" #: actions/showstream.php:243 @@ -4235,7 +4250,8 @@ msgstr "線上即時通設定" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:132 +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:83 classes/Subscription.php:136 #, fuzzy msgid "Could not save subscription." msgstr "註冊失敗" @@ -4407,10 +4423,6 @@ msgstr "" msgid "No such tag." msgstr "無此通知" -#: actions/twitapitrends.php:85 -msgid "API method under construction." -msgstr "" - #: actions/unblock.php:59 #, fuzzy msgid "You haven't blocked that user." @@ -4703,159 +4715,256 @@ msgstr "地點" msgid "Author(s)" msgstr "" -#: classes/File.php:185 +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:143 #, php-format -msgid "" -"No file may be larger than %d bytes and the file you sent was %d bytes. Try " -"to upload a smaller version." +msgid "Cannot process URL '%s'" msgstr "" -#: classes/File.php:195 +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:175 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#: classes/File.php:190 +#, php-format +msgid "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes. +#: classes/File.php:202 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:202 +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes. +#: classes/File.php:211 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#: classes/Group_member.php:41 +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:248 classes/File.php:263 +#, fuzzy +msgid "Invalid filename." +msgstr "尺寸錯誤" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:42 #, fuzzy msgid "Group join failed." msgstr "無此通知" -#: classes/Group_member.php:53 +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:55 #, fuzzy msgid "Not part of group." msgstr "無法更新使用者" -#: classes/Group_member.php:60 +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:63 #, fuzzy msgid "Group leave failed." msgstr "無此通知" -#: classes/Local_group.php:41 +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 #, fuzzy msgid "Could not update local group." msgstr "無法更新使用者" -#: classes/Login_token.php:76 +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 #, fuzzy, php-format msgid "Could not create login token for %s" msgstr "無法存取個人圖像資料" -#: classes/Message.php:45 +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:46 msgid "You are banned from sending direct messages." msgstr "" -#: classes/Message.php:61 +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:63 msgid "Could not insert message." msgstr "" -#: classes/Message.php:71 +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:74 msgid "Could not update message with new URI." msgstr "" +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:182 +#: classes/Notice.php:190 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "增加回覆時,資料庫發生錯誤: %s" -#: classes/Notice.php:251 +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:260 #, fuzzy msgid "Problem saving notice. Too long." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:255 +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:265 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:260 +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:271 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:266 +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:278 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:272 +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:286 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:338 classes/Notice.php:364 +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:353 classes/Notice.php:380 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:973 +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:892 +msgid "Bad type provided to saveKnownGroups" +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:991 #, fuzzy msgid "Problem saving group inbox." msgstr "儲存使用者發生錯誤" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1564 +#: classes/Notice.php:1614 #, php-format msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:74 lib/oauthstore.php:465 +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:740 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:749 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +#, fuzzy +msgid "Missing profile." +msgstr "無此通知" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:346 +#, fuzzy +msgid "Unable to save tag." +msgstr "新訊息" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:75 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:78 +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:80 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:82 +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:85 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:167 +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:171 #, fuzzy msgid "Not subscribed!" msgstr "此帳號已註冊" -#: classes/Subscription.php:173 +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:178 #, fuzzy -msgid "Couldn't delete self-subscription." +msgid "Could not delete self-subscription." msgstr "無法刪除帳號" -#: classes/Subscription.php:200 +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:206 #, fuzzy -msgid "Couldn't delete subscription OMB token." +msgid "Could not delete subscription OMB token." msgstr "無法刪除帳號" -#: classes/Subscription.php:211 -msgid "Couldn't delete subscription." +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:218 +#, fuzzy +msgid "Could not delete subscription." msgstr "無法刪除帳號" -#: classes/User.php:363 +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:365 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:480 +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:496 #, fuzzy msgid "Could not create group." msgstr "無法存取個人圖像資料" -#: classes/User_group.php:489 +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:506 #, fuzzy msgid "Could not set group URI." msgstr "註冊失敗" -#: classes/User_group.php:510 +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:529 #, fuzzy msgid "Could not set group membership." msgstr "註冊失敗" -#: classes/User_group.php:524 +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:544 #, fuzzy msgid "Could not save local group info." msgstr "註冊失敗" @@ -6214,7 +6323,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:497 +#: lib/mailbox.php:227 lib/noticelist.php:505 msgid "from" msgstr "" @@ -6269,25 +6378,25 @@ msgstr "" msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:216 +#: lib/mediafile.php:179 lib/mediafile.php:217 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:196 lib/mediafile.php:233 +#: lib/mediafile.php:197 lib/mediafile.php:234 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:201 lib/mediafile.php:237 +#: lib/mediafile.php:202 lib/mediafile.php:238 #, fuzzy msgid "Could not determine file's MIME type." msgstr "無法更新使用者" -#: lib/mediafile.php:270 +#: lib/mediafile.php:318 #, php-format msgid " Try using another %s format." msgstr "" -#: lib/mediafile.php:275 +#: lib/mediafile.php:323 #, php-format msgid "%s is not a supported file type on this server." msgstr "" @@ -6345,53 +6454,53 @@ msgid "" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:430 +#: lib/noticelist.php:436 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:432 +#: lib/noticelist.php:438 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:434 +#: lib/noticelist.php:440 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:436 +#: lib/noticelist.php:442 msgid "W" msgstr "" -#: lib/noticelist.php:438 +#: lib/noticelist.php:444 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:447 +#: lib/noticelist.php:453 msgid "at" msgstr "" -#: lib/noticelist.php:559 +#: lib/noticelist.php:567 #, fuzzy msgid "in context" msgstr "無內容" -#: lib/noticelist.php:594 +#: lib/noticelist.php:602 #, fuzzy msgid "Repeated by" msgstr "新增" -#: lib/noticelist.php:621 +#: lib/noticelist.php:629 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:622 +#: lib/noticelist.php:630 msgid "Reply" msgstr "" -#: lib/noticelist.php:666 +#: lib/noticelist.php:674 #, fuzzy msgid "Notice repeated" msgstr "更新個人圖像" @@ -6658,7 +6767,7 @@ msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 -msgid "Theme upload missing or failed." +msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 diff --git a/plugins/Adsense/AdsensePlugin.php b/plugins/Adsense/AdsensePlugin.php index ab2b9a6fb3..cd6fc3503c 100644 --- a/plugins/Adsense/AdsensePlugin.php +++ b/plugins/Adsense/AdsensePlugin.php @@ -83,6 +83,21 @@ class AdsensePlugin extends UAPPlugin public $adScript = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; public $client = null; + function initialize() + { + parent::initialize(); + + // A little bit of chicanery so we avoid overwriting values that + // are passed in with the constructor + + foreach (array('mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper', 'adScript', 'client') as $setting) { + $value = common_config('adsense', strtolower($setting)); + if (!empty($value)) { // not found + $this->$setting = $value; + } + } + } + /** * Show a medium rectangle 'ad' * @@ -157,4 +172,37 @@ class AdsensePlugin extends UAPPlugin $action->script($this->adScript); } + + function onRouterInitialized($m) + { + $m->connect('admin/adsense', + array('action' => 'adsenseadminpanel')); + + return true; + } + + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) + { + case 'AdsenseadminpanelAction': + require_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + default: + return true; + } + } + + function onEndAdminPanelNav($menu) { + if (AdminPanelAction::canAdmin('adsense')) { + // TRANS: Menu item title/tooltip + $menu_title = _('Adsense configuration'); + // TRANS: Menu item for site administration + $menu->out->menuItem(common_local_url('adsenseadminpanel'), _('Adsense'), + $menu_title, $action_name == 'adsenseadminpanel', 'nav_adsense_admin_panel'); + } + return true; + } } \ No newline at end of file diff --git a/plugins/Adsense/adsenseadminpanel.php b/plugins/Adsense/adsenseadminpanel.php new file mode 100644 index 0000000000..7b99cf8051 --- /dev/null +++ b/plugins/Adsense/adsenseadminpanel.php @@ -0,0 +1,223 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Adsense administration panel + * + * 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 Adsense + * @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); +} + +/** + * Administer adsense settings + * + * @category Adsense + * @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 AdsenseadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return _('Adsense'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _('Adsense settings for this StatusNet site'); + } + + /** + * Show the site admin panel form + * + * @return void + */ + + function showForm() + { + $form = new AdsenseAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + static $settings = array('adsense' => array('adScript', 'client', 'mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper')); + + $values = array(); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] = $this->trimmed($setting); + } + } + + // This throws an exception on validation errors + + $this->validate($values); + + // assert(all values are valid); + + $config = new Config(); + + $config->query('BEGIN'); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + Config::save($section, $setting, $values[$section][$setting]); + } + } + + $config->query('COMMIT'); + + return; + } + + function validate(&$values) + { + } +} + +/** + * Form for the adsense admin panel + */ + +class AdsenseAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'form_adsense_admin_panel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_adsense'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('adsenseadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart('fieldset', array('id' => 'adsense_admin')); + $this->out->elementStart('ul', 'form_data'); + $this->li(); + $this->input('client', + _('Client ID'), + _('Google client ID'), + 'adsense'); + $this->unli(); + $this->li(); + $this->input('adScript', + _('Ad Script URL'), + _('Script URL (advanced)'), + 'adsense'); + $this->unli(); + $this->li(); + $this->input('mediumRectangle', + _('Medium rectangle'), + _('Medium rectangle slot code'), + 'adsense'); + $this->unli(); + $this->li(); + $this->input('rectangle', + _('Rectangle'), + _('Rectangle slot code'), + 'adsense'); + $this->unli(); + $this->li(); + $this->input('leaderboard', + _('Leaderboard'), + _('Leaderboard slot code'), + 'adsense'); + $this->unli(); + $this->li(); + $this->input('wideSkyscraper', + _('Skyscraper'), + _('Wide skyscraper slot code'), + 'adsense'); + $this->unli(); + $this->out->elementEnd('ul'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Save'), 'submit', null, _('Save AdSense settings')); + } +} diff --git a/plugins/MobileProfile/mp-screen.css b/plugins/MobileProfile/mp-screen.css index 0fc801612b..1f70b5612d 100644 --- a/plugins/MobileProfile/mp-screen.css +++ b/plugins/MobileProfile/mp-screen.css @@ -2,7 +2,7 @@ * * @package StatusNet * @author Sarven Capadisli <csarven@status.net> - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-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/ */ @@ -195,10 +195,6 @@ width:43px; margin-right:1%; } -.notice-options form { -width:16px; -height:16px; -} .notice-options form.processing { background-image:none; } diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index c61e2cc5f3..70971c5b34 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -158,6 +158,9 @@ class OStatusPlugin extends Plugin // Also, we'll add in the salmon link $salmon = common_local_url($salmonAction, array('id' => $id)); + $feed->addLink($salmon, array('rel' => Salmon::REL_SALMON)); + + // XXX: these are deprecated $feed->addLink($salmon, array('rel' => Salmon::NS_REPLIES)); $feed->addLink($salmon, array('rel' => Salmon::NS_MENTIONS)); } @@ -953,4 +956,16 @@ class OStatusPlugin extends Plugin } return false; } + + public function onStartProfileGetAtomFeed($profile, &$feed) + { + $oprofile = Ostatus_profile::staticGet('profile_id', $profile->id); + + if (empty($oprofile)) { + return true; + } + + $feed = $oprofile->feeduri; + return false; + } } diff --git a/plugins/OStatus/actions/hostmeta.php b/plugins/OStatus/actions/hostmeta.php index 6d35ada6c6..8ca07f9165 100644 --- a/plugins/OStatus/actions/hostmeta.php +++ b/plugins/OStatus/actions/hostmeta.php @@ -35,14 +35,13 @@ class HostMetaAction extends Action $url = common_local_url('userxrd'); $url.= '?uri={uri}'; - $xrd = new XRD(); - $xrd = new XRD(); $xrd->host = $domain; $xrd->links[] = array('rel' => Discovery::LRDD_REL, 'template' => $url, 'title' => array('Resource Descriptor')); + header('Content-type: application/xrd+xml'); print $xrd->toXML(); } } diff --git a/plugins/OStatus/actions/ostatusgroup.php b/plugins/OStatus/actions/ostatusgroup.php index f325ba0532..1b368de63c 100644 --- a/plugins/OStatus/actions/ostatusgroup.php +++ b/plugins/OStatus/actions/ostatusgroup.php @@ -104,7 +104,7 @@ class OStatusGroupAction extends OStatusSubAction } $this->showEntity($group, - $group->getProfileUrl(), + $group->homeUrl(), $group->homepage_logo, $group->description); return $ok; diff --git a/plugins/OStatus/lib/hubprepqueuehandler.php b/plugins/OStatus/lib/hubprepqueuehandler.php new file mode 100644 index 0000000000..0d585938f4 --- /dev/null +++ b/plugins/OStatus/lib/hubprepqueuehandler.php @@ -0,0 +1,87 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 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 + * 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/>. + */ + +/** + * When we have a large batch of PuSH consumers, we break the data set + * into smaller chunks. Enqueue final destinations... + * + * @package Hub + * @author Brion Vibber <brion@status.net> + */ +class HubPrepQueueHandler extends QueueHandler +{ + // Enqueue this many low-level distributions before re-queueing the rest + // of the batch to be processed later. Helps to keep latency down for other + // things happening during a particularly long OStatus delivery session. + // + // [Could probably ditch this if we had working message delivery priorities + // for queueing, but this isn't supported in ActiveMQ 5.3.] + const ROLLING_BATCH = 20; + + function transport() + { + return 'hubprep'; + } + + function handle($data) + { + $topic = $data['topic']; + $atom = $data['atom']; + $pushCallbacks = $data['pushCallbacks']; + + assert(is_string($atom)); + assert(is_string($topic)); + assert(is_array($pushCallbacks)); + + // Set up distribution for the first n subscribing sites... + // If we encounter an uncatchable error, queue handling should + // automatically re-run the batch, which could lead to some dupe + // distributions. + // + // Worst case is if one of these hubprep entries dies too many + // times and gets dropped; the rest of the batch won't get processed. + try { + $n = 0; + while (count($pushCallbacks) && $n < self::ROLLING_BATCH) { + $n++; + $callback = array_shift($pushCallbacks); + $sub = HubSub::staticGet($topic, $callback); + if (!$sub) { + common_log(LOG_ERR, "Skipping PuSH delivery for deleted(?) consumer $callback on $topic"); + continue; + } + + $sub->distribute($atom); + } + } catch (Exception $e) { + common_log(LOG_ERR, "Exception during PuSH batch out: " . + $e->getMessage() . + " prepping $topic to $callback"); + } + + // And re-queue the rest of the batch! + if (count($pushCallbacks) > 0) { + $sub = new HubSub(); + $sub->topic = $topic; + $sub->bulkDistribute($atom, $pushCallbacks); + } + + return true; + } +} diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index f39686b717..3bdf24b317 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -97,24 +97,18 @@ class MagicEnvelope } public function toXML($env) { - $dom = new DOMDocument(); - - $envelope = $dom->createElementNS(MagicEnvelope::NS, 'me:env'); - $envelope->setAttribute('xmlns:me', MagicEnvelope::NS); - $data = $dom->createElementNS(MagicEnvelope::NS, 'me:data', $env['data']); - $data->setAttribute('type', $env['data_type']); - $envelope->appendChild($data); - $enc = $dom->createElementNS(MagicEnvelope::NS, 'me:encoding', $env['encoding']); - $envelope->appendChild($enc); - $alg = $dom->createElementNS(MagicEnvelope::NS, 'me:alg', $env['alg']); - $envelope->appendChild($alg); - $sig = $dom->createElementNS(MagicEnvelope::NS, 'me:sig', $env['sig']); - $envelope->appendChild($sig); - - $dom->appendChild($envelope); + $xs = new XMLStringer(); + $xs->startXML(); + $xs->elementStart('me:env', array('xmlns:me' => MagicEnvelope::NS)); + $xs->element('me:data', array('type' => $env['data_type']), $env['data']); + $xs->element('me:encoding', null, $env['encoding']); + $xs->element('me:alg', null, $env['alg']); + $xs->element('me:sig', null, $env['sig']); + $xs->elementEnd('me:env'); - - return $dom->saveXML(); + $string = $xs->getString(); + common_debug($string); + return $string; } diff --git a/plugins/OStatus/lib/salmon.php b/plugins/OStatus/lib/salmon.php index 3d3341bc63..ef7719a40c 100644 --- a/plugins/OStatus/lib/salmon.php +++ b/plugins/OStatus/lib/salmon.php @@ -28,9 +28,11 @@ */ class Salmon { + const REL_SALMON = 'salmon'; + const REL_MENTIONED = 'mentioned'; + // XXX: these are deprecated const NS_REPLIES = "http://salmon-protocol.org/ns/salmon-replies"; - const NS_MENTIONS = "http://salmon-protocol.org/ns/salmon-mention"; /** diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index 34b28790b7..a10b9f4272 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -106,44 +106,43 @@ class XRD public function toXML() { - $dom = new DOMDocument('1.0', 'UTF-8'); - $dom->formatOutput = true; - - $xrd_dom = $dom->createElementNS(XRD::XRD_NS, 'XRD'); - $dom->appendChild($xrd_dom); + $xs = new XMLStringer(); + + $xs->startXML(); + $xs->elementStart('XRD', array('xmlns' => XRD::XRD_NS)); if ($this->host) { - $host_dom = $dom->createElement('hm:Host', $this->host); - $xrd_dom->setAttributeNS(XRD::XML_NS, 'xmlns:hm', XRD::HOST_META_NS); - $xrd_dom->appendChild($host_dom); + $xs->element('hm:Host', array('xmlns:hm' => XRD::HOST_META_NS), $this->host); } - if ($this->expires) { - $expires_dom = $dom->createElement('Expires', $this->expires); - $xrd_dom->appendChild($expires_dom); - } + if ($this->expires) { + $xs->element('Expires', null, $this->expires); + } - if ($this->subject) { - $subject_dom = $dom->createElement('Subject', $this->subject); - $xrd_dom->appendChild($subject_dom); - } + if ($this->subject) { + $xs->element('Subject', null, $this->subject); + } - foreach ($this->alias as $alias) { - $alias_dom = $dom->createElement('Alias', $alias); - $xrd_dom->appendChild($alias_dom); - } + foreach ($this->alias as $alias) { + $xs->element('Alias', null, $alias); + } - foreach ($this->types as $type) { - $type_dom = $dom->createElement('Type', $type); - $xrd_dom->appendChild($type_dom); - } + foreach ($this->links as $link) { + $titles = array(); + if (isset($link['title'])) { + $titles = $link['title']; + unset($link['title']); + } + $xs->elementStart('Link', $link); + foreach ($titles as $title) { + $xs->element('Title', null, $title); + } + $xs->elementEnd('Link'); + } + + $xs->elementEnd('XRD'); - foreach ($this->links as $link) { - $link_dom = $this->saveLink($dom, $link); - $xrd_dom->appendChild($link_dom); - } - - return $dom->saveXML(); + return $xs->getString(); } function parseType($element) @@ -169,32 +168,5 @@ class XRD return $link; } - - function saveLink($doc, $link) - { - $link_element = $doc->createElement('Link'); - if (!empty($link['rel'])) { - $link_element->setAttribute('rel', $link['rel']); - } - if (!empty($link['type'])) { - $link_element->setAttribute('type', $link['type']); - } - if (!empty($link['href'])) { - $link_element->setAttribute('href', $link['href']); - } - if (!empty($link['template'])) { - $link_element->setAttribute('template', $link['template']); - } - - if (!empty($link['title']) && is_array($link['title'])) { - foreach($link['title'] as $title) { - $title = $doc->createElement('Title', $title); - $link_element->appendChild($title); - } - } - - - return $link_element; - } } diff --git a/plugins/OStatus/lib/xrdaction.php b/plugins/OStatus/lib/xrdaction.php index f1a56e0a84..d8cf648d6d 100644 --- a/plugins/OStatus/lib/xrdaction.php +++ b/plugins/OStatus/lib/xrdaction.php @@ -76,6 +76,9 @@ class XrdAction extends Action $salmon_url = common_local_url('usersalmon', array('id' => $this->user->id)); + $xrd->links[] = array('rel' => Salmon::REL_SALMON, + 'href' => $salmon_url); + // XXX : Deprecated - to be removed. $xrd->links[] = array('rel' => Salmon::NS_REPLIES, 'href' => $salmon_url); @@ -98,7 +101,7 @@ class XrdAction extends Action $xrd->links[] = array('rel' => 'http://ostatus.org/schema/1.0/subscribe', 'template' => $url ); - header('Content-type: text/xml'); + header('Content-type: application/xrd+xml'); print $xrd->toXML(); } diff --git a/plugins/Sitemap/SitemapPlugin.php b/plugins/Sitemap/SitemapPlugin.php index d4d295237d..b6d3b1ad33 100644 --- a/plugins/Sitemap/SitemapPlugin.php +++ b/plugins/Sitemap/SitemapPlugin.php @@ -202,6 +202,12 @@ class SitemapPlugin extends Plugin null, false), new ColumnDef('modified', 'timestamp'))); + $userCreated = $schema->getColumnDef('user', 'created'); + + if (empty($userCreated) || $userCreated->key != 'MUL') { + $schema->createIndex('user', 'created'); + } + return true; } diff --git a/plugins/Sitemap/Sitemap_notice_count.php b/plugins/Sitemap/Sitemap_notice_count.php index 2a375b3e48..6e0061e97b 100644 --- a/plugins/Sitemap/Sitemap_notice_count.php +++ b/plugins/Sitemap/Sitemap_notice_count.php @@ -153,7 +153,9 @@ class Sitemap_notice_count extends Memcached_DataObject $noticeCounts[$snc->notice_date] = $snc->notice_count; } - self::cacheSet('sitemap:notice:counts', $noticeCounts); + // Cache notice counts for 4 hours. + + self::cacheSet('sitemap:notice:counts', $noticeCounts, null, time() + 4 * 60 * 60); } return $noticeCounts; diff --git a/plugins/Sitemap/Sitemap_user_count.php b/plugins/Sitemap/Sitemap_user_count.php index 64b4c34428..98dd05bfed 100644 --- a/plugins/Sitemap/Sitemap_user_count.php +++ b/plugins/Sitemap/Sitemap_user_count.php @@ -154,7 +154,9 @@ class Sitemap_user_count extends Memcached_DataObject $userCounts[$suc->registration_date] = $suc->user_count; } - self::cacheSet('sitemap:user:counts', $userCounts); + // Cache user counts for 4 hours. + + self::cacheSet('sitemap:user:counts', $userCounts, null, time() + 4 * 60 * 60); } return $userCounts; diff --git a/plugins/Sitemap/scripts/updatecounts.php b/plugins/Sitemap/scripts/updatecounts.php new file mode 100644 index 0000000000..91bc0ac4e9 --- /dev/null +++ b/plugins/Sitemap/scripts/updatecounts.php @@ -0,0 +1,36 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 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 + * 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__) . '/../../..')); + +$helptext = <<<END_OF_UPDATECOUNTS_HELP +updatecounts.php [options] +Update the notice and user counts cached in the database. + +END_OF_UPDATECOUNTS_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +// Will fill the cache + +$userCounts = Sitemap_user_count::getAll(); +$noticeCounts = Sitemap_notice_count::getAll(); + +echo "Done.\n"; diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 65b3a6b38e..0505a328fb 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -50,6 +50,7 @@ class TwitterBridgePlugin extends Plugin { const VERSION = STATUSNET_VERSION; + public $adminImportControl = false; // Should the 'import' checkbox be exposed in the admin panel? /** * Initializer for the plugin. @@ -322,5 +323,17 @@ class TwitterBridgePlugin extends Plugin return true; } + /** + * Expose the adminImportControl setting to the administration panel code. + * This allows us to disable the import bridge enabling checkbox for administrators, + * since on a bulk farm site we can't yet automate the import daemon setup. + * + * @return boolean hook value; + */ + function onTwitterBridgeAdminImportControl() + { + return (bool)$this->adminImportControl; + } + } diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 896eee2dac..306ba2442a 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -75,8 +75,6 @@ function save_twitter_user($twitter_id, $screen_name) if (!empty($fuser)) { - $result = true; - // Delete old record if Twitter user changed screen name if ($fuser->nickname != $screen_name) { @@ -88,6 +86,25 @@ function save_twitter_user($twitter_id, $screen_name) $screen_name, $oldname)); } + + } else { + + // Kill any old, invalid records for this screen name + + $fuser = Foreign_user::getByNickname($screen_name, TWITTER_SERVICE); + + if (!empty($fuser)) { + $fuser->delete(); + common_log( + LOG_INFO, + sprintf( + 'Twitter bridge - deteted old record for Twitter ' . + 'screen name "%s" belonging to Twitter ID %d.', + $screen_name, + $fuser->id + ) + ); + } } return add_twitter_user($twitter_id, $screen_name); diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php index a78a92c667..69f8da078a 100644 --- a/plugins/TwitterBridge/twitteradminpanel.php +++ b/plugins/TwitterBridge/twitteradminpanel.php @@ -92,9 +92,11 @@ class TwitteradminpanelAction extends AdminPanelAction ); static $booleans = array( - 'twitter' => array('signin'), - 'twitterimport' => array('enabled') + 'twitter' => array('signin') ); + if (Event::handle('TwitterBridgeAdminImportControl')) { + $booleans['twitterimport'] = array('enabled'); + } $values = array(); @@ -155,6 +157,13 @@ class TwitteradminpanelAction extends AdminPanelAction ); } } + + function isImportEnabled() + { + // Since daemon setup isn't automated yet... + // @todo: if merged into main queues, detect presence of daemon config + return true; + } } class TwitterAdminPanelForm extends AdminForm @@ -263,13 +272,15 @@ class TwitterAdminPanelForm extends AdminForm ); $this->unli(); - $this->li(); - $this->out->checkbox( - 'enabled', _m('Enable Twitter import'), - (bool) $this->value('enabled', 'twitterimport'), - _m('Allow users to import their Twitter friends\' timelines') - ); - $this->unli(); + if (Event::handle('TwitterBridgeAdminImportControl')) { + $this->li(); + $this->out->checkbox( + 'enabled', _m('Enable Twitter import'), + (bool) $this->value('enabled', 'twitterimport'), + _m('Allow users to import their Twitter friends\' timelines. Requires daemons to be manually configured.') + ); + $this->unli(); + } $this->out->elementEnd('ul'); diff --git a/scripts/fixup_status_network.php b/scripts/fixup_status_network.php new file mode 100644 index 0000000000..def1eaa884 --- /dev/null +++ b/scripts/fixup_status_network.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the 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__) . '/..')); + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +common_log(LOG_INFO, 'Beginning status_network conversion...'); + +$sn = new Status_network(); +$sn->find(); +while ($sn->fetch()) { + try { + $sn->setTags(explode('|', $sn->tags)); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + } +} + +common_log(LOG_INFO, 'Completed status_network conversion...'); diff --git a/scripts/settag.php b/scripts/settag.php index d1b06ff100..ca260f7bf9 100644 --- a/scripts/settag.php +++ b/scripts/settag.php @@ -39,11 +39,10 @@ if (count($args) < 1) { } $nickname = $args[0]; - $sn = Status_network::memGet('nickname', $nickname); if (empty($sn)) { - print "No such site.\n"; + print "No such site ($nickname).\n"; exit(-1); } @@ -54,16 +53,13 @@ if (count($args) == 1) { exit(0); } $tag = $args[1]; - $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); + $result = $sn->setTags($tags); if (!$result) { print "Couldn't update.\n"; exit(-1); @@ -78,9 +74,7 @@ if ($i !== false) { exit(-1); } else { $tags[] = $tag; - $orig = clone($sn); - $sn->tags = implode('|', $tags); - $result = $sn->update($orig); + $result = $sn->setTags($tags); if (!$result) { print "Couldn't update.\n"; exit(-1); diff --git a/scripts/setup_status_network.sh b/scripts/setup_status_network.sh index 4ebb696c71..3dd7390303 100755 --- a/scripts/setup_status_network.sh +++ b/scripts/setup_status_network.sh @@ -44,8 +44,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, tags) -VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now(), '$tags'); +INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created) +VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now()); ENDOFCOMMANDS @@ -56,6 +56,8 @@ done php $PHPBASE/scripts/checkschema.php -s"$server" +php $PHPBASE/scripts/settag.php -s"$server" "$nickname" "$tags" + php $PHPBASE/scripts/registeruser.php \ -s"$server" \ -n"$nickname" \ diff --git a/tests/ActivityGenerationTests.php b/tests/ActivityGenerationTests.php new file mode 100644 index 0000000000..b9e74a570a --- /dev/null +++ b/tests/ActivityGenerationTests.php @@ -0,0 +1,592 @@ +<?php + +if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + print "This script must be run from the command line\n"; + exit(); +} + +// XXX: we should probably have some common source for this stuff + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); +define('STATUSNET', true); + +require_once INSTALLDIR . '/lib/common.php'; + +class ActivityGenerationTests extends PHPUnit_Framework_TestCase +{ + var $author1 = null; + var $author2 = null; + + var $targetUser1 = null; + var $targetUser2 = null; + + var $targetGroup1 = null; + var $targetGroup2 = null; + + function __construct() + { + parent::__construct(); + + $authorNick1 = 'activitygenerationtestsuser' . common_good_rand(4); + $authorNick2 = 'activitygenerationtestsuser' . common_good_rand(4); + + $targetNick1 = 'activitygenerationteststarget' . common_good_rand(4); + $targetNick2 = 'activitygenerationteststarget' . common_good_rand(4); + + $groupNick1 = 'activitygenerationtestsgroup' . common_good_rand(4); + $groupNick2 = 'activitygenerationtestsgroup' . common_good_rand(4); + + $this->author1 = User::register(array('nickname' => $authorNick1, + 'email' => $authorNick1 . '@example.net', + 'email_confirmed' => true)); + + $this->author2 = User::register(array('nickname' => $authorNick2, + 'email' => $authorNick2 . '@example.net', + 'email_confirmed' => true)); + + $this->targetUser1 = User::register(array('nickname' => $targetNick1, + 'email' => $targetNick1 . '@example.net', + 'email_confirmed' => true)); + + $this->targetUser2 = User::register(array('nickname' => $targetNick2, + 'email' => $targetNick2 . '@example.net', + 'email_confirmed' => true)); + + $this->targetGroup1 = User_group::register(array('nickname' => $groupNick1, + 'userid' => $this->author1->id, + 'aliases' => array(), + 'local' => true, + 'location' => null, + 'description' => null, + 'fullname' => null, + 'homepage' => null, + 'mainpage' => null)); + $this->targetGroup2 = User_group::register(array('nickname' => $groupNick2, + 'userid' => $this->author1->id, + 'aliases' => array(), + 'local' => true, + 'location' => null, + 'description' => null, + 'fullname' => null, + 'homepage' => null, + 'mainpage' => null)); + } + + public function testBasicNoticeActivity() + { + $notice = $this->_fakeNotice(); + + $entry = $notice->asAtomEntry(true); + + $element = $this->_entryToElement($entry, false); + + $this->assertEquals($notice->uri, ActivityUtils::childContent($element, 'id')); + $this->assertEquals($notice->content, ActivityUtils::childContent($element, 'title')); + $this->assertEquals($notice->rendered, ActivityUtils::childContent($element, 'content')); + $this->assertEquals(strtotime($notice->created), strtotime(ActivityUtils::childContent($element, 'published'))); + $this->assertEquals(strtotime($notice->created), strtotime(ActivityUtils::childContent($element, 'updated'))); + $this->assertEquals(ActivityVerb::POST, ActivityUtils::childContent($element, 'verb', Activity::SPEC)); + $this->assertEquals(ActivityObject::NOTE, ActivityUtils::childContent($element, 'object-type', Activity::SPEC)); + } + + public function testNamespaceFlag() + { + $notice = $this->_fakeNotice(); + + $entry = $notice->asAtomEntry(true); + + $element = $this->_entryToElement($entry, false); + + $this->assertTrue($element->hasAttribute('xmlns')); + $this->assertTrue($element->hasAttribute('xmlns:thr')); + $this->assertTrue($element->hasAttribute('xmlns:georss')); + $this->assertTrue($element->hasAttribute('xmlns:activity')); + $this->assertTrue($element->hasAttribute('xmlns:media')); + $this->assertTrue($element->hasAttribute('xmlns:poco')); + $this->assertTrue($element->hasAttribute('xmlns:ostatus')); + $this->assertTrue($element->hasAttribute('xmlns:statusnet')); + + $entry = $notice->asAtomEntry(false); + + $element = $this->_entryToElement($entry, true); + + $this->assertFalse($element->hasAttribute('xmlns')); + $this->assertFalse($element->hasAttribute('xmlns:thr')); + $this->assertFalse($element->hasAttribute('xmlns:georss')); + $this->assertFalse($element->hasAttribute('xmlns:activity')); + $this->assertFalse($element->hasAttribute('xmlns:media')); + $this->assertFalse($element->hasAttribute('xmlns:poco')); + $this->assertFalse($element->hasAttribute('xmlns:ostatus')); + $this->assertFalse($element->hasAttribute('xmlns:statusnet')); + } + + public function testSourceFlag() + { + $notice = $this->_fakeNotice(); + + // Test with no source + + $entry = $notice->asAtomEntry(false, false); + + $element = $this->_entryToElement($entry, true); + + $source = ActivityUtils::child($element, 'source'); + + $this->assertNull($source); + + // Test with source + + $entry = $notice->asAtomEntry(false, true); + + $element = $this->_entryToElement($entry, true); + + $source = ActivityUtils::child($element, 'source'); + + $this->assertNotNull($source); + } + + public function testSourceContent() + { + $notice = $this->_fakeNotice(); + // make a time difference! + sleep(2); + $notice2 = $this->_fakeNotice(); + + $entry = $notice->asAtomEntry(false, true); + + $element = $this->_entryToElement($entry, true); + + $source = ActivityUtils::child($element, 'source'); + + $atomUrl = common_local_url('ApiTimelineUser', array('id' => $this->author1->id, 'format' => 'atom')); + + $profile = $this->author1->getProfile(); + + $this->assertEquals($atomUrl, ActivityUtils::childContent($source, 'id')); + $this->assertEquals($atomUrl, ActivityUtils::getLink($source, 'self', 'application/atom+xml')); + $this->assertEquals($profile->profileurl, ActivityUtils::getPermalink($source)); + $this->assertEquals(strtotime($notice2->created), strtotime(ActivityUtils::childContent($source, 'updated'))); + // XXX: do we care here? + $this->assertFalse(is_null(ActivityUtils::childContent($source, 'title'))); + $this->assertEquals(common_config('license', 'url'), ActivityUtils::getLink($source, 'license')); + } + + public function testAuthorFlag() + { + $notice = $this->_fakeNotice(); + + // Test with no author + + $entry = $notice->asAtomEntry(false, false, false); + + $element = $this->_entryToElement($entry, true); + + $this->assertNull(ActivityUtils::child($element, 'author')); + $this->assertNull(ActivityUtils::child($element, 'actor', Activity::SPEC)); + + // Test with source + + $entry = $notice->asAtomEntry(false, false, true); + + $element = $this->_entryToElement($entry, true); + + $author = ActivityUtils::child($element, 'author'); + $actor = ActivityUtils::child($element, 'actor', Activity::SPEC); + + $this->assertFalse(is_null($author)); + $this->assertFalse(is_null($actor)); + } + + public function testAuthorContent() + { + $notice = $this->_fakeNotice(); + + // Test with author + + $entry = $notice->asAtomEntry(false, false, true); + + $element = $this->_entryToElement($entry, true); + + $author = ActivityUtils::child($element, 'author'); + + $this->assertEquals($this->author1->nickname, ActivityUtils::childContent($author, 'name')); + $this->assertEquals($this->author1->uri, ActivityUtils::childContent($author, 'uri')); + } + + public function testActorContent() + { + $notice = $this->_fakeNotice(); + + // Test with author + + $entry = $notice->asAtomEntry(false, false, true); + + $element = $this->_entryToElement($entry, true); + + $actor = ActivityUtils::child($element, 'actor', Activity::SPEC); + + $this->assertEquals($this->author1->uri, ActivityUtils::childContent($actor, 'id')); + $this->assertEquals($this->author1->nickname, ActivityUtils::childContent($actor, 'title')); + } + + public function testReplyLink() + { + $orig = $this->_fakeNotice($this->targetUser1); + + $text = "@" . $this->targetUser1->nickname . " reply text " . common_good_rand(4); + + $reply = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null, 'reply_to' => $orig->id)); + + $entry = $reply->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $irt = ActivityUtils::child($element, 'in-reply-to', 'http://purl.org/syndication/thread/1.0'); + + $this->assertNotNull($irt); + $this->assertEquals($orig->uri, $irt->getAttribute('ref')); + $this->assertEquals($orig->bestUrl(), $irt->getAttribute('href')); + } + + public function testReplyAttention() + { + $orig = $this->_fakeNotice($this->targetUser1); + + $text = "@" . $this->targetUser1->nickname . " reply text " . common_good_rand(4); + + $reply = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null, 'reply_to' => $orig->id)); + + $entry = $reply->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $this->assertEquals($this->targetUser1->uri, ActivityUtils::getLink($element, 'ostatus:attention')); + $this->assertEquals($this->targetUser1->uri, ActivityUtils::getLink($element, 'mentioned')); + } + + public function testMultipleReplyAttention() + { + $orig = $this->_fakeNotice($this->targetUser1); + + $text = "@" . $this->targetUser1->nickname . " reply text " . common_good_rand(4); + + $reply = Notice::saveNew($this->targetUser2->id, $text, 'test', array('uri' => null, 'reply_to' => $orig->id)); + + $text = "@" . $this->targetUser1->nickname . " @" . $this->targetUser2->nickname . " reply text " . common_good_rand(4); + + $reply2 = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null, 'reply_to' => $reply->id)); + + $entry = $reply2->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $links = ActivityUtils::getLinks($element, 'ostatus:attention'); + + $this->assertEquals(2, count($links)); + + $hrefs = array(); + + foreach ($links as $link) { + $hrefs[] = $link->getAttribute('href'); + } + + $this->assertTrue(in_array($this->targetUser1->uri, $hrefs)); + $this->assertTrue(in_array($this->targetUser2->uri, $hrefs)); + + $links = ActivityUtils::getLinks($element, 'mentioned'); + + $this->assertEquals(2, count($links)); + + $hrefs = array(); + + foreach ($links as $link) { + $hrefs[] = $link->getAttribute('href'); + } + + $this->assertTrue(in_array($this->targetUser1->uri, $hrefs)); + $this->assertTrue(in_array($this->targetUser2->uri, $hrefs)); + } + + public function testGroupPostAttention() + { + $text = "!" . $this->targetGroup1->nickname . " reply text " . common_good_rand(4); + + $notice = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null)); + + $entry = $notice->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $this->assertEquals($this->targetGroup1->uri, ActivityUtils::getLink($element, 'ostatus:attention')); + $this->assertEquals($this->targetGroup1->uri, ActivityUtils::getLink($element, 'mentioned')); + } + + public function testMultipleGroupPostAttention() + { + $text = "!" . $this->targetGroup1->nickname . " !" . $this->targetGroup2->nickname . " reply text " . common_good_rand(4); + + $notice = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null)); + + $entry = $notice->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $links = ActivityUtils::getLinks($element, 'ostatus:attention'); + + $this->assertEquals(2, count($links)); + + $hrefs = array(); + + foreach ($links as $link) { + $hrefs[] = $link->getAttribute('href'); + } + + $this->assertTrue(in_array($this->targetGroup1->uri, $hrefs)); + $this->assertTrue(in_array($this->targetGroup2->uri, $hrefs)); + + $links = ActivityUtils::getLinks($element, 'mentioned'); + + $this->assertEquals(2, count($links)); + + $hrefs = array(); + + foreach ($links as $link) { + $hrefs[] = $link->getAttribute('href'); + } + + $this->assertTrue(in_array($this->targetGroup1->uri, $hrefs)); + $this->assertTrue(in_array($this->targetGroup2->uri, $hrefs)); + } + + public function testRepeatLink() + { + $notice = $this->_fakeNotice($this->author1); + $repeat = $notice->repeat($this->author2->id, 'test'); + + $entry = $repeat->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $forward = ActivityUtils::child($element, 'forward', "http://ostatus.org/schema/1.0"); + + $this->assertNotNull($forward); + $this->assertEquals($notice->uri, $forward->getAttribute('ref')); + $this->assertEquals($notice->bestUrl(), $forward->getAttribute('href')); + } + + public function testTag() + { + $tag1 = common_good_rand(4); + + $notice = $this->_fakeNotice($this->author1, '#' . $tag1); + + $entry = $notice->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $category = ActivityUtils::child($element, 'category'); + + $this->assertNotNull($category); + $this->assertEquals($tag1, $category->getAttribute('term')); + } + + public function testMultiTag() + { + $tag1 = common_good_rand(4); + $tag2 = common_good_rand(4); + + $notice = $this->_fakeNotice($this->author1, '#' . $tag1 . ' #' . $tag2); + + $entry = $notice->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $categories = $element->getElementsByTagName('category'); + + $this->assertNotNull($categories); + $this->assertEquals(2, $categories->length); + + $terms = array(); + + for ($i = 0; $i < $categories->length; $i++) { + $cat = $categories->item($i); + $terms[] = $cat->getAttribute('term'); + } + + $this->assertTrue(in_array($tag1, $terms)); + $this->assertTrue(in_array($tag2, $terms)); + } + + public function testGeotaggedActivity() + { + $notice = Notice::saveNew($this->author1->id, common_good_rand(4), 'test', array('uri' => null, 'lat' => 45.5, 'lon' => -73.6)); + + $entry = $notice->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $this->assertEquals('45.5 -73.6', ActivityUtils::childContent($element, 'point', "http://www.georss.org/georss")); + } + + public function testNoticeInfo() + { + $notice = $this->_fakeNotice(); + + $entry = $notice->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $noticeInfo = ActivityUtils::child($element, 'notice_info', "http://status.net/schema/api/1/"); + + $this->assertEquals($notice->id, $noticeInfo->getAttribute('local_id')); + $this->assertEquals($notice->source, $noticeInfo->getAttribute('source')); + $this->assertEquals('', $noticeInfo->getAttribute('repeat_of')); + $this->assertEquals('', $noticeInfo->getAttribute('repeated')); + $this->assertEquals('', $noticeInfo->getAttribute('favorite')); + $this->assertEquals('', $noticeInfo->getAttribute('source_link')); + } + + public function testNoticeInfoRepeatOf() + { + $notice = $this->_fakeNotice(); + + $repeat = $notice->repeat($this->author2->id, 'test'); + + $entry = $repeat->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $noticeInfo = ActivityUtils::child($element, 'notice_info', "http://status.net/schema/api/1/"); + + $this->assertEquals($notice->id, $noticeInfo->getAttribute('repeat_of')); + } + + public function testNoticeInfoRepeated() + { + $notice = $this->_fakeNotice(); + + $repeat = $notice->repeat($this->author2->id, 'test'); + + $entry = $notice->asAtomEntry(false, false, false, $this->author2); + + $element = $this->_entryToElement($entry, true); + + $noticeInfo = ActivityUtils::child($element, 'notice_info', "http://status.net/schema/api/1/"); + + $this->assertEquals('true', $noticeInfo->getAttribute('repeated')); + + $entry = $notice->asAtomEntry(false, false, false, $this->targetUser1); + + $element = $this->_entryToElement($entry, true); + + $noticeInfo = ActivityUtils::child($element, 'notice_info', "http://status.net/schema/api/1/"); + + $this->assertEquals('false', $noticeInfo->getAttribute('repeated')); + } + + public function testNoticeInfoFave() + { + $notice = $this->_fakeNotice(); + + $fave = Fave::addNew($this->author2->getProfile(), $notice); + + // Should be set if user has faved + + $entry = $notice->asAtomEntry(false, false, false, $this->author2); + + $element = $this->_entryToElement($entry, true); + + $noticeInfo = ActivityUtils::child($element, 'notice_info', "http://status.net/schema/api/1/"); + + $this->assertEquals('true', $noticeInfo->getAttribute('favorite')); + + // Shouldn't be set if user has not faved + + $entry = $notice->asAtomEntry(false, false, false, $this->targetUser1); + + $element = $this->_entryToElement($entry, true); + + $noticeInfo = ActivityUtils::child($element, 'notice_info', "http://status.net/schema/api/1/"); + + $this->assertEquals('false', $noticeInfo->getAttribute('favorite')); + } + + public function testConversationLink() + { + $orig = $this->_fakeNotice($this->targetUser1); + + $text = "@" . $this->targetUser1->nickname . " reply text " . common_good_rand(4); + + $reply = Notice::saveNew($this->author1->id, $text, 'test', array('uri' => null, 'reply_to' => $orig->id)); + + $conv = Conversation::staticGet('id', $reply->conversation); + + $entry = $reply->asAtomEntry(); + + $element = $this->_entryToElement($entry, true); + + $this->assertEquals($conv->uri, ActivityUtils::getLink($element, 'ostatus:conversation')); + } + + function __destruct() + { + if (!is_null($this->author1)) { + $this->author1->delete(); + } + + if (!is_null($this->author2)) { + $this->author2->delete(); + } + + if (!is_null($this->targetUser1)) { + $this->targetUser1->delete(); + } + + if (!is_null($this->targetUser2)) { + $this->targetUser2->delete(); + } + + if (!is_null($this->targetGroup1)) { + $this->targetGroup1->delete(); + } + + if (!is_null($this->targetGroup2)) { + $this->targetGroup2->delete(); + } + } + + private function _fakeNotice($user = null, $text = null) + { + if (empty($user)) { + $user = $this->author1; + } + + if (empty($text)) { + $text = "fake-o text-o " . common_good_rand(32); + } + + return Notice::saveNew($user->id, $text, 'test', array('uri' => null)); + } + + private function _entryToElement($entry, $namespace = false) + { + $xml = '<?xml version="1.0" encoding="utf-8"?>'."\n\n"; + $xml .= '<feed'; + if ($namespace) { + $xml .= ' xmlns="http://www.w3.org/2005/Atom"'; + $xml .= ' xmlns:thr="http://purl.org/syndication/thread/1.0"'; + $xml .= ' xmlns:georss="http://www.georss.org/georss"'; + $xml .= ' xmlns:activity="http://activitystrea.ms/spec/1.0/"'; + $xml .= ' xmlns:media="http://purl.org/syndication/atommedia"'; + $xml .= ' xmlns:poco="http://portablecontacts.net/spec/1.0"'; + $xml .= ' xmlns:ostatus="http://ostatus.org/schema/1.0"'; + $xml .= ' xmlns:statusnet="http://status.net/schema/api/1/"'; + } + $xml .= '>' . "\n" . $entry . "\n" . '</feed>' . "\n"; + $doc = DOMDocument::loadXML($xml); + $feed = $doc->documentElement; + $entries = $feed->getElementsByTagName('entry'); + + return $entries->item(0); + } +} diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index ea09ef4c0f..e735d8683f 100644 --- a/theme/biz/css/display.css +++ b/theme/biz/css/display.css @@ -7,7 +7,7 @@ * @link http://status.net/ */ -@import url(base.css) screen, projection, tv, print; +@import url(base.css); @media screen, projection, tv { html { diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 5e3748cb7a..9a1dabb515 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -7,7 +7,7 @@ * @link http://status.net/ */ -@import url(../../base/css/display.css) screen, projection, tv, print; +@import url(../../base/css/display.css); @media screen, projection, tv { body, diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 440dd8be22..d7f150bcb0 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -7,7 +7,7 @@ * @link http://status.net/ */ -@import url(../../base/css/display.css) screen, projection, tv, print; +@import url(../../base/css/display.css); @media screen, projection, tv { body, diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css index e584683fcd..3d6db00e14 100644 --- a/theme/pigeonthoughts/css/display.css +++ b/theme/pigeonthoughts/css/display.css @@ -7,7 +7,7 @@ * @link http://status.net/ */ -@import url(base.css) screen, projection, tv, print; +@import url(base.css); @media screen, projection, tv { html {